initial
4
.dockerignore
Normal file
|
@ -0,0 +1,4 @@
|
|||
.git
|
||||
.gitignore
|
||||
deployments
|
||||
target
|
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
src/public/css/*.css
|
||||
data
|
428
LICENSE
Normal file
|
@ -0,0 +1,428 @@
|
|||
Attribution-ShareAlike 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-ShareAlike 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-ShareAlike 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. BY-SA Compatible License means a license listed at
|
||||
creativecommons.org/compatiblelicenses, approved by Creative
|
||||
Commons as essentially the equivalent of this Public License.
|
||||
|
||||
d. 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.
|
||||
|
||||
e. 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.
|
||||
|
||||
f. 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.
|
||||
|
||||
g. License Elements means the license attributes listed in the name
|
||||
of a Creative Commons Public License. The License Elements of this
|
||||
Public License are Attribution and ShareAlike.
|
||||
|
||||
h. Licensed Material means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public
|
||||
License.
|
||||
|
||||
i. 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.
|
||||
|
||||
j. Licensor means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
k. 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.
|
||||
|
||||
l. 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.
|
||||
|
||||
m. 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. Additional offer from the Licensor -- Adapted Material.
|
||||
Every recipient of Adapted Material from You
|
||||
automatically receives an offer from the Licensor to
|
||||
exercise the Licensed Rights in the Adapted Material
|
||||
under the conditions of the Adapter's License You apply.
|
||||
|
||||
c. 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.
|
||||
|
||||
b. ShareAlike.
|
||||
|
||||
In addition to the conditions in Section 3(a), if You Share
|
||||
Adapted Material You produce, the following conditions also apply.
|
||||
|
||||
1. The Adapter's License You apply must be a Creative Commons
|
||||
license with the same License Elements, this version or
|
||||
later, or a BY-SA Compatible License.
|
||||
|
||||
2. You must include the text of, or the URI or hyperlink to, the
|
||||
Adapter's License You apply. You may satisfy this condition
|
||||
in any reasonable manner based on the medium, means, and
|
||||
context in which You Share Adapted Material.
|
||||
|
||||
3. You may not offer or impose any additional or different terms
|
||||
or conditions on, or apply any Effective Technological
|
||||
Measures to, Adapted Material that restrict exercise of the
|
||||
rights granted under the Adapter's License You apply.
|
||||
|
||||
|
||||
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,
|
||||
including for purposes of Section 3(b); 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.” The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. 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.
|
||||
|
22
Makefile
Normal file
|
@ -0,0 +1,22 @@
|
|||
|
||||
MIXINS = $(shell find src/scss -name "_*.scss")
|
||||
SCSS = $(shell find src/scss -name "*.scss" -not -name "_*")
|
||||
CSS = $(patsubst src/scss/%.scss,src/public/css/%.css,$(SCSS))
|
||||
|
||||
.PHONY: all css dir clean
|
||||
|
||||
css: dir $(CSS)
|
||||
|
||||
dir:
|
||||
@mkdir -p src/public/css
|
||||
|
||||
clean:
|
||||
@printf "\033[31m RM \033[0m%s\n" src/public/css
|
||||
@rm -f src/public/css/*.css
|
||||
|
||||
all: clean css
|
||||
|
||||
$(CSS): src/public/css/%.css : src/scss/%.scss $(MIXINS)
|
||||
@printf "\033[33m SCSS \033[0m%s\n" $<
|
||||
@sassc --style compressed $< $@
|
||||
|
21
build/init/Dockerfile
Normal file
|
@ -0,0 +1,21 @@
|
|||
FROM alpine:3.19
|
||||
|
||||
# install packages
|
||||
RUN apk add --no-cache postgresql16-client tini shadow
|
||||
RUN rm -fr /var/cache/apk/*
|
||||
|
||||
# setup main user
|
||||
RUN adduser -D init
|
||||
RUN groupmod --gid 1000 init
|
||||
RUN usermod --uid 1000 init
|
||||
|
||||
# copy scripts
|
||||
COPY ./init /usr/local/bin/init
|
||||
|
||||
# remove build packages
|
||||
RUN apk del shadow
|
||||
|
||||
# do the
|
||||
USER init
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
CMD ["/usr/local/bin/init"]
|
108
build/init/init
Executable file
|
@ -0,0 +1,108 @@
|
|||
#!/bin/sh
|
||||
|
||||
errors=$(mktemp)
|
||||
|
||||
step() {
|
||||
printf '\x1b[34;1m>> %s\x1b[0m\n' "$*"
|
||||
}
|
||||
|
||||
error() {
|
||||
{
|
||||
printf '\x1b[31;1merror: \x1b[0m%s\n' "$*";
|
||||
grep -v 'current transaction is aborted' < "$errors";
|
||||
printf "\x1b[31m;1error: \x1b[0mAborting migrations, fix file(s) then restart process.";
|
||||
} 1>&2;
|
||||
}
|
||||
|
||||
try() {
|
||||
"$@" 2> "$errors";
|
||||
count=$(grep -c 'ERROR' < "$errors")
|
||||
if [ "$count" -eq 0 ]; then
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
fi
|
||||
}
|
||||
|
||||
export PGPASSWORD="$POSTGRES_PASSWORD"
|
||||
|
||||
psql() {
|
||||
/usr/bin/psql \
|
||||
-h db \
|
||||
-p 5432 \
|
||||
-d "$POSTGRES_DB" \
|
||||
-U "$POSTGRES_USER" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
pg_isready() {
|
||||
/usr/bin/pg_isready \
|
||||
-h db \
|
||||
-p 5432 \
|
||||
-d "$POSTGRES_DB" \
|
||||
-U "$POSTGRES_USER"
|
||||
}
|
||||
|
||||
curr_revision() {
|
||||
psql -qtAX -f /db/rev.sql;
|
||||
}
|
||||
|
||||
wait_until_ready() {
|
||||
step 'Checking if the database is ready...';
|
||||
while true; do
|
||||
pg_isready;
|
||||
code=$?;
|
||||
if [ $code -eq 0 ]; then
|
||||
break;
|
||||
fi
|
||||
sleep 3;
|
||||
done
|
||||
}
|
||||
|
||||
run_migrations() {
|
||||
i="$1"
|
||||
while true; do
|
||||
name=$(printf "%04d" "$i");
|
||||
file="/db/migrations/$name.sql"
|
||||
if [ -f "$file" ]; then
|
||||
if try psql -f "$file"; then
|
||||
i=$((i+1));
|
||||
continue;
|
||||
else
|
||||
error "An error occoured during a migration (rev $name)"
|
||||
return 1;
|
||||
fi
|
||||
else
|
||||
return 0;
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
init () {
|
||||
# reomve ready status
|
||||
# so php ignores requests
|
||||
rm -f /status/ready
|
||||
|
||||
step 'Waiting for database';
|
||||
# make sure the database is running
|
||||
# before we run any requests
|
||||
wait_until_ready;
|
||||
step 'Database ready';
|
||||
|
||||
step 'Peforming migrations';
|
||||
# get the current revision
|
||||
REV=$(curr_revision);
|
||||
step "Database at revision: $REV"
|
||||
# run each migration that is
|
||||
# higher than our current revision
|
||||
if ! run_migrations "$REV"; then
|
||||
return 1;
|
||||
fi
|
||||
|
||||
step 'Database is initialized'
|
||||
# database is ready
|
||||
touch /status/ready
|
||||
}
|
||||
|
||||
init
|
||||
rm "$errors"
|
21
build/nginx/Dockerfile
Normal file
|
@ -0,0 +1,21 @@
|
|||
FROM alpine:3.19
|
||||
|
||||
# install packages
|
||||
RUN apk add --no-cache nginx shadow tini
|
||||
RUN rm -fr /var/cache/apk/*
|
||||
|
||||
# update nginx user
|
||||
RUN groupmod --gid 1000 nginx
|
||||
RUN usermod --uid 1000 nginx
|
||||
|
||||
# remove build packages
|
||||
RUN apk del shadow
|
||||
|
||||
# make log syms
|
||||
RUN ln -sf /dev/stdout /var/log/nginx/access.log && \
|
||||
ln -sf /dev/stderr /var/log/nginx/error.log
|
||||
|
||||
# do the
|
||||
USER nginx
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
|
17
build/php/Dockerfile
Normal file
|
@ -0,0 +1,17 @@
|
|||
FROM php:fpm-alpine
|
||||
|
||||
# install packages
|
||||
RUN apk add --no-cache postgresql-dev runuser shadow
|
||||
RUN rm -fr /var/cache/apk/*
|
||||
|
||||
# update php user
|
||||
RUN groupmod --gid 1000 www-data
|
||||
RUN usermod --uid 1000 www-data
|
||||
|
||||
# install php packages
|
||||
RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql
|
||||
RUN docker-php-ext-install pdo pdo_pgsql
|
||||
|
||||
# remove build packages
|
||||
RUN apk del shadow
|
||||
USER www-data
|
21
build/postgres/Dockerfile
Normal file
|
@ -0,0 +1,21 @@
|
|||
FROM postgres:16-alpine
|
||||
|
||||
# install packages
|
||||
RUN apk add --no-cache make git shadow
|
||||
RUN rm -fr /var/cache/apk/*
|
||||
|
||||
# install pgjwt
|
||||
RUN git clone https://github.com/michelp/pgjwt.git /tmp/pgjwt
|
||||
WORKDIR /tmp/pgjwt
|
||||
RUN make install
|
||||
|
||||
# update postgres user
|
||||
RUN groupmod --gid 1000 postgres
|
||||
RUN usermod --uid 1000 postgres
|
||||
|
||||
# remove build packages
|
||||
RUN apk del make git shadow
|
||||
|
||||
# fix workdir
|
||||
WORKDIR /
|
||||
USER postgres
|
50
conf/nginx/nginx.conf
Normal file
|
@ -0,0 +1,50 @@
|
|||
worker_processes 4;
|
||||
daemon off;
|
||||
pid /tmp/nginx.pid;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include mime.types;
|
||||
default_type application/octet-stream;
|
||||
sendfile on;
|
||||
keepalive_timeout 70;
|
||||
server_tokens off;
|
||||
client_max_body_size 2m;
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
|
||||
server {
|
||||
listen 8080;
|
||||
root /opt/website;
|
||||
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_proxied any;
|
||||
gzip_comp_level 6;
|
||||
gzip_buffers 16 8k;
|
||||
gzip_http_version 1.1;
|
||||
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml image/x-icon;
|
||||
|
||||
location /favicon.ico {
|
||||
add_header Cache-Control "public, max-age=31536000, immutable";
|
||||
root /opt/website/public/icons;
|
||||
}
|
||||
|
||||
location /public {
|
||||
add_header Cache-Control "public, max-age=31536000, immutable";
|
||||
try_files $uri =404;
|
||||
}
|
||||
|
||||
location / {
|
||||
add_header Content-Security-Policy "script-src 'none'; object-src 'none'; base-uri 'none'";
|
||||
root /opt/website/web;
|
||||
include fastcgi_params;
|
||||
fastcgi_pass php:9000;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
|
||||
}
|
||||
}
|
||||
}
|
3
conf/postgres/database.env
Normal file
|
@ -0,0 +1,3 @@
|
|||
POSTGRES_USER=website
|
||||
POSTGRES_PASSWORD=cannothackme
|
||||
POSTGRES_DB=website
|
43
docker-compose.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
services:
|
||||
web:
|
||||
build: ./build/nginx
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '80:8080'
|
||||
volumes:
|
||||
- ./src:/opt/website:ro
|
||||
- ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
depends_on:
|
||||
- php
|
||||
|
||||
php:
|
||||
build: ./build/php
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ./conf/postgres/database.env
|
||||
volumes:
|
||||
- ./src:/opt/website:ro
|
||||
- ./data/status:/status:ro
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
build: ./build/postgres
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ./conf/postgres/database.env
|
||||
environment:
|
||||
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
|
||||
volumes:
|
||||
- './data/schemas:/var/lib/postgresql/data'
|
||||
- ./src/db:/db:ro
|
||||
|
||||
init:
|
||||
build: ./build/init
|
||||
env_file:
|
||||
- ./conf/postgres/database.env
|
||||
volumes:
|
||||
- ./src/db:/db:ro
|
||||
- ./data/status:/status
|
||||
depends_on:
|
||||
- db
|
18
src/assets/blog/2023-02-23.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
name: Vaultwarden
|
||||
date: 2023-02-23T18:00:00.000-04:00
|
||||
desc: Hosting your own password manager is cool
|
||||
---
|
||||
|
||||
### LastPass
|
||||
Hopefully we all know of the semi-recent LastPass breach, where a lot of customers had their encrypted vaults leaked. They were still encrypted, but your passwords were now possibly out there. My vault was also sadly leaked as well. Also, I don't know why I used LastPass in the first place, since I pretty much just used the same password over and over again anyways.
|
||||
|
||||
### Other Options?
|
||||
Well I could just keep using the same password over and over again, but we all know that is *really* not a good idea. Also that password has been in like 5 different breaches, so it was time I actually cared.
|
||||
|
||||
I decided to self host my own password manager, [Vaultwarden](https://hub.docker.com/r/vaultwarden/server), an unofficial Bitwarden server written in Rust. I chose it because my Hetzner server only has 2GB of RAM and only 2 VCPUs, therefore I don't really have the resources to spare. And I also chose self host since It's really easy to setup, and I don't have to worry about breaches.
|
||||
|
||||
### Here Is How Its Been
|
||||
Vaultwarden only uses about 25MB of RAM for me, which is a really small amount. The server uses the Bitwarden API so I can use any of the very well built Bitwarden clients, and they sync together flawlessly. It also supports TOTP, therefore I no longer have to use Authy, a proprietary service, to manage my 2FA. Even in the rare chance that my server goes down, the clients store an encrypted version of the vault locally, so I will never loose my passwords.
|
||||
|
||||
Overall, it was really easy to set up in docker, and everything has been smooth. So if you are looking at self hosting a password manager, look at Vaultwarden.
|
74
src/assets/blog/2023-09-28.md
Normal file
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
name: IntraNet
|
||||
date: 2023-09-28T10:00:00.000-04:00
|
||||
desc: Securing my network
|
||||
---
|
||||
|
||||
### IntraNet
|
||||
|
||||
*So what is even a IntraNet?* Well, it's an inernal network of computers contained from the outside network.
|
||||
They can be used to host services, software, applications, and more, but not give access to the outside world. If you can connect
|
||||
to a service from any public ip, we say thats on the public internet. Even if the application is secured, and it's open to the public going....
|
||||
|
||||
> Hey i exist!!!!
|
||||
|
||||
...anyone can access it. We all have herd of the times when companies internal services were accidentally made publically available to the outside web, and
|
||||
then how they end up getting pwned (im looking at you hospitals).
|
||||
|
||||
> But why would I want it?
|
||||
|
||||
Well the main reason is it seemed fun. I like to do new things at times, and It seemed like a cool project. Also I want very
|
||||
keen on keeping many of my internal services public. Yes they were secured by single sign, and ip whitelisted, but I really didnt feel like anyone
|
||||
should be able to send any http request to my nextcloud instance, or any other service im running. Also whitelisting IPs was very annoying.
|
||||
Ive already seen what can happen to mail servers (foreshadowing), so Id like to keep as much stuff internal that I possibly can.
|
||||
|
||||
### Network Architecture and Design
|
||||
|
||||
> Well how does it work?!
|
||||
|
||||
Well its fairly simple. I run a dual DNS setup, my own CA, and wireguard to add the ability to vpn into the network.
|
||||
First, I run Bind on my network which runs as my internal DNS server. This reroutes any domain name under "in.freya.cat" to the device on the network that is hosting
|
||||
that service. For example "cloud.in.freya.cat" is routed to my server that is running my internal Nextcloud instance. Now If I was right, you might of just tried to access
|
||||
my nextcloud, but instead you should of gotten something that says ACCESS DENIED!
|
||||
|
||||
You have been blocked! Haha. This is where the 2nd DNS comes in. Since my domain is registered through cloudflare, any DNS request gets routed to my Hetzner VPS which acts as
|
||||
a public sinkhole for my entire internal network. If you try accessing any of my services, you cant. Instead of getting the right ip, you get hetzner. And even if you knew the ip,
|
||||
it wouldn't matter since they are LAN ips and arent even port forwarded outside my network. This is also why I use wireguard, as It allows me to vpn into my network and access my
|
||||
services even while im away from home.
|
||||
|
||||
### Network Routing
|
||||
|
||||
Ok so thats cool and all but how do you even route your traffic?
|
||||
|
||||
At first, I just created IPs using the wireguard configs, and then had /etc/local.d start scripts that would `wg-quick up` on computer startup. This worked, but it made routing traffic
|
||||
really hard. It was fine when I only had two servers, my VPS and my house, but as soon as I started to try to add more servers, everything fell apart. This is because in the Allowed IPs
|
||||
section of a config, you have to set what IPs are routed though that wireguard interface. So if one sever adds another server I can talk too, every other server has to manually update what
|
||||
they route to that server. For eaxample if Server A was talking to only Server B, but Server B could talk to Server C, Server A would have to put that Server B gets all traffic for Server B and C.
|
||||
So I needed a solution to automatically generate route, beacuse doing it manually wasnt going to cut it anymore.
|
||||
|
||||
### OSPF
|
||||
|
||||
Ah, yes, the solution is OSPF. OSPF, or Open Shortest Path First, is a protocol designed for this very purpose. Its mostly seen in companies (like ISPs) that run their own ASN (autonomous system),
|
||||
because they have thousands of servers that all need to be able to route traffic to eachother. So the goal was to still use wireguard to pass the traffic though, but instead to run a OSPF daemon
|
||||
over those wireguard tunnels to route my traffic! The solution was a piece of software called bird. Bird can do more than OSPF, it can also route protocols such as BGP, but that is outside of the
|
||||
scope for this blog post. If bird is setup of every server that was a main routing hub for my internal network, all I would have to do is say what wireguard interfaces to route ontop of. This is beacuse
|
||||
bird can automatically detect the IPs that you controll on your network, meaning that once it has all the serveres it can talk to, it will automatically start asking the other servers what IPs they control,
|
||||
and those servers will do the same. This them cascaces over the entire connection tree, peering IP routes to anywhere on the network to every server. Once that is all done, bird just creates a iptables route
|
||||
and all is done! Woohoo!!!
|
||||
|
||||
### Root CA?
|
||||
|
||||
You might of notices I briefly mentioned that I run my own Certificate Authority, but you may be asking why? Who does that? For what reason would you need to? And I totally agree with
|
||||
you. I'd rather not host it if I didn't need it, but I do have a reason. Since all my internal domains are routed to my hetzner, my internal network cant complete ACME challenges. Since
|
||||
it cannot complete ACME challenges, Lets Encrypt wont give me a certificate for my domain. So I decided to run my own cerficiate authority. Now I don't do anything crazy, I just run step-ca
|
||||
inside of docker. This is great because since I use Caddy for my reverse proxy, Caddy can auto request new certificates from StepCA, and everything is automated. The only thing I have to do
|
||||
is install my root certificate on my devices, for which I have three. And now I have https on my internal network!
|
||||
|
||||
### Overview
|
||||
|
||||
Overall, this setup allows me to run many services I want to internally. I can run my plex server, nextcloud, photo hosting with immich, sso with authentik, irc, document hosting,
|
||||
file syncing with syncthing, and still more to list. And with my setup, no one besides me and who I let on my network can even deam about accessing my services. This increases my
|
||||
security, and really was just a ton of fun to figure out and setup.
|
||||
|
||||
Though make sure to setup wireguard to not nat every network device or theoretically it will break dockers ip routing, and theoretically it will cause containers to see all ips as internal, and
|
||||
theoretically services like mailcow, an email server, will not require authentication since its totally comming from mailcow, and theoretically your email server can become an open realy. Theoretically though.
|
28
src/assets/blog/2023-11-03.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
name: Mastodon
|
||||
date: 2023-11-03T10:29:40.000-04:00
|
||||
desc: Joining the fediverse
|
||||
---
|
||||
|
||||
### Mastodon
|
||||
|
||||
Hello, small blog post today.
|
||||
|
||||
I am prod to announce I have joined the fediverse!!
|
||||
Well Im already on matrix, but this is like the first public instance open too.
|
||||
|
||||
#### Experiences
|
||||
|
||||
So as of writing this, I have only been hosting my own instance for 2 days now. It was a bit
|
||||
annoying to setup (just a few docker containers and proxy shenanigans), but hey it works now!
|
||||
The main gripe I currently have with activity pub so far is the lack of discovery and reading older events.
|
||||
|
||||
Currently you can only search for things that you are directly federated with. So for example, my server is federated with `lgbt.tech`, so I can search for things on there. Also I cant see older posts. If I go to anyone I follow, I can only see posts since I started federating with them. Any older posts require me to go to their mastodon (or anything that supports activity pub) instance.
|
||||
|
||||
A cool thing though that ive noticed is that activity pub allows federation outside mastodon. So far Ive only seen lemmy accounts, but I find that cool.
|
||||
|
||||
#### Long way to go
|
||||
|
||||
Overall, I think activity pub as a protocol has a long way to go. There are some things I wish where implemented, mainly things that matrix has. But overall its really cool, and Im going to continue to use it for the foreseeable future.
|
||||
|
||||
Cheers!
|
375
src/assets/profanity.txt
Normal file
|
@ -0,0 +1,375 @@
|
|||
2g1c
|
||||
2 girls 1 cup
|
||||
acrotomophilia
|
||||
alabama hot pocket
|
||||
alaskan pipeline
|
||||
anal
|
||||
anilingus
|
||||
anus
|
||||
apeshit
|
||||
arsehole
|
||||
assmunch
|
||||
auto erotic
|
||||
autoerotic
|
||||
babeland
|
||||
baby batter
|
||||
baby juice
|
||||
ball gag
|
||||
ball gravy
|
||||
ball kicking
|
||||
ball licking
|
||||
ball sack
|
||||
ball sucking
|
||||
bangbros
|
||||
bangbus
|
||||
bareback
|
||||
barely legal
|
||||
barenaked
|
||||
bastard
|
||||
bastardo
|
||||
bastinado
|
||||
bdsm
|
||||
beaner
|
||||
beaners
|
||||
beaver cleaver
|
||||
beaver lips
|
||||
beastiality
|
||||
bestiality
|
||||
big black
|
||||
big breasts
|
||||
big knockers
|
||||
big tits
|
||||
bimbos
|
||||
birdlock
|
||||
black cock
|
||||
blonde action
|
||||
blonde on blonde action
|
||||
blowjob
|
||||
blow job
|
||||
blow your load
|
||||
blue waffle
|
||||
blumpkin
|
||||
bollocks
|
||||
bondage
|
||||
boner
|
||||
booty call
|
||||
brown showers
|
||||
brunette action
|
||||
bukkake
|
||||
bulldyke
|
||||
bullet vibe
|
||||
bullshit
|
||||
bung hole
|
||||
bunghole
|
||||
busty
|
||||
buttcheeks
|
||||
butthole
|
||||
camel toe
|
||||
camgirl
|
||||
camslut
|
||||
camwhore
|
||||
carpet muncher
|
||||
carpetmuncher
|
||||
chocolate rosebuds
|
||||
cialis
|
||||
circlejerk
|
||||
cleveland steamer
|
||||
clit
|
||||
clitoris
|
||||
clover clamps
|
||||
clusterfuck
|
||||
cock
|
||||
cocks
|
||||
coprolagnia
|
||||
coprophilia
|
||||
cornhole
|
||||
creampie
|
||||
cum
|
||||
cumming
|
||||
cumshot
|
||||
cumshots
|
||||
cunnilingus
|
||||
cunt
|
||||
darkie
|
||||
date rape
|
||||
daterape
|
||||
deep throat
|
||||
deepthroat
|
||||
dendrophilia
|
||||
dildo
|
||||
dingleberry
|
||||
dingleberries
|
||||
dirty pillows
|
||||
dirty sanchez
|
||||
doggie style
|
||||
doggiestyle
|
||||
doggy style
|
||||
doggystyle
|
||||
dog style
|
||||
dolcett
|
||||
domination
|
||||
dominatrix
|
||||
dommes
|
||||
donkey punch
|
||||
double dong
|
||||
double penetration
|
||||
dp action
|
||||
dry hump
|
||||
dvda
|
||||
eat my ass
|
||||
ecchi
|
||||
ejaculation
|
||||
erotic
|
||||
erotism
|
||||
escort
|
||||
eunuch
|
||||
fag
|
||||
faggot
|
||||
fecal
|
||||
felch
|
||||
fellatio
|
||||
feltch
|
||||
female squirting
|
||||
femdom
|
||||
figging
|
||||
fingerbang
|
||||
fingering
|
||||
fisting
|
||||
foot fetish
|
||||
footjob
|
||||
frotting
|
||||
fuck buttons
|
||||
fucktards
|
||||
fudge packer
|
||||
fudgepacker
|
||||
futanari
|
||||
gangbang
|
||||
gang bang
|
||||
gay sex
|
||||
genitals
|
||||
giant cock
|
||||
girl on
|
||||
girl on top
|
||||
girls gone wild
|
||||
goatcx
|
||||
goatse
|
||||
god damn
|
||||
gokkun
|
||||
golden shower
|
||||
goodpoop
|
||||
goo girl
|
||||
goregasm
|
||||
grope
|
||||
group sex
|
||||
g-spot
|
||||
guro
|
||||
hand job
|
||||
handjob
|
||||
hard core
|
||||
hardcore
|
||||
hentai
|
||||
homoerotic
|
||||
honkey
|
||||
hooker
|
||||
horny
|
||||
hot carl
|
||||
hot chick
|
||||
how to kill
|
||||
how to murder
|
||||
huge fat
|
||||
humping
|
||||
incest
|
||||
intercourse
|
||||
jack off
|
||||
jail bait
|
||||
jailbait
|
||||
jelly donut
|
||||
jerk off
|
||||
jigaboo
|
||||
jiggaboo
|
||||
jiggerboo
|
||||
jizz
|
||||
juggs
|
||||
kike
|
||||
kinbaku
|
||||
kinkster
|
||||
kinky
|
||||
knobbing
|
||||
leather restraint
|
||||
leather straight jacket
|
||||
lemon party
|
||||
livesex
|
||||
lolita
|
||||
lovemaking
|
||||
make me come
|
||||
male squirting
|
||||
masturbate
|
||||
masturbating
|
||||
masturbation
|
||||
menage a trois
|
||||
milf
|
||||
missionary position
|
||||
mong
|
||||
motherfucker
|
||||
mound of venus
|
||||
mr hands
|
||||
muff diver
|
||||
muffdiving
|
||||
nambla
|
||||
nawashi
|
||||
negro
|
||||
neonazi
|
||||
nigga
|
||||
nigger
|
||||
nig nog
|
||||
nimphomania
|
||||
nipple
|
||||
nipples
|
||||
nsfw images
|
||||
nude
|
||||
nudity
|
||||
nutten
|
||||
nympho
|
||||
nymphomania
|
||||
octopussy
|
||||
omorashi
|
||||
one cup two girls
|
||||
one guy one jar
|
||||
orgasm
|
||||
orgy
|
||||
paedophile
|
||||
paki
|
||||
panties
|
||||
panty
|
||||
pedobear
|
||||
pedophile
|
||||
pegging
|
||||
penis
|
||||
phone sex
|
||||
piece of shit
|
||||
pikey
|
||||
pissing
|
||||
piss pig
|
||||
pisspig
|
||||
playboy
|
||||
pleasure chest
|
||||
pole smoker
|
||||
ponyplay
|
||||
poof
|
||||
poon
|
||||
poontang
|
||||
punany
|
||||
poop chute
|
||||
poopchute
|
||||
porn
|
||||
porno
|
||||
pornography
|
||||
prince albert piercing
|
||||
pthc
|
||||
pubes
|
||||
pussy
|
||||
queaf
|
||||
queef
|
||||
quim
|
||||
raghead
|
||||
raging boner
|
||||
rape
|
||||
raping
|
||||
rapist
|
||||
rectum
|
||||
reverse cowgirl
|
||||
rimjob
|
||||
rimming
|
||||
rosy palm
|
||||
rosy palm and her 5 sisters
|
||||
rusty trombone
|
||||
sadism
|
||||
santorum
|
||||
scat
|
||||
schlong
|
||||
scissoring
|
||||
semen
|
||||
sexcam
|
||||
sexo
|
||||
sexual
|
||||
sexually
|
||||
shaved beaver
|
||||
shaved pussy
|
||||
shemale
|
||||
shibari
|
||||
shitblimp
|
||||
shota
|
||||
shrimping
|
||||
skeet
|
||||
slanteye
|
||||
slut
|
||||
s&m
|
||||
smut
|
||||
snatch
|
||||
snowballing
|
||||
sodomize
|
||||
sodomy
|
||||
spastic
|
||||
spic
|
||||
splooge
|
||||
splooge moose
|
||||
spooge
|
||||
spread legs
|
||||
spunk
|
||||
strap on
|
||||
strapon
|
||||
strappado
|
||||
strip club
|
||||
style doggy
|
||||
suicide girls
|
||||
sultry women
|
||||
swastika
|
||||
swinger
|
||||
tainted love
|
||||
taste my
|
||||
tea bagging
|
||||
threesome
|
||||
throating
|
||||
thumbzilla
|
||||
tight white
|
||||
tits
|
||||
titties
|
||||
titty
|
||||
tongue in a
|
||||
topless
|
||||
tosser
|
||||
towelhead
|
||||
tranny
|
||||
tribadism
|
||||
tub girl
|
||||
tubgirl
|
||||
tushy
|
||||
twat
|
||||
twink
|
||||
twinkie
|
||||
two girls one cup
|
||||
undressing
|
||||
upskirt
|
||||
urethra play
|
||||
urophilia
|
||||
vagina
|
||||
venus mound
|
||||
viagra
|
||||
vibrator
|
||||
violet wand
|
||||
vorarephilia
|
||||
voyeur
|
||||
voyeurweb
|
||||
voyuer
|
||||
vulva
|
||||
wank
|
||||
wetback
|
||||
wet dream
|
||||
white power
|
||||
whore
|
||||
worldsex
|
||||
wrapping men
|
||||
wrinkled starfish
|
||||
yellow showers
|
||||
yiffy
|
||||
zoophilia
|
7
src/assets/projects/00-minecraft.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
name: minecraft vulkan
|
||||
repo: minecraftVulkan
|
||||
---
|
||||
|
||||
Minecraft Vulkan is a Minecraft clone I wrote in C++, and rendered using the Vulkan API.
|
||||
It is procedurally generated, and uses multi threading to offload the generating and meshing to separate threads.
|
8
src/assets/projects/01-crab.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
name: crab
|
||||
repo: crab
|
||||
---
|
||||
|
||||
Crab, a.k.a Cool Rust Authentication Binary, is a privilege escalation program for Linux systems written in rust.
|
||||
It allows users to temporarily gain root privileges for what they need, given they are allowed to in the crab conf file.
|
||||
It authenticates the current user with the PAM api built into Linux.
|
9
src/assets/projects/02-xssbook.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
name: xssbook
|
||||
repo: xssbook
|
||||
---
|
||||
|
||||
xssbook is a website I created for xss scripting vulnerabilities.
|
||||
It is a facebook clone, backend written in rust with axum, and the frontend made in html, css, and vanilla javascript.
|
||||
The site work by failing to parse user input every step of the way, and renders it as direct html.
|
||||
You can view my hosted version at [xssbook.com](https://xssbook.com).
|
10
src/assets/projects/03-brainfucked.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
name: brainfucked
|
||||
repo: brainfucked
|
||||
---
|
||||
|
||||
brainfucked is a brainfuck dialect that makes you manage your memory manually!
|
||||
The original interpreter gives you a tape of 30,000 cells, while i only give you
|
||||
as much as a pointer takes up on your system: 4 or 8 depending if your on a 32bit or 64bit system.
|
||||
You can than allocate a new tape and then use that! Also brainfucked is tuing complete proven by
|
||||
this amzing [proof](/blog/writeup?name=proof.md) that my friend [trimill](https://trimill.xyz) made.
|
8
src/assets/projects/04-wrapper.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
name: wrapper
|
||||
repo: wrapper
|
||||
---
|
||||
|
||||
wrapper is a simple and lightweight DNS server written in C. It supports custom user defined records in a config files,
|
||||
and it also supports a few custom build records for fun! For example, there is a CMD record that runs a command on the
|
||||
host system, and returns the result as a TXT record! Read more on the readme!
|
8
src/assets/projects/05-wig.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
name: wig
|
||||
repo: wig
|
||||
---
|
||||
|
||||
wig is a simple DNS client written in C. It supports all the important features as most DNS clients,
|
||||
but displays its results in a simple and concise format without all the clutter. It gives you what
|
||||
you want fast and simple.
|
8
src/assets/projects/06-lazysphere.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
name: lazysphere
|
||||
repo: lazysphere
|
||||
---
|
||||
|
||||
lazysphere is a gnu coreutils/busybox clone, supporting commands such as su,
|
||||
rm (the french), and also (but not exluding) yes. Its written in C
|
||||
with no dependencies because they are bad.
|
9
src/assets/projects/07-tuxman.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
name: tuxman
|
||||
repo: tuxman
|
||||
---
|
||||
|
||||
tuxman is a recreation of the arcade multiplayer pacman battle game where pacman
|
||||
have to avoid ghosts and each eachother to win! Its written in TypeScript (im sorry),
|
||||
and fetures a full map editor with custom map support. It uses [rollback](https://git.tint.red/tint/rollback)
|
||||
netcode, and you can play a hosted version at [freya.cat/pacbattle](https://freya.cat/pacbattle).
|
7
src/assets/projects/08-nbtvis.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
name: nbtvis
|
||||
repo: nbtvis
|
||||
---
|
||||
|
||||
nbtvis, a.k.a NBT visualizer, is a simple C program that can convert Minecraft Binary NBT, String NBT,
|
||||
or JSON from one format from another.
|
7
src/assets/projects/09-corn.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
name: corn
|
||||
repo: corn
|
||||
---
|
||||
|
||||
corn is a x86_64 operating system micro kernel implemented in C. It uses the multiboot bootloader standard, and suports BIOS and UEFI boot. For memory managment, it
|
||||
supportes full paging, along with a physical and virtual memory allocator, and page allocating on first write. ACPI, PCI, graphics, and debugger support also exist.
|
6
src/assets/projects/10-matrix.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
name: matrix
|
||||
repo: matrix
|
||||
---
|
||||
|
||||
matrix is a fully featured expression based bytecode vm programming language. Implemented in Rust, it has its own lexer, parser, compiler, and vm runtime environment. Alogn with the base tooling, there is a included standard library that contains standard math, string, file, and system operations to make the language able to do more than simple number crunching. Matrix also contains a built in Repl with error checking, simple completion, and syntax highlighting.
|
55
src/assets/writeup/proof.md
Normal file
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
name: Brainfucked
|
||||
desc: trimills turing completeness proof for brainfucked
|
||||
---
|
||||
|
||||
### Turing-completeness proof for Brainfucked
|
||||
|
||||
By producing an algorithm that can translate arbitrary Brainfuck programs into
|
||||
Brainfucked, we prove that the latter must have computational class greater than
|
||||
or equal to the former, thus proving that Brainfucked is Turing-complete.
|
||||
|
||||
Proof that Brainfucked is not of a greater computational class than Brainfuck is
|
||||
left as an exercise to the reader.
|
||||
|
||||
Since Brainfucked tapes have a limited amount of memory, we will implement a
|
||||
tape as a linked list. Each item in the linked list will be a tape of length
|
||||
ten with the following structure:
|
||||
|
||||
- The first cell contains the item's value
|
||||
- The second cell is 1 if the next item has already been allocated and 0 otherwise
|
||||
- The remaining 8 cells are the pointer to the next item
|
||||
|
||||
The second byte is not strictly necessary, as we could just check whether the pointer
|
||||
is null, however it makes the translation significantly easier.
|
||||
|
||||
First, we prefix the output program with `++++++++++*(`. Since the original tape is
|
||||
only 8 bytes wide, we need to make a new one with a size of 10. `+`, `-`, `[`, `]`,
|
||||
`.`, and `,` all translate to themselves.
|
||||
|
||||
`>` can be translated as `>-[>++++++++++*<+]+>(`. This will allocate the next tape
|
||||
if it does not yet exist and then enter it.
|
||||
|
||||
First, consider the case where next tape has not yet been allocated. We decrement the
|
||||
allocation marker cell, which wraps around to 255, allowing us to enter the loop. We
|
||||
then allocate the next tape and increment the allocation marker back to 0. After exiting
|
||||
the loop, it is incremented again to 1, signalling that the next tape is now allocated.
|
||||
We can then enter the newly allocated tape. If the tape was already allocated, the loop
|
||||
will never be entered and the marker will remain 1.
|
||||
|
||||
`<` can be translated as `)<<`. We exit the current tape and move back over to the data cell.
|
||||
|
||||
This proof only uses a subset of Brainfucked consisting of the characters `+-<>[]()*,.`.
|
||||
One of `+` or `-` can be trivially eliminated by replacing it with 255 copies of the other.
|
||||
Additionally, `,` and `.` are not required for Turing-completeness, as input can be encoded into
|
||||
the initial tape configuration and output can be read off the tape once the program halts.
|
||||
I conjecture that no smaller subset of Brainfucked is Turing-complete.
|
||||
|
||||
#### Example translation script (Lua)
|
||||
```lua
|
||||
src = io.read("*a")
|
||||
src = src:gsub("%<", ")<<")
|
||||
src = src:gsub("%>", ">-[>++++++++++*<+]+>(")
|
||||
src = "++++++++++*(" .. src
|
||||
io.write(src)
|
||||
```
|
89
src/db/migrations/0000.sql
Normal file
|
@ -0,0 +1,89 @@
|
|||
BEGIN TRANSACTION;
|
||||
SET search_path = public;
|
||||
|
||||
-- Migration Start
|
||||
|
||||
CREATE SCHEMA sys;
|
||||
|
||||
ALTER SCHEMA sys OWNER TO website;
|
||||
|
||||
CREATE TABLE sys.database_info (
|
||||
name TEXT DEFAULT ''::text NOT NULL,
|
||||
curr_revision INTEGER DEFAULT 0 NOT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE ONLY sys.database_info
|
||||
ADD CONSTRAINT database_info_pkey PRIMARY KEY (name);
|
||||
|
||||
ALTER TABLE sys.database_info OWNER TO website;
|
||||
|
||||
INSERT INTO sys.database_info
|
||||
(name, curr_revision) VALUES (current_database(), 0);
|
||||
|
||||
CREATE SCHEMA admin;
|
||||
|
||||
ALTER SCHEMA admin OWNER TO website;
|
||||
|
||||
CREATE SEQUENCE sys.request_log_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
CREATE TYPE admin.request_log_method_type AS ENUM (
|
||||
'GET', 'HEAD', 'POST', 'PUT', 'DELETE',
|
||||
'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'
|
||||
);
|
||||
|
||||
CREATE TABLE admin.request_log (
|
||||
id INTEGER DEFAULT nextval('sys.request_log_id_seq'::regclass) NOT NULL,
|
||||
date TIMESTAMP WITH TIME ZONE DEFAULT clock_timestamp() NOT NULL,
|
||||
ip INET NOT NULL,
|
||||
method admin.request_log_method_type NOT NULL,
|
||||
uri TEXT NOT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE admin.request_log OWNER TO website;
|
||||
|
||||
ALTER TABLE ONLY admin.request_log
|
||||
ADD CONSTRAINT request_log_pkey PRIMARY KEY (id);
|
||||
|
||||
CREATE TABLE admin.banned (
|
||||
ip INET NOT NULL,
|
||||
date TIMESTAMP WITH TIME ZONE DEFAULT clock_timestamp() NOT NULL,
|
||||
reason TEXT DEFAULT 'unspecified'::text NOT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE admin.banned OWNER TO website;
|
||||
|
||||
ALTER TABLE ONLY admin.banned
|
||||
ADD CONSTRAINT banned_pkey PRIMARY KEY (ip);
|
||||
|
||||
CREATE SEQUENCE sys.comment_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
CREATE TABLE admin.comment (
|
||||
id INTEGER DEFAULT nextval('sys.comment_id_seq'::regclass) NOT NULL,
|
||||
author TEXT NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
page TEXT NOT NULL,
|
||||
created TIMESTAMP WITH TIME ZONE DEFAULT clock_timestamp() NOT NULL,
|
||||
ip INET NOT NULL,
|
||||
vulgar BOOLEAN DEFAULT FALSE
|
||||
);
|
||||
|
||||
ALTER TABLE admin.comment OWNER TO website;
|
||||
|
||||
ALTER TABLE ONLY admin.comment
|
||||
ADD CONSTRAINT comment_pkey PRIMARY KEY (id);
|
||||
-- Migration End;
|
||||
|
||||
-- Set Current Revision
|
||||
UPDATE sys.database_info SET curr_revision = 1 WHERE name = current_database();
|
||||
|
||||
COMMIT TRANSACTION;
|
21
src/db/rev.sql
Normal file
|
@ -0,0 +1,21 @@
|
|||
CREATE OR REPLACE FUNCTION curr_revision()
|
||||
RETURNS INTEGER
|
||||
LANGUAGE plpgsql VOLATILE
|
||||
AS $BODY$
|
||||
DECLARE
|
||||
_revision INTEGER;
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT curr_revision INTO _revision
|
||||
FROM sys.database_info
|
||||
WHERE name = current_database();
|
||||
RETURN _revision;
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
RETURN 0;
|
||||
END;
|
||||
END
|
||||
$BODY$;
|
||||
|
||||
GRANT EXECUTE ON FUNCTION curr_revision() TO website;
|
||||
|
||||
SELECT curr_revision();
|
BIN
src/public/buttons/apiopage.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
src/public/buttons/apiopage.webp
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
src/public/buttons/eyes.gif
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
src/public/buttons/eyes.png
Normal file
After Width: | Height: | Size: 851 B |
BIN
src/public/buttons/eyes.webp
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
src/public/buttons/gnu-linux.png
Normal file
After Width: | Height: | Size: 724 B |
BIN
src/public/buttons/gnu-linux.webp
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
src/public/buttons/vim.gif
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
src/public/buttons/vim.png
Normal file
After Width: | Height: | Size: 901 B |
BIN
src/public/buttons/vim.webp
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
src/public/font/CourierNew.eot
Normal file
BIN
src/public/font/CourierNew.otf
Normal file
243
src/public/font/CourierNew.svg
Normal file
|
@ -0,0 +1,243 @@
|
|||
<?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" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
|
||||
<metadata></metadata>
|
||||
<defs>
|
||||
<font id="CourierNew" horiz-adv-x="1229" >
|
||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
||||
<missing-glyph horiz-adv-x="500" />
|
||||
<glyph horiz-adv-x="0" />
|
||||
<glyph unicode="
" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="!" d="M695 1170l-38 -678q-2 -32 -13.5 -45t-28.5 -13q-18 0 -29.5 13t-13.5 45l-37 678q-2 24 -2 35q0 34 23.5 57t58.5 23t58 -23t23 -58q0 -10 -1 -34zM595 178h39q43 0 73.5 -30.5t30.5 -73.5q0 -44 -31 -74t-73 -30h-39q-43 0 -73.5 30.5t-30.5 72.5q0 45 31 75t73 30z " />
|
||||
<glyph unicode=""" d="M266 1234h266l-70 -486q-6 -38 -22 -53.5t-41 -15.5t-41 15.5t-22 53.5zM695 1234h266l-70 -486q-6 -38 -22 -53.5t-40 -15.5q-26 0 -42 15.5t-21 53.5z" />
|
||||
<glyph unicode="#" d="M800 740l-18 -264h161q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-167l-33 -468q-2 -30 -13.5 -42t-28.5 -12l-17 4q-25 15 -25 41v15l33 462h-190l-32 -468q-2 -30 -14 -42t-28 -12l-18 4q-25 15 -25 41l1 15l32 462h-175q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5 h181l18 264h-156q-31 0 -44 11.5t-13 30.5t13 30.5t44 11.5h162l33 468q2 29 14 41.5t28 12.5l18 -4q25 -16 25 -40l-1 -16l-32 -462h189l33 468q2 29 13.5 41.5t28.5 12.5l17 -4q26 -16 26 -40l-1 -16l-33 -462h179q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-185z M716 740h-189l-19 -264h190z" />
|
||||
<glyph unicode="$" d="M571 1198v106q0 31 11.5 44t30.5 13t30.5 -13t11.5 -44v-106q68 -6 112 -21.5t104 -55.5q1 25 13 37t29 12q19 0 31 -13t12 -43v-125q0 -30 -12 -43t-31 -13q-16 0 -27 10.5t-15 35.5q-6 47 -62 85q-82 54 -193 54q-113 0 -186.5 -66t-73.5 -149t65 -127 q49 -34 206.5 -63.5t213.5 -55.5q80 -35 119.5 -95t39.5 -145q0 -114 -89 -200.5t-256 -103.5v-247q0 -31 -11.5 -44t-30.5 -13t-30.5 13t-11.5 44v247q-154 10 -259 100q0 -44 -3.5 -53.5t-14.5 -17t-24 -7.5q-18 0 -30 13t-12 43v164q0 30 11.5 43.5t30.5 13.5 q18 0 31 -13q9 -9 11 -40q6 -53 85.5 -108.5t215.5 -55.5q141 0 222 67t81 156q0 59 -30 101t-94 69q-42 17 -176 42q-194 38 -269 98q-76 60 -76 176q0 108 82 193t218 101z" />
|
||||
<glyph unicode="%" d="M742 1016q0 -108 -75.5 -184t-180.5 -76q-106 0 -181 76t-75 184t75 183.5t181 75.5t181 -75.5t75 -183.5zM682 1016q0 83 -57.5 141t-138.5 58t-138.5 -58t-57.5 -141t57.5 -141t138.5 -58t138.5 58t57.5 141zM1014 725l-778 -253q-14 -4 -21 -4q-11 0 -19.5 9t-8.5 21 q0 10 7 20q5 6 23 12l778 253q14 4 22 4q10 0 18.5 -9t8.5 -21q0 -10 -7 -20q-5 -6 -23 -12zM1001 235q0 -108 -75.5 -183.5t-181.5 -75.5q-105 0 -180.5 76t-75.5 183q0 108 75 184t181 76t181.5 -76t75.5 -184zM940 235q0 84 -57.5 141.5t-138.5 57.5t-138.5 -58 t-57.5 -141q0 -82 57.5 -140.5t138.5 -58.5t138.5 58t57.5 141z" />
|
||||
<glyph unicode="&" d="M852 0l-64 99q-90 -132 -232 -132q-120 0 -211 95t-91 232q0 106 61.5 188t169.5 114q-74 119 -88.5 156.5t-14.5 77.5q0 99 75 173.5t180 74.5q34 0 68 -10t68 -31q43 22 53 22q17 0 29.5 -12.5t12.5 -30.5q0 -12 -7 -22t-28 -21l-65 -35q-31 28 -63.5 41.5t-66.5 13.5 q-69 0 -120.5 -51t-51.5 -114q0 -65 90 -208l232 -369q61 115 96 266h82q30 0 43 -12t13 -30q0 -13 -7.5 -24t-17.5 -15t-49 -4q-48 -169 -110 -262l57 -86h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-114zM521 522q-84 -20 -133.5 -81.5t-49.5 -146.5 q0 -101 66.5 -172t149.5 -71q112 0 185 126z" />
|
||||
<glyph unicode="'" d="M481 1255h266l-70 -525q-6 -42 -22.5 -58.5t-40.5 -16.5q-25 0 -41 16.5t-22 58.5z" />
|
||||
<glyph unicode="(" d="M605 498q0 115 30 244t115 298t124 204q12 11 26 11q18 0 30.5 -12t12.5 -29q0 -10 -7 -22q-110 -202 -157 -366t-47 -328q0 -165 47 -329t157 -365q7 -12 7 -22q0 -17 -12.5 -29.5t-30.5 -12.5q-14 0 -26 11q-37 34 -121 199t-116 292t-32 256z" />
|
||||
<glyph unicode=")" d="M639 497q0 -115 -30 -243.5t-115 -298t-124 -203.5q-12 -12 -26 -12q-18 0 -30.5 12.5t-12.5 29.5q0 10 7 22q110 201 157 365t47 328q0 165 -47 329t-157 366q-7 12 -7 22q0 17 12.5 29t30.5 12q14 0 26 -11q37 -34 121 -199t116 -292t32 -256z" />
|
||||
<glyph unicode="*" d="M568 911v287q0 31 12 44t31 13q18 0 30 -13t12 -44v-287l273 89q19 6 29 6q16 0 28 -12.5t12 -29.5q0 -15 -8.5 -26t-34.5 -19l-273 -89l169 -232q16 -23 16 -36q0 -18 -12.5 -30.5t-29.5 -12.5q-22 0 -43 29l-169 233l-169 -233q-21 -29 -42 -29q-18 0 -30.5 12.5 t-12.5 30.5q0 13 17 36l169 232l-274 90q-25 8 -33.5 18.5t-8.5 25.5q0 17 12 29.5t27 12.5q11 0 30 -6z" />
|
||||
<glyph unicode="+" d="M657 543v-420q0 -30 -12 -43t-31 -13q-18 0 -30 13t-12 43v420h-372q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h372v418q0 30 12 43t31 13q18 0 30 -13t12 -43v-418h372q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-372z" />
|
||||
<glyph unicode="," d="M448 302h273l-297 -552q-27 -50 -65 -50q-25 0 -42.5 17.5t-17.5 42.5q0 10 3 22z" />
|
||||
<glyph unicode="-" d="M1043 639v-120h-857v120h857z" />
|
||||
<glyph unicode="." d="M597 241h36q56 0 96 -39.5t40 -95.5q0 -58 -40.5 -97t-95.5 -39h-36q-56 0 -96 39.5t-40 95.5q0 58 40.5 97t95.5 39z" />
|
||||
<glyph unicode="/" d="M992 1316l-676 -1448q-17 -37 -44 -37q-17 0 -29.5 12.5t-12.5 27.5q0 12 10 33l675 1448q11 23 21 30t24 7q17 0 29.5 -12.5t12.5 -27.5q0 -11 -10 -33z" />
|
||||
<glyph unicode="0" d="M1000 731v-208q0 -271 -129 -429q-101 -124 -255 -124q-74 0 -139.5 29.5t-111.5 82.5q-29 33 -63.5 106t-49.5 134q-23 86 -23 201v208q0 272 129 430q101 124 255 124q75 0 140 -29.5t111 -82.5q30 -34 64 -107t50 -133q22 -86 22 -202zM916 720q0 119 -33.5 221.5 t-75.5 163.5q-25 35 -65 60q-57 35 -128 35q-141 0 -221 -144t-80 -336v-185q0 -119 33.5 -222t76.5 -164q24 -34 64 -59q57 -36 129 -36q140 0 220 144.5t80 336.5v185z" />
|
||||
<glyph unicode="1" d="M656 1272v-1188h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-660q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h288v1072l-274 -86q-20 -6 -29 -6q-15 0 -27.5 12.5t-12.5 29.5q0 15 10 28q8 8 33 17z" />
|
||||
<glyph unicode="2" d="M253 84h645v33q0 30 12 43t31 13q18 0 30 -13t12 -43v-117h-812v124q256 230 498 468q113 111 155 163t57.5 91.5t15.5 79.5q0 108 -87 191t-210 83q-110 0 -195 -63t-110 -156q-6 -24 -15 -31q-12 -10 -28 -10q-17 0 -28.5 11.5t-11.5 27.5q0 48 52.5 130t145 129 t189.5 47q157 0 270 -109t113 -247q0 -58 -19 -106.5t-64.5 -106t-163.5 -173.5q-296 -292 -482 -453v-6z" />
|
||||
<glyph unicode="3" d="M787 683q116 -52 177 -142.5t61 -188.5q0 -151 -122.5 -266.5t-306.5 -115.5q-108 0 -224 46t-162 94q-15 16 -15 34q0 16 11.5 28t27.5 12t36 -15q155 -115 328 -115q146 0 244.5 91.5t98.5 203.5q0 75 -48.5 147t-139.5 113.5t-184 41.5q-30 0 -43 11.5t-13 30.5 q0 18 12.5 30t37.5 12l72 -1q113 0 186.5 69t73.5 160q0 94 -77 166t-201 72q-87 0 -160 -30t-117 -82q-16 -20 -24.5 -24.5t-19.5 -4.5q-17 0 -29 11.5t-12 27.5q0 40 87 101q121 85 275 85q159 0 261 -95.5t102 -227.5q0 -84 -49 -159t-144 -120z" />
|
||||
<glyph unicode="4" d="M771 351h-557v97l467 807h175v-820h70q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-70v-267h70q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-312q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h157v267zM771 435v735h-44l-425 -735h469z" />
|
||||
<glyph unicode="5" d="M383 1170v-411q74 31 142 46.5t129 15.5q158 0 264.5 -111t106.5 -292q0 -200 -120 -324t-300 -124q-119 0 -229 53q-78 37 -142 92q-38 33 -38 55q0 18 12 30.5t28 12.5q17 0 36 -18q151 -141 329 -141q147 0 243 100.5t96 267.5q0 142 -83 228.5t-211 86.5 q-131 0 -262 -69q-32 -16 -45 -16q-18 0 -29 12t-11 34v557h586q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-502z" />
|
||||
<glyph unicode="6" d="M364 531q78 115 160.5 170t183.5 55q134 0 238 -111.5t104 -275.5q0 -150 -95 -274.5t-262 -124.5q-109 0 -203.5 67t-148.5 206q-67 173 -67 383q0 158 63 294q48 105 128 184.5t186.5 130t230.5 50.5q84 0 140 -34q24 -15 24 -40q0 -18 -11 -29.5t-28 -11.5 q-13 0 -31 10q-41 20 -102 20q-195 0 -355.5 -167.5t-160.5 -398.5q0 -33 6 -103zM383 392q38 -182 119.5 -260t192.5 -78q112 0 191.5 87.5t79.5 227.5q0 131 -80 217t-181 86q-97 0 -187 -83q-60 -55 -135 -197z" />
|
||||
<glyph unicode="7" d="M897 1132v38h-602v-74q0 -30 -11.5 -43t-30.5 -13q-18 0 -30 13t-12 43v159h771v-134l-338 -1080q-8 -26 -19 -34.5t-25 -8.5q-18 0 -30 12t-12 28q0 10 6 28z" />
|
||||
<glyph unicode="8" d="M787 651q105 -51 158.5 -134.5t53.5 -179.5q0 -149 -112 -258t-272 -109t-272 109t-112 258q0 95 53.5 178.5t159.5 135.5q-92 53 -134 110q-58 81 -58 179q0 138 106.5 241.5t256.5 103.5q151 0 257 -103.5t106 -241.5q0 -98 -58 -178q-41 -58 -133 -111zM892 937 q0 108 -80.5 185.5t-197.5 77.5q-116 0 -196.5 -78t-80.5 -184q0 -98 79.5 -171.5t197.5 -73.5q119 0 198.5 73.5t79.5 170.5zM915 335q0 111 -86 193t-214 82t-214 -82t-86 -192q0 -114 86.5 -198t213.5 -84t213.5 84t86.5 197z" />
|
||||
<glyph unicode="9" d="M959 710q-65 -115 -154.5 -173t-183.5 -58q-87 0 -168.5 50t-129.5 146.5t-48 202.5q0 154 95.5 280.5t255.5 126.5q114 0 208 -71t146 -206q67 -173 67 -402q0 -178 -57 -296q-38 -80 -111.5 -155t-165.5 -122q-126 -63 -262 -63q-90 0 -147 34q-26 16 -26 40 q0 17 12 28.5t29 11.5q12 0 35 -11q39 -19 90 -19q213 0 366 153.5t153 384.5q0 42 -4 118zM943 850q-53 203 -131.5 276.5t-183.5 73.5q-107 0 -188 -90t-81 -231q0 -137 81 -226.5t183 -89.5q59 0 116.5 32t108.5 96q33 43 95 159z" />
|
||||
<glyph unicode=":" d="M597 866h36q56 0 96 -40t40 -95q0 -59 -40.5 -98t-95.5 -39h-36q-56 0 -96 40t-40 95q0 59 40.5 98t95.5 39zM597 241h36q56 0 96 -39.5t40 -95.5q0 -58 -40.5 -97t-95.5 -39h-36q-56 0 -96 39.5t-40 95.5q0 58 40.5 97t95.5 39z" />
|
||||
<glyph unicode=";" d="M596 866h37q56 0 95.5 -40t39.5 -95q0 -59 -40 -98t-95 -39h-37q-56 0 -95.5 40t-39.5 95q0 59 40.5 98t94.5 39zM450 302h264l-283 -464q-21 -34 -33.5 -43t-29.5 -9q-24 0 -40 15t-16 36q0 12 6 31z" />
|
||||
<glyph unicode="<" d="M98 583l908 506q22 12 33 12q17 0 29.5 -12.5t12.5 -29.5q0 -25 -34 -44l-778 -432l777 -432q34 -19 34 -44q0 -17 -12.5 -29.5t-29.5 -12.5q-11 0 -33 12z" />
|
||||
<glyph unicode="=" d="M1073 695h-916q-30 0 -43 12t-13 31q0 18 13 30t43 12h916q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12zM1073 394h-916q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h916q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5z" />
|
||||
<glyph unicode=">" d="M1131 583l-908 -506q-22 -12 -33 -12q-17 0 -29.5 12.5t-12.5 29.5q0 25 34 44l778 432l-777 432q-34 19 -34 44q0 17 12.5 29.5t29.5 12.5q11 0 33 -12z" />
|
||||
<glyph unicode="?" d="M660 514v-85q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v141q219 81 299 162q45 45 45 113q0 112 -81.5 191.5t-211.5 79.5q-66 0 -124.5 -15t-142.5 -56v-86q0 -30 -11.5 -43t-30.5 -13q-18 0 -30 13t-12 43v141q156 69 202 81q78 19 156 19q167 0 268.5 -100 t101.5 -253q0 -94 -60.5 -166.5t-282.5 -166.5zM574 178h84q44 0 74.5 -30.5t30.5 -73.5q0 -44 -31.5 -74t-73.5 -30h-84q-43 0 -73.5 30.5t-30.5 72.5q0 45 31 75t73 30z" />
|
||||
<glyph unicode="@" d="M859 302v11q-25 -4 -46 -6t-39 -2q-123 0 -201.5 76t-78.5 184q0 123 97.5 211.5t267.5 88.5v97q0 110 -68 180t-170 70q-71 0 -134 -36q-43 -25 -71 -61q-48 -63 -82.5 -151.5t-34.5 -219.5v-331q0 -194 89.5 -326.5t241.5 -132.5q150 0 225 71q17 16 33 16q17 0 29 -12 t12 -28q0 -32 -60 -70q-96 -61 -251 -61q-80 0 -146.5 29.5t-111.5 81.5q-28 31 -67 106t-55 133q-23 81 -23 193v336q0 256 136 418q108 130 266 130q82 0 151 -34.5t122 -115t53 -185.5v-576q20 -2 30 -13t10 -28q0 -13 -6.5 -23.5t-16 -15t-33.5 -4.5h-68zM859 782 q-132 -1 -206.5 -66t-74.5 -149q0 -76 54.5 -127t152.5 -51q17 0 35.5 2.5t38.5 6.5v384z" />
|
||||
<glyph unicode="A" d="M891 391h-552l-113 -307h161q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-314q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h65l371 1002h-248q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h423l410 -1086h65q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-313 q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h160zM859 475l-232 611h-31l-225 -611h488z" />
|
||||
<glyph unicode="B" d="M256 84v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h528q157 0 255.5 -90.5t98.5 -212.5q0 -154 -165 -249q131 -47 192 -125t61 -172q0 -84 -40 -153.5t-122.5 -118.5t-179.5 -49h-628q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113zM340 650h297q95 0 174 35 q61 28 95 81t34 108q0 79 -74 145.5t-193 66.5h-333v-436zM340 84h425q81 0 141 36t91 89t31 110q0 64 -44.5 124t-123.5 91t-218 31h-302v-481z" />
|
||||
<glyph unicode="C" d="M984 1055v59q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-233q0 -31 -11.5 -44t-30.5 -13q-17 0 -28.5 12t-13.5 39q-5 84 -91 149q-116 89 -264 89q-97 0 -183 -43q-64 -31 -102 -76q-66 -78 -105 -173q-28 -70 -28 -158v-147q0 -188 136 -326.5t316 -138.5 q108 0 193.5 47t165.5 142q17 21 38 21q18 0 29 -11t11 -28q0 -23 -43 -70q-82 -92 -184.5 -138.5t-207.5 -46.5q-91 0 -185 35q-72 27 -119 63t-115.5 121.5t-93.5 158t-25 159.5v171q0 124 66.5 253.5t182 199t250.5 69.5q208 0 358 -142z" />
|
||||
<glyph unicode="D" d="M285 84v1002h-71q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h452q106 0 193.5 -44t133.5 -100q79 -95 120 -201q29 -77 29 -182v-116q0 -129 -57 -250t-190 -211q-99 -66 -229 -66h-452q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h71zM369 84h305q106 0 198.5 69 t139 165.5t46.5 190.5v152q0 78 -25 139q-36 89 -102 169q-36 44 -106 80.5t-151 36.5h-305v-1002z" />
|
||||
<glyph unicode="E" d="M341 565v-481h646v248q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-332h-927q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h883v-289q0 -30 -11.5 -43t-30.5 -13t-30.5 13t-11.5 43v205h-602v-437h301v95q0 30 12 43 t31 13q18 0 30 -13t12 -43v-274q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v95h-301z" />
|
||||
<glyph unicode="F" d="M412 565v-481h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-485q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t15 32q11 10 41 10h925v-289q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v205h-643v-437h301v95q0 30 12 43 t31 13q18 0 30 -13t12 -43v-274q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v95h-301z" />
|
||||
<glyph unicode="G" d="M1071 434v-360q-96 -53 -191.5 -80t-190.5 -27q-135 0 -237.5 40t-173.5 112t-110.5 161t-39.5 226v154q0 138 68.5 268.5t187.5 199.5t259 69q203 0 343 -111q0 49 3.5 59t14.5 17.5t25 7.5q18 0 30 -13t12 -43v-190q0 -31 -12 -43.5t-30 -12.5q-17 0 -28.5 11.5 t-12.5 40.5q-6 85 -110.5 139t-227.5 54q-116 0 -209.5 -50.5t-174.5 -192.5q-54 -93 -54 -211v-153q0 -209 128 -332t353 -123q76 0 141 16t152 56v311h-289q-30 0 -43 11.5t-13 30.5t13 31t43 12l404 -1q30 0 43 -11.5t13 -30.5q0 -13 -8 -24t-18 -14.5t-60 -3.5z" />
|
||||
<glyph unicode="H" d="M899 566h-557v-482h113q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-292q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h95v1002h-52q-31 0 -44 11.5t-13 30.5t13 30.5t44 11.5h249q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-113v-436h557v436h-112q-30 0 -43 11.5 t-13 30.5t12.5 30.5t43.5 11.5h249q31 0 44 -11.5t13 -30.5t-13 -30.5t-44 -11.5h-52v-1002h95q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-292q-30 0 -43 12t-13 30q0 19 12.5 30.5t43.5 11.5h112v482z" />
|
||||
<glyph unicode="I" d="M657 1086v-1002h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-660q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h288v1002h-288q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h660q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-288z" />
|
||||
<glyph unicode="J" d="M943 1086v-742q0 -153 -114 -265t-272 -112q-95 0 -186.5 43.5t-199.5 142.5v310q0 30 12 43t30 13q19 0 31 -13t12 -43l-1 -270q77 -71 152.5 -106.5t149.5 -35.5q82 0 155 40q55 30 100.5 101t45.5 152v742h-329q-31 0 -44 11.5t-13 30.5t13 30.5t44 11.5h614 q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-200z" />
|
||||
<glyph unicode="K" d="M342 458v-374h155q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-352q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h352q31 0 44 -11.5t13 -30.5t-13 -30.5t-44 -11.5h-155v-517l580 517h-92q-31 0 -44 11.5 t-13 30.5t13 30.5t44 11.5h247q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-34l-462 -413q103 -42 171 -105t131 -179q36 -65 132 -305h105q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-162q-132 361 -222 464.5t-225 145.5z" />
|
||||
<glyph unicode="L" d="M469 1086v-1002h558v334q0 30 12 43t31 13q18 0 30 -12.5t12 -43.5v-418h-928q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h200v1002h-200q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h485q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-200z" />
|
||||
<glyph unicode="M" d="M670 351h-96l-323 735h-16v-1002h155q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-310q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h71v1002h-53q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h206l318 -724l313 724h206q31 0 44 -11.5t13 -30.5t-13 -30.5t-44 -11.5h-52 v-1002h70q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-309q-30 0 -43.5 12t-13.5 30q0 19 13 30.5t44 11.5h155v1002h-18z" />
|
||||
<glyph unicode="N" d="M1026 0h-108l-619 1047v-963h155q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-309q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h70v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h220l620 -1049v965h-155q-30 0 -43 11.5t-13 30.5t12.5 30.5t43.5 11.5h310 q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-71v-1086z" />
|
||||
<glyph unicode="O" d="M1128 582q0 -168 -68 -311.5t-187.5 -223.5t-256.5 -80q-203 0 -357.5 172.5t-154.5 442.5q0 271 154.5 443t357.5 172q137 0 256 -80t187.5 -223t68.5 -312zM1043 582q0 205 -119 368t-308 163q-177 0 -302.5 -155.5t-125.5 -375.5q0 -234 131.5 -382.5t296.5 -148.5 q189 0 308 162.5t119 368.5z" />
|
||||
<glyph unicode="P" d="M432 480v-396h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-485q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h488q173 0 282.5 -102t109.5 -239q0 -81 -35.5 -146t-85.5 -102q-75 -56 -155 -82 q-58 -19 -144 -19h-263zM432 564h268q93 0 174.5 41.5t119 101.5t37.5 122q0 99 -85 178t-215 79h-299v-522z" />
|
||||
<glyph unicode="Q" d="M626 -33l-112 -84q83 17 137 17q88 0 173 -32q60 -23 93 -23q58 0 129 47q28 18 40 18q18 0 29.5 -11.5t11.5 -30.5q0 -15 -10 -26q-21 -24 -95 -56q-56 -25 -110 -25q-42 0 -116 27t-143 27q-49 0 -121 -12q-101 -17 -162 -34q-20 -5 -29 -5q-17 0 -29 12t-12 32t23 36 l187 135q-167 41 -286.5 206t-119.5 397q0 271 154.5 443t357.5 172t357.5 -172t154.5 -443q0 -267 -152 -439.5t-350 -175.5zM1043 582q0 205 -119 368t-308 163q-177 0 -302.5 -155.5t-125.5 -375.5q0 -234 131.5 -382.5t296.5 -148.5q189 0 308 162.5t119 368.5z" />
|
||||
<glyph unicode="R" d="M341 522v-438h155q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-352q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h508q157 0 264.5 -99.5t107.5 -224.5q0 -90 -66.5 -169.5t-222.5 -132.5q90 -62 154 -140 t205 -320h64q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-112q-156 279 -241.5 374t-196.5 148h-267zM341 606h229q110 0 199.5 40t130 94t40.5 110q0 84 -84.5 160t-205.5 76h-309v-480z" />
|
||||
<glyph unicode="S" d="M915 1086v28q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-214q0 -30 -11.5 -43t-30.5 -13q-18 0 -29.5 12t-12.5 39q-5 84 -86.5 151t-213.5 67q-139 0 -221 -71.5t-82 -168.5q0 -50 23 -91t61 -66.5t86 -41t150 -32.5q171 -28 236 -57q87 -39 131.5 -108t44.5 -163 q0 -144 -115 -245.5t-310 -101.5q-219 0 -350 137v-48q0 -30 -11.5 -43t-30.5 -13q-18 0 -30 13t-12 43v232q0 31 11.5 44t30.5 13q18 0 29.5 -12t12.5 -39q5 -92 98.5 -167.5t251.5 -75.5t249.5 79t91.5 187q0 66 -35 117.5t-104 81.5q-48 21 -200 47q-209 35 -301 107 t-92 205q0 132 105.5 227t278.5 95q176 0 303 -111z" />
|
||||
<glyph unicode="T" d="M656 1086v-1002h218q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-521q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h218v1002h-344v-291q0 -31 -11.5 -44t-30.5 -13q-18 0 -30 13t-12 44v375h941v-375q0 -31 -11.5 -44t-30.5 -13t-30.5 13t-11.5 44v291h-344z" />
|
||||
<glyph unicode="U" d="M1021 1086v-702q0 -177 -118 -297t-285 -120q-112 0 -199 49t-148 148.5t-61 219.5v702h-71q-30 0 -43 11.5t-13 30.5t14 32q12 10 42 10h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-155v-702q0 -139 95 -236t225 -97q83 0 151.5 38t120 117t51.5 178v702h-155 q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-71z" />
|
||||
<glyph unicode="V" d="M677 0h-117l-423 1086h-65q-23 0 -33 4.5t-16.5 15t-6.5 22.5t6.5 22.5t16.5 15t33 4.5h313q24 0 33.5 -4.5t16 -15t6.5 -22.5t-7 -22.5t-16.5 -15t-32.5 -4.5h-161l390 -1002h6l385 1002h-160q-24 0 -34 4.5t-16.5 15t-6.5 22.5t7 22.5t16.5 15t33.5 4.5h312 q24 0 34 -4.5t16.5 -15t6.5 -22.5t-7 -22.5t-16.5 -15t-33.5 -4.5h-64z" />
|
||||
<glyph unicode="W" d="M983 0h-132l-238 831l-233 -831h-132l-124 1086h-31q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h312q31 0 44 -11.5t13 -30.5t-13 -30.5t-44 -11.5h-196l111 -990l227 815h129l233 -815l109 990h-197q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h310q31 0 44 -11.5t13 -30.5 t-13 -30.5t-44 -11.5h-31z" />
|
||||
<glyph unicode="X" d="M665 599l399 -515h32q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-270q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h134l-347 446l-343 -446h134q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-268q-30 0 -43 12t-13 30q0 14 8 25t18 14t61 3l394 515l-376 487h-31 q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h229q31 0 44 -11.5t13 -30.5t-13 -30.5t-44 -11.5h-94l324 -419l322 419h-94q-31 0 -44 11.5t-13 30.5t13 30.5t44 11.5h230q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-32z" />
|
||||
<glyph unicode="Y" d="M659 528v-444h218q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-521q-30 0 -43 12t-13 30q0 19 12.5 30.5t43.5 11.5h218v444l-369 558h-50q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h231q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-83l314 -473l307 473h-82 q-31 0 -44 11.5t-13 30.5t13 30.5t44 11.5h230q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-50z" />
|
||||
<glyph unicode="Z" d="M1022 0h-809v122l682 957v7h-559v-247q0 -31 -12 -44t-31 -13q-18 0 -30 13t-12 44v331h725v-119l-682 -958v-9h644v293q0 31 11.5 44t30.5 13t30.5 -13t11.5 -44v-377z" />
|
||||
<glyph unicode="[" d="M657 1170v-1345h204q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-288v1514h288q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-204z" />
|
||||
<glyph unicode="\" d="M314 1346l675 -1448q10 -22 10 -32q0 -16 -12.5 -28.5t-29.5 -12.5q-28 0 -45 37l-675 1449q-10 21 -10 32q0 16 12.5 28t29.5 12q27 0 45 -37z" />
|
||||
<glyph unicode="]" d="M575 -175v1345h-203q-30 0 -43 12t-13 30q0 19 13 31t43 12h288v-1514h-288q-30 0 -43 11.5t-13 30.5q0 18 13 30t43 12h203z" />
|
||||
<glyph unicode="^" d="M614 1279l369 -463q18 -23 18 -37q0 -18 -12.5 -30t-30.5 -12q-20 0 -42 26l-302 384l-302 -384q-21 -27 -41 -27q-18 0 -30.5 12.5t-12.5 30.5q0 14 18 37z" />
|
||||
<glyph unicode="_" d="M1173 -561h-1117q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h1117q31 0 43.5 -11.5t12.5 -30.5t-12.5 -30.5t-43.5 -11.5z" />
|
||||
<glyph unicode="`" d="M525 1309l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="a" d="M856 0v121q-183 -154 -391 -154q-151 0 -236 76.5t-85 187.5q0 122 112 213t327 91q58 0 126 -7.5t147 -23.5v136q0 69 -64 120t-192 51q-98 0 -275 -57q-32 -10 -41 -10q-16 0 -27.5 12t-11.5 30q0 17 10 27q14 15 113 41q156 42 236 42q159 0 248 -78.5t89 -177.5v-556 h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-197zM856 418q-59 17 -125 25t-139 8q-183 0 -286 -79q-78 -59 -78 -141q0 -76 59.5 -128t173.5 -52q109 0 202.5 43.5t192.5 138.5v185z" />
|
||||
<glyph unicode="b" d="M298 1255v-557q152 198 367 198q184 0 315 -133.5t131 -327.5q0 -196 -132.5 -332t-313.5 -136q-220 0 -367 198v-165h-197q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1086h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197zM1027 431q0 159 -109 269.5t-255 110.5 t-255 -110.5t-109 -269.5t109 -269.5t255 -110.5t255 110.5t109 269.5z" />
|
||||
<glyph unicode="c" d="M965 781v28q0 31 12 44t30 13q19 0 31 -13t12 -44v-190q-1 -31 -12.5 -44t-30.5 -13q-17 0 -28.5 11.5t-13.5 38.5q-6 71 -93.5 135t-235.5 64q-187 0 -284 -117t-97 -268q0 -163 107 -269t277 -106q98 0 199.5 36t183.5 116q21 20 37 20q17 0 28.5 -11.5t11.5 -28.5 q0 -43 -101 -109q-163 -107 -363 -107q-203 0 -333.5 129.5t-130.5 328.5q0 203 133.5 337t336.5 134q193 0 324 -115z" />
|
||||
<glyph unicode="d" d="M1026 1255v-1171h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-197v167q-146 -200 -371 -200q-114 0 -218.5 60.5t-165 172.5t-60.5 231q0 120 60.5 231.5t165 172.5t219.5 61q220 0 370 -200v474h-112q-31 0 -44 12t-13 31q0 18 13 30t44 12h197zM941 431 q0 160 -108 270t-257 110q-150 0 -258 -110t-108 -270q0 -159 108 -269.5t258 -110.5q149 0 257 110.5t108 269.5z" />
|
||||
<glyph unicode="e" d="M1069 413h-856q22 -163 136.5 -262.5t283.5 -99.5q94 0 197 31t168 82q19 15 33 15q16 0 28 -12.5t12 -29.5t-16 -33q-48 -50 -170.5 -93.5t-251.5 -43.5q-216 0 -360.5 141.5t-144.5 342.5q0 183 135.5 314t335.5 131q206 0 339 -134.5t131 -348.5zM984 498 q-25 139 -131.5 226t-253.5 87t-253 -86t-132 -227h770z" />
|
||||
<glyph unicode="f" d="M559 781v-697h369q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-657q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h203v697h-182q-30 0 -43 12t-13 31q0 18 13 30t43 12h182v127q0 106 86 184t228 78q119 0 254 -22q51 -8 61.5 -19t10.5 -29t-12 -29.5t-32 -11.5 q-8 0 -27 3q-151 23 -255 23q-110 0 -169.5 -54t-59.5 -123v-127h393q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-393z" />
|
||||
<glyph unicode="g" d="M897 712v154h197q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-113v-839q0 -84 -36 -150q-24 -44 -80 -91t-102 -67t-123 -20h-238q-30 0 -43 11.5t-13 30.5t13 31t43 12l241 -1q74 0 133.5 38t98.5 111q22 42 22 107v252q-135 -185 -348 -185q-173 0 -298.5 128.5 t-125.5 309.5t125.5 309t298.5 128q213 0 348 -184zM897 459q0 148 -101.5 250t-242.5 102t-242 -102.5t-101 -249.5q0 -148 101 -250.5t242 -102.5t242.5 102.5t101.5 250.5z" />
|
||||
<glyph unicode="h" d="M338 1255v-517q80 87 153.5 122.5t164.5 35.5q98 0 166.5 -34.5t114.5 -106t46 -150.5v-521h94q31 0 43.5 -11.5t12.5 -30.5q0 -18 -12.5 -30t-43.5 -12h-273q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h94v515q0 91 -65.5 152t-182.5 61q-92 0 -157 -45 q-47 -32 -155 -151v-532h95q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-274q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h95v1086h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197z" />
|
||||
<glyph unicode="i" d="M656 1297v-217h-124v217h124zM659 866v-782h330q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-744q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h330v697h-245q-30 0 -43.5 12t-13.5 30q0 19 13 31t44 12h329z" />
|
||||
<glyph unicode="j" d="M735 1297v-217h-124v217h124zM740 781h-499q-30 0 -43 12t-13 31q0 18 12.5 30t43.5 12h583v-925q0 -107 -44 -179t-132 -117q-61 -31 -145 -31h-267q-30 0 -43 11.5t-13 30.5t13 31t43 12l265 -1q107 0 173 70t66 173v840z" />
|
||||
<glyph unicode="k" d="M444 374v-374h-197q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1086h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197v-774l357 300h-43q-30 0 -43 12t-13 30q0 19 13 31t43 12h269q31 0 44 -12t13 -31q0 -18 -13 -30t-44 -12h-97l-328 -274l415 -423h97 q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-272q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h59l-361 371z" />
|
||||
<glyph unicode="l" d="M657 1255v-1171h330q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-744q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h330v1086h-242q-30 0 -43.5 12t-13.5 31q0 18 13 30t44 12h326z" />
|
||||
<glyph unicode="m" d="M232 866v-85q107 115 215 115q65 0 114 -34.5t82 -104.5q56 70 113.5 104.5t115.5 34.5q91 0 145 -59q71 -76 71 -166v-587h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-155v663q0 64 -39 106t-90 42q-46 0 -97 -34.5t-116 -135.5v-557h70q30 0 43 -11.5t13 -30.5 q0 -18 -13 -30t-43 -12h-155v657q0 67 -39.5 110.5t-88.5 43.5q-45 0 -89 -29q-61 -41 -128 -141v-557h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-226q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h71v697h-71q-30 0 -43 12t-13 31q0 18 13 30t43 12h155z" />
|
||||
<glyph unicode="n" d="M343 866v-127q88 89 159 123t160 34q96 0 175 -41q56 -30 101.5 -99.5t45.5 -142.5v-529h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-225q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h70v515q0 89 -65 150.5t-174 61.5q-83 0 -144 -33.5t-174 -166.5v-527h95 q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-274q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h95v697h-71q-30 0 -43 12t-13 31q0 18 13 30t43 12h155z" />
|
||||
<glyph unicode="o" d="M1084 431q0 -192 -137.5 -328t-331.5 -136q-196 0 -333 136.5t-137 327.5q0 192 137 328.5t333 136.5q194 0 331.5 -136t137.5 -329zM999 431q0 158 -112.5 269t-272.5 111t-272.5 -111.5t-112.5 -268.5q0 -156 112.5 -268t272.5 -112t272.5 111.5t112.5 268.5z" />
|
||||
<glyph unicode="p" d="M298 866v-153q75 91 161 137t203 46q124 0 229 -58t162.5 -161.5t57.5 -217.5q0 -181 -129.5 -309.5t-318.5 -128.5q-225 0 -365 183v-506h204q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-401q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h113v1083h-113q-30 0 -43 12 t-13 31q0 18 13 30t43 12h197zM1026 459q0 145 -105.5 248.5t-257.5 103.5q-153 0 -259 -104t-106 -248q0 -145 106 -249t259 -104q151 0 257 103.5t106 249.5z" />
|
||||
<glyph unicode="q" d="M940 713v153h197q31 0 44 -12t13 -31q0 -18 -13 -30t-44 -12h-112v-1083h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-400q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h203v506q-139 -183 -365 -183q-188 0 -317.5 128.5t-129.5 309.5q0 182 129.5 309.5 t319.5 127.5q224 0 363 -183zM940 459q0 145 -106 248.5t-258 103.5t-258 -103.5t-106 -248.5t106 -249t258 -104t258 104t106 249z" />
|
||||
<glyph unicode="r" d="M514 866v-212q164 148 245.5 190.5t150.5 42.5q75 0 139.5 -50.5t64.5 -76.5q0 -19 -12.5 -31.5t-31.5 -12.5q-10 0 -17 3.5t-26 22.5q-35 35 -61 48t-51 13q-55 0 -132.5 -44t-268.5 -215v-460h372q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-659q-30 0 -43 11.5 t-13 29.5q0 17 12.5 28.5t43.5 11.5h203v700h-155q-30 0 -43 12t-13 31q0 18 12.5 30t43.5 12h239z" />
|
||||
<glyph unicode="s" d="M892 811q0 29 12 42t30 13q19 0 31 -13t12 -44v-144q0 -30 -12 -43t-31 -13q-17 0 -28.5 11t-13.5 36q-6 60 -62 99q-82 56 -217 56q-141 0 -219 -57q-59 -43 -59 -96q0 -60 70 -100q48 -28 182 -43q175 -19 243 -43q97 -35 144.5 -97t47.5 -134q0 -107 -103 -190.5 t-302 -83.5t-326 101q0 -34 -4 -44t-14.5 -17t-23.5 -7q-18 0 -30 13t-12 43v173q0 30 11.5 43t30.5 13q18 0 30.5 -12.5t12.5 -33.5q0 -46 23 -77q35 -48 111.5 -79.5t187.5 -31.5q164 0 244 61t80 129q0 78 -81 125q-82 47 -238.5 63t-224.5 42t-106 78t-38 112 q0 108 106 171.5t253 63.5q174 0 283 -85z" />
|
||||
<glyph unicode="t" d="M442 866h456q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-456v-559q0 -73 58.5 -122t171.5 -49q85 0 184 25.5t154 57.5q20 13 33 13q16 0 28 -12.5t12 -29.5q0 -15 -13 -28q-32 -33 -155.5 -71.5t-236.5 -38.5q-147 0 -234 69t-87 186v559h-155q-30 0 -43 12t-13 31 q0 18 13 30t43 12h155v248q0 30 12 43t30 13q19 0 31 -13t12 -43v-248z" />
|
||||
<glyph unicode="u" d="M902 0v123q-172 -156 -372 -156q-123 0 -187 67q-83 88 -83 205v542h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197v-627q0 -82 52 -135t130 -53q205 0 376 188v542h-155q-30 0 -43 12t-13 31q0 18 13 30t43 12h239v-782h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30 t-43 -12h-155z" />
|
||||
<glyph unicode="v" d="M688 0h-142l-345 781h-86q-30 0 -43 12t-13 31q0 18 13 30t43 12h315q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-139l308 -697h37l302 697h-140q-30 0 -43 12t-13 31q0 18 13 30t43 12h316q31 0 43.5 -12t12.5 -31q0 -18 -12.5 -30t-43.5 -12h-85z" />
|
||||
<glyph unicode="w" d="M904 0l-104 -1l-185 540l-184 -540l-104 1l-174 781h-41q-30 0 -43 12t-13 31q0 18 13 30t43 12h231q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-107l149 -666l179 532h100l184 -532l143 666h-106q-30 0 -43.5 12t-13.5 31q0 18 13 30t44 12h230q31 0 44 -12t13 -31 q0 -18 -13 -30t-44 -12h-40z" />
|
||||
<glyph unicode="x" d="M672 453l385 -369q38 0 48 -3.5t17.5 -14.5t7.5 -24q0 -18 -13 -30t-44 -12h-270q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h139l-327 313l-325 -313h140q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-273q-30 0 -43 12t-13 30q0 13 7.5 24t17 14.5t47.5 3.5l385 369 l-342 328q-36 0 -45.5 4t-17 15t-7.5 24q0 18 13 30t44 12h229q31 0 43.5 -12t12.5 -31q0 -18 -12.5 -30t-43.5 -12h-100l283 -273l285 273h-100q-30 0 -43.5 12t-13.5 31q0 18 13 30t44 12h229q30 0 43 -12t13 -31q0 -12 -7.5 -23t-17 -15t-45.5 -4z" />
|
||||
<glyph unicode="y" d="M620 0l-390 781h-25q-30 0 -43 12t-13 30q0 13 6.5 23.5t17 15t32.5 4.5h230q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-113l343 -689l338 689h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h229q31 0 44 -12t13 -31q0 -13 -8 -24t-18 -14.5t-56 -3.5l-532 -1083h131 q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-484q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h263z" />
|
||||
<glyph unicode="z" d="M982 866v-75l-629 -707h568v116q0 30 11.5 43t30.5 13t31 -13t12 -43l-1 -200h-768v75l626 706h-522v-114q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v199h726z" />
|
||||
<glyph unicode="{" d="M566 498q50 -38 68 -72q23 -45 23 -107v-359q0 -57 33 -93.5t82 -41.5q31 -3 41 -12q13 -12 13 -30q0 -19 -13 -30.5t-38 -11.5q-79 0 -132 50q-71 69 -71 168v360q0 55 -33 92.5t-84 41.5q-28 3 -39 14t-11 31q0 19 11 30t39 14q52 4 84.5 41.5t32.5 92.5v360 q0 94 60 156.5t144 62.5q24 0 37 -12t13 -30t-13 -30q-9 -10 -41 -13q-50 -5 -82.5 -42t-32.5 -92v-360q0 -63 -20 -101.5t-71 -76.5z" />
|
||||
<glyph unicode="|" d="M657 1198l-1 -1401q0 -30 -11.5 -43t-30.5 -13q-18 0 -30 13t-12 43v1401q0 31 12 44t30 13q19 0 31 -13t12 -44z" />
|
||||
<glyph unicode="}" d="M664 498q-51 38 -68 72q-23 44 -23 106v360q0 56 -33 93t-82 41q-32 3 -41 12q-13 13 -13 31t12.5 30t37.5 12q80 0 132 -51q71 -68 71 -168v-360q0 -55 33.5 -92.5t84.5 -41.5q27 -3 38.5 -14t11.5 -30q0 -20 -11.5 -31t-38.5 -14q-52 -4 -85 -41.5t-33 -92.5v-360 q0 -94 -60 -156.5t-143 -62.5q-25 0 -37.5 12t-12.5 31q0 18 12 30q10 9 42 12q50 5 82.5 42.5t32.5 92.5v359q0 63 20 102t71 77z" />
|
||||
<glyph unicode="~" d="M1003 668q16 0 28 -12t12 -28q0 -35 -87 -115.5t-160 -80.5q-45 0 -91 25.5t-131 105.5q-57 54 -86.5 71t-53.5 17q-29 0 -55 -16q-35 -20 -96 -91q-29 -33 -37.5 -38t-18.5 -5q-17 0 -28.5 11.5t-11.5 28.5q0 16 26 49q66 82 118 113.5t101 31.5q41 0 81 -19.5 t103 -76.5q101 -93 125.5 -107.5t48.5 -14.5q71 0 151 102q29 37 39 43t23 6z" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="¡" d="M634 670h-39q-43 0 -73.5 30.5t-30.5 73.5q0 45 31 74.5t73 29.5h39q43 0 73.5 -30.5t30.5 -72.5q0 -45 -31 -75t-73 -30zM535 -274l37 645q2 32 13.5 45t28.5 13q18 0 29.5 -13t13.5 -45l38 -645q1 -23 1 -35q0 -34 -23 -57t-58 -23t-58.5 22.5t-23.5 59.5q0 10 2 33z " />
|
||||
<glyph unicode="¢" d="M571 1030v250q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-247q128 -4 218 -75q5 17 16 25.5t25 8.5q19 0 31 -13t12 -38v-127q0 -31 -11.5 -44t-30.5 -13q-17 0 -28 11t-14 37q-8 60 -68.5 103.5t-169.5 43.5q-144 0 -233.5 -87t-89.5 -218q0 -129 89 -216.5t225 -87.5 q67 0 139 23t122 64q21 17 37 17q18 0 29 -11.5t11 -29.5q0 -29 -51 -61q-117 -74 -258 -82v-207q0 -30 -11.5 -43t-30.5 -13t-30.5 13t-11.5 43v207q-149 18 -246 127t-97 256q0 160 110 270q81 81 233 114z" />
|
||||
<glyph unicode="£" d="M372 84h519q38 0 64.5 27.5t30.5 80.5q2 24 13.5 35.5t28.5 11.5q18 0 30.5 -12.5t12.5 -32.5q0 -83 -53 -138.5t-122 -55.5h-669q-30 0 -43 12t-13 30q0 17 12 29t35 12q43 2 79 40q53 54 82 150t29 178q0 67 -12 116h-216q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h195 q-57 177 -57 253q0 122 87 210t207 88q105 0 187 -67t82 -107q0 -14 -13 -26.5t-29 -12.5q-18 0 -38 25q-79 103 -186 103q-87 0 -149.5 -63t-62.5 -150q0 -35 9 -78q2 -7 49 -175h205q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-186q10 -62 10 -121q0 -96 -29.5 -191.5 t-88.5 -170.5z" />
|
||||
<glyph unicode="¤" d="M404 336l-116 -115q-15 -15 -22.5 -18.5t-16.5 -3.5q-18 0 -30.5 12t-12.5 31q0 9 3 15q5 9 19 24l116 115q-74 97 -74 212t72 211l-114 114q-22 22 -22 40q0 17 12.5 29.5t30.5 12.5q17 0 39 -22l114 -114q91 73 213 73q120 0 211 -73l114 114q23 22 40 22 q18 0 30 -12.5t12 -30.5q0 -9 -3 -16q-5 -9 -19 -23l-114 -114q72 -95 72 -210q0 -119 -73 -213l115 -115q22 -23 22 -40q0 -18 -12.5 -30t-30.5 -12q-16 0 -39 22l-115 115q-96 -72 -211 -72t-210 72zM874 608q0 108 -76 184t-184 76q-107 0 -183 -76t-76 -184 q0 -107 76 -183t183 -76t183.5 76t76.5 183z" />
|
||||
<glyph unicode="¥" d="M657 511v-158h271q22 0 31.5 -8t9.5 -22q0 -13 -9.5 -21.5t-31.5 -8.5h-271v-209h179q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-443q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h179v209h-271q-21 0 -30.5 8.5t-9.5 21.5q0 14 9.5 22t30.5 8h271v158h-271 q-21 0 -30.5 8.5t-9.5 21.5t9.5 21.5t30.5 8.5h242l-339 515h-50q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h230q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-81l311 -472l311 472h-82q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h228q31 0 44 -11.5t13 -30.5t-13 -30.5 t-44 -11.5h-48l-340 -515h245q22 0 31.5 -8.5t9.5 -21.5q0 -14 -9.5 -22t-31.5 -8h-271z" />
|
||||
<glyph unicode="¦" d="M657 1138l-1 -376q0 -88 -6 -98q-14 -19 -36 -19q-14 0 -25.5 9t-14.5 21q-2 9 -2 87v376q0 79 2 87q3 12 14.5 21t25.5 9t25.5 -9t14.5 -21q3 -9 3 -87zM657 233l-1 -376q0 -88 -6 -97q-14 -19 -36 -19q-14 0 -25.5 8.5t-14.5 20.5q-2 9 -2 87v376q0 79 2 87 q3 13 14.5 21.5t25.5 8.5t25.5 -8.5t14.5 -21.5q3 -8 3 -87z" />
|
||||
<glyph unicode="§" d="M997 1255v-217q0 -21 -8 -30.5t-21 -9.5q-14 0 -22.5 9.5t-8.5 30.5v156h-350q-78 0 -135 -56t-57 -124q0 -49 37 -93q54 -65 268 -187l113 -64q164 -94 218 -156q54 -63 54 -130q0 -65 -57.5 -114t-166.5 -50q34 -53 34 -107q0 -59 -29.5 -115.5t-88.5 -92t-139 -35.5 h-406v219q0 21 8.5 30.5t21.5 9.5q14 0 22.5 -9.5t8.5 -30.5v-158h344q100 0 149 60t49 116q0 48 -38 96q-51 64 -233 169l-130 75q-174 101 -232 168q-59 67 -59 128q0 62 56 110t170 54q-34 51 -34 99q0 65 30 119t88.5 92t128.5 38h415zM417 849q-14 -3 -34 -3 q-93 0 -136.5 -33t-43.5 -74q0 -45 58 -99q57 -55 215 -146l125 -73q155 -90 213 -146q10 6 31 7q100 2 140 32.5t40 67.5q0 38 -36 83q-49 62 -200 148l-130 73q-109 62 -152.5 92t-89.5 71z" />
|
||||
<glyph unicode="¨" d="M482 1147q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM911 1147q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="©" d="M1223 584q0 -253 -179 -432t-433 -179q-253 0 -432 179t-179 432q0 254 179 433t432 179q254 0 433 -179t179 -433zM1155 584q0 226 -159 385t-385 159q-225 0 -384.5 -159t-159.5 -385q0 -225 159.5 -384t384.5 -159q226 0 385 159t159 384zM810 862v34q0 17 7 24.5 t18 7.5q10 0 16.5 -7.5t6.5 -24.5v-132q0 -14 -2.5 -19.5t-8.5 -9t-13 -3.5q-9 0 -15.5 6.5t-8.5 21.5q-3 49 -51 85q-66 50 -150 50q-100 0 -158 -63q-78 -86 -78 -192v-83q0 -107 77 -185.5t178 -78.5q116 0 204 107q10 12 21 12t17 -6t6 -16q0 -28 -75 -86t-171 -58 q-85 0 -153 42.5t-122 135.5q-30 53 -30 126v97q0 106 76 201t206 95q119 0 203 -81z" />
|
||||
<glyph unicode="ª" d="M759 747v60q-115 -80 -240 -80q-107 0 -165 51t-58 122q0 76 74.5 135.5t222.5 59.5q35 0 76.5 -4t89.5 -12v66q0 34 -32 58q-42 31 -122 31q-61 0 -175 -34q-22 -6 -30 -6q-16 0 -27.5 11t-11.5 28q0 14 10 24.5t69 25.5q111 28 168 28q111 0 171.5 -51.5t60.5 -114.5 v-321h60q26 0 38 -11t12 -27t-12 -27.5t-38 -11.5h-141zM759 906l-1 95q-34 9 -73 13t-84 4q-116 0 -179 -45q-45 -32 -45 -73q0 -39 34 -67.5t105 -28.5q127 0 243 102z" />
|
||||
<glyph unicode="«" d="M99 434l448 410q26 24 44 24t30 -12t12 -31q0 -16 -23 -41l-313 -350l313 -349q23 -25 23 -42q0 -18 -12 -30t-30 -12t-44 23zM568 434l448 410q26 24 44 24t30 -12t12 -31q0 -16 -22 -41l-313 -350l313 -349q22 -25 22 -42q0 -18 -12 -30t-30 -12t-44 23z" />
|
||||
<glyph unicode="¬" d="M80 543q-23 0 -33 4.5t-16.5 15t-6.5 22.5q0 19 13 30.5t43 11.5h1005v-504q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v420h-920z" />
|
||||
<glyph unicode="­" d="M1043 639v-120h-857v120h857z" />
|
||||
<glyph unicode="®" d="M1223 584q0 -253 -179 -432t-433 -179q-253 0 -432 179t-179 432q0 254 179 433t432 179q254 0 433 -179t179 -433zM1155 584q0 226 -159 385t-385 159q-225 0 -384.5 -159t-159.5 -385q0 -225 159.5 -384t384.5 -159q226 0 385 159t159 384zM461 549v-248h88 q13 0 18.5 -3t9.5 -8.5t4 -12.5t-4 -13t-9.5 -8.5t-18.5 -2.5h-200q-13 0 -18.5 2.5t-9.5 8.5t-4 13q0 6 4 12.5t9.5 9t18.5 2.5h64v567h-64q-13 0 -18.5 3t-9.5 9t-4 12q0 7 4 13t9.5 8.5t18.5 2.5h288q89 0 150 -56.5t61 -127.5q0 -51 -38 -96t-126 -75q51 -34 87.5 -78.5 t115.5 -181.5h37q13 0 18.5 -3t9.5 -9t4 -12q0 -7 -4 -13t-9.5 -8.5t-18.5 -2.5h-64q-87 157 -135.5 211t-112.5 85h-151zM461 596h129q99 0 154.5 44.5t55.5 94.5q0 48 -47.5 90.5t-116.5 42.5h-175v-272z" />
|
||||
<glyph unicode="¯" d="M1200 1340h-1171q-30 0 -43 12t-13 31q0 18 13 30t43 12h1171q31 0 43.5 -12t12.5 -31q0 -18 -12.5 -30t-43.5 -12z" />
|
||||
<glyph unicode="°" d="M337 1214q0 115 81.5 196t195.5 81q116 0 197 -81t81 -196t-81.5 -196.5t-196.5 -81.5q-114 0 -195.5 81t-81.5 197zM446 1214q0 -70 49.5 -119.5t119.5 -49.5q69 0 118.5 49.5t49.5 119.5t-49.5 119.5t-118.5 49.5q-70 0 -119.5 -49.5t-49.5 -119.5z" />
|
||||
<glyph unicode="±" d="M657 676v-420q0 -30 -12 -43t-31 -13q-18 0 -30 13t-12 43v420h-372q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h372v418q0 30 12 43t31 13q18 0 30 -13t12 -43v-418h372q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-372zM968 0h-707q-79 0 -87 2q-13 3 -21.5 14.5 t-8.5 25.5t8.5 25.5t21.5 14.5q8 3 87 3l707 -1q79 0 87 -2q13 -3 21.5 -14.5t8.5 -25.5t-8.5 -25.5t-21.5 -14.5q-8 -2 -87 -2z" />
|
||||
<glyph unicode="²" d="M420 673h350q0 27 7 33q11 12 30 12q18 0 30 -11q7 -7 7 -24v-67h-503v72q353 277 401 339q28 36 28 69q0 50 -46.5 91.5t-117.5 41.5q-61 0 -106 -30t-63 -79q-4 -13 -10 -17q-12 -7 -26 -7q-17 0 -28 9q-8 7 -8 17q0 46 67.5 104.5t173.5 58.5q102 0 170 -60t68 -128 q0 -38 -18 -68q-29 -48 -162 -160q-165 -139 -244 -196z" />
|
||||
<glyph unicode="³" d="M736 972q63 -27 98 -74t35 -96q0 -75 -73 -138t-192 -63q-71 0 -144 26.5t-98 51.5q-7 8 -7 17q0 11 9.5 19t24.5 8t44 -17q78 -49 171 -49q85 0 138 45.5t53 98.5q0 54 -54 99.5t-154 47.5q-25 1 -35 9t-10 20q0 11 10.5 19t32.5 8q79 0 112 13.5t52 40.5t19 56 q0 44 -40.5 79.5t-111.5 35.5q-103 0 -157 -57q-13 -15 -33 -15q-16 0 -26 8t-10 18q0 9 11 21q33 36 91 58.5t124 22.5q103 0 164.5 -52.5t61.5 -118.5q0 -44 -24 -77q-33 -45 -82 -65z" />
|
||||
<glyph unicode="´" d="M760 1245l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="µ" d="M343 34v-364q0 -30 -11.5 -43t-30.5 -13t-30.5 13t-11.5 43v1111h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197v-627q0 -82 52 -135t130 -53q205 0 376 188v542h-155q-30 0 -43 12t-13 31q0 18 13 30t43 12h239v-782h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12 h-155v123q-172 -156 -374 -156q-109 0 -184 67z" />
|
||||
<glyph unicode="¶" d="M895 1194v-1263h131q22 0 31 -8.5t9 -21.5q0 -14 -9.5 -22.5t-30.5 -8.5h-195q-22 0 -31.5 8.5t-9.5 22.5q0 8 5.5 16t13 11t25.5 3v1263h-176v-1263q19 0 26.5 -3t12.5 -11t5 -16q0 -14 -9.5 -22.5t-30.5 -8.5h-280q-21 0 -30.5 8.5t-9.5 21.5q0 14 9.5 22.5t30.5 8.5 h215v633q-118 8 -213 45q-56 21 -110.5 66.5t-78.5 84.5t-24 97v97q0 65 35 124q25 42 60 68q51 38 141 73.5t207 35.5h409q22 0 31.5 -8.5t9.5 -21.5q0 -14 -9.5 -22.5t-31.5 -8.5h-128zM597 1194q-145 -13 -225 -87.5t-80 -157.5v-77q0 -55 27 -95q49 -70 105 -101 q74 -40 173 -49v567z" />
|
||||
<glyph unicode="·" d="M913 683q0 -42 -30 -72t-72 -30q-43 0 -73 30t-30 72q0 43 30 73t73 30q42 0 72 -30t30 -73z" />
|
||||
<glyph unicode="¸" d="M586 -163v153q0 22 8.5 31t21.5 9q14 0 22 -9.5t8 -30.5v-96q56 -8 87 -38.5t31 -71.5q0 -49 -37.5 -83t-106.5 -34q-47 0 -101 18.5t-67 33.5q-10 11 -10 23q0 13 8.5 21.5t21.5 8.5q10 0 23 -7q68 -38 125 -38q39 0 61 18.5t22 40.5q0 19 -17 33q-23 18 -59 18h-41z " />
|
||||
<glyph unicode="¹" d="M651 1282v-609h157q25 0 35.5 -8.5t10.5 -20.5q0 -11 -10.5 -19.5t-35.5 -8.5h-389q-24 0 -34.5 8.5t-10.5 20.5q0 11 10.5 19.5t34.5 8.5h158v529l-148 -40q-11 -3 -19 -3q-15 0 -25 8.5t-10 19.5q0 9 6.5 16t28.5 13z" />
|
||||
<glyph unicode="º" d="M930 1019q0 -118 -91.5 -205t-226.5 -87t-226.5 87.5t-91.5 204.5q0 118 91.5 205t226.5 87t226.5 -87t91.5 -205zM849 1019q0 87 -68 151t-169 64t-169 -64.5t-68 -150.5t68 -150.5t169 -64.5t169 64.5t68 150.5z" />
|
||||
<glyph unicode="»" d="M661 434l-449 -410q-25 -23 -43 -23t-30 12t-12 30q0 17 22 42l313 349l-313 350q-22 25 -22 42q0 18 12 30t30 12t43 -24zM1130 434l-448 -410q-26 -23 -44 -23t-30 12t-12 30q0 17 22 42l313 349l-313 350q-22 25 -22 42q0 18 12 30t30 12t44 -24z" />
|
||||
<glyph unicode="¼" d="M277 1282v-609h157q25 0 35.5 -8.5t10.5 -20.5q0 -11 -10.5 -19.5t-35.5 -8.5h-389q-24 0 -34.5 8.5t-10.5 20.5q0 11 10.5 19.5t34.5 8.5h158v529l-148 -40q-11 -3 -19 -3q-15 0 -25 8.5t-10 19.5q0 9 6.5 16t28.5 13zM1185 893l-915 -590q-23 -14 -35 -14q-18 0 -30 12 t-12 30q0 23 31 43l915 590q23 14 35 14q17 0 29.5 -12.5t12.5 -29.5q0 -23 -31 -43zM1069 179h-329v57l279 417h124v-418h29q25 0 35.5 -8.5t10.5 -19.5q0 -7 -5 -14t-13.5 -10.5t-27.5 -3.5h-29v-123h29q25 0 35.5 -8.5t10.5 -19.5t-10.5 -19.5t-35.5 -8.5h-184 q-25 0 -35.5 8.5t-10.5 19.5q0 12 10.5 20t35.5 8h81v123zM1069 235v362h-6l-243 -362h249z" />
|
||||
<glyph unicode="½" d="M277 1282v-609h157q25 0 35.5 -8.5t10.5 -20.5q0 -11 -10.5 -19.5t-35.5 -8.5h-389q-24 0 -34.5 8.5t-10.5 20.5q0 11 10.5 19.5t34.5 8.5h158v529l-148 -40q-11 -3 -19 -3q-15 0 -25 8.5t-10 19.5q0 9 6.5 16t28.5 13zM1155 893l-916 -590q-22 -14 -34 -14 q-18 0 -30.5 12t-12.5 30q0 23 32 43l915 590q22 14 34 14q18 0 30.5 -12.5t12.5 -29.5q0 -23 -31 -43zM818 56h350q0 27 7 34q11 11 30 11q18 0 30 -10q7 -7 7 -25v-66h-503v71q353 277 401 340q28 35 28 68q0 51 -46.5 92t-117.5 41q-61 0 -106 -29.5t-62 -79.5 q-5 -13 -11 -16q-11 -8 -26 -8q-16 0 -27 10q-9 6 -9 16q0 46 67.5 104.5t173.5 58.5q102 0 170 -59.5t68 -127.5q0 -38 -18 -68q-29 -48 -162 -160q-165 -140 -244 -197z" />
|
||||
<glyph unicode="¾" d="M381 972q63 -27 98 -74t35 -96q0 -75 -73 -138t-192 -63q-71 0 -144 26.5t-98 51.5q-7 8 -7 17q0 11 9.5 19t24.5 8t44 -17q78 -49 171 -49q85 0 138 45.5t53 98.5q0 54 -54 99.5t-154 47.5q-25 1 -35 9t-10 20q0 11 10.5 19t32.5 8q79 0 112 13.5t52 40.5t19 56 q0 44 -40.5 79.5t-111.5 35.5q-103 0 -157 -57q-13 -15 -33 -15q-16 0 -26 8t-10 18q0 9 11 21q33 36 91 58.5t124 22.5q103 0 164.5 -52.5t61.5 -118.5q0 -44 -24 -77q-33 -45 -82 -65zM1171 893l-915 -590q-22 -14 -34 -14q-18 0 -30.5 12t-12.5 30q0 23 31 43l916 590 q22 14 34 14q18 0 30.5 -12.5t12.5 -29.5q0 -23 -32 -43zM1064 179h-329v57l279 417h124v-418h29q25 0 35.5 -8.5t10.5 -19.5q0 -7 -5 -14t-13.5 -10.5t-27.5 -3.5h-29v-123h29q25 0 35.5 -8.5t10.5 -19.5t-10.5 -19.5t-35.5 -8.5h-184q-25 0 -35 8.5t-10 19.5q0 12 10 20 t35 8h81v123zM1064 235v362h-6l-242 -362h248z" />
|
||||
<glyph unicode="¿" d="M659 679h-84q-43 0 -73.5 30.5t-30.5 72.5q0 45 31 75t73 30h84q43 0 73.5 -30.5t30.5 -73.5q0 -45 -31 -74.5t-73 -29.5zM573 294v85q0 31 12 44t31 13q18 0 30 -13t12 -44v-141q-219 -80 -299 -161q-45 -46 -45 -114q0 -111 81.5 -191t211.5 -80q66 0 124.5 15.5 t142.5 55.5v68q0 31 11.5 44t30.5 13t30.5 -13t11.5 -44v-122q-156 -70 -202 -81q-78 -20 -156 -20q-166 0 -268 100.5t-102 253.5q0 94 60.5 166t282.5 166z" />
|
||||
<glyph unicode="À" d="M891 391h-552l-113 -307h161q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-314q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h65l371 1002h-248q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h423l410 -1086h65q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-313 q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h160zM859 475l-232 611h-31l-225 -611h488zM452 1576l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="Á" d="M891 391h-552l-113 -307h161q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-314q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h65l371 1002h-248q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h423l410 -1086h65q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-313 q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h160zM859 475l-232 611h-31l-225 -611h488zM799 1512l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="Â" d="M891 391h-552l-113 -307h161q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-314q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h65l371 1002h-248q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h423l410 -1086h65q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-313 q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h160zM859 475l-232 611h-31l-225 -611h488zM553 1580l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="Ã" d="M891 391h-552l-113 -307h161q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-314q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h65l371 1002h-248q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h423l410 -1086h65q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-313 q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h160zM859 475l-232 611h-31l-225 -611h488zM800 1435q17 0 29.5 -12t12.5 -27q0 -17 -13 -32q-40 -45 -95 -74q-38 -21 -79 -21q-64 0 -173 79q-58 43 -90 43q-40 0 -101 -56q-27 -25 -46 -25q-18 0 -29.5 12t-11.5 28q0 26 51 66 q78 59 136 59q30 0 61 -12.5t101 -60.5t102 -48q38 0 115 68q16 13 30 13z" />
|
||||
<glyph unicode="Ä" d="M891 391h-552l-113 -307h161q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-314q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h65l371 1002h-248q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h423l410 -1086h65q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-313 q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h160zM859 475l-232 611h-31l-225 -611h488zM392 1414q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM821 1414q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24 t58 -24t24 -58z" />
|
||||
<glyph unicode="Å" d="M891 391h-552l-113 -307h161q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-314q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h65l371 1002h-248q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h423l410 -1086h65q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-313 q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h160zM859 475l-232 611h-31l-225 -611h488zM744 1425q0 -73 -53 -125.5t-128 -52.5t-128 52.5t-53 125.5t53 125.5t128 52.5t128 -52.5t53 -125.5zM684 1425q0 49 -35.5 83.5t-85.5 34.5q-51 0 -86 -35t-35 -83t35.5 -83t85.5 -35 t85.5 34.5t35.5 83.5z" />
|
||||
<glyph unicode="Æ" d="M614 394h-293l-85 -310h54q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-216q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h77l276 1002h-131q-30 0 -43 11.5t-13 30.5t12.5 30.5t43.5 11.5h874v-316q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v232h-387v-436h163v58 q0 31 11.5 44t30.5 13t31 -13t11 -44v-198q0 -31 -11.5 -44t-30.5 -13t-30.5 13t-11.5 44v57h-163v-483h430v194q0 23 5 34q3 6 14.5 14t18.5 8l20 -3q16 -9 21 -18.5t5 -34.5v-278h-706q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h108v310zM614 475v611h-104l-166 -611h270 z" />
|
||||
<glyph unicode="Ç" d="M984 1055v59q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-233q0 -31 -11.5 -44t-30.5 -13q-17 0 -28.5 12t-13.5 39q-5 84 -91 149q-116 89 -264 89q-97 0 -183 -43q-64 -31 -102 -76q-66 -78 -105 -173q-28 -70 -28 -158v-147q0 -188 136 -326.5t316 -138.5 q108 0 193.5 47t165.5 142q17 21 38 21q18 0 29 -11t11 -28q0 -23 -43 -70q-82 -92 -184.5 -138.5t-207.5 -46.5q-91 0 -185 35q-72 27 -119 63t-115.5 121.5t-93.5 158t-25 159.5v171q0 124 66.5 253.5t182 199t250.5 69.5q208 0 358 -142zM592 -163v153q0 22 8.5 31 t21.5 9q14 0 22 -9.5t8 -30.5v-96q56 -8 87 -38.5t31 -71.5q0 -49 -37.5 -83t-106.5 -34q-47 0 -101 18.5t-67 33.5q-10 11 -10 23q0 13 8.5 21.5t21.5 8.5q10 0 23 -7q68 -38 125 -38q39 0 61 18.5t22 40.5q0 19 -17 33q-23 18 -59 18h-41z" />
|
||||
<glyph unicode="È" d="M341 565v-481h646v248q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-332h-927q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h883v-289q0 -30 -11.5 -43t-30.5 -13t-30.5 13t-11.5 43v205h-602v-437h301v95q0 30 12 43 t31 13q18 0 30 -13t12 -43v-274q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v95h-301zM528 1576l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="É" d="M341 565v-481h646v248q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-332h-927q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h883v-289q0 -30 -11.5 -43t-30.5 -13t-30.5 13t-11.5 43v205h-602v-437h301v95q0 30 12 43 t31 13q18 0 30 -13t12 -43v-274q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v95h-301zM763 1512l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="Ê" d="M341 565v-481h646v248q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-332h-927q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h883v-289q0 -30 -11.5 -43t-30.5 -13t-30.5 13t-11.5 43v205h-602v-437h301v95q0 30 12 43 t31 13q18 0 30 -13t12 -43v-274q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v95h-301zM615 1577l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="Ë" d="M341 565v-481h646v248q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-332h-927q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h883v-289q0 -30 -11.5 -43t-30.5 -13t-30.5 13t-11.5 43v205h-602v-437h301v95q0 30 12 43 t31 13q18 0 30 -13t12 -43v-274q0 -30 -12 -43t-30 -13q-19 0 -31 13t-12 43v95h-301zM483 1414q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM912 1414q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24 t24 -58z" />
|
||||
<glyph unicode="Ì" d="M657 1086v-1002h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-660q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h288v1002h-288q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h660q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-288zM528 1576l236 -204l22 -25 q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="Í" d="M657 1086v-1002h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-660q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h288v1002h-288q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h660q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-288zM756 1512l-237 -204 q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="Î" d="M657 1086v-1002h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-660q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h288v1002h-288q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h660q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-288zM614 1577l271 -206q18 -14 23 -22.5 t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="Ï" d="M657 1086v-1002h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-660q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h288v1002h-288q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h660q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-288zM482 1414q0 -34 -24 -57.5 t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM911 1414q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="Ð" d="M213 564h-99q-79 0 -87 2q-13 4 -21.5 15t-8.5 26q0 14 8.5 25t21.5 15q8 2 87 2h99v437h-70q-31 0 -44 11.5t-13 30.5t13 30.5t44 11.5h451q106 0 193.5 -44t133.5 -100q79 -95 120 -201q30 -77 30 -182v-116q0 -129 -57.5 -250t-190.5 -211q-99 -66 -229 -66h-451 q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h70v480zM298 564v-480h305q105 0 198 69t139 165.5t46 190.5v152q0 78 -24 139q-37 89 -102 169q-36 44 -106.5 80.5t-150.5 36.5h-305v-437h234q79 0 87 -2q12 -4 21 -15t9 -25q0 -15 -9 -26t-21 -15q-8 -2 -87 -2h-234z" />
|
||||
<glyph unicode="Ñ" d="M1026 0h-108l-619 1047v-963h155q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-309q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h70v1002h-113q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h220l620 -1049v965h-155q-30 0 -43 11.5t-13 30.5t12.5 30.5t43.5 11.5h310 q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-71v-1086zM890 1435q17 0 29.5 -12t12.5 -27q0 -17 -13 -32q-40 -45 -95 -74q-38 -21 -79 -21q-64 0 -173 79q-58 43 -90 43q-40 0 -101 -56q-27 -25 -46 -25q-18 0 -29.5 12t-11.5 28q0 26 51 66q78 59 136 59q30 0 61 -12.5 t101 -60.5t102 -48q38 0 115 68q16 13 30 13z" />
|
||||
<glyph unicode="Ò" d="M1128 582q0 -168 -68 -311.5t-187.5 -223.5t-256.5 -80q-203 0 -357.5 172.5t-154.5 442.5q0 271 154.5 443t357.5 172q137 0 256 -80t187.5 -223t68.5 -312zM1043 582q0 205 -119 368t-308 163q-177 0 -302.5 -155.5t-125.5 -375.5q0 -234 131.5 -382.5t296.5 -148.5 q189 0 308 162.5t119 368.5zM461 1576l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="Ó" d="M1128 582q0 -168 -68 -311.5t-187.5 -223.5t-256.5 -80q-203 0 -357.5 172.5t-154.5 442.5q0 271 154.5 443t357.5 172q137 0 256 -80t187.5 -223t68.5 -312zM1043 582q0 205 -119 368t-308 163q-177 0 -302.5 -155.5t-125.5 -375.5q0 -234 131.5 -382.5t296.5 -148.5 q189 0 308 162.5t119 368.5zM700 1512l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="Ô" d="M1128 582q0 -168 -68 -311.5t-187.5 -223.5t-256.5 -80q-203 0 -357.5 172.5t-154.5 442.5q0 271 154.5 443t357.5 172q137 0 256 -80t187.5 -223t68.5 -312zM1043 582q0 205 -119 368t-308 163q-177 0 -302.5 -155.5t-125.5 -375.5q0 -234 131.5 -382.5t296.5 -148.5 q189 0 308 162.5t119 368.5zM544 1577l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="Õ" d="M1128 582q0 -168 -68 -311.5t-187.5 -223.5t-256.5 -80q-203 0 -357.5 172.5t-154.5 442.5q0 271 154.5 443t357.5 172q137 0 256 -80t187.5 -223t68.5 -312zM1043 582q0 205 -119 368t-308 163q-177 0 -302.5 -155.5t-125.5 -375.5q0 -234 131.5 -382.5t296.5 -148.5 q189 0 308 162.5t119 368.5zM802 1435q17 0 29.5 -12t12.5 -27q0 -17 -13 -32q-40 -45 -95 -74q-38 -21 -79 -21q-64 0 -173 79q-58 43 -90 43q-40 0 -101 -56q-27 -25 -46 -25q-18 0 -29.5 12t-11.5 28q0 26 51 66q78 59 136 59q30 0 61 -12.5t101 -60.5t102 -48 q38 0 115 68q16 13 30 13z" />
|
||||
<glyph unicode="Ö" d="M1128 582q0 -168 -68 -311.5t-187.5 -223.5t-256.5 -80q-203 0 -357.5 172.5t-154.5 442.5q0 271 154.5 443t357.5 172q137 0 256 -80t187.5 -223t68.5 -312zM1043 582q0 205 -119 368t-308 163q-177 0 -302.5 -155.5t-125.5 -375.5q0 -234 131.5 -382.5t296.5 -148.5 q189 0 308 162.5t119 368.5zM392 1414q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM821 1414q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="×" d="M615 525l-263 -263q-15 -15 -22 -18.5t-17 -3.5q-18 0 -30.5 12.5t-12.5 30.5q0 17 23 39l262 263l-263 263q-22 22 -22 39q0 18 12.5 30.5t30.5 12.5q17 0 39 -23l263 -263l261 262q23 22 40 22q18 0 30 -12.5t12 -30.5q0 -17 -22 -39l-261 -261l263 -263q22 -23 22 -40 q0 -18 -12.5 -30.5t-30.5 -12.5q-9 0 -15 4q-10 4 -24 19z" />
|
||||
<glyph unicode="Ø" d="M291 104l-127 -161q-14 -18 -22.5 -22.5t-18.5 -4.5q-18 0 -30.5 12.5t-12.5 30.5q0 14 18 36l137 174q-131 181 -131 412q0 272 154.5 444t357.5 172q183 0 322 -134l127 162q14 17 22.5 22t19.5 5q18 0 30 -12.5t12 -30.5q0 -14 -17 -36l-137 -174q133 -177 133 -417 q0 -270 -155 -442.5t-357 -172.5q-184 0 -325 137zM884 995q-121 118 -268 118q-177 0 -302.5 -156t-125.5 -375q0 -191 102 -343zM344 172q121 -121 272 -121q175 0 301 155t126 376q0 196 -103 347z" />
|
||||
<glyph unicode="Ù" d="M1021 1086v-702q0 -177 -118 -297t-285 -120q-112 0 -199 49t-148 148.5t-61 219.5v702h-71q-30 0 -43 11.5t-13 30.5t14 32q12 10 42 10h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-155v-702q0 -139 95 -236t225 -97q83 0 151.5 38t120 117t51.5 178v702h-155 q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-71zM496 1576l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="Ú" d="M1021 1086v-702q0 -177 -118 -297t-285 -120q-112 0 -199 49t-148 148.5t-61 219.5v702h-71q-30 0 -43 11.5t-13 30.5t14 32q12 10 42 10h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-155v-702q0 -139 95 -236t225 -97q83 0 151.5 38t120 117t51.5 178v702h-155 q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-71zM782 1512l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z " />
|
||||
<glyph unicode="Û" d="M1021 1086v-702q0 -177 -118 -297t-285 -120q-112 0 -199 49t-148 148.5t-61 219.5v702h-71q-30 0 -43 11.5t-13 30.5t14 32q12 10 42 10h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-155v-702q0 -139 95 -236t225 -97q83 0 151.5 38t120 117t51.5 178v702h-155 q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-71zM615 1577l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="Ü" d="M1021 1086v-702q0 -177 -118 -297t-285 -120q-112 0 -199 49t-148 148.5t-61 219.5v702h-71q-30 0 -43 11.5t-13 30.5t14 32q12 10 42 10h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-155v-702q0 -139 95 -236t225 -97q83 0 151.5 38t120 117t51.5 178v702h-155 q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h310q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-71zM483 1414q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM912 1414q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58 t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="Ý" d="M659 528v-444h218q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-521q-30 0 -43 12t-13 30q0 19 12.5 30.5t43.5 11.5h218v444l-369 558h-50q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h231q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-83l314 -473l307 473h-82 q-31 0 -44 11.5t-13 30.5t13 30.5t44 11.5h230q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-50zM760 1503l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z " />
|
||||
<glyph unicode="Þ" d="M259 1170h461q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-288v-157h291q173 0 282.5 -102.5t109.5 -239.5q0 -80 -35.5 -145t-85.5 -102q-75 -56 -155 -82q-58 -20 -144 -20h-263v-154h288q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-485q-30 0 -43 12t-13 30 q0 19 13 30.5t43 11.5h113v1002h-113q-30 0 -43 11.5t-13 30.5q0 13 7.5 24t17.5 14.5t55 3.5zM432 323h268q93 0 174.5 41t119 101t37.5 122q0 99 -85 178t-215 79h-299v-521z" />
|
||||
<glyph unicode="ß" d="M258 84v906q0 106 84.5 185.5t210.5 79.5q127 0 215 -88.5t88 -214.5q0 -125 -120 -207q93 -39 146 -84q72 -61 110.5 -143t38.5 -185q0 -170 -83 -268t-191 -98q-92 0 -155 68.5t-63 174.5q0 22 12 34.5t30 12.5t29.5 -12t12.5 -37q5 -78 42 -117q36 -40 93 -40 q87 0 137.5 88.5t50.5 192.5q0 83 -32.5 152t-76.5 106.5t-133 78.5q-56 25 -132 25q-31 0 -43 9q-16 13 -16 34q0 17 12.5 29.5t33.5 12.5q61 0 111.5 26t76 64.5t25.5 85.5q0 87 -64 151t-155 64q-94 0 -152.5 -55.5t-58.5 -124.5v-906h32q30 0 43 -11.5t13 -30.5 q0 -18 -13 -30t-43 -12h-229q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h113z" />
|
||||
<glyph unicode="à" d="M856 0v121q-183 -154 -391 -154q-151 0 -236 76.5t-85 187.5q0 122 112 213t327 91q58 0 126 -7.5t147 -23.5v136q0 69 -64 120t-192 51q-98 0 -275 -57q-32 -10 -41 -10q-16 0 -27.5 12t-11.5 30q0 17 10 27q14 15 113 41q156 42 236 42q159 0 248 -78.5t89 -177.5v-556 h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-197zM856 418q-59 17 -125 25t-139 8q-183 0 -286 -79q-78 -59 -78 -141q0 -76 59.5 -128t173.5 -52q109 0 202.5 43.5t192.5 138.5v185zM525 1308l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5 q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="á" d="M856 0v121q-183 -154 -391 -154q-151 0 -236 76.5t-85 187.5q0 122 112 213t327 91q58 0 126 -7.5t147 -23.5v136q0 69 -64 120t-192 51q-98 0 -275 -57q-32 -10 -41 -10q-16 0 -27.5 12t-11.5 30q0 17 10 27q14 15 113 41q156 42 236 42q159 0 248 -78.5t89 -177.5v-556 h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-197zM856 418q-59 17 -125 25t-139 8q-183 0 -286 -79q-78 -59 -78 -141q0 -76 59.5 -128t173.5 -52q109 0 202.5 43.5t192.5 138.5v185zM760 1244l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18 t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="â" d="M856 0v121q-183 -154 -391 -154q-151 0 -236 76.5t-85 187.5q0 122 112 213t327 91q58 0 126 -7.5t147 -23.5v136q0 69 -64 120t-192 51q-98 0 -275 -57q-32 -10 -41 -10q-16 0 -27.5 12t-11.5 30q0 17 10 27q14 15 113 41q156 42 236 42q159 0 248 -78.5t89 -177.5v-556 h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-197zM856 418q-59 17 -125 25t-139 8q-183 0 -286 -79q-78 -59 -78 -141q0 -76 59.5 -128t173.5 -52q109 0 202.5 43.5t192.5 138.5v185zM614 1310l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12 q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="ã" d="M856 0v121q-183 -154 -391 -154q-151 0 -236 76.5t-85 187.5q0 122 112 213t327 91q58 0 126 -7.5t147 -23.5v136q0 69 -64 120t-192 51q-98 0 -275 -57q-32 -10 -41 -10q-16 0 -27.5 12t-11.5 30q0 17 10 27q14 15 113 41q156 42 236 42q159 0 248 -78.5t89 -177.5v-556 h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-197zM856 418q-59 17 -125 25t-139 8q-183 0 -286 -79q-78 -59 -78 -141q0 -76 59.5 -128t173.5 -52q109 0 202.5 43.5t192.5 138.5v185zM892 1167q17 0 29.5 -12t12.5 -27q0 -17 -13 -32q-40 -45 -95 -74 q-38 -21 -79 -21q-64 0 -173 79q-58 43 -90 43q-40 0 -101 -56q-27 -25 -46 -25q-18 0 -29.5 12t-11.5 28q0 26 51 66q78 59 136 59q30 0 61 -12.5t101 -60.5t102 -48q38 0 115 68q16 13 30 13z" />
|
||||
<glyph unicode="ä" d="M856 0v121q-183 -154 -391 -154q-151 0 -236 76.5t-85 187.5q0 122 112 213t327 91q58 0 126 -7.5t147 -23.5v136q0 69 -64 120t-192 51q-98 0 -275 -57q-32 -10 -41 -10q-16 0 -27.5 12t-11.5 30q0 17 10 27q14 15 113 41q156 42 236 42q159 0 248 -78.5t89 -177.5v-556 h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-197zM856 418q-59 17 -125 25t-139 8q-183 0 -286 -79q-78 -59 -78 -141q0 -76 59.5 -128t173.5 -52q109 0 202.5 43.5t192.5 138.5v185zM435 1146q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24 q34 0 58 -24t24 -58zM864 1146q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="å" d="M856 0v121q-183 -154 -391 -154q-151 0 -236 76.5t-85 187.5q0 122 112 213t327 91q58 0 126 -7.5t147 -23.5v136q0 69 -64 120t-192 51q-98 0 -275 -57q-32 -10 -41 -10q-16 0 -27.5 12t-11.5 30q0 17 10 27q14 15 113 41q156 42 236 42q159 0 248 -78.5t89 -177.5v-556 h112q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-197zM856 418q-59 17 -125 25t-139 8q-183 0 -286 -79q-78 -59 -78 -141q0 -76 59.5 -128t173.5 -52q109 0 202.5 43.5t192.5 138.5v185zM795 1186q0 -73 -53 -125.5t-128 -52.5t-128 52.5t-53 125.5t53 125.5t128 52.5 t128 -52.5t53 -125.5zM735 1186q0 49 -35.5 83.5t-85.5 34.5q-51 0 -86 -35t-35 -83t35.5 -83t85.5 -35t85.5 34.5t35.5 83.5z" />
|
||||
<glyph unicode="æ" d="M1192 412h-534q15 -181 100 -286q61 -75 129 -75q89 0 231 116q18 15 33 15q18 0 29.5 -12t11.5 -30q0 -16 -13 -31q-48 -51 -152 -103q-79 -39 -139 -39q-61 0 -122 39.5t-108 119.5v-70q0 -30 -11.5 -43t-30.5 -13t-30.5 13t-11.5 43v45q-71 -76 -127 -105t-119 -29 q-80 0 -154 43t-116 125t-42 165q0 55 29.5 95.5t115.5 80.5q125 58 234 58q45 0 90 -6.5t89 -19.5v125q0 70 -53 124t-114 54q-33 0 -86 -14.5t-103 -40.5q-26 -13 -37 -13q-16 0 -28.5 12.5t-12.5 28.5t14 31t105 48t153 33q69 0 134 -47.5t96 -130.5q55 91 105 128 q65 50 136 50q109 0 208.5 -126.5t100.5 -357.5zM1107 496q-20 156 -102 249q-58 66 -125 66q-63 0 -121 -67q-80 -92 -101 -248h449zM574 420q-45 15 -88 22.5t-84 7.5q-141 0 -249 -72q-53 -34 -53 -85q0 -59 30.5 -119.5t84 -91.5t111.5 -31q53 0 100 30q64 40 148 148 v191z" />
|
||||
<glyph unicode="ç" d="M965 781v28q0 31 12 44t30 13q19 0 31 -13t12 -44v-190q-1 -31 -12.5 -44t-30.5 -13q-17 0 -28.5 11.5t-13.5 38.5q-6 71 -93.5 135t-235.5 64q-187 0 -284 -117t-97 -268q0 -163 107 -269t277 -106q98 0 199.5 36t183.5 116q21 20 37 20q17 0 28.5 -11.5t11.5 -28.5 q0 -43 -101 -109q-163 -107 -363 -107q-203 0 -333.5 129.5t-130.5 328.5q0 203 133.5 337t336.5 134q193 0 324 -115zM586 -163v153q0 22 8.5 31t21.5 9q14 0 22 -9.5t8 -30.5v-96q56 -8 87 -38.5t31 -71.5q0 -49 -37.5 -83t-106.5 -34q-47 0 -101 18.5t-67 33.5 q-10 11 -10 23q0 13 8.5 21.5t21.5 8.5q10 0 23 -7q68 -38 125 -38q39 0 61 18.5t22 40.5q0 19 -17 33q-23 18 -59 18h-41z" />
|
||||
<glyph unicode="è" d="M1069 413h-856q22 -163 136.5 -262.5t283.5 -99.5q94 0 197 31t168 82q19 15 33 15q16 0 28 -12.5t12 -29.5t-16 -33q-48 -50 -170.5 -93.5t-251.5 -43.5q-216 0 -360.5 141.5t-144.5 342.5q0 183 135.5 314t335.5 131q206 0 339 -134.5t131 -348.5zM984 498 q-25 139 -131.5 226t-253.5 87t-253 -86t-132 -227h770zM525 1309l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="é" d="M1069 413h-856q22 -163 136.5 -262.5t283.5 -99.5q94 0 197 31t168 82q19 15 33 15q16 0 28 -12.5t12 -29.5t-16 -33q-48 -50 -170.5 -93.5t-251.5 -43.5q-216 0 -360.5 141.5t-144.5 342.5q0 183 135.5 314t335.5 131q206 0 339 -134.5t131 -348.5zM984 498 q-25 139 -131.5 226t-253.5 87t-253 -86t-132 -227h770zM761 1245l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="ê" d="M1069 413h-856q22 -163 136.5 -262.5t283.5 -99.5q94 0 197 31t168 82q19 15 33 15q16 0 28 -12.5t12 -29.5t-16 -33q-48 -50 -170.5 -93.5t-251.5 -43.5q-216 0 -360.5 141.5t-144.5 342.5q0 183 135.5 314t335.5 131q206 0 339 -134.5t131 -348.5zM984 498 q-25 139 -131.5 226t-253.5 87t-253 -86t-132 -227h770zM614 1310l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="ë" d="M1069 413h-856q22 -163 136.5 -262.5t283.5 -99.5q94 0 197 31t168 82q19 15 33 15q16 0 28 -12.5t12 -29.5t-16 -33q-48 -50 -170.5 -93.5t-251.5 -43.5q-216 0 -360.5 141.5t-144.5 342.5q0 183 135.5 314t335.5 131q206 0 339 -134.5t131 -348.5zM984 498 q-25 139 -131.5 226t-253.5 87t-253 -86t-132 -227h770zM486 1146q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM915 1146q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="ì" d="M660 866v-782h330q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-744q-30 0 -43 12t-17 32q4 17 17 28.5t43 11.5h330v697h-245q-30 0 -43.5 12t-13.5 30q0 19 13 31t44 12h329zM449 1300l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20 l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="í" d="M660 866v-782h330q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-744q-30 0 -43 12t-17 32q4 17 17 28.5t43 11.5h330v697h-245q-30 0 -43.5 12t-13.5 30q0 19 13 31t44 12h329zM675 1244l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23 l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="î" d="M660 866v-782h330q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-744q-30 0 -43 12t-17 32q4 17 17 28.5t43 11.5h330v697h-245q-30 0 -43.5 12t-13.5 30q0 19 13 31t44 12h329zM530 1310l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17 l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="ï" d="M660 866v-782h330q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-744q-30 0 -43 12t-17 32q4 17 17 28.5t43 11.5h330v697h-245q-30 0 -43.5 12t-13.5 30q0 19 13 31t44 12h329zM398 1146q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24 t24 -58zM827 1146q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="ð" d="M725 1173l159 58q28 9 47 9q16 0 26.5 -11t10.5 -29q0 -19 -16 -30q-27 -20 -155 -47q137 -126 205 -272t68 -355q0 -258 -131.5 -392.5t-342.5 -134.5q-200 0 -333.5 135t-133.5 326q0 183 132 313t327 130q95 0 177 -34t135 -80q36 -33 75 -95q-38 150 -87.5 229 t-181.5 196q-321 -112 -341 -112q-19 0 -31 11t-12 27q0 15 15 28.5t104 40.5q140 42 180 51q-67 20 -138 29q-39 5 -53 17.5t-14 28.5t14 28t41 12q130 0 254 -77zM600 48q94 0 187 47t142 133t49 190q0 157 -108.5 263.5t-272.5 106.5q-167 0 -276.5 -107.5t-109.5 -256.5 q0 -94 52.5 -185t147.5 -141t189 -50z" />
|
||||
<glyph unicode="ñ" d="M343 866v-127q88 89 159 123t160 34q96 0 175 -41q56 -30 101.5 -99.5t45.5 -142.5v-529h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-225q-31 0 -44 12t-13 30q0 19 13 30.5t44 11.5h70v515q0 89 -65 150.5t-174 61.5q-83 0 -144 -33.5t-174 -166.5v-527h95 q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-274q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h95v697h-71q-30 0 -43 12t-13 31q0 18 13 30t43 12h155zM892 1167q17 0 29.5 -12t12.5 -27q0 -17 -13 -32q-40 -45 -95 -74q-38 -21 -79 -21q-64 0 -173 79q-58 43 -90 43 q-40 0 -101 -56q-27 -25 -46 -25q-18 0 -29.5 12t-11.5 28q0 26 51 66q78 59 136 59q30 0 61 -12.5t101 -60.5t102 -48q38 0 115 68q16 13 30 13z" />
|
||||
<glyph unicode="ò" d="M1084 431q0 -192 -137.5 -328t-331.5 -136q-196 0 -333 136.5t-137 327.5q0 192 137 328.5t333 136.5q194 0 331.5 -136t137.5 -329zM999 431q0 158 -112.5 269t-272.5 111t-272.5 -111.5t-112.5 -268.5q0 -156 112.5 -268t272.5 -112t272.5 111.5t112.5 268.5zM524 1309 l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="ó" d="M1084 431q0 -192 -137.5 -328t-331.5 -136q-196 0 -333 136.5t-137 327.5q0 192 137 328.5t333 136.5q194 0 331.5 -136t137.5 -329zM999 431q0 158 -112.5 269t-272.5 111t-272.5 -111.5t-112.5 -268.5q0 -156 112.5 -268t272.5 -112t272.5 111.5t112.5 268.5zM760 1245 l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="ô" d="M1084 431q0 -192 -137.5 -328t-331.5 -136q-196 0 -333 136.5t-137 327.5q0 192 137 328.5t333 136.5q194 0 331.5 -136t137.5 -329zM999 431q0 158 -112.5 269t-272.5 111t-272.5 -111.5t-112.5 -268.5q0 -156 112.5 -268t272.5 -112t272.5 111.5t112.5 268.5zM614 1310 l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="õ" d="M1084 431q0 -192 -137.5 -328t-331.5 -136q-196 0 -333 136.5t-137 327.5q0 192 137 328.5t333 136.5q194 0 331.5 -136t137.5 -329zM999 431q0 158 -112.5 269t-272.5 111t-272.5 -111.5t-112.5 -268.5q0 -156 112.5 -268t272.5 -112t272.5 111.5t112.5 268.5zM891 1167 q17 0 29.5 -12t12.5 -27q0 -17 -13 -32q-40 -45 -95 -74q-38 -21 -79 -21q-64 0 -173 79q-58 43 -90 43q-40 0 -101 -56q-27 -25 -46 -25q-18 0 -29.5 12t-11.5 28q0 26 51 66q78 59 136 59q30 0 61 -12.5t101 -60.5t102 -48q38 0 115 68q16 13 30 13z" />
|
||||
<glyph unicode="ö" d="M1084 431q0 -192 -137.5 -328t-331.5 -136q-196 0 -333 136.5t-137 327.5q0 192 137 328.5t333 136.5q194 0 331.5 -136t137.5 -329zM999 431q0 158 -112.5 269t-272.5 111t-272.5 -111.5t-112.5 -268.5q0 -156 112.5 -268t272.5 -112t272.5 111.5t112.5 268.5zM482 1146 q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM911 1146q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="÷" d="M696 978q0 -34 -24 -58t-57 -24q-34 0 -58 24t-24 58q0 33 24 57t58 24q33 0 57 -23.5t24 -57.5zM968 543h-707q-79 0 -87 2q-13 3 -21.5 14.5t-8.5 25.5t8.5 25.5t21.5 14.5q8 2 87 2h707q79 0 87 -2q13 -3 21.5 -14.5t8.5 -25.5t-8.5 -25.5t-21.5 -14.5q-8 -2 -87 -2z M696 192q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 23.5t-24 57.5t24 57.5t57 23.5q34 0 58 -23.5t24 -57.5z" />
|
||||
<glyph unicode="ø" d="M320 66l-126 -129q-22 -23 -40 -23t-30 12.5t-12 31.5q0 16 22 38l123 126q-123 133 -123 310q0 189 140.5 326.5t342.5 137.5q167 0 298 -99l125 128q22 22 40 22q17 0 29.5 -12t12.5 -31q0 -16 -22 -39l-122 -125q122 -132 122 -309q0 -190 -140.5 -327t-342.5 -137 q-162 0 -297 99zM855 736q-106 75 -238 75q-167 0 -282.5 -112.5t-115.5 -267.5q0 -137 97 -248zM379 127q106 -76 239 -76q167 0 282 112.5t115 267.5q0 141 -96 249z" />
|
||||
<glyph unicode="ù" d="M902 0v123q-172 -156 -372 -156q-123 0 -187 67q-83 88 -83 205v542h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197v-627q0 -82 52 -135t130 -53q205 0 376 188v542h-155q-30 0 -43 12t-13 31q0 18 13 30t43 12h239v-782h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30 t-43 -12h-155zM525 1309l236 -204l22 -25q3 -5 3 -16q0 -18 -12.5 -30.5t-30.5 -12.5q-15 0 -38 20l-236 204q-25 22 -25 41q0 18 12.5 30.5t30.5 12.5q15 0 38 -20z" />
|
||||
<glyph unicode="ú" d="M902 0v123q-172 -156 -372 -156q-123 0 -187 67q-83 88 -83 205v542h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197v-627q0 -82 52 -135t130 -53q205 0 376 188v542h-155q-30 0 -43 12t-13 31q0 18 13 30t43 12h239v-782h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30 t-43 -12h-155zM761 1245l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5z" />
|
||||
<glyph unicode="û" d="M902 0v123q-172 -156 -372 -156q-123 0 -187 67q-83 88 -83 205v542h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197v-627q0 -82 52 -135t130 -53q205 0 376 188v542h-155q-30 0 -43 12t-13 31q0 18 13 30t43 12h239v-782h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30 t-43 -12h-155zM615 1310l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="ü" d="M902 0v123q-172 -156 -372 -156q-123 0 -187 67q-83 88 -83 205v542h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h197v-627q0 -82 52 -135t130 -53q205 0 376 188v542h-155q-30 0 -43 12t-13 31q0 18 13 30t43 12h239v-782h71q30 0 43 -11.5t13 -30.5q0 -18 -13 -30 t-43 -12h-155zM446 1146q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM875 1146q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="ý" d="M620 0l-390 781h-25q-30 0 -43 12t-13 30q0 13 6.5 23.5t17 15t32.5 4.5h230q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-113l343 -689l338 689h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h229q31 0 44 -12t13 -31q0 -13 -8 -24t-18 -14.5t-56 -3.5l-532 -1083h131 q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-484q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h263zM900 1245l-237 -204q-22 -20 -38 -20q-17 0 -29.5 12.5t-12.5 30.5q0 10 4.5 18t20.5 23l236 204q23 20 39 20q17 0 29.5 -12.5t12.5 -30.5q0 -10 -4.5 -18.5t-20.5 -22.5 z" />
|
||||
<glyph unicode="þ" d="M298 1255v-542q75 91 161 137t203 46q124 0 229 -58t162.5 -161.5t57.5 -217.5q0 -181 -129.5 -309.5t-318.5 -128.5q-225 0 -365 183v-506h204q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-401q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h113v1472h-113q-30 0 -43 12 t-13 31q0 18 13 30t43 12h197zM1026 459q0 145 -105.5 248.5t-257.5 103.5q-153 0 -259 -104t-106 -248q0 -145 106 -249t259 -104q151 0 257 103.5t106 249.5z" />
|
||||
<glyph unicode="ÿ" d="M620 0l-390 781h-25q-30 0 -43 12t-13 30q0 13 6.5 23.5t17 15t32.5 4.5h230q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-113l343 -689l338 689h-113q-30 0 -43 12t-13 31q0 18 13 30t43 12h229q31 0 44 -12t13 -31q0 -13 -8 -24t-18 -14.5t-56 -3.5l-532 -1083h131 q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-484q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h263zM542 1147q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM971 1147q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58 t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="ı" d="M660 866v-782h330q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-744q-30 0 -43 12t-17 32q4 17 17 28.5t43 11.5h330v697h-245q-30 0 -43.5 12t-13.5 30q0 19 13 31t44 12h329z" />
|
||||
<glyph unicode="Œ" d="M698 566v-482h430v193q0 30 11.5 43t30.5 13t30.5 -13t11.5 -43v-277h-669q-230 0 -378 157.5t-148 424.5q0 108 28 211.5t72 165.5t126 122q62 45 125.5 67t158.5 22h644v-320q0 -30 -12 -43t-31 -13q-18 0 -30 13t-12 43v236h-388v-436h163v57q0 31 12 44t30 13 q19 0 31 -13t12 -44l-1 -199q0 -30 -11.5 -43t-30.5 -13q-18 0 -30 13t-12 43v58h-163zM613 1086h-67q-122 0 -192 -35t-129.5 -98t-91.5 -158.5t-32 -213.5q0 -233 122.5 -365t322.5 -132h67v1002z" />
|
||||
<glyph unicode="œ" d="M1193 413h-536q8 -115 50 -204t89.5 -123.5t94.5 -34.5q76 0 187 84q46 35 55.5 40t19.5 5q16 0 28.5 -12.5t12.5 -29.5q0 -19 -30 -44q-47 -40 -113 -76q-92 -51 -162 -51q-76 0 -152 61t-122 186q-50 -129 -125 -188t-151 -59q-115 0 -204 112q-117 145 -117 360 q0 208 113 347q91 111 204 111q77 0 155.5 -60t124.5 -178q103 238 268 238q110 0 208.5 -124t101.5 -360zM574 432q0 178 -79 279.5t-157 101.5q-79 0 -157.5 -101.5t-78.5 -279.5t79 -279.5t157 -101.5q79 0 157.5 101.5t78.5 279.5zM1107 498q-25 162 -102 249 q-59 66 -123 66t-122 -65q-77 -87 -102 -250h449z" />
|
||||
<glyph unicode="Ÿ" d="M659 528v-444h218q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-521q-30 0 -43 12t-13 30q0 19 12.5 30.5t43.5 11.5h218v444l-369 558h-50q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h231q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-83l314 -473l307 473h-82 q-31 0 -44 11.5t-13 30.5t13 30.5t44 11.5h230q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5h-50zM483 1414q0 -34 -24 -57.5t-58 -23.5q-33 0 -57 24t-24 57q0 34 24 58t57 24q34 0 58 -24t24 -58zM912 1414q0 -34 -24 -57.5t-58 -23.5t-57.5 24t-23.5 57q0 34 23.5 58 t57.5 24t58 -24t24 -58z" />
|
||||
<glyph unicode="ˆ" d="M614 1310l271 -206q18 -14 23 -22.5t5 -19.5q0 -18 -12.5 -30t-30.5 -12q-13 0 -35 17l-221 169l-220 -169q-22 -17 -36 -17q-17 0 -29.5 12.5t-12.5 29.5q0 21 28 42z" />
|
||||
<glyph unicode="˚" d="M795 1186q0 -73 -53 -125.5t-128 -52.5t-128 52.5t-53 125.5t53 125.5t128 52.5t128 -52.5t53 -125.5zM735 1186q0 49 -35.5 83.5t-85.5 34.5q-51 0 -86 -35t-35 -83t35.5 -83t85.5 -35t85.5 34.5t35.5 83.5z" />
|
||||
<glyph unicode="˜" d="M892 1167q17 0 29.5 -12t12.5 -27q0 -17 -13 -32q-40 -45 -95 -74q-38 -21 -79 -21q-64 0 -173 79q-58 43 -90 43q-40 0 -101 -56q-27 -25 -46 -25q-18 0 -29.5 12t-11.5 28q0 26 51 66q78 59 136 59q30 0 61 -12.5t101 -60.5t102 -48q38 0 115 68q16 13 30 13z" />
|
||||
<glyph unicode=" " horiz-adv-x="801" />
|
||||
<glyph unicode=" " horiz-adv-x="1603" />
|
||||
<glyph unicode=" " horiz-adv-x="801" />
|
||||
<glyph unicode=" " horiz-adv-x="1603" />
|
||||
<glyph unicode=" " horiz-adv-x="534" />
|
||||
<glyph unicode=" " horiz-adv-x="400" />
|
||||
<glyph unicode=" " horiz-adv-x="267" />
|
||||
<glyph unicode=" " horiz-adv-x="267" />
|
||||
<glyph unicode=" " horiz-adv-x="200" />
|
||||
<glyph unicode=" " horiz-adv-x="320" />
|
||||
<glyph unicode=" " horiz-adv-x="89" />
|
||||
<glyph unicode="‐" d="M1043 639v-120h-857v120h857z" />
|
||||
<glyph unicode="‑" d="M1043 639v-120h-857v120h857z" />
|
||||
<glyph unicode="‒" d="M1043 639v-120h-857v120h857z" />
|
||||
<glyph unicode="–" d="M1028 543h-827q-30 0 -43 11.5t-13 30.5t13 30.5t43 11.5h827q30 0 43 -11.5t13 -30.5t-13 -30.5t-43 -11.5z" />
|
||||
<glyph unicode="—" d="M1187 544h-1146q-30 0 -43 12t-13 30q0 19 13 31t43 12h1146q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12z" />
|
||||
<glyph unicode="‘" d="M509 1255h274l145 -520q3 -12 3 -23q0 -24 -17.5 -41.5t-43.5 -17.5q-36 0 -63 50z" />
|
||||
<glyph unicode="’" d="M442 1255h273l-297 -552q-27 -50 -65 -50q-25 0 -42.5 17.5t-17.5 42.5q0 10 3 22z" />
|
||||
<glyph unicode="‚" d="M448 277h273l-297 -551q-27 -51 -65 -51q-25 0 -42.5 18t-17.5 43q0 10 3 22z" />
|
||||
<glyph unicode="“" d="M179 1255h218l171 -431q9 -23 9 -35q0 -21 -15 -36t-37 -15q-28 0 -53 40zM611 1255h218l171 -431q9 -23 9 -35q0 -21 -14.5 -36t-36.5 -15q-29 0 -54 40z" />
|
||||
<glyph unicode="”" d="M400 1255h217l-293 -477q-24 -40 -54 -40q-21 0 -36 15t-15 35q0 13 9 36zM832 1255h217l-292 -477q-25 -40 -54 -40q-22 0 -37 15t-15 35q0 13 10 36z" />
|
||||
<glyph unicode="„" d="M405 256h217l-293 -476q-24 -40 -54 -40q-21 0 -36 15t-15 35q0 13 9 36zM837 256h217l-292 -476q-25 -40 -54 -40q-22 0 -37 15t-15 35q0 13 10 36z" />
|
||||
<glyph unicode="•" d="M862 637q0 -103 -73 -175.5t-175 -72.5t-174.5 72.5t-72.5 175.5q0 102 72.5 174.5t174.5 72.5q103 0 175.5 -72.5t72.5 -174.5z" />
|
||||
<glyph unicode="…" d="M306 73q0 -43 -30 -73t-72 -30q-43 0 -73 30t-30 73q0 42 30 72t73 30q42 0 72 -30t30 -72zM716 73q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73q0 42 30 72t72 30q43 0 73 -30t30 -72zM1128 73q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73q0 42 29.5 72t72.5 30t73 -30 t30 -72z" />
|
||||
<glyph unicode=" " horiz-adv-x="320" />
|
||||
<glyph unicode="‹" d="M107 434l448 410q26 24 44 24t30 -12t12 -31q0 -16 -23 -41l-313 -350l313 -349q23 -25 23 -42q0 -18 -12 -30t-30 -12t-44 23z" />
|
||||
<glyph unicode="›" d="M1130 434l-449 -410q-25 -23 -43 -23t-30 12t-12 30q0 17 22 42l313 349l-313 350q-22 25 -22 42q0 18 12 30t30 12t43 -24z" />
|
||||
<glyph unicode=" " horiz-adv-x="400" />
|
||||
<glyph unicode="€" d="M130 488h-83q-40 0 -40 30t40 30h80v90h-80q-40 0 -40 30t40 30h84q10 209 154 354t344 145q208 0 358 -142v59q0 56 42 56t42 -56v-233q0 -57 -42 -57q-39 0 -42 51q-6 94 -115 166t-240 72q-111 0 -198.5 -52t-147.5 -145t-71 -218h583q42 0 42 -30t-42 -30h-586v-90 h557q42 0 42 -30t-42 -30h-554q8 -177 139.5 -307t311.5 -130q201 0 359 189q18 21 38 21q40 0 40 -39q0 -17 -34.5 -60.5t-99.5 -93.5t-141 -75.5t-160 -25.5q-148 0 -267 69t-194 185.5t-77 266.5z" />
|
||||
<glyph unicode="™" d="M297 1105v-432h93q41 0 41 -33q0 -32 -41 -32h-252q-41 0 -41 32q0 33 41 33h94v432h-163v-143q0 -41 -32 -41q-33 0 -33 41v208h520v-208q0 -41 -32 -41q-33 0 -33 41v143h-162zM914 776h-68l-166 325v-428h58q42 0 42 -33q0 -32 -42 -32h-161q-42 0 -42 32q0 33 42 33 h36v497h107l160 -312l160 312h107v-497h36q42 0 42 -33q0 -32 -42 -32h-161q-42 0 -42 32q0 33 42 33h58v430z" />
|
||||
<glyph unicode="◼" horiz-adv-x="865" d="M0 865h865v-865h-865v865z" />
|
||||
<glyph unicode="fi" d="M995 1297v-217h-124v217h124zM328 781v-697h149q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-407q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h173v697h-161q-30 0 -43 12t-13 31q0 18 13 30t43 12h161v124q0 117 67.5 191t154.5 74q68 0 147 -28q42 -15 42 -46 q0 -18 -11 -29.5t-27 -11.5q-7 0 -22 5q-81 25 -127 25q-57 0 -92 -41q-47 -56 -47 -139v-124h149q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-149zM996 866v-782h155q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-400q-30 0 -43 12t-13 30q0 19 12.5 30.5t43.5 11.5 h161v697h-119q-30 0 -43 12t-13 31q0 18 13 30t43 12h203z" />
|
||||
<glyph unicode="fl" d="M333 781v-697h149q30 0 43 -11.5t13 -30.5q0 -18 -13 -30t-43 -12h-407q-30 0 -43 12t-13 30q0 19 13 30.5t43 11.5h173v697h-161q-30 0 -43 12t-13 31q0 18 13 30t43 12h161v124q0 117 67.5 191t154.5 74q68 0 147 -28q42 -15 42 -46q0 -18 -11 -29.5t-27 -11.5 q-7 0 -22 5q-81 25 -127 25q-57 0 -92 -41q-47 -56 -47 -139v-124h149q30 0 43 -12t13 -31q0 -18 -13 -30t-43 -12h-149zM1000 1255v-1171h161q31 0 44 -11.5t13 -30.5q0 -18 -13 -30t-44 -12h-406q-30 0 -43 12t-13 30q0 19 12.5 30.5t43.5 11.5h161v1086h-119 q-30 0 -43 12t-13 31q0 18 13 30t43 12h203z" />
|
||||
</font>
|
||||
</defs></svg>
|
After Width: | Height: | Size: 82 KiB |
BIN
src/public/font/CourierNew.ttf
Normal file
BIN
src/public/font/CourierNew.woff
Normal file
BIN
src/public/font/CourierNew.woff2
Normal file
BIN
src/public/font/FontStuck-Extended.eot
Normal file
BIN
src/public/font/FontStuck-Extended.otf
Normal file
242
src/public/font/FontStuck-Extended.svg
Normal file
|
@ -0,0 +1,242 @@
|
|||
<?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" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
|
||||
<metadata></metadata>
|
||||
<defs>
|
||||
<font id="FontStuck-Extended" horiz-adv-x="448" >
|
||||
<font-face units-per-em="1024" ascent="819" descent="-205" />
|
||||
<missing-glyph horiz-adv-x="320" />
|
||||
<glyph horiz-adv-x="0" />
|
||||
<glyph horiz-adv-x="341" />
|
||||
<glyph unicode=" " horiz-adv-x="320" />
|
||||
<glyph unicode="	" horiz-adv-x="320" />
|
||||
<glyph unicode=" " horiz-adv-x="320" />
|
||||
<glyph unicode="!" horiz-adv-x="192" d="M0 0v64h128v-64h-128zM0 128v384h128v-384h-128z" />
|
||||
<glyph unicode=""" horiz-adv-x="256" d="M0 256v256h64v-256h-64zM128 256v256h64v-256h-64z" />
|
||||
<glyph unicode="#" horiz-adv-x="512" d="M256 256v64h-64v-64h64zM64 0v192h-64v64h64v64h-64v64h64v192h128v-192h64v192h128v-192h64v-64h-64v-64h64v-64h-64v-192h-128v192h-64v-192h-128z" />
|
||||
<glyph unicode="$" d="M128 -128v128h-128v192h128v-128h128v128h-128v64h-128v192h64v64h128v64h64v-64h128v-128h-128v64h-128v-128h192v-64h64v-192h-64v-64h-128v-128h-64z" />
|
||||
<glyph unicode="%" d="M192 0v64h128v-64h-128zM128 64v128h64v-128h-64zM320 64v128h64v-128h-64zM0 192v64h128v-64h-128zM192 192v64h-64v64h-64v64h128v-64h64v-64h64v-64h-128zM256 320v64h128v-64h-128zM0 384v128h64v-128h-64zM192 384v128h64v-128h-64zM64 512v64h128v-64h-128z" />
|
||||
<glyph unicode="&" horiz-adv-x="512" d="M256 64v64h-64v64h-64v-128h128zM64 0v64h-64v192h64v192h64v64h256v-64h-192v-192h64v-64h64v64h128v-64h-64v-128h64v-64h-384z" />
|
||||
<glyph unicode="'" horiz-adv-x="128" d="M0 256v256h64v-256h-64z" />
|
||||
<glyph unicode="(" horiz-adv-x="256" d="M128 -128v64h-64v128h-64v320h64v128h64v64h64v-128h-64v-448h64v-128h-64z" />
|
||||
<glyph unicode=")" horiz-adv-x="256" d="M0 -128v128h64v448h-64v128h64v-64h64v-128h64v-320h-64v-128h-64v-64h-64z" />
|
||||
<glyph unicode="*" d="M64 192v192h-64v64h128v128h128v-128h128v-64h-64v-192h-64v64h-128v-64h-64z" />
|
||||
<glyph unicode="+" horiz-adv-x="512" d="M192 0v192h-192v64h192v192h64v-192h192v-64h-192v-192h-64z" />
|
||||
<glyph unicode="," horiz-adv-x="256" d="M0 -128v128h64v128h128v-64h-64v-128h-64v-64h-64z" />
|
||||
<glyph unicode="-" d="M0 192v64h384v-64h-384z" />
|
||||
<glyph unicode="." horiz-adv-x="192" d="M0 0v128h128v-128h-128z" />
|
||||
<glyph unicode="/" d="M0 -128v128h64v192h64v128h64v192h64v128h128v-128h-64v-192h-64v-128h-64v-192h-64v-128h-128z" />
|
||||
<glyph unicode="0" d="M256 64v448h-128v-448h128zM64 0v64h-64v448h64v64h256v-64h64v-448h-64v-64h-256z" />
|
||||
<glyph unicode="1" d="M0 0v64h128v384h-128v64h128v64h128v-512h128v-64h-384z" />
|
||||
<glyph unicode="2" d="M0 0v128h64v64h64v64h64v64h64v192h-128v-128h-128v128h64v64h256v-64h64v-192h-64v-64h-64v-64h-64v-64h-64v-64h256v-64h-384z" />
|
||||
<glyph unicode="3" d="M0 64v64h64v-64h-64zM0 448v64h64v-64h-64zM64 0v64h192v192h-128v64h128v192h-192v64h256v-64h64v-192h-64v-64h64v-192h-64v-64h-256z" />
|
||||
<glyph unicode="4" horiz-adv-x="512" d="M256 192v192h-64v-128h-64v-64h128zM128 0v64h128v64h-256v64h64v128h64v128h64v128h192v-384h64v-64h-64v-64h64v-64h-320z" />
|
||||
<glyph unicode="5" d="M0 64v64h64v-64h-64zM64 0v64h192v256h-128v-64h-64v320h320v-64h-192v-128h128v-64h64v-256h-64v-64h-256z" />
|
||||
<glyph unicode="6" d="M64 0v64h-64v384h64v64h64v64h256v-64h-192v-64h-64v-128h64v-64h-64v-192h128v256h-64v64h128v-64h64v-256h-64v-64h-256z" />
|
||||
<glyph unicode="7" d="M128 0v192h64v256h64v64h-192v-64h-64v128h384v-192h-64v-256h-64v-128h-128z" />
|
||||
<glyph unicode="8" d="M256 64v192h-128v-192h128zM256 320v192h-128v-192h128zM64 0v64h-64v192h64v64h-64v192h64v64h256v-64h64v-192h-64v-64h64v-192h-64v-64h-256z" />
|
||||
<glyph unicode="9" d="M0 0v64h192v64h64v128h-64v64h64v192h-128v-256h64v-64h-128v64h-64v256h64v64h256v-64h64v-384h-64v-64h-64v-64h-256z" />
|
||||
<glyph unicode=":" horiz-adv-x="192" d="M0 0v128h128v-128h-128zM0 256v128h128v-128h-128z" />
|
||||
<glyph unicode=";" horiz-adv-x="256" d="M0 -128v128h64v-128h-64zM64 0v128h128v-64h-64v-64h-64zM64 256v128h128v-128h-128z" />
|
||||
<glyph unicode="<" horiz-adv-x="576" d="M384 0v64h128v-64h-128zM256 64v64h128v-64h-128zM128 128v64h128v-64h-128zM0 192v64h128v-64h-128zM128 256v64h128v-64h-128zM256 320v64h128v-64h-128zM384 384v64h128v-64h-128z" />
|
||||
<glyph unicode="=" horiz-adv-x="512" d="M0 128v64h448v-64h-448zM0 256v64h448v-64h-448z" />
|
||||
<glyph unicode=">" horiz-adv-x="576" d="M0 0v64h128v-64h-128zM128 64v64h128v-64h-128zM256 128v64h128v-64h-128zM384 192v64h128v-64h-128zM256 256v64h128v-64h-128zM128 320v64h128v-64h-128zM0 384v64h128v-64h-128z" />
|
||||
<glyph unicode="?" horiz-adv-x="384" d="M64 0v64h128v-64h-128zM64 128v128h64v64h64v128h-64v-64h-128v64h64v64h192v-64h64v-192h-64v-64h-64v-64h-128z" />
|
||||
<glyph unicode="@" d="M128 -64v64h192v-64h-192zM64 0v64h64v-64h-64zM320 0v64h64v-64h-64zM128 192v128h64v-128h-64zM0 64v384h64v-384h-64zM64 448v64h64v-64h-64zM192 128v64h128v128h-128v64h128v128h64v-384h-192zM128 512v64h192v-64h-192z" />
|
||||
<glyph unicode="A" horiz-adv-x="640" d="M320 192v192h-64v-192h64zM0 0v64h64v128h64v192h64v64h-128v64h320v-128h64v-192h64v-128h64v-64h-256v64h64v64h-192v-64h64v-64h-256z" />
|
||||
<glyph unicode="B" horiz-adv-x="512" d="M320 64v192h-128v-192h128zM320 320v128h-128v-128h128zM0 0v64h64v384h-64v64h384v-64h64v-128h-64v-64h64v-192h-64v-64h-384z" />
|
||||
<glyph unicode="C" d="M320 64v64h64v-64h-64zM128 0v64h-64v64h-64v256h64v64h64v64h256v-128h-64v64h-128v-64h-64v-256h64v-64h128v-64h-192z" />
|
||||
<glyph unicode="D" horiz-adv-x="512" d="M256 64v64h64v256h-64v64h-64v-384h64zM0 0v64h64v384h-64v64h320v-64h64v-64h64v-256h-64v-64h-64v-64h-320z" />
|
||||
<glyph unicode="E" horiz-adv-x="512" d="M0 0v64h64v384h-64v64h448v-192h-64v128h-192v-128h64v64h64v-192h-64v64h-64v-192h192v128h64v-192h-448z" />
|
||||
<glyph unicode="F" horiz-adv-x="512" d="M0 0v64h64v384h-64v64h448v-192h-64v128h-192v-128h64v64h64v-192h-64v64h-64v-192h128v-64h-320z" />
|
||||
<glyph unicode="G" horiz-adv-x="512" d="M64 0v64h-64v384h64v64h320v-192h-64v128h-192v-384h128v128h-64v64h256v-64h-64v-128h-64v-64h-256z" />
|
||||
<glyph unicode="H" horiz-adv-x="576" d="M0 0v64h64v384h-64v64h192v-192h128v192h192v-64h-64v-384h64v-64h-192v256h-128v-256h-192z" />
|
||||
<glyph unicode="I" d="M0 0v64h128v384h-128v64h384v-64h-128v-384h128v-64h-384z" />
|
||||
<glyph unicode="J" horiz-adv-x="576" d="M0 0v256h128v-192h128v384h-192v64h448v-64h-128v-384h-64v-64h-320z" />
|
||||
<glyph unicode="K" horiz-adv-x="576" d="M0 0v64h64v384h-64v64h256v-64h-64v-128h64v64h64v128h192v-64h-64v-64h-64v-64h-64v-64h64v-64h64v-128h64v-64h-128v64h-64v128h-128v-128h64v-64h-256z" />
|
||||
<glyph unicode="L" horiz-adv-x="512" d="M0 0v64h64v384h-64v64h256v-64h-64v-384h192v64h64v-128h-448z" />
|
||||
<glyph unicode="M" horiz-adv-x="640" d="M256 128v128h64v-128h-64zM0 0v64h64v384h-64v64h192v-64h64v-192h-64v-192h64v-64h-256zM320 0v64h64v192h-64v192h64v64h192v-64h-64v-384h64v-64h-256z" />
|
||||
<glyph unicode="N" horiz-adv-x="576" d="M0 0v64h64v384h-64v64h192v-128h64v-128h-64v-192h64v-64h-256zM320 0v128h-64v128h64v192h-64v64h256v-64h-64v-448h-128z" />
|
||||
<glyph unicode="O" d="M256 64v384h-128v-384h128zM64 0v64h-64v384h64v64h256v-64h64v-384h-64v-64h-256z" />
|
||||
<glyph unicode="P" horiz-adv-x="512" d="M320 256v192h-128v-192h128zM0 0v64h64v384h-64v64h384v-64h64v-192h-64v-64h-192v-128h128v-64h-320z" />
|
||||
<glyph unicode="Q" d="M320 -64v64h64v-64h-64zM256 64v384h-128v-384h128zM128 -128v128h-64v64h-64v384h64v64h256v-64h64v-384h-64v-64h-64v-64h64v-64h-192z" />
|
||||
<glyph unicode="R" horiz-adv-x="576" d="M320 256v192h-128v-192h128zM0 0v64h64v384h-64v64h384v-64h64v-192h-64v-128h64v-64h64v-64h-128v64h-64v64h-64v64h-64v-128h64v-64h-256z" />
|
||||
<glyph unicode="S" d="M0 0v128h128v-64h128v128h-128v64h-64v64h-64v128h64v64h320v-128h-128v64h-128v-128h128v-64h64v-64h64v-128h-64v-64h-320z" />
|
||||
<glyph unicode="T" d="M64 0v64h64v384h-64v-128h-64v192h384v-192h-64v128h-64v-384h64v-64h-256z" />
|
||||
<glyph unicode="U" horiz-adv-x="576" d="M128 0v64h-64v384h-64v64h192v-448h128v448h192v-64h-64v-384h-64v-64h-256z" />
|
||||
<glyph unicode="V" horiz-adv-x="640" d="M192 0v128h-64v192h-64v128h-64v64h256v-64h-64v-128h64v-192h64v192h64v128h-64v64h256v-64h-64v-128h-64v-192h-64v-128h-192z" />
|
||||
<glyph unicode="W" horiz-adv-x="640" d="M128 0v192h-64v256h-64v64h256v-64h-64v-128h64v64h64v-64h64v128h-64v64h256v-64h-64v-256h-64v-192h-128v256h-64v-256h-128z" />
|
||||
<glyph unicode="X" horiz-adv-x="576" d="M0 0v64h64v64h64v64h64v128h-64v64h-64v64h-64v64h192v-128h128v64h-64v64h256v-64h-64v-64h-64v-64h-64v-128h64v-64h64v-64h64v-64h-192v128h-128v-64h64v-64h-256z" />
|
||||
<glyph unicode="Y" horiz-adv-x="576" d="M64 0v64h128v192h-64v128h-64v64h-64v64h192v-192h128v128h-64v64h256v-64h-64v-64h-64v-128h-64v-192h128v-64h-384z" />
|
||||
<glyph unicode="Z" d="M0 0v128h64v64h64v128h64v64h64v64h-192v-128h-64v192h384v-128h-64v-64h-64v-128h-64v-64h-64v-64h192v128h64v-192h-384z" />
|
||||
<glyph unicode="[" horiz-adv-x="320" d="M0 -128v704h256v-64h-128v-576h128v-64h-256z" />
|
||||
<glyph unicode="\" d="M256 -128v128h-64v192h-64v128h-64v192h-64v128h128v-128h64v-192h64v-128h64v-192h64v-128h-128z" />
|
||||
<glyph unicode="]" horiz-adv-x="320" d="M0 -128v64h128v576h-128v64h256v-704h-256z" />
|
||||
<glyph unicode="^" horiz-adv-x="384" d="M0 320v64h64v-64h-64zM256 320v64h64v-64h-64zM64 384v128h64v-128h-64zM192 384v128h64v-128h-64zM128 512v64h64v-64h-64z" />
|
||||
<glyph unicode="_" horiz-adv-x="640" d="M0 -256v64h576v-64h-576z" />
|
||||
<glyph unicode="`" horiz-adv-x="192" d="M64 448v64h64v-64h-64zM0 512v64h64v-64h-64z" />
|
||||
<glyph unicode="a" horiz-adv-x="512" d="M256 64v128h-128v-128h128zM64 0v64h-64v128h64v64h192v64h-192v64h256v-64h64v-256h64v-64h-384z" />
|
||||
<glyph unicode="b" horiz-adv-x="512" d="M256 0v64h64v256h-64v64h128v-64h64v-256h-64v-64h-128zM0 0v64h64v448h-64v64h192v-256h64v-64h-64v-128h64v-64h-64v-64h-192z" />
|
||||
<glyph unicode="c" d="M320 64v64h64v-64h-64zM64 0v64h-64v256h64v64h320v-192h-64v128h-192v-256h192v-64h-256z" />
|
||||
<glyph unicode="d" horiz-adv-x="512" d="M64 0v64h-64v256h64v64h128v-64h-64v-256h64v-64h-128zM256 0v64h-64v64h64v128h-64v64h64v192h-64v64h192v-512h64v-64h-192z" />
|
||||
<glyph unicode="e" d="M320 64v64h64v-64h-64zM256 256v64h-128v-64h128zM64 0v64h-64v256h64v64h256v-64h64v-128h-256v-128h192v-64h-256z" />
|
||||
<glyph unicode="f" horiz-adv-x="576" d="M0 0v64h128v256h-128v64h128v128h64v64h320v-64h-256v-128h192v-64h-192v-256h192v-64h-448z" />
|
||||
<glyph unicode="g" horiz-adv-x="512" d="M64 0v64h-64v256h64v64h128v-64h-64v-256h64v-64h-128zM64 -192v64h192v192h-64v64h64v128h-64v64h64v64h192v-64h-64v-448h-64v-64h-256z" />
|
||||
<glyph unicode="h" horiz-adv-x="576" d="M0 0v64h64v448h-64v64h192v-192h192v-64h64v-256h64v-64h-192v320h-128v-320h-192z" />
|
||||
<glyph unicode="i" d="M0 0v64h128v256h-128v64h256v-320h128v-64h-384zM128 448v128h128v-128h-128z" />
|
||||
<glyph unicode="j" d="M0 -192v64h256v448h-256v64h384v-512h-64v-64h-320zM192 448v128h128v-128h-128z" />
|
||||
<glyph unicode="k" horiz-adv-x="576" d="M0 0v64h64v448h-64v64h192v-320h64v128h192v-64h-64v-64h-64v-64h64v-64h64v-64h64v-64h-256v64h64v64h-128v-128h-192z" />
|
||||
<glyph unicode="l" horiz-adv-x="576" d="M0 0v64h192v448h-128v64h256v-512h192v-64h-512z" />
|
||||
<glyph unicode="m" horiz-adv-x="704" d="M0 0v64h64v256h-64v64h512v-64h64v-256h64v-64h-192v320h-64v-320h-128v320h-64v-320h-192z" />
|
||||
<glyph unicode="n" horiz-adv-x="576" d="M0 0v64h64v256h-64v64h384v-64h64v-256h64v-64h-192v320h-128v-320h-192z" />
|
||||
<glyph unicode="o" d="M256 64v256h-128v-256h128zM64 0v64h-64v256h64v64h256v-64h64v-256h-64v-64h-256z" />
|
||||
<glyph unicode="p" horiz-adv-x="512" d="M0 -192v64h64v448h-64v64h192v-64h64v-64h-64v-128h64v-64h-64v-192h128v-64h-320zM256 0v64h64v256h-64v64h128v-64h64v-256h-64v-64h-128z" />
|
||||
<glyph unicode="q" horiz-adv-x="512" d="M64 0v64h-64v256h64v64h128v-64h-64v-256h64v-64h-128zM128 -192v64h128v192h-64v64h64v128h-64v64h64v64h192v-64h-64v-448h64v-64h-320z" />
|
||||
<glyph unicode="r" horiz-adv-x="512" d="M0 0v64h128v256h-128v64h256v-64h64v-64h-64v-192h192v-64h-448zM384 256v64h-64v64h128v-128h-64z" />
|
||||
<glyph unicode="s" d="M0 0v128h128v-64h128v64h-128v64h-128v128h64v64h320v-128h-128v64h-128v-64h128v-64h128v-128h-64v-64h-320z" />
|
||||
<glyph unicode="t" d="M320 64v64h64v-64h-64zM128 0v64h-64v256h-64v64h64v128h128v-128h128v-64h-128v-256h128v-64h-192z" />
|
||||
<glyph unicode="u" horiz-adv-x="576" d="M128 0v64h-64v256h-64v64h192v-320h128v256h-64v64h192v-320h64v-64h-384z" />
|
||||
<glyph unicode="v" horiz-adv-x="512" d="M128 0v192h-64v128h-64v64h192v-256h64v256h192v-64h-64v-128h-64v-192h-192z" />
|
||||
<glyph unicode="w" horiz-adv-x="640" d="M128 0v192h-64v128h-64v64h192v-128h64v64h64v-64h64v128h192v-64h-64v-128h-64v-192h-64v64h-64v128h-64v-128h-64v-64h-64z" />
|
||||
<glyph unicode="x" horiz-adv-x="576" d="M0 0v64h64v64h64v128h-64v64h-64v64h192v-128h128v128h192v-64h-64v-64h-64v-128h64v-64h64v-64h-192v128h-128v-128h-192z" />
|
||||
<glyph unicode="y" horiz-adv-x="576" d="M0 -192v64h128v128h64v64h-64v128h-64v128h-64v64h256v-64h-64v-192h64v128h64v128h192v-64h-64v-64h-64v-128h-64v-128h-64v-128h64v-64h-320z" />
|
||||
<glyph unicode="z" d="M0 0v128h64v64h64v64h64v64h-128v-64h-64v128h384v-64h-64v-64h-64v-64h-64v-64h-64v-64h192v64h64v-128h-384z" />
|
||||
<glyph unicode="{" horiz-adv-x="320" d="M128 -128v64h-64v256h-64v64h64v256h64v64h128v-64h-64v-256h-64v-64h64v-256h64v-64h-128z" />
|
||||
<glyph unicode="|" horiz-adv-x="192" d="M0 -128v640h128v-640h-128z" />
|
||||
<glyph unicode="}" horiz-adv-x="320" d="M0 -128v64h64v256h64v64h-64v256h-64v64h128v-64h64v-256h64v-64h-64v-256h-64v-64h-128z" />
|
||||
<glyph unicode="~" horiz-adv-x="384" d="M192 128v64h64v-64h-64zM0 192v64h64v-64h-64zM128 192v64h64v-64h-64zM256 192v64h64v-64h-64zM64 256v64h64v-64h-64z" />
|
||||
<glyph unicode="¡" horiz-adv-x="192" d="M0 -192v448h128v-448h-128zM0 320v64h128v-64h-128z" />
|
||||
<glyph unicode="¢" d="M320 128v64h64v-64h-64zM192 -64v128h-64v64h-64v64h-64v192h64v64h64v64h64v128h64v-128h128v-192h-64v128h-128v-64h-64v-192h64v-64h128v-64h-64v-128h-64z" />
|
||||
<glyph unicode="£" horiz-adv-x="512" d="M320 384v64h64v-64h-64zM0 0v64h64v64h64v128h-128v64h64v128h64v64h192v-64h-128v-128h128v-64h-64v-128h-64v-64h128v64h128v-128h-448z" />
|
||||
<glyph unicode="¤" horiz-adv-x="576" d="M320 128v192h-128v-192h128zM0 0v128h64v192h-64v128h128v-64h256v64h128v-128h-64v-192h64v-128h-128v64h-256v-64h-128z" />
|
||||
<glyph unicode="¥" horiz-adv-x="576" d="M64 0v64h128v64h-128v64h128v64h-128v64h64v64h-64v64h-64v64h256v-64h-64v-64h64v-64h64v192h192v-64h-64v-64h-64v-64h64v-64h-128v-64h128v-64h-128v-64h128v-64h-384z" />
|
||||
<glyph unicode="¦" horiz-adv-x="192" d="M0 -128v320h128v-320h-128zM0 256v320h128v-320h-128z" />
|
||||
<glyph unicode="§" d="M64 -64v192h64v-128h128v-64h-192zM192 128v64h64v-64h-64zM64 192v64h128v-64h-128zM256 0v128h64v128h64v-192h-64v-64h-64zM192 256v64h128v-64h-128zM128 320v64h64v-64h-64zM0 256v192h64v64h64v-128h-64v-128h-64zM256 384v128h-128v64h192v-192h-64z" />
|
||||
<glyph unicode="¨" horiz-adv-x="320" d="M0 448v64h64v-64h-64zM192 448v64h64v-64h-64z" />
|
||||
<glyph unicode="©" horiz-adv-x="576" d="M128 0v64h256v-64h-256zM64 64v64h64v-64h-64zM384 64v64h64v-64h-64zM192 128v64h192v-64h-192zM128 192v128h64v-128h-64zM0 128v256h64v-256h-64zM320 256v64h-128v64h192v-128h-64zM448 128v256h64v-256h-64zM64 384v64h64v-64h-64zM384 384v64h64v-64h-64zM128 448 v64h256v-64h-256z" />
|
||||
<glyph unicode="ª" horiz-adv-x="384" d="M0 384v64h64v-64h-64zM64 320v64h128v64h-128v64h-64v64h192v-64h64v-128h64v-64h-256z" />
|
||||
<glyph unicode="«" horiz-adv-x="512" d="M128 0v64h64v-64h-64zM384 0v64h64v-64h-64zM64 64v64h64v-64h-64zM320 64v64h64v-64h-64zM0 128v128h64v-128h-64zM256 128v128h64v-128h-64zM64 256v64h64v-64h-64zM320 256v64h64v-64h-64zM128 320v64h64v-64h-64zM384 320v64h64v-64h-64z" />
|
||||
<glyph unicode="¬" horiz-adv-x="512" d="M384 0v192h-384v64h448v-256h-64z" />
|
||||
<glyph unicode="­" d="M0 192v64h384v-64h-384z" />
|
||||
<glyph unicode="®" horiz-adv-x="576" d="M128 0v64h256v-64h-256zM64 64v64h64v-64h-64zM384 64v64h64v-64h-64zM320 128v64h64v-64h-64zM0 128v256h64v-256h-64zM128 128v64h64v128h-64v64h256v-128h-64v64h-64v-64h64v-64h-64v-64h-128zM448 128v256h64v-256h-64zM64 384v64h64v-64h-64zM384 384v64h64v-64h-64 zM128 448v64h256v-64h-256z" />
|
||||
<glyph unicode="¯" horiz-adv-x="640" d="M0 576v64h576v-64h-576z" />
|
||||
<glyph unicode="°" horiz-adv-x="320" d="M64 320v64h128v-64h-128zM0 384v128h64v-128h-64zM192 384v128h64v-128h-64zM64 512v64h128v-64h-128z" />
|
||||
<glyph unicode="±" horiz-adv-x="512" d="M0 0v64h448v-64h-448zM192 128v192h-192v64h192v192h64v-192h192v-64h-192v-192h-64z" />
|
||||
<glyph unicode="²" horiz-adv-x="256" d="M0 256v64h64v64h64v-64h64v-64h-192zM128 384v128h-128v64h192v-192h-64z" />
|
||||
<glyph unicode="³" horiz-adv-x="320" d="M0 256v64h192v64h64v-128h-256zM64 384v64h128v-64h-128zM192 448v64h-192v64h256v-128h-64z" />
|
||||
<glyph unicode="´" horiz-adv-x="192" d="M0 448v64h64v-64h-64zM64 512v64h64v-64h-64z" />
|
||||
<glyph unicode="µ" horiz-adv-x="576" d="M64 -192v512h-64v64h192v-320h128v256h-64v64h192v-320h64v-64h-320v-192h-128z" />
|
||||
<glyph unicode="¶" horiz-adv-x="512" d="M192 320v192h-64v-192h64zM320 0v512h-64v-512h64zM64 -64v64h128v256h-128v64h-64v192h64v64h384v-64h-64v-512h64v-64h-384z" />
|
||||
<glyph unicode="·" horiz-adv-x="192" d="M0 192v128h128v-128h-128z" />
|
||||
<glyph unicode="¸" horiz-adv-x="256" d="M0 -256v64h128v64h-64v192h64v-128h64v-192h-192z" />
|
||||
<glyph unicode="¹" horiz-adv-x="256" d="M0 256v64h64v192h-64v64h128v-256h64v-64h-192z" />
|
||||
<glyph unicode="º" horiz-adv-x="384" d="M64 320v64h192v-64h-192zM0 384v128h64v-128h-64zM256 384v128h64v-128h-64zM64 512v64h192v-64h-192z" />
|
||||
<glyph unicode="»" horiz-adv-x="512" d="M0 0v64h64v-64h-64zM256 0v64h64v-64h-64zM64 64v64h64v-64h-64zM320 64v64h64v-64h-64zM128 128v128h64v-128h-64zM384 128v128h64v-128h-64zM64 256v64h64v-64h-64zM320 256v64h64v-64h-64zM0 320v64h64v-64h-64zM256 320v64h64v-64h-64z" />
|
||||
<glyph unicode="¼" horiz-adv-x="576" d="M128 128v64h64v-64h-64zM192 192v64h64v-64h-64zM320 0v64h64v64h-128v64h64v64h-64v128h64v-64h128v-128h64v-64h-64v-64h64v-64h-192zM320 384v64h64v-64h-64zM384 448v64h64v-64h-64zM0 256v64h64v192h-64v64h128v-256h64v-64h-192z" />
|
||||
<glyph unicode="½" horiz-adv-x="576" d="M256 0v64h64v64h64v-64h128v-64h-256zM64 128v64h64v-64h-64zM384 128v64h64v-64h-64zM384 384v64h64v-64h-64zM128 192v64h-128v64h64v192h-64v64h128v-256h128v64h128v-64h128v-128h-64v64h-256v-64h-64z" />
|
||||
<glyph unicode="¾" horiz-adv-x="576" d="M64 128v64h64v-64h-64zM320 0v64h64v64h-128v64h64v128h-64v-64h-64v-64h-64v64h-128v64h192v64h192v-64h64v-128h64v-64h-64v-64h64v-64h-192zM64 384v64h128v-64h-128zM384 384v64h64v-64h-64zM192 448v64h-192v64h256v-128h-64z" />
|
||||
<glyph unicode="¿" horiz-adv-x="384" d="M64 -192v64h-64v256h64v128h128v-192h-64v-192h64v64h128v-64h-64v-64h-192zM64 320v64h128v-64h-128z" />
|
||||
<glyph unicode="À" horiz-adv-x="640" d="M320 192v192h-64v-192h64zM0 0v64h64v128h64v192h64v64h-128v64h320v-128h64v-192h64v-128h64v-64h-256v64h64v64h-192v-64h64v-64h-256zM256 576v64h64v-64h-64zM192 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Á" horiz-adv-x="640" d="M320 192v192h-64v-192h64zM0 0v64h64v128h64v192h64v64h-128v64h320v-128h64v-192h64v-128h64v-64h-256v64h64v64h-192v-64h64v-64h-256zM192 576v64h64v-64h-64zM256 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Â" horiz-adv-x="640" d="M320 192v192h-64v-192h64zM0 0v64h64v128h64v192h64v64h-128v64h320v-128h64v-192h64v-128h64v-64h-256v64h64v64h-192v-64h64v-64h-256zM128 576v64h64v-64h-64zM320 576v64h64v-64h-64zM192 640v64h128v-64h-128z" />
|
||||
<glyph unicode="Ã" horiz-adv-x="640" d="M320 192v192h-64v-192h64zM0 0v64h64v128h64v192h64v64h-128v64h320v-128h64v-192h64v-128h64v-64h-256v64h64v64h-192v-64h64v-64h-256zM128 576v128h128v-64h-64v-64h-64zM256 576v64h64v64h64v-128h-128z" />
|
||||
<glyph unicode="Ä" horiz-adv-x="640" d="M320 192v192h-64v-192h64zM0 0v64h64v128h64v192h64v64h-128v64h320v-128h64v-192h64v-128h64v-64h-256v64h64v64h-192v-64h64v-64h-256zM128 576v64h64v-64h-64zM320 576v64h64v-64h-64z" />
|
||||
<glyph unicode="Å" horiz-adv-x="640" d="M320 192v192h-64v-192h64zM0 0v64h64v128h64v192h64v64h-128v64h320v-128h64v-192h64v-128h64v-64h-256v64h64v64h-192v-64h64v-64h-256zM320 640v64h-64v-64h64zM192 576v192h192v-192h-192z" />
|
||||
<glyph unicode="Æ" horiz-adv-x="704" d="M256 64v64h-128v-64h128zM0 0v64h64v128h64v192h64v-192h64v192h-64v64h-64v64h512v-192h-64v128h-192v-128h64v64h64v-192h-64v64h-64v-192h192v128h64v-192h-640z" />
|
||||
<glyph unicode="Ç" d="M320 64v64h64v-64h-64zM128 -256v64h128v64h-64v128h-64v64h-64v64h-64v256h64v64h64v64h256v-128h-64v64h-128v-64h-64v-256h64v-64h128v-64h-64v-64h64v-192h-192z" />
|
||||
<glyph unicode="È" horiz-adv-x="512" d="M0 0v64h64v384h-64v64h448v-192h-64v128h-192v-128h64v64h64v-192h-64v64h-64v-192h192v128h64v-192h-448zM256 576v64h64v-64h-64zM192 640v64h64v-64h-64z" />
|
||||
<glyph unicode="É" horiz-adv-x="512" d="M0 0v64h64v384h-64v64h448v-192h-64v128h-192v-128h64v64h64v-192h-64v64h-64v-192h192v128h64v-192h-448zM192 576v64h64v-64h-64zM256 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Ê" horiz-adv-x="512" d="M0 0v64h64v384h-64v64h448v-192h-64v128h-192v-128h64v64h64v-192h-64v64h-64v-192h192v128h64v-192h-448zM192 576v64h64v-64h-64zM320 576v64h64v-64h-64zM256 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Ë" horiz-adv-x="512" d="M0 0v64h64v384h-64v64h448v-192h-64v128h-192v-128h64v64h64v-192h-64v64h-64v-192h192v128h64v-192h-448zM128 576v64h64v-64h-64zM320 576v64h64v-64h-64z" />
|
||||
<glyph unicode="Ì" d="M0 0v64h128v384h-128v64h384v-64h-128v-384h128v-64h-384zM192 576v64h64v-64h-64zM128 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Í" d="M0 0v64h128v384h-128v64h384v-64h-128v-384h128v-64h-384zM128 576v64h64v-64h-64zM192 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Î" d="M0 0v64h128v384h-128v64h384v-64h-128v-384h128v-64h-384zM128 576v64h64v-64h-64zM256 576v64h64v-64h-64zM192 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Ï" d="M0 0v64h128v384h-128v64h384v-64h-128v-384h128v-64h-384zM64 576v64h64v-64h-64zM256 576v64h64v-64h-64z" />
|
||||
<glyph unicode="Ð" horiz-adv-x="512" d="M256 64v64h64v256h-64v64h-64v-128h64v-64h-64v-192h64zM0 0v64h64v192h-64v64h64v128h-64v64h320v-64h64v-64h64v-256h-64v-64h-64v-64h-320z" />
|
||||
<glyph unicode="Ñ" horiz-adv-x="576" d="M0 0v64h64v384h-64v64h192v-128h64v-128h-64v-192h64v-64h-256zM320 0v128h-64v128h64v192h-64v64h256v-64h-64v-448h-128zM128 576v128h128v-64h-64v-64h-64zM256 576v64h64v64h64v-128h-128z" />
|
||||
<glyph unicode="Ò" d="M256 64v384h-128v-384h128zM64 0v64h-64v384h64v64h256v-64h64v-384h-64v-64h-256zM192 576v64h64v-64h-64zM128 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Ó" d="M256 64v384h-128v-384h128zM64 0v64h-64v384h64v64h256v-64h64v-384h-64v-64h-256zM128 576v64h64v-64h-64zM192 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Ô" d="M256 64v384h-128v-384h128zM64 0v64h-64v384h64v64h256v-64h64v-384h-64v-64h-256zM128 576v64h64v-64h-64zM256 576v64h64v-64h-64zM192 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Õ" d="M256 64v384h-128v-384h128zM64 0v64h-64v384h64v64h256v-64h64v-384h-64v-64h-256zM64 576v128h128v-64h-64v-64h-64zM192 576v64h64v64h64v-128h-128z" />
|
||||
<glyph unicode="Ö" d="M256 64v384h-128v-384h128zM64 0v64h-64v384h64v64h256v-64h64v-384h-64v-64h-256zM64 576v64h64v-64h-64zM256 576v64h64v-64h-64z" />
|
||||
<glyph unicode="×" horiz-adv-x="512" d="M64 64v64h64v-64h-64zM384 64v64h64v-64h-64zM128 128v64h64v-64h-64zM320 128v64h64v-64h-64zM192 192v128h128v-128h-128zM128 320v64h64v-64h-64zM320 320v64h64v-64h-64zM64 384v64h64v-64h-64zM384 384v64h64v-64h-64z" />
|
||||
<glyph unicode="Ø" d="M256 64v128h-64v-128h64zM192 320v128h-64v-128h64zM0 -64v128h64v64h-64v320h64v64h192v64h128v-128h-64v-64h64v-320h-64v-64h-192v-64h-128z" />
|
||||
<glyph unicode="Ù" horiz-adv-x="576" d="M128 0v64h-64v384h-64v64h192v-448h128v448h192v-64h-64v-384h-64v-64h-256zM256 576v64h64v-64h-64zM192 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Ú" horiz-adv-x="576" d="M128 0v64h-64v384h-64v64h192v-448h128v448h192v-64h-64v-384h-64v-64h-256zM192 576v64h64v-64h-64zM256 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Û" horiz-adv-x="576" d="M128 0v64h-64v384h-64v64h192v-448h128v448h192v-64h-64v-384h-64v-64h-256zM192 576v64h64v-64h-64zM320 576v64h64v-64h-64zM256 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Ü" horiz-adv-x="576" d="M128 0v64h-64v384h-64v64h192v-448h128v448h192v-64h-64v-384h-64v-64h-256zM128 576v64h64v-64h-64zM320 576v64h64v-64h-64z" />
|
||||
<glyph unicode="Ý" horiz-adv-x="576" d="M64 0v64h128v192h-64v128h-64v64h-64v64h192v-192h128v128h-64v64h256v-64h-64v-64h-64v-128h-64v-192h128v-64h-384zM192 576v64h64v-64h-64zM256 640v64h64v-64h-64z" />
|
||||
<glyph unicode="Þ" horiz-adv-x="576" d="M384 192v128h-192v-128h192zM0 0v64h64v384h-64v64h384v-64h-192v-64h256v-64h64v-128h-64v-64h-256v-64h192v-64h-384z" />
|
||||
<glyph unicode="ß" horiz-adv-x="512" d="M0 0v64h64v448h64v64h256v-64h64v-128h-64v-64h64v-256h-64v-64h-128v64h64v256h-64v64h64v128h-128v-512h-192z" />
|
||||
<glyph unicode="à" horiz-adv-x="512" d="M256 64v128h-128v-128h128zM64 0v64h-64v128h64v64h192v64h-192v64h256v-64h64v-256h64v-64h-384zM192 448v64h64v-64h-64zM128 512v64h64v-64h-64z" />
|
||||
<glyph unicode="á" horiz-adv-x="512" d="M256 64v128h-128v-128h128zM64 0v64h-64v128h64v64h192v64h-192v64h256v-64h64v-256h64v-64h-384zM128 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="â" horiz-adv-x="512" d="M256 64v128h-128v-128h128zM64 0v64h-64v128h64v64h192v64h-192v64h256v-64h64v-256h64v-64h-384zM128 448v64h64v-64h-64zM256 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ã" horiz-adv-x="512" d="M256 64v128h-128v-128h128zM64 0v64h-64v128h64v64h192v64h-192v64h256v-64h64v-256h64v-64h-384zM64 448v128h128v-64h-64v-64h-64zM192 448v64h64v64h64v-128h-128z" />
|
||||
<glyph unicode="ä" horiz-adv-x="512" d="M256 64v128h-128v-128h128zM64 0v64h-64v128h64v64h192v64h-192v64h256v-64h64v-256h64v-64h-384zM64 448v64h64v-64h-64zM256 448v64h64v-64h-64z" />
|
||||
<glyph unicode="å" horiz-adv-x="512" d="M256 64v128h-128v-128h128zM64 0v64h-64v128h64v64h192v64h-192v64h256v-64h64v-256h64v-64h-384zM192 512v64h-64v-64h64zM64 448v192h192v-192h-192z" />
|
||||
<glyph unicode="æ" horiz-adv-x="576" d="M448 64v64h64v-64h-64zM192 64v128h-64v-128h64zM384 256v64h-64v-64h64zM64 0v64h-64v128h64v64h128v64h-128v64h384v-64h64v-128h-192v-128h128v-64h-384z" />
|
||||
<glyph unicode="ç" d="M320 64v64h64v-64h-64zM128 -256v64h128v64h-64v128h-128v64h-64v256h64v64h320v-192h-64v128h-192v-256h192v-64h-64v-64h64v-192h-192z" />
|
||||
<glyph unicode="è" d="M320 64v64h64v-64h-64zM256 256v64h-128v-64h128zM64 0v64h-64v256h64v64h256v-64h64v-128h-256v-128h192v-64h-256zM192 448v64h64v-64h-64zM128 512v64h64v-64h-64z" />
|
||||
<glyph unicode="é" d="M320 64v64h64v-64h-64zM256 256v64h-128v-64h128zM64 0v64h-64v256h64v64h256v-64h64v-128h-256v-128h192v-64h-256zM128 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ê" d="M320 64v64h64v-64h-64zM256 256v64h-128v-64h128zM64 0v64h-64v256h64v64h256v-64h64v-128h-256v-128h192v-64h-256zM128 448v64h64v-64h-64zM256 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ë" d="M320 64v64h64v-64h-64zM256 256v64h-128v-64h128zM64 0v64h-64v256h64v64h256v-64h64v-128h-256v-128h192v-64h-256zM64 448v64h64v-64h-64zM256 448v64h64v-64h-64z" />
|
||||
<glyph unicode="ì" d="M0 0v64h128v256h-128v64h256v-320h128v-64h-384zM192 448v64h64v-64h-64zM128 512v64h64v-64h-64z" />
|
||||
<glyph unicode="í" d="M0 0v64h128v256h-128v64h256v-320h128v-64h-384zM128 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="î" d="M0 0v64h128v256h-128v64h256v-320h128v-64h-384zM64 448v64h64v-64h-64zM192 448v64h64v-64h-64zM128 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ï" d="M0 0v64h128v256h-128v64h256v-320h128v-64h-384zM64 448v64h64v-64h-64zM256 448v64h64v-64h-64z" />
|
||||
<glyph unicode="ð" d="M256 64v256h-128v-256h128zM64 0v64h-64v256h64v64h64v64h64v-64h64v64h-64v64h-64v64h128v-64h64v-64h64v-384h-64v-64h-256zM320 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ñ" horiz-adv-x="576" d="M0 0v64h64v256h-64v64h384v-64h64v-256h64v-64h-192v320h-128v-320h-192zM128 448v128h128v-64h-64v-64h-64zM256 448v64h64v64h64v-128h-128z" />
|
||||
<glyph unicode="ò" d="M256 64v256h-128v-256h128zM64 0v64h-64v256h64v64h256v-64h64v-256h-64v-64h-256zM192 448v64h64v-64h-64zM128 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ó" d="M256 64v256h-128v-256h128zM64 0v64h-64v256h64v64h256v-64h64v-256h-64v-64h-256zM128 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ô" d="M256 64v256h-128v-256h128zM64 0v64h-64v256h64v64h256v-64h64v-256h-64v-64h-256zM128 448v64h64v-64h-64zM256 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="õ" d="M256 64v256h-128v-256h128zM64 0v64h-64v256h64v64h256v-64h64v-256h-64v-64h-256zM64 448v128h64v-64h64v-64h-128zM256 448v64h-64v64h128v-128h-64z" />
|
||||
<glyph unicode="ö" d="M256 64v256h-128v-256h128zM64 0v64h-64v256h64v64h256v-64h64v-256h-64v-64h-256zM64 448v64h64v-64h-64zM256 448v64h64v-64h-64z" />
|
||||
<glyph unicode="÷" horiz-adv-x="576" d="M192 0v64h128v-64h-128zM0 192v64h512v-64h-512zM192 384v64h128v-64h-128z" />
|
||||
<glyph unicode="ø" d="M256 64v128h-64v128h-64v-128h64v-64h-64v-64h128zM0 -64v128h64v64h-64v192h64v64h256v-128h64v-192h-64v-64h-256v-64h-64zM320 384v64h64v-64h-64z" />
|
||||
<glyph unicode="ù" horiz-adv-x="576" d="M128 0v64h-64v256h-64v64h192v-320h128v256h-64v64h192v-320h64v-64h-384zM256 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ú" horiz-adv-x="576" d="M128 0v64h-64v256h-64v64h192v-320h128v256h-64v64h192v-320h64v-64h-384zM192 448v64h64v-64h-64zM256 512v64h64v-64h-64z" />
|
||||
<glyph unicode="û" horiz-adv-x="576" d="M128 0v64h-64v256h-64v64h192v-320h128v256h-64v64h192v-320h64v-64h-384zM128 448v64h64v-64h-64zM256 448v64h64v-64h-64zM192 512v64h64v-64h-64z" />
|
||||
<glyph unicode="ü" horiz-adv-x="576" d="M128 0v64h-64v256h-64v64h192v-320h128v256h-64v64h192v-320h64v-64h-384zM128 448v64h64v-64h-64zM320 448v64h64v-64h-64z" />
|
||||
<glyph unicode="ý" horiz-adv-x="576" d="M0 -192v64h128v128h64v64h-64v128h-64v128h-64v64h256v-64h-64v-192h64v128h64v128h192v-64h-64v-64h-64v-128h-64v-128h-64v-128h64v-64h-320zM192 448v64h64v-64h-64zM256 512v64h64v-64h-64z" />
|
||||
<glyph unicode="þ" horiz-adv-x="512" d="M256 0v64h64v256h-64v64h128v-64h64v-256h-64v-64h-128zM0 -192v64h64v640h-64v64h192v-256h64v-64h-64v-128h64v-64h-64v-192h128v-64h-320z" />
|
||||
<glyph unicode="ÿ" horiz-adv-x="576" d="M0 -192v64h128v128h64v64h-64v128h-64v128h-64v64h256v-64h-64v-192h64v128h64v128h192v-64h-64v-64h-64v-128h-64v-128h-64v-128h64v-64h-320zM128 448v64h64v-64h-64zM320 448v64h64v-64h-64z" />
|
||||
<glyph unicode="Œ" horiz-adv-x="576" d="M256 64v384h-64v-64h-64v-256h64v-64h64zM128 0v64h-64v64h-64v256h64v64h64v64h384v-128h-64v64h-64v-128h64v-64h-64v-192h64v64h64v-128h-384z" />
|
||||
<glyph unicode="œ" horiz-adv-x="576" d="M384 192v128h-64v-128h64zM64 0v64h-64v256h64v64h128v-64h-64v-256h64v-64h-128zM256 0v64h-64v256h64v64h192v-64h64v-192h-192v-64h192v-64h-256z" />
|
||||
<glyph unicode="Ÿ" horiz-adv-x="576" d="M64 0v64h128v192h-64v128h-64v64h-64v64h192v-192h128v128h-64v64h256v-64h-64v-64h-64v-128h-64v-192h128v-64h-384zM128 576v64h64v-64h-64zM320 576v64h64v-64h-64z" />
|
||||
<glyph unicode=" " horiz-adv-x="384" />
|
||||
<glyph unicode=" " horiz-adv-x="768" />
|
||||
<glyph unicode=" " horiz-adv-x="384" />
|
||||
<glyph unicode=" " horiz-adv-x="768" />
|
||||
<glyph unicode=" " horiz-adv-x="256" />
|
||||
<glyph unicode=" " horiz-adv-x="192" />
|
||||
<glyph unicode=" " horiz-adv-x="128" />
|
||||
<glyph unicode=" " horiz-adv-x="128" />
|
||||
<glyph unicode=" " horiz-adv-x="96" />
|
||||
<glyph unicode=" " horiz-adv-x="153" />
|
||||
<glyph unicode=" " horiz-adv-x="42" />
|
||||
<glyph unicode="‐" d="M0 192v64h384v-64h-384z" />
|
||||
<glyph unicode="‑" d="M0 192v64h384v-64h-384z" />
|
||||
<glyph unicode="‒" d="M0 192v64h384v-64h-384z" />
|
||||
<glyph unicode="–" horiz-adv-x="576" d="M0 192v64h512v-64h-512z" />
|
||||
<glyph unicode="—" horiz-adv-x="640" d="M0 192v64h576v-64h-576z" />
|
||||
<glyph unicode="‘" horiz-adv-x="256" d="M128 256v64h-64v128h-64v64h128v-128h64v-128h-64z" />
|
||||
<glyph unicode="’" horiz-adv-x="256" d="M0 256v128h64v128h128v-64h-64v-128h-64v-64h-64z" />
|
||||
<glyph unicode="‚" horiz-adv-x="256" d="M0 -128v128h64v128h128v-64h-64v-128h-64v-64h-64z" />
|
||||
<glyph unicode="“" horiz-adv-x="512" d="M128 256v64h-64v128h-64v64h128v-128h64v-128h-64zM384 256v64h-64v128h-64v64h128v-128h64v-128h-64z" />
|
||||
<glyph unicode="”" horiz-adv-x="512" d="M0 256v128h64v128h128v-64h-64v-128h-64v-64h-64zM256 256v128h64v128h128v-64h-64v-128h-64v-64h-64z" />
|
||||
<glyph unicode="„" horiz-adv-x="512" d="M0 -128v128h64v128h128v-64h-64v-128h-64v-64h-64zM256 -128v128h64v128h128v-64h-64v-128h-64v-64h-64z" />
|
||||
<glyph unicode="•" horiz-adv-x="320" d="M64 128v64h-64v128h64v64h128v-64h64v-128h-64v-64h-128z" />
|
||||
<glyph unicode="…" horiz-adv-x="512" d="M0 0v64h64v-64h-64zM192 0v64h64v-64h-64zM384 0v64h64v-64h-64z" />
|
||||
<glyph unicode=" " horiz-adv-x="153" />
|
||||
<glyph unicode="‹" horiz-adv-x="256" d="M128 0v64h64v-64h-64zM64 64v64h64v-64h-64zM0 128v128h64v-128h-64zM64 256v64h64v-64h-64zM128 320v64h64v-64h-64z" />
|
||||
<glyph unicode="›" horiz-adv-x="256" d="M0 0v64h64v-64h-64zM64 64v64h64v-64h-64zM128 128v128h64v-128h-64zM64 256v64h64v-64h-64zM0 320v64h64v-64h-64z" />
|
||||
<glyph unicode=" " horiz-adv-x="192" />
|
||||
<glyph unicode="€" horiz-adv-x="512" d="M384 64v64h64v-64h-64zM192 0v64h-64v64h-64v64h-64v64h64v64h-64v64h128v64h64v-64h128v-64h-128v-64h128v-64h-128v-64h64v-64h128v-64h-192zM384 320v128h-192v64h256v-192h-64z" />
|
||||
<glyph unicode="™" horiz-adv-x="704" d="M512 320v64h-128v-64h128zM320 320v128h-64v64h-64v-192h128zM0 256v64h128v192h-64v-64h-64v128h384v-128h128v128h128v-64h-64v-192h64v-64h-640z" />
|
||||
<glyph unicode="◼" horiz-adv-x="385" d="M0 385h385v-385h-385v385z" />
|
||||
<glyph unicode="fi" horiz-adv-x="896" d="M576 64v256h-320v-256h320zM0 0v64h128v256h-128v64h128v128h64v64h320v-64h-256v-128h448v-320h128v-64h-832zM576 448v128h128v-128h-128z" />
|
||||
<glyph unicode="fl" horiz-adv-x="960" d="M576 64v448h-320v-128h192v-64h-192v-256h320zM0 0v64h128v256h-128v64h128v128h64v64h512v-512h192v-64h-896z" />
|
||||
<glyph unicode="ffi" horiz-adv-x="1344" d="M576 64v256h-320v-256h320zM1024 64v256h-320v-256h320zM0 0v64h128v256h-128v64h128v128h64v64h320v-64h-256v-128h320v128h64v64h320v-64h-256v-128h448v-320h128v-64h-1280zM1024 448v128h128v-128h-128z" />
|
||||
<glyph unicode="ffl" horiz-adv-x="1344" d="M576 64v256h-320v-256h320zM1024 64v448h-320v-128h192v-64h-192v-256h320zM0 0v64h128v256h-128v64h128v128h64v64h320v-64h-256v-128h320v128h64v64h512v-512h128v-64h-1280z" />
|
||||
</font>
|
||||
</defs></svg>
|
After Width: | Height: | Size: 33 KiB |
BIN
src/public/font/FontStuck-Extended.ttf
Normal file
BIN
src/public/font/FontStuck-Extended.woff
Normal file
BIN
src/public/font/FontStuck-Extended.woff2
Normal file
BIN
src/public/font/Merriweather.eot
Normal file
BIN
src/public/font/Merriweather.otf
Normal file
264
src/public/font/Merriweather.svg
Normal file
|
@ -0,0 +1,264 @@
|
|||
<?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" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
|
||||
<metadata></metadata>
|
||||
<defs>
|
||||
<font id="Merriweather" horiz-adv-x="0" >
|
||||
<font-face units-per-em="1000" ascent="800" descent="-200" />
|
||||
<missing-glyph horiz-adv-x="237" />
|
||||
<glyph unicode="fi" horiz-adv-x="733" d="M125 489h-94v46l94 19v47q0 62 32.5 114t85 82.5t111.5 30.5q34 0 59 -9v-100q-9 8 -35.5 15.5t-58.5 7.5q-47 0 -68.5 -24.5t-21.5 -84.5v-79h138v-65h-138v-432l111 -8v-49h-300v49l85 9v431zM515 673q-16 18 -16 46q0 32 19.5 53t53.5 21t50 -18t16 -46 q0 -34 -19.5 -54t-54.5 -20h-1q-32 0 -48 18zM523 478l-76 18v53l155 19h2l23 -18v-493l80 -8v-49h-265v49l81 9v420z" />
|
||||
<glyph unicode="fl" horiz-adv-x="733" d="M125 489h-94v46l94 19v47q0 62 32.5 114t85 82.5t111.5 30.5q34 0 59 -9v-100q-9 8 -35.5 15.5t-58.5 7.5q-47 0 -68.5 -24.5t-21.5 -84.5v-79h138v-65h-138v-432l111 -8v-49h-300v49l85 9v431zM518 746l-81 11v43l161 19h2l22 -15v-747l85 -8v-49h-270v49l81 9v688z" />
|
||||
<glyph />
|
||||
<glyph unicode="
" horiz-adv-x="237" />
|
||||
<glyph />
|
||||
<glyph />
|
||||
<glyph unicode=" " horiz-adv-x="237" />
|
||||
<glyph unicode="	" horiz-adv-x="237" />
|
||||
<glyph unicode=" " horiz-adv-x="237" />
|
||||
<glyph unicode="!" horiz-adv-x="354" d="M205 238h-64l-30 645h122zM130 104q23 21 52 21q32 0 49 -18t17 -45q0 -32 -22.5 -52t-54.5 -20q-26 0 -45 17.5t-19 45.5q0 30 23 51z" />
|
||||
<glyph unicode=""" horiz-adv-x="612" d="M209 456h-66l-19 371h106zM468 456h-65l-20 371h106z" />
|
||||
<glyph unicode="#" horiz-adv-x="744" d="M81 266h119l19 207h-117v59h124l22 211h83l-23 -211h169l22 211h82l-22 -211h118v-59h-125l-18 -207h121l1 -60h-130l-20 -206h-82l20 206h-169l-22 -206h-83l22 206h-111v60zM301 473l-19 -207h167l21 207h-169z" />
|
||||
<glyph unicode="$" horiz-adv-x="659" d="M518.5 55q-56.5 -55 -160.5 -64l-1 -117h-70l1 116q-59 4 -113.5 18t-80.5 26l7 171h63l21 -124q45 -38 137 -38q73 0 110.5 32t37.5 94q0 36 -21.5 63.5t-55 48.5t-91.5 51q-6 4 -18 10q-62 32 -100 61t-60 69.5t-22 96.5q0 73 55.5 122t143.5 59v110h71v-109 q80 -4 162 -37l-5 -160h-61l-23 116q-15 13 -40.5 21t-59.5 8q-62 0 -102 -27.5t-40 -83.5q0 -39 22 -68t51.5 -47.5t87.5 -49.5q82 -46 121 -72.5t64.5 -65t25.5 -93.5q0 -82 -56.5 -137z" />
|
||||
<glyph unicode="%" horiz-adv-x="1037" d="M639 751h76l-320 -751h-76zM137 348.5q-41 27.5 -62.5 73.5t-21.5 102q0 66 26.5 114t71.5 73t98 25q91 0 135 -57t44 -149q0 -65 -27 -112.5t-71.5 -72t-97.5 -24.5q-54 0 -95 27.5zM311 414q25 41 25 112q0 70 -23.5 113.5t-69.5 43.5q-47 0 -72 -41t-25 -113 q0 -65 24 -110.5t69 -45.5q47 0 72 41zM690.5 47.5q-40.5 27.5 -62 74t-21.5 102.5q0 65 26.5 113t71.5 73.5t98 25.5q89 0 133.5 -57.5t44.5 -148.5q0 -65 -27 -112.5t-71.5 -72.5t-97.5 -25q-54 0 -94.5 27.5zM864 114q26 41 26 112q0 70 -23.5 113.5t-69.5 43.5 q-47 0 -72.5 -41.5t-25.5 -112.5q0 -66 24 -111t68 -45q47 0 73 41z" />
|
||||
<glyph unicode="&" horiz-adv-x="756" d="M739 352l-81 -11q1 -68 -20 -129t-58 -100q34 -31 63 -46t67 -17v-44q-9 -5 -32.5 -8t-39.5 -3q-35 0 -63.5 13t-65.5 44q-38 -31 -87 -45.5t-97 -14.5q-122 0 -193.5 52t-71.5 144q0 64 41.5 110t108.5 74q-87 110 -87 206q0 47 26 87t71.5 64t101.5 24q58 0 98.5 -20 t60.5 -52t20 -66q0 -57 -21 -97t-55 -68t-96 -68q35 -42 91.5 -105t92.5 -100l25 -24q25 32 36 74.5t11 86.5q0 19 -1 28l-81 11v55h236v-55zM243.5 498.5q21.5 -40.5 55.5 -79.5q62 50 87 90t25 100q0 37 -20 67.5t-70 30.5q-42 0 -70.5 -33t-28.5 -84t21.5 -91.5z M403 57.5q35 10.5 62 30.5q-40 36 -87.5 88.5t-118.5 135.5l-17 20q-85 -66 -85 -138q0 -64 46 -105.5t130 -41.5q35 0 70 10.5z" />
|
||||
<glyph unicode="'" horiz-adv-x="353" d="M209 456h-66l-19 371h106z" />
|
||||
<glyph unicode="(" horiz-adv-x="430" d="M114 572.5q47 105.5 105.5 170t96.5 85.5l42 -29q-31 -20 -75.5 -79.5t-80 -159.5t-35.5 -229q0 -132 35.5 -235t80.5 -165t77 -84l-44 -31q-41 24 -97 83.5t-104 170.5t-48 264q0 133 47 238.5z" />
|
||||
<glyph unicode=")" horiz-adv-x="430" d="M316 72.5q-47 -105.5 -105.5 -170t-96.5 -85.5l-42 29q31 20 75.5 79.5t80 159.5t35.5 229q0 132 -35.5 235t-80.5 165t-77 84l44 31q41 -24 97 -83.5t104 -170.5t48 -264q0 -133 -47 -238.5z" />
|
||||
<glyph unicode="*" horiz-adv-x="643" d="M295 567l-93 28l-126 59l45 79l114 -80l73 -64l-22 94l-15 140h95l-12 -139l-20 -94l71 65l114 81l46 -78l-123 -60l-94 -31l94 -28l126 -57l-47 -82l-112 80l-75 65l22 -95l15 -139l-93 -1l11 140l19 95l-71 -66l-113 -82l-47 79l125 61z" />
|
||||
<glyph unicode="+" horiz-adv-x="661" d="M295 352l-3 85v110h77v-110l-5 -85l76 5h116v-76h-116l-76 3l5 -83v-117h-77v117l3 83l-87 -3h-103v76h103z" />
|
||||
<glyph unicode="," horiz-adv-x="335" d="M228 117.5q22 -32.5 22 -88.5q0 -57 -18 -110t-45 -90.5t-53 -52.5h-1l-34 24v11q20 16 40.5 69.5t20.5 101.5q0 15 -5.5 24.5t-17.5 22.5q-14 15 -21 28t-7 35q0 26 16.5 42t41.5 16h5q34 0 56 -32.5z" />
|
||||
<glyph unicode="-" horiz-adv-x="628" d="M516 284h-404v73h404v-73z" />
|
||||
<glyph unicode="." horiz-adv-x="265" d="M82 8q-19 18 -19 46q0 31 22.5 52t52.5 21q31 0 47.5 -18.5t16.5 -45.5q0 -33 -22 -53t-53 -20q-26 0 -45 18z" />
|
||||
<glyph unicode="/" horiz-adv-x="431" d="M122 -177h-86l273 958h85z" />
|
||||
<glyph unicode="0" horiz-adv-x="643" d="M125.5 79.5q-63.5 88.5 -63.5 228.5q0 98 36 171.5t98 112.5t136 39q130 0 190 -83.5t60 -228.5q0 -97 -34.5 -171.5t-95 -115.5t-135.5 -41q-128 0 -191.5 88.5zM470 309q0 130 -33.5 200t-112.5 70q-77 0 -114 -66.5t-37 -190.5q0 -127 35.5 -203.5t112.5 -76.5 q149 0 149 267z" />
|
||||
<glyph unicode="1" horiz-adv-x="440" d="M188 516q-21 -8 -66 -19t-73 -15l-10 56q51 11 104.5 37t89.5 57h1l61 -10v-564l124 -9v-49h-360v49l129 9v458z" />
|
||||
<glyph unicode="2" horiz-adv-x="598" d="M216 161.5q77 67.5 122.5 139.5t45.5 136q0 55 -33 87.5t-94 32.5q-57 0 -98 -22.5t-76 -55.5l-32 45q35 41 100 74.5t139 33.5q70 0 118 -25.5t71 -66.5t23 -90q0 -99 -95 -203.5t-238 -187.5l310 23l35 86l51 -10l-26 -158h-477l-15 42q92 52 169 119.5z" />
|
||||
<glyph unicode="3" horiz-adv-x="560" d="M106 -157.5q-28 3.5 -47 8.5v57q33 -10 79 -10q79 0 136.5 25t88 68t30.5 94q0 68 -41.5 105.5t-127.5 38.5l-31 -8q-33 -10 -32 -9l-17 53q42 8 79 24q62 26 100 69.5t38 92.5q0 57 -33.5 83.5t-85.5 26.5q-45 0 -86.5 -16t-71.5 -39l-27 45q28 28 89.5 54.5t125.5 26.5 q91 0 147 -39.5t56 -120.5q0 -71 -56 -129t-133 -85q10 1 28 1q59 0 104 -22t69.5 -59.5t24.5 -84.5q0 -73 -44 -131t-124.5 -90.5t-186.5 -32.5q-23 0 -51 3.5z" />
|
||||
<glyph unicode="4" horiz-adv-x="644" d="M395 0h-332l-26 45q59 112 145 296.5t154 338.5h26l80 -43l-270 -520l-40 -61l263 14l4 195l85 7v-197l141 7v-82h-141v-161h-89v161z" />
|
||||
<glyph unicode="5" horiz-adv-x="594" d="M154 -109q71 0 130 29t93 80t34 116q0 161 -149 161q-33 0 -73.5 -9.5t-70.5 -22.5l-27 19l49 360h285l10 19h62l-18 -103h-265l-46 -233q27 14 69 25t84 11q96 0 151 -54t55 -157q0 -79 -45.5 -146t-128.5 -107t-189 -40q-43 0 -70 7v48q28 -3 60 -3z" />
|
||||
<glyph unicode="6" horiz-adv-x="664" d="M195.5 29.5q-58.5 40.5 -89 110t-30.5 154.5q0 126 61 232.5t156.5 175t195.5 84.5l23 -43q-117 -37 -197 -123.5t-109 -196.5q25 29 69 49.5t102 20.5q104 0 159.5 -61t55.5 -169q0 -73 -30.5 -135.5t-89 -100.5t-137.5 -38q-81 0 -139.5 40.5zM251 406.5 q-42 -24.5 -58 -52.5q-2 -24 -2 -39q-3 -121 32 -198t118 -77q46 0 78 28.5t47.5 74.5t15.5 97q0 99 -36.5 145t-98.5 46q-54 0 -96 -24.5z" />
|
||||
<glyph unicode="7" horiz-adv-x="588" d="M161 -143q54 118 103.5 237.5t138.5 338.5l47 118l-296 -4l-42 -133l-64 12l21 198h456l21 -27q-49 -137 -137 -384.5t-136 -385.5z" />
|
||||
<glyph unicode="8" horiz-adv-x="633" d="M103.5 292.5q38.5 50.5 115.5 84.5q-59 38 -91 80.5t-32 106.5q0 59 31.5 101.5t83.5 64.5t112 22q97 0 156 -45t59 -120q0 -57 -34.5 -105.5t-99.5 -84.5q80 -45 124 -91t44 -114q0 -61 -35.5 -106.5t-94.5 -70.5t-128 -25q-64 0 -120.5 20t-92.5 63.5t-36 109.5 q0 59 38.5 109.5zM210 523q22 -28 54 -48t92 -52q45 24 71 61t26 80q0 66 -36 103.5t-97 37.5q-55 0 -93.5 -32t-38.5 -86q0 -36 22 -64zM445 234.5q-21 27.5 -52.5 47.5t-86.5 48q-28 14 -42 22q-47 -24 -76 -64t-29 -86q0 -74 43.5 -117.5t118.5 -43.5q36 0 69.5 16 t54.5 46t21 68q0 36 -21 63.5z" />
|
||||
<glyph unicode="9" horiz-adv-x="660" d="M473 593.5q58 -38.5 86.5 -105.5t28.5 -151q0 -132 -56 -241t-146.5 -177.5t-191.5 -85.5l-23 44q116 38 189 123t99 198q-25 -29 -68 -49.5t-93 -20.5q-69 0 -120.5 29.5t-79.5 84t-28 126.5q0 71 31.5 131t90.5 96.5t139 36.5q84 0 142 -38.5zM415 214.5 q42 25.5 56 54.5l3 46q0 122 -32.5 194t-117.5 72q-46 0 -78.5 -27.5t-48.5 -71.5t-16 -93q0 -103 37.5 -151.5t100.5 -48.5q54 0 96 25.5z" />
|
||||
<glyph unicode=":" horiz-adv-x="344" d="M120.5 420.5q-18.5 17.5 -18.5 45.5q0 32 22 52.5t53 20.5t47 -18t16 -45q0 -33 -21.5 -53t-53.5 -20q-26 0 -44.5 17.5zM120.5 8q-18.5 18 -18.5 46q0 31 22 52t53 21q30 0 46.5 -18.5t16.5 -45.5q0 -33 -21.5 -53t-53.5 -20q-26 0 -44.5 18z" />
|
||||
<glyph unicode=";" horiz-adv-x="344" d="M122 420.5q-19 17.5 -19 45.5q0 31 22.5 52t52.5 21q31 0 47.5 -18t16.5 -45q0 -33 -22 -53t-53 -20q-26 0 -45 17.5zM228 117.5q22 -32.5 22 -88.5q0 -57 -18 -110t-45 -90.5t-53 -52.5h-1l-34 24v11q20 16 40.5 69.5t20.5 101.5q0 15 -5.5 24.5t-17.5 22.5 q-14 15 -21 28t-7 35q0 26 16.5 42t41.5 16h5q34 0 56 -32.5z" />
|
||||
<glyph unicode="<" horiz-adv-x="669" d="M555 488l-379 -187l379 -187v-87l-473 246v55l473 247v-87z" />
|
||||
<glyph unicode="=" horiz-adv-x="653" d="M552 402h-450v72h450v-72zM552 127h-450v72h450v-72z" />
|
||||
<glyph unicode=">" horiz-adv-x="669" d="M114 27v87l379 187l-379 187v87l473 -247v-55z" />
|
||||
<glyph unicode="?" horiz-adv-x="487" d="M149.5 312q-8.5 36 -10.5 67q0 39 29 68t87 67q40 27 61.5 43.5t36.5 36.5q0 6 2.5 30t2.5 34q0 45 -26.5 86t-78 66t-120.5 25q-43 0 -76 -15l-15 62q17 10 51 17t71 7q146 0 217 -68t71 -176q0 -47 -19.5 -83t-47 -60.5t-69.5 -54.5q-32 -23 -49.5 -38t-26.5 -32 q-1 -8 -1 -27q0 -79 5 -125h-71q-15 34 -23.5 70zM139 7.5q-19 17.5 -19 45.5q0 30 23 51t53 21q31 0 48.5 -18.5t17.5 -44.5q0 -32 -22.5 -52t-55.5 -20q-26 0 -45 17.5z" />
|
||||
<glyph unicode="@" horiz-adv-x="1078" d="M163.5 477.5q70.5 133.5 191.5 208t266 74.5q104 0 184.5 -42.5t126 -125.5t45.5 -202q0 -123 -48.5 -214t-115.5 -139t-117 -48q-27 0 -49 23.5t-23 63.5q-3 51 13 142q-35 -96 -87 -163.5t-107 -67.5q-34 0 -66 24t-51.5 69.5t-19.5 105.5q0 73 31.5 149.5t89.5 127 t134 50.5q27 0 59.5 -7.5t57.5 -21.5q9 27 23 24q18 -5 36 -12l21 -7q-47 -220 -53 -324q-1 -12 -1 -32q0 -36 6.5 -54t16.5 -18q40 0 83 38.5t72.5 108t29.5 158.5q0 116 -44.5 189.5t-117.5 107t-162 33.5q-115 0 -211 -63t-153 -178t-57 -263q0 -123 41.5 -209t113 -130 t162.5 -44q56 0 116 14t89 33l17 -37q-39 -32 -103.5 -52t-135.5 -20q-114 0 -198.5 52.5t-130 149t-45.5 226.5q0 169 70.5 302.5zM412 114.5q17 -42.5 52 -42.5q23 0 52.5 31.5t58 83.5t48.5 112q23 66 30 112q-13 14 -50.5 25.5t-62.5 11.5q-45 0 -78 -34t-50 -89 t-17 -115q0 -53 17 -95.5z" />
|
||||
<glyph unicode="A" horiz-adv-x="692" d="M290 749h110l243 -690l62 -10v-49h-264v49l83 10l-47 148h-292l-47 -148l86 -10v-49h-237v49l62 10zM353 589l-25 88l-24 -90l-101 -321h255z" />
|
||||
<glyph unicode="B" horiz-adv-x="685" d="M129 681l-82 12v50h135q34 0 86 4q48 4 71 4q138 0 197.5 -43t59.5 -126q0 -71 -41 -122t-112 -64q96 2 151 -45t55 -128q0 -101 -71.5 -165t-236.5 -64q-36 0 -69 3q-78 3 -93 3h-133v49l83 10v622zM292 414h55q70 0 106 39t36 111q0 70 -36 102.5t-123 32.5 q-36 0 -74 -4l-21 -2v-278q14 -1 57 -1zM339 48q101 0 146.5 41.5t45.5 119.5q0 77 -39.5 112t-127.5 35q-102 0 -129 -2v-298q23 -8 104 -8z" />
|
||||
<glyph unicode="C" horiz-adv-x="653" d="M190.5 36.5q-77.5 47.5 -117.5 133.5t-40 202q0 112 47 198t129 133.5t184 47.5q77 0 185 -24l33 -6l-10 -180h-67l-25 127q-14 12 -48.5 20.5t-84.5 8.5q-64 0 -114 -36.5t-78.5 -107.5t-28.5 -170q0 -94 25 -171t76 -122.5t126 -45.5q53 0 81.5 9t48.5 26l42 98l63 -8 l-24 -142q-21 -1 -62 -14q-36 -11 -69.5 -17.5t-83.5 -6.5q-110 0 -187.5 47.5z" />
|
||||
<glyph unicode="D" horiz-adv-x="758" d="M129 681l-78 12v50h131q31 0 89 4t87 4q186 0 276.5 -93.5t90.5 -262.5q0 -118 -46.5 -209.5t-130.5 -142.5t-193 -51q-24 0 -82 4q-60 4 -90 4h-137v49l83 10v622zM325 48h30q75 1 132.5 38t89.5 110.5t32 178.5q0 158 -68.5 240t-206.5 82q-29 0 -69 -4q-17 -3 -30 -3 v-634q35 -8 90 -8z" />
|
||||
<glyph unicode="E" horiz-adv-x="651" d="M129 681l-82 12v50h509l14 -155h-57l-29 97l-248 6v-282l167 3l14 83h55v-230h-55l-14 86l-167 3v-298l282 10l53 126l59 -18l-29 -174h-555v49l83 10v622z" />
|
||||
<glyph unicode="F" horiz-adv-x="619" d="M129 681l-86 12v50h535l10 -170h-65l-30 111l-257 7v-290l181 3l17 83h53v-234h-52l-18 87l-181 4v-285l156 -10v-49h-343v49l80 10v622z" />
|
||||
<glyph unicode="G" horiz-adv-x="740" d="M203.5 37q-78.5 48 -119.5 132.5t-41 191.5q0 123 48.5 211t134.5 133.5t196 45.5q101 0 233 -31l-9 -173h-71l-24 120q-14 11 -47.5 21t-89.5 10q-73 0 -129 -36t-87.5 -107t-31.5 -172q0 -93 25.5 -170t78 -123.5t128.5 -46.5q48 0 91 11.5t66 30.5v223l-126 10v59h292 v-59l-58 -9v-269q-22 -1 -73 -17q-52 -16 -98 -25t-102 -9q-108 0 -186.5 48z" />
|
||||
<glyph unicode="H" horiz-adv-x="828" d="M131 681l-79 12v50h272v-50l-86 -12v-269h352v269l-81 12v50h268v-50l-79 -12v-622l79 -10v-49h-269v49l82 10v291h-352v-291l87 -10v-49h-275v49l81 10v622z" />
|
||||
<glyph unicode="I" horiz-adv-x="403" d="M147 681l-93 12v50h294v-50l-93 -12v-622l93 -11v-48h-293v49l92 10v622z" />
|
||||
<glyph unicode="J" horiz-adv-x="381" d="M73 -90.5q35 33.5 51 82.5q13 38 17 88.5t4 155.5v444l-96 13v50h294v-50l-91 -13v-405v-47q0 -79 -2 -127t-9 -82q-18 -80 -79 -132t-141 -66l-27 42q44 13 79 46.5z" />
|
||||
<glyph unicode="K" horiz-adv-x="726" d="M540.5 40.5q-26.5 40.5 -75.5 127.5q-6 11 -33.5 59.5t-51 83.5t-41.5 55l-101 -114v-193l91 -10v-49h-281v49l83 10v622l-82 12v50h272v-50l-83 -12v-350l294 350l-84 12v50h247v-50l-77 -12l-216 -242q35 -30 74.5 -87t96.5 -147q49 -77 71.5 -109.5t35.5 -35.5l47 -11 v-49h-143q-17 0 -43.5 40.5z" />
|
||||
<glyph unicode="L" horiz-adv-x="634" d="M131 681l-81 12v50h287v-50l-99 -12v-622l258 9l59 168l61 -9l-35 -227h-533v49l83 10v622z" />
|
||||
<glyph unicode="M" horiz-adv-x="990" d="M164 681l-109 12v50h265l141 -450l33 -127l30 127l140 450h263v-50l-110 -12l80 -621l87 -11v-49h-288v49l91 10l-45 449l-21 193l-42 -144l-167 -523h-65l-162 479l-59 189l-18 -194l-40 -449l99 -10v-49h-261v49l85 10z" />
|
||||
<glyph unicode="N" horiz-adv-x="799" d="M130 681l-80 12v50h186l333 -488l56 -106v532l-87 12v50h236v-50l-80 -12v-681h-79l-340 499l-77 132v-572l95 -10v-49h-243v49l80 11v621z" />
|
||||
<glyph unicode="O" horiz-adv-x="722" d="M176.5 36q-70.5 47 -106.5 132.5t-36 198.5q0 115 43.5 202t119.5 134.5t171 47.5q156 0 238.5 -98.5t82.5 -272.5q0 -117 -44.5 -205.5t-122 -137t-173.5 -48.5q-102 0 -172.5 47zM209 614.5q-56 -84.5 -56 -247.5q0 -150 54.5 -237.5t152.5 -87.5q96 0 152.5 87 t56.5 250q0 151 -54 235.5t-153 84.5q-97 0 -153 -84.5z" />
|
||||
<glyph unicode="P" horiz-adv-x="649" d="M131 681l-78 12v50h133q36 0 71 3q54 4 102 4q145 -1 205 -54t60 -160q0 -80 -37 -139t-102.5 -90t-150.5 -31q-29 0 -59 1.5t-37 2.5v-220l137 -11v-49h-327v49l83 10v622zM334 330q79 0 128.5 48t49.5 157q0 86 -43 123.5t-134 37.5q-32 0 -68 -4q-22 -2 -29 -2v-355 q28 -5 96 -5z" />
|
||||
<glyph unicode="Q" horiz-adv-x="727" d="M724 -183q-40 15 -72.5 36.5t-77.5 56.5q-49 38 -82.5 59t-68.5 28q-37 -8 -72 -8q-101 0 -172 47t-107 132.5t-36 198.5q0 115 43.5 202t119.5 134.5t172 47.5q156 0 238 -98.5t82 -272.5q0 -129 -53.5 -223t-144.5 -137q45 -4 87 -22t99 -51q63 -34 102 -50t80 -16 q17 0 31 2l12 -43q-18 -19 -43 -28.5t-52 -9.5q-45 0 -85 15zM515 128.5q56 86.5 56 250.5q0 151 -54 235.5t-152 84.5q-97 0 -153.5 -84t-56.5 -248q0 -150 54.5 -237.5t152.5 -87.5q97 0 153 86.5z" />
|
||||
<glyph unicode="R" horiz-adv-x="704" d="M46 49l83 10v622l-78 13v49h131q28 0 76 4q50 4 78 4q147 0 209.5 -47.5t62.5 -149.5q0 -71 -39.5 -130t-108.5 -80q32 -17 59.5 -58.5t67.5 -115.5q31 -56 47.5 -82t31.5 -29l39 -10v-49h-138q-16 0 -36 34.5t-53 106.5q-36 79 -62.5 125.5t-52.5 59.5q-107 0 -127 1 v-268l99 -10v-49h-289v49zM456 422q37 42 37 125q0 73 -37.5 111.5t-129.5 38.5q-32 0 -64 -4q-20 -2 -26 -2v-310q15 -1 62 -1h57q64 0 101 42z" />
|
||||
<glyph unicode="S" horiz-adv-x="594" d="M197 -2q-41 9 -90 24q-30 11 -45 12l8 181h64l17 -130q17 -16 55.5 -28.5t84.5 -12.5q76 0 115.5 34t39.5 94q0 39 -21.5 67t-57 48t-97.5 47q-56 25 -97.5 51t-72 69.5t-30.5 104.5q0 55 29.5 98.5t85 68.5t129.5 25q46 0 81.5 -7t80.5 -19q20 -7 34 -9l-6 -168h-61 l-20 123q-10 10 -41.5 19t-68.5 9q-69 0 -104.5 -29t-35.5 -84q0 -40 21.5 -67t53.5 -46t102 -52q65 -31 106 -56t70.5 -65.5t29.5 -96.5q0 -53 -29.5 -102t-90 -80.5t-146.5 -31.5q-52 0 -93 9z" />
|
||||
<glyph unicode="T" horiz-adv-x="692" d="M290 690l-172 -6l-35 -209h-66l17 268h623l12 -268h-63l-33 209l-173 6v-631l142 -10v-49h-382v49l130 10v631z" />
|
||||
<glyph unicode="U" horiz-adv-x="740" d="M164.5 70.5q-69.5 78.5 -69.5 243.5v367l-71 12v50h267v-50l-85 -13v-377q0 -136 48.5 -196t139.5 -60t136.5 64t45.5 186v383l-84 13v50h233v-50l-73 -12v-379q0 -156 -74 -233t-197 -77q-147 0 -216.5 78.5z" />
|
||||
<glyph unicode="V" horiz-adv-x="670" d="M-16 743h266v-50l-89 -12l165 -469l37 -122l33 124l149 467l-79 12v50h223v-50l-64 -12l-237 -689h-87l-256 689l-61 12v50z" />
|
||||
<glyph unicode="W" horiz-adv-x="1000" d="M-19 743h271v-50l-94 -12l137 -466l29 -139l33 139l115 381l-27 85l-71 12v50h281v-50l-98 -12l135 -466l34 -150l28 150l126 466l-99 12v50h238v-50l-66 -12l-199 -686h-98l-153 501l-148 -501h-95l-213 685l-66 13v50z" />
|
||||
<glyph unicode="X" horiz-adv-x="712" d="M303 371l-208 309l-74 13v50h298v-50l-95 -13l156 -253l156 254l-88 12v50h246v-50l-80 -13l-203 -290l223 -331l76 -10v-49h-297v49l93 10l-170 273l-163 -273l100 -10v-49h-266v49l85 10z" />
|
||||
<glyph unicode="Y" horiz-adv-x="644" d="M273 289l-225 391l-60 13v50h261v-50l-79 -12l141 -268l32 -76l36 76l133 268l-82 12v50h228v-50l-65 -12l-209 -391v-230l112 -11v-49h-332v49l109 10v230z" />
|
||||
<glyph unicode="Z" horiz-adv-x="654" d="M480 695l-296 -11l-51 -133l-57 8l22 187h485l23 -43l-380 -576l-67 -74l346 18l52 157l59 -13l-23 -215h-532l-27 44l388 580z" />
|
||||
<glyph unicode="[" horiz-adv-x="428" d="M105.5 768.5q9.5 20.5 29 28t55.5 7.5q70 0 148 -18v-42h-151v-820h151v-42q-73 -19 -148 -19q-36 0 -55.5 7.5t-29 28t-9.5 61.5v747q0 41 9.5 61.5z" />
|
||||
<glyph unicode="\" horiz-adv-x="431" d="M302 -177l-272 958h85l273 -958h-86z" />
|
||||
<glyph unicode="]" horiz-adv-x="428" d="M322.5 -101.5q-9.5 -20.5 -29 -28t-55.5 -7.5q-77 0 -148 19v42h150v820h-150v42q78 18 148 18q36 0 55.5 -7.5t29 -28t9.5 -61.5v-747q0 -41 -9.5 -61.5z" />
|
||||
<glyph unicode="^" horiz-adv-x="666" d="M579 133h-83l-164 508l-163 -508h-83l201 615h90z" />
|
||||
<glyph unicode="_" horiz-adv-x="835" d="M-10 -183v61h855v-61h-855z" />
|
||||
<glyph unicode="`" horiz-adv-x="333" d="M85 726q-71 61 -92 95l72 63l162 -198l-38 -33h-1q-32 12 -103 73z" />
|
||||
<glyph unicode="a" horiz-adv-x="561" d="M139 288.5q94 44.5 238 47.5v28q0 47 -10 74t-34.5 39.5t-69.5 12.5q-51 0 -91.5 -14.5t-80.5 -35.5l-25 52q13 11 48 29t81 32t92 14q71 0 112.5 -19.5t59.5 -62.5t18 -115v-321h59v-44q-20 -5 -50.5 -10t-53.5 -5q-28 0 -38 8.5t-10 37.5v33q-30 -30 -73.5 -55 t-98.5 -25q-72 0 -119.5 41.5t-47.5 119.5q0 94 94 138.5zM315 73q34 16 62 38v172q-109 0 -164.5 -33.5t-55.5 -87.5t26.5 -79.5t71.5 -25.5q26 0 60 16z" />
|
||||
<glyph unicode="b" horiz-adv-x="607" d="M-2 800l160 19h2l23 -15v-301q30 29 71.5 48t92.5 19q60 0 109.5 -29t79 -90t29.5 -154q0 -86 -35.5 -156t-101.5 -111t-153 -41q-69 0 -126 13.5t-69 24.5v720l-82 11v42zM235.5 481.5q-32.5 -17.5 -52.5 -39.5v-368q6 -14 34.5 -22.5t64.5 -8.5q77 0 124 62t47 181 q0 107 -41 160t-106 53q-38 0 -70.5 -17.5z" />
|
||||
<glyph unicode="c" horiz-adv-x="513" d="M65.5 424q32.5 67 96 106.5t152.5 39.5q43 0 74 -8t74 -22l-4 -154h-65l-22 102q-6 28 -76 28t-110.5 -56.5t-40.5 -160.5q0 -118 45.5 -179.5t118.5 -61.5q42 0 79.5 13t64.5 31l19 -40q-27 -28 -79.5 -50.5t-106.5 -22.5q-82 0 -138.5 37t-85 101.5t-28.5 146.5 q0 83 32.5 150z" />
|
||||
<glyph unicode="d" horiz-adv-x="621" d="M151 19q-50 30 -79.5 92t-29.5 153q0 85 35 155t100.5 110.5t154.5 40.5q51 0 93 -11v187l-102 12v43l180 18h3l22 -16v-752h58v-46q-32 -7 -55.5 -11t-49.5 -4t-37 9t-11 38v32q-28 -34 -73.5 -57t-98.5 -23q-60 0 -110 30zM374 77.5q34 17.5 51 40.5v366 q-8 12 -37.5 21.5t-62.5 9.5q-78 0 -124.5 -59.5t-46.5 -183.5q0 -108 41 -160t106 -52q39 0 73 17.5z" />
|
||||
<glyph unicode="e" horiz-adv-x="544" d="M106.5 68q-63.5 79 -63.5 211q0 87 33 153t92.5 102t135.5 36q93 0 144.5 -51.5t54.5 -147.5q0 -61 -7 -93h-344q2 -99 46 -159.5t125 -60.5q40 0 83.5 14.5t67.5 34.5l19 -44q-29 -30 -86 -52t-116 -22q-121 0 -184.5 79zM393 331q3 21 3 43q-1 65 -27.5 102.5 t-83.5 37.5q-58 0 -92.5 -42t-39.5 -141h240z" />
|
||||
<glyph unicode="f" horiz-adv-x="400" d="M125 489h-94v46l94 19v47q0 62 32.5 114t85 82.5t111.5 30.5q34 0 59 -9v-100q-9 8 -35.5 15.5t-58.5 7.5q-47 0 -68.5 -24.5t-21.5 -84.5v-79h138v-65h-138v-432l111 -8v-49h-300v49l85 9v431z" />
|
||||
<glyph unicode="g" horiz-adv-x="607" d="M98.5 -229.5q-57.5 40.5 -57.5 111.5q0 44 27.5 81t65.5 56q-46 26 -46 84q0 36 21 68t55 49q-50 22 -76.5 63t-26.5 97q0 58 32.5 101t86 66t113.5 23q101 0 158 -42q15 15 46 29t66 14h34v-88h-110q24 -37 24 -86q0 -59 -29.5 -104.5t-82 -70.5t-118.5 -25q-43 0 -77 9 q-14 -14 -23 -31t-9 -33q0 -36 24 -49.5t86 -13.5h113q97 0 144 -37t47 -105q0 -57 -41 -104.5t-110.5 -75t-150.5 -27.5q-128 0 -185.5 40.5zM405 387q0 67 -29.5 98.5t-88.5 31.5q-55 0 -87 -30.5t-32 -97.5q0 -63 30.5 -100t92.5 -37q114 0 114 135zM385.5 -197.5 q43.5 14.5 70.5 43t27 66.5q0 45 -24 65.5t-93 20.5h-118q-40 0 -63 5q-41 -45 -41 -101t34 -85t115 -29q49 0 92.5 14.5z" />
|
||||
<glyph unicode="h" horiz-adv-x="659" d="M99 746l-84 11v43l163 19h2l22 -15v-232l-4 -85q32 29 88 55t113 26q63 0 98 -24t49 -73.5t14 -133.5v-279l70 -9v-49h-239v49l65 9v280q0 59 -8 92.5t-30 50t-66 16.5q-36 0 -77 -18t-72 -42v-379l69 -9v-49h-233v49l60 8v689z" />
|
||||
<glyph unicode="i" horiz-adv-x="333" d="M115 673q-16 18 -16 46q0 32 19.5 53t53.5 21t50 -18t16 -46q0 -34 -19.5 -54t-54.5 -20h-1q-32 0 -48 18zM123 478l-76 18v53l155 19h2l23 -18v-493l80 -8v-49h-265v49l81 9v420z" />
|
||||
<glyph unicode="j" horiz-adv-x="317" d="M115 673q-16 18 -16 46q0 32 19.5 53t53.5 21t50 -18t16 -46q0 -34 -19.5 -54t-55.5 -20h-1q-31 0 -47 18zM42 549l155 19h2l22 -18v-543q0 -83 -24 -139.5t-65 -83.5t-92 -27q-39 0 -46 4l-5 47q8 -1 23.5 2t31.5 9q41 14 57.5 67.5t16.5 143.5v445l-76 18v56z" />
|
||||
<glyph unicode="k" horiz-adv-x="600" d="M98 746l-78 11v43l159 19h1l22 -15v-489l-2 -59l231 239l-75 14v46h242v-46l-79 -14l-147 -143l190 -295l62 -8v-49h-243v49l63 9l-141 232l-103 -102l2 -51v-79l71 -9v-49h-238v49l63 9v688z" />
|
||||
<glyph unicode="l" horiz-adv-x="333" d="M118 746l-81 11v43l161 19h2l22 -15v-747l85 -8v-49h-270v49l81 9v688z" />
|
||||
<glyph unicode="m" horiz-adv-x="995" d="M44 49l61 9v420l-72 18v54l143 18l18 -13l6 -40l-1 -32q35 32 95.5 58.5t108.5 26.5q54 0 87 -18t50 -56q32 27 89.5 50.5t107.5 23.5q62 0 97 -23.5t49.5 -73t14.5 -132.5v-281l72 -9v-49h-238v49l62 9v278q0 58 -8.5 92.5t-32 51.5t-67.5 17q-33 0 -70 -14.5t-63 -34.5 q9 -39 9 -111v-279l71 -9v-49h-242v49l66 9v280q0 60 -7.5 93t-28.5 49.5t-64 16.5q-36 0 -76.5 -18t-70.5 -42v-379l67 -9v-49h-233v49z" />
|
||||
<glyph unicode="n" horiz-adv-x="664" d="M105 478l-72 18v54l143 18h3l21 -18v-42l-1 -24q36 32 95 58t113 26q63 0 97.5 -24t48.5 -73.5t14 -133.5v-280l70 -7v-50h-237v49l62 8v281q0 59 -8 92.5t-30 50t-64 16.5q-36 0 -77 -18t-73 -42v-379l68 -9v-49h-236v49l63 9v420z" />
|
||||
<glyph unicode="o" horiz-adv-x="608" d="M82 435q37 66 97.5 100.5t129.5 34.5q126 0 189.5 -80t63.5 -210q0 -91 -37 -157t-97.5 -100t-129.5 -34q-126 0 -189.5 80t-63.5 210q0 90 37 156zM410 103q37 57 37 169q0 111 -34 176t-109 65q-69 0 -106.5 -57t-37.5 -169q0 -111 35 -176t109 -65q69 0 106 57z" />
|
||||
<glyph unicode="p" horiz-adv-x="628" d="M551 141.5q-35 -70.5 -100 -111.5t-152 -41q-24 0 -52 4t-45 10l3 -84v-101l104 -11v-49h-279v49l72 11v660l-73 18v54l142 18h2l21 -18v-59q30 33 74.5 56t99.5 23q59 0 108.5 -29t79.5 -90t30 -154q0 -85 -35 -155.5zM256 484q-33 -16 -51 -35v-377q7 -12 35.5 -21.5 t62.5 -9.5q77 0 124.5 61t47.5 184q0 108 -41.5 161t-106.5 53q-38 0 -71 -16z" />
|
||||
<glyph unicode="q" horiz-adv-x="609" d="M313 -195l111 11v161l3 82q-30 -30 -72.5 -50t-93.5 -20q-59 0 -109 30.5t-80 93t-30 154.5q0 85 35 154t100.5 109t154.5 40q58 0 122 -18l55 15l19 -17v-735l69 -10v-47h-284v47zM373 72.5q32 16.5 51 36.5v379q-6 12 -36 21.5t-64 9.5q-76 0 -122.5 -60.5 t-46.5 -184.5q0 -107 41.5 -162.5t106.5 -55.5q38 0 70 16.5z" />
|
||||
<glyph unicode="r" horiz-adv-x="458" d="M47 49l75 6v423l-72 18v54l138 18h2l22 -18v-18l-3 -78h3q10 17 36 44t67 49.5t89 22.5q20 0 33 -5v-112q-7 5 -22.5 9.5t-34.5 4.5q-83 0 -154 -51v-360l127 -8v-48h-306v49z" />
|
||||
<glyph unicode="s" horiz-adv-x="505" d="M138 80q10 -15 42.5 -27t68.5 -12q57 0 84 22t27 61q0 27 -17 47t-47.5 35.5t-87.5 37.5q-77 29 -112.5 69.5t-35.5 106.5q0 44 26.5 77t73 51.5t103.5 18.5q46 0 80.5 -7t55.5 -14t28 -9v-124h-61l-20 74q-6 12 -32 20.5t-58 8.5q-45 0 -72.5 -20t-27.5 -54 q0 -30 14.5 -49.5t36.5 -31.5t60 -28l20 -8q56 -22 91 -42t58.5 -52.5t23.5 -79.5q0 -74 -57.5 -118t-157.5 -44q-49 0 -102.5 13.5t-87.5 27.5v128h65z" />
|
||||
<glyph unicode="t" horiz-adv-x="407" d="M131 16q-28 26 -28 89v384h-72v45q5 1 28 7t31 11q16 9 25 36q8 19 19 61t13 50h59l2 -144h167v-66h-167v-307q0 -57 3.5 -80t15 -30t39.5 -7q27 0 59.5 7t50.5 15l15 -45q-24 -18 -77.5 -35t-97.5 -17q-57 0 -85 26z" />
|
||||
<glyph unicode="u" horiz-adv-x="632" d="M458.5 2q-13.5 11 -13.5 36v34q-33 -33 -82.5 -58t-99.5 -25q-93 0 -132 50t-39 165v290l-56 16v44l140 13h1l19 -12v-343q0 -58 8.5 -90.5t30 -48t62.5 -15.5q40 0 75 17t61 40v379l-72 16v44l152 13h1l23 -12v-504h60l-1 -45q-28 -7 -48.5 -11t-47.5 -4q-28 0 -41.5 11 z" />
|
||||
<glyph unicode="v" horiz-adv-x="568" d="M-1 555h232v-47l-71 -13l101 -288l42 -127l36 123l101 292l-68 13v47h203v-47l-52 -13l-193 -503h-85l-201 503l-45 13v47z" />
|
||||
<glyph unicode="w" horiz-adv-x="839" d="M-7 555h233v-47l-76 -12l83 -294l29 -127l29 128l96 352h98l99 -352l29 -129l32 128l81 293l-76 13v47h203v-47l-53 -13l-155 -503h-94l-106 353l-26 124l-21 -124l-101 -353h-93l-160 504l-51 12v47z" />
|
||||
<glyph unicode="x" horiz-adv-x="595" d="M244 277l-169 219l-56 12v47h254v-47l-70 -12l91 -129l28 -43l27 43l95 129l-73 12v47h211v-47l-60 -12l-166 -207l177 -232l58 -9v-48h-257v48l66 10l-91 135l-30 45l-27 -44l-96 -136l83 -10v-48h-233v48l67 10z" />
|
||||
<glyph unicode="y" horiz-adv-x="572" d="M92.5 -247q-16.5 2 -23.5 6v87q6 -4 23.5 -6t33.5 -2q48 0 84.5 33.5t70.5 128.5h-48l-190 495l-46 13v47h241v-47l-77 -12l98 -295l46 -146l43 147l89 294l-67 12v47h201v-47l-50 -12q-147 -450 -173 -511q-34 -86 -62 -134.5t-66 -74t-94 -25.5q-17 0 -33.5 2z" />
|
||||
<glyph unicode="z" horiz-adv-x="554" d="M146 491l-18 -95h-61v159h425l20 -43l-294 -394l-69 -62l269 9l42 112l58 -7l-18 -170h-449l-21 44l299 390l66 64z" />
|
||||
<glyph unicode="{" horiz-adv-x="508" d="M187.5 -105q-41.5 32 -41.5 94q0 33 6.5 62t19.5 67q11 33 17 57t6 49q0 26 -10.5 43t-40.5 26t-87 9v74q58 0 87.5 7t40 21.5t10.5 39.5t-5.5 48.5t-17.5 58.5q-13 38 -19.5 66.5t-6.5 61.5q0 63 41.5 95t130.5 32q27 0 52.5 -4.5t60.5 -13.5v-46q-7 1 -31.5 2t-38.5 1 q-114 0 -114 -83q0 -33 17 -103q18 -78 18 -117q0 -46 -39 -71.5t-99 -34.5q59 -8 98.5 -36t39.5 -74q0 -24 -4.5 -50.5t-13.5 -64.5q-17 -70 -17 -104q0 -83 114 -83q15 0 35.5 1t34.5 2v-46q-35 -9 -60.5 -13.5t-52.5 -4.5q-89 0 -130.5 32z" />
|
||||
<glyph unicode="|" horiz-adv-x="422" d="M252 -91h-82v960h82v-960z" />
|
||||
<glyph unicode="}" horiz-adv-x="508" d="M137.5 -132.5q-25.5 4.5 -60.5 13.5v46q14 -1 34.5 -2t35.5 -1q114 0 114 83q0 34 -17 104q-9 38 -13.5 64.5t-4.5 50.5q0 46 39.5 74t98.5 36q-60 9 -99 34.5t-39 71.5q0 39 18 117q17 70 17 103q0 83 -114 83q-14 0 -38.5 -1t-31.5 -2v46q35 9 60.5 13.5t52.5 4.5 q88 0 130 -32t42 -95q0 -33 -6.5 -61.5t-19.5 -66.5q-11 -33 -17 -57t-6 -49q0 -26 10 -40.5t39.5 -21.5t87.5 -7v-74q-56 0 -86 -9.5t-40.5 -26t-10.5 -42.5t6 -50t17 -57q13 -38 19.5 -66.5t6.5 -61.5q0 -126 -172 -126q-27 0 -52.5 4.5z" />
|
||||
<glyph unicode="~" horiz-adv-x="692" d="M167 351q42 28 92 28q32 0 56 -12t54 -35q23 -18 39 -27t35 -9q59 0 102 57l39 -42q-21 -38 -62 -65.5t-90 -27.5q-31 0 -54 12t-51 34q-23 19 -40 28.5t-38 9.5q-58 0 -104 -57l-38 43q18 35 60 63z" />
|
||||
<glyph unicode="¡" horiz-adv-x="354" d="M224 587q-23 -21 -52 -21q-32 0 -49 18t-17 45q0 32 22.5 52t54.5 20q26 0 45 -17.5t19 -45.5q0 -30 -23 -51zM148 453h66l29 -634h-122z" />
|
||||
<glyph unicode="¢" horiz-adv-x="582" d="M98.5 416q28.5 64 84.5 104.5t135 47.5l8 115h65l-9 -114q43 -4 77 -15.5t41 -13.5l-6 -154h-64l-22 102q-6 28 -76 28q-69 0 -109.5 -56.5t-40.5 -160.5q0 -118 45 -179.5t118 -61.5q42 0 80 13t64 31l19 -40q-24 -26 -71 -47.5t-98 -25.5l-6 -108h-64l6 112 q-99 15 -152 92t-53 190q0 77 28.5 141z" />
|
||||
<glyph unicode="£" horiz-adv-x="743" d="M193 499q0 74 33 131.5t89.5 89t124.5 31.5q57 0 104 -16.5t76 -41.5l-52 -76q-6 11 -28.5 28.5t-55 31t-69.5 13.5q-113 0 -113 -167v-93h153v-55h-153v-107q0 -58 -16 -98t-44 -70q36 -3 101 -17q41 -9 71.5 -14t60.5 -5q61 0 84.5 23t23.5 75q0 28 -7 54.5t-18 36.5 h110q8 -10 14 -31t6 -49q0 -47 -26 -88.5t-72 -66.5t-104 -25q-44 0 -80.5 9t-86.5 26q-41 14 -68 20.5t-55 7.5q-49 -56 -96 -56q-20 0 -35.5 10t-15.5 31q0 19 16.5 36t43.5 26.5t57 8.5q11 17 19 59.5t8 82.5v121h-99v55h99v69z" />
|
||||
<glyph unicode="¤" horiz-adv-x="755" d="M164 373q0 75 41 133l-106 106l54 55l106 -107q54 36 117 36t120 -34l106 105l54 -54l-104 -103q41 -55 41 -128q0 -76 -44 -134l105 -104l-54 -55l-105 106q-57 -36 -119 -36t-118 33l-105 -105l-54 55l104 103q-39 55 -39 128zM475.5 275q34.5 40 34.5 101 q0 39 -18.5 72t-50 52.5t-67.5 19.5q-62 0 -96.5 -42.5t-34.5 -103.5q0 -38 18 -70t48.5 -50.5t66.5 -18.5q65 0 99.5 40z" />
|
||||
<glyph unicode="¥" horiz-adv-x="769" d="M121 685l-64 13v45h265v-45l-73 -11l128 -214l30 -62l35 63l116 213l-76 11v45h230v-45l-71 -13l-174 -275h198v-53h-225v-128h225v-54h-225v-119l114 -11v-45h-324v45l111 11v119h-224v54h224v128h-224v53h189z" />
|
||||
<glyph unicode="¦" horiz-adv-x="422" d="M252 464h-82v405h82v-405zM252 -91h-82v404h82v-404z" />
|
||||
<glyph unicode="§" horiz-adv-x="672" d="M186 -2q16 -16 56.5 -29t85.5 -13q75 0 112.5 25t37.5 65q0 34 -24 58t-59 40.5t-101 41.5q-94 37 -148.5 87t-54.5 134q0 83 73 135q-54 52 -54 118q0 48 29.5 85t83.5 57t125 20q44 0 81.5 -7.5t79.5 -19.5q30 -9 33 -9l-6 -157h-60l-25 110q-7 8 -37.5 17t-69.5 9 q-68 0 -104 -22t-36 -63q0 -37 21 -61.5t49.5 -38.5t94.5 -41q68 -30 108 -51.5t74.5 -62t34.5 -96.5q0 -86 -73 -147q60 -50 60 -111q0 -44 -26.5 -82.5t-83 -63t-140.5 -24.5q-51 0 -92 9t-94 25q-35 11 -44 12l11 170h65zM370 261q5 -2 36 -15.5t59 -30.5q33 35 33 79 q0 54 -43 88t-133 71q-38 15 -64.5 27.5t-51.5 28.5q-17 -16 -25.5 -33.5t-8.5 -40.5q0 -56 43.5 -91.5t133.5 -73.5z" />
|
||||
<glyph unicode="¨" horiz-adv-x="500" d="M88.5 683q-15.5 18 -15.5 45q0 31 17 52.5t50 21.5q28 0 44 -18.5t16 -45.5q0 -32 -18 -52.5t-52 -20.5q-26 0 -41.5 18zM315.5 683.5q-15.5 18.5 -15.5 44.5q0 31 17.5 52.5t48.5 21.5q29 0 45 -19t16 -45q0 -32 -18 -52.5t-53 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="©" horiz-adv-x="1040" d="M151.5 705q56.5 98 154 155t214.5 57t214.5 -57t154 -155t56.5 -215t-56.5 -215.5t-154 -156t-214.5 -57.5t-214.5 57.5t-154 156t-56.5 215.5t56.5 215zM202.5 301.5q48.5 -86.5 132.5 -137.5t185 -51t185 51t132 137.5t48 188.5q0 101 -48 187.5t-132 137.5t-185 51 q-102 0 -186 -51t-132 -137.5t-48 -187.5q0 -102 48.5 -188.5zM361 316q-56 64 -56 170q0 68 32 124t88.5 88.5t126.5 32.5q35 0 73.5 -8.5t51.5 -21.5v-110h-53l-20 64q-23 18 -82 18q-61 0 -96 -46t-35 -125q0 -81 44.5 -130.5t116.5 -49.5q32 0 60 12t48 32l23 -40 q-24 -29 -67.5 -51.5t-92.5 -22.5q-106 0 -162 64z" />
|
||||
<glyph unicode="ª" horiz-adv-x="518" d="M99 379.5q-40 34.5 -40 90.5q0 72 71 107.5t216 40.5v17q0 61 -22 84t-80 23q-38 0 -78.5 -12t-71.5 -27l-26 49q32 20 89 37.5t105 17.5q89 0 132.5 -37t43.5 -125v-244h56v-43q-48 -12 -88 -12q-29 0 -42.5 8.5t-13.5 29.5v33q-25 -30 -64.5 -51t-88.5 -21 q-58 0 -98 34.5zM299 419.5q32 17.5 47 34.5v122q-100 -2 -144.5 -26t-44.5 -74q0 -33 21.5 -53.5t57.5 -20.5q31 0 63 17.5z" />
|
||||
<glyph unicode="«" horiz-adv-x="670" d="M324 520l-157 -221l157 -213l-50 -34l-218 212v69l218 218zM604 520l-171 -221l171 -213l-51 -34l-231 212v69l231 218z" />
|
||||
<glyph unicode="¬" horiz-adv-x="688" d="M586 89h-79v198h-404v65h483v-263z" />
|
||||
<glyph unicode="­" horiz-adv-x="628" d="M516 284h-404v73h404v-73z" />
|
||||
<glyph unicode="®" horiz-adv-x="1040" d="M151.5 705q56.5 98 154 155t214.5 57t214.5 -57t154 -155t56.5 -215t-56.5 -215.5t-154 -156t-214.5 -57.5t-214.5 57.5t-154 156t-56.5 215.5t56.5 215zM202.5 301.5q48.5 -86.5 132.5 -137.5t185 -51t185 51t132 137.5t48 188.5q0 101 -48 187.5t-132 137.5t-185 51 q-102 0 -186 -51t-132 -137.5t-48 -187.5q0 -102 48.5 -188.5zM371 669l-45 10v44h79l71 1q32 2 53 2q88 0 134 -32.5t46 -90.5q0 -55 -28.5 -93t-79.5 -49q31 -14 46 -36t30 -58q14 -34 26.5 -50t40.5 -18v-46h-75q-30 0 -43.5 21t-26.5 64q-12 43 -26.5 69t-44.5 37l-78 1 v-142l51 -10v-40h-175v40l45 12v364zM531 497q37 0 63 27.5t26 65.5q0 47 -25.5 67t-78.5 20q-33 0 -66 -5v-172q16 -3 81 -3z" />
|
||||
<glyph unicode="¯" horiz-adv-x="333" d="M303 697h-275v71h275v-71z" />
|
||||
<glyph unicode="°" horiz-adv-x="463" d="M145.5 483.5q-39.5 23.5 -63 62.5t-23.5 85q0 48 23.5 87t63 61.5t85.5 22.5q49 0 89 -23t62.5 -62.5t22.5 -85.5q0 -48 -23.5 -87t-63 -61.5t-87.5 -22.5q-46 0 -85.5 23.5zM306.5 554q28.5 30 28.5 77q0 44 -30 76t-74 32q-45 0 -74 -31t-29 -77q0 -44 30.5 -75.5 t73.5 -31.5q46 0 74.5 30z" />
|
||||
<glyph unicode="±" horiz-adv-x="661" d="M295 362l-3 85v111h77v-111l-5 -85l76 5h116v-75h-116l-76 3l5 -82v-111h-77v111l3 82l-87 -3h-103v75h103zM549 0h-438v71h438v-71z" />
|
||||
<glyph unicode="²" horiz-adv-x="498" d="M170.5 432q59.5 50 105 110t45.5 113q0 44 -25.5 71t-71.5 27q-41 0 -76.5 -17.5t-56.5 -38.5l-32 35q23 30 73.5 57.5t111.5 27.5q80 0 124.5 -39t44.5 -104q0 -72 -78.5 -160.5t-183.5 -151.5l217 15l37 75l49 -10l-25 -134h-349l-17 45q48 29 107.5 79z" />
|
||||
<glyph unicode="³" horiz-adv-x="488" d="M143 314.5q-39 7.5 -68 21.5v53q27 -10 58.5 -17t59.5 -7q157 0 157 98q0 35 -31.5 60t-85.5 24q-14 -6 -59 -21l-16 48q26 5 69 24q82 39 82 96q0 33 -21.5 49t-67.5 16q-35 0 -70 -10.5t-55 -27.5l-28 45q25 24 73.5 39.5t104.5 15.5q71 0 113.5 -32.5t42.5 -82.5 q0 -42 -27 -74.5t-87 -57.5q53 3 89 -13t53 -43.5t17 -56.5q0 -69 -60.5 -111.5t-171.5 -42.5q-32 0 -71 7.5z" />
|
||||
<glyph unicode="´" horiz-adv-x="333" d="M102 686l162 198l72 -63q-22 -34 -92 -93.5t-105 -74.5z" />
|
||||
<glyph unicode="µ" horiz-adv-x="683" d="M120 494l-59 21v38l144 12l19 -11v-392q0 -20 13.5 -44t40.5 -41t65 -17q47 0 78 22.5t43 47.5v364l-68 21l-1 38l158 12l15 -11v-504h59v-46q-18 -7 -45.5 -12t-53.5 -5q-48 0 -48 43v46q-18 -37 -56 -61.5t-84 -24.5q-37 0 -70.5 13.5t-52.5 37.5v-223h-96z" />
|
||||
<glyph unicode="¶" horiz-adv-x="731" d="M266 397q-107 0 -160.5 57.5t-53.5 164.5q0 63 31 112t91.5 76.5t146.5 27.5q65 0 122 -5q66 -4 115 -4h105v-51l-85 -10v-707l73 -10v-48h-163v764q-69 6 -109 6l-23 -1v-769h-188v48l98 10v339z" />
|
||||
<glyph unicode="·" horiz-adv-x="175" d="M37 332q-19 18 -19 46q0 31 22.5 52t52.5 21q31 0 47.5 -18.5t16.5 -45.5q0 -32 -22 -52.5t-53 -20.5q-26 0 -45 18z" />
|
||||
<glyph unicode="¸" horiz-adv-x="300" d="M40 -237q-20 4 -34 9l1 69q10 -4 23 -6t22 -2q40 0 57 13.5t17 57.5q0 26 -11.5 54.5t-22.5 42.5l31 5l19 -5q21 -19 43 -58t22 -80q0 -56 -32.5 -80t-97.5 -24q-17 0 -37 4z" />
|
||||
<glyph unicode="¹" horiz-adv-x="484" d="M221 724q-42 -17 -128 -34l-13 52q53 16 95 34t80 47h2l51 -10v-447l112 -10v-48h-327v48l128 10v358z" />
|
||||
<glyph unicode="º" horiz-adv-x="515" d="M106.5 403q-57.5 58 -57.5 169q0 75 31.5 126.5t80.5 76.5t102 25q96 0 149.5 -57.5t53.5 -164.5q0 -79 -31 -131.5t-79 -77t-100 -24.5q-92 0 -149.5 58zM316 407q24 14 37 52t13 107q0 88 -27.5 137t-78.5 49t-80.5 -41.5t-29.5 -129.5t30 -138t75 -50q37 0 61 14z" />
|
||||
<glyph unicode="»" horiz-adv-x="670" d="M348 333v-69l-232 -212l-50 34l171 213l-171 221l50 31zM614 333v-69l-217 -212l-51 34l157 213l-157 221l51 31z" />
|
||||
<glyph unicode="¼" horiz-adv-x="1177" d="M221 674q-42 -17 -128 -34l-13 52q53 16 95 34t80 47h2l51 -10v-447l112 -10v-48h-327v48l128 10v358zM794 807l-361 -884l-71 4l363 886zM716 171q51 91 111.5 199.5t90.5 163.5h81l16 -19l-194 -315l-39 -52l193 8l9 135l72 5v-136l90 5v-66h-90v-99h-82v99h-246 l-30 39z" />
|
||||
<glyph unicode="½" horiz-adv-x="1170" d="M221 674q-42 -17 -128 -34l-13 52q53 16 95 34t80 47h2l51 -10v-447l112 -10v-48h-327v48l128 10v358zM794 807l-361 -884l-71 4l363 886zM842.5 115q59.5 50 105 110t45.5 113q0 44 -25.5 71t-71.5 27q-41 0 -76.5 -17.5t-56.5 -38.5l-32 35q23 30 73.5 57.5t111.5 27.5 q80 0 124.5 -39t44.5 -104q0 -72 -78.5 -160.5t-183.5 -151.5l217 15l37 75l49 -10l-25 -134h-349l-17 45q48 29 107.5 79z" />
|
||||
<glyph unicode="¾" horiz-adv-x="1181" d="M143 264.5q-39 7.5 -68 21.5v53q27 -10 58.5 -17t59.5 -7q157 0 157 98q0 35 -31.5 60t-85.5 24q-14 -6 -59 -21l-16 48q26 5 69 24q82 39 82 96q0 33 -21.5 49t-67.5 16q-35 0 -70 -10.5t-55 -27.5l-28 45q25 24 73.5 39.5t104.5 15.5q71 0 113.5 -32.5t42.5 -82.5 q0 -42 -27 -74.5t-87 -57.5q53 3 89 -13t53 -43.5t17 -56.5q0 -69 -60.5 -111.5t-171.5 -42.5q-32 0 -71 7.5zM798 807l-361 -884l-71 4l363 886zM720 171q51 91 111.5 199.5t90.5 163.5h81l16 -19l-194 -315l-39 -52l193 8l9 135l72 5v-136l90 5v-66h-90v-99h-82v99h-246 l-30 39z" />
|
||||
<glyph unicode="¿" horiz-adv-x="487" d="M347 685.5q19 -17.5 19 -44.5q0 -31 -23 -52t-52 -21q-32 0 -49 18.5t-17 44.5q0 33 22 52.5t55 19.5q26 0 45 -17.5zM348 314q0 -39 -29.5 -68t-87.5 -67q-37 -24 -59.5 -41.5t-37.5 -37.5q-2 -10 -4 -29t-2 -35q0 -46 26.5 -86.5t78 -65.5t121.5 -25q44 0 75 14l16 -62 q-17 -10 -51 -17t-71 -7q-146 0 -217 68t-71 176q0 47 19.5 83t46 60.5t69.5 55.5q31 22 49 37.5t27 32.5q2 8 2 14l-1 12q0 89 -4 126h70q29 -64 35 -138z" />
|
||||
<glyph unicode="À" horiz-adv-x="692" d="M290 749h110l243 -690l62 -10v-49h-264v49l83 10l-47 148h-292l-47 -148l86 -10v-49h-237v49l62 10zM353 589l-25 88l-24 -90l-101 -321h255zM278.5 856.5q-51.5 39.5 -77.5 73.5l80 51l135 -152l-48 -30q-38 18 -89.5 57.5z" />
|
||||
<glyph unicode="Á" horiz-adv-x="692" d="M290 749h110l243 -690l62 -10v-49h-264v49l83 10l-47 148h-292l-47 -148l86 -10v-49h-237v49l62 10zM353 589l-25 88l-24 -90l-101 -321h255zM268 829l134 152l81 -51q-28 -35 -77.5 -74t-87.5 -57z" />
|
||||
<glyph unicode="Â" horiz-adv-x="692" d="M290 749h110l243 -690l62 -10v-49h-264v49l83 10l-47 148h-292l-47 -148l86 -10v-49h-237v49l62 10zM353 589l-25 88l-24 -90l-101 -321h255zM384 982l135 -144l-41 -29l-134 103l-136 -103l-39 28l135 145h80z" />
|
||||
<glyph unicode="Ã" horiz-adv-x="692" d="M290 749h110l243 -690l62 -10v-49h-264v49l83 10l-47 148h-292l-47 -148l86 -10v-49h-237v49l62 10zM353 589l-25 88l-24 -90l-101 -321h255zM371 825.5q-19 10.5 -44 30.5q-17 15 -29.5 22.5t-27.5 7.5q-25 0 -37.5 -15.5t-22.5 -43.5l-47 27q14 45 42 73t71 28 q31 0 50.5 -11t43.5 -33q17 -15 28 -22t24 -7q22 0 35.5 17t23.5 44l47 -27q-15 -47 -40 -74t-69 -27q-29 0 -48 10.5z" />
|
||||
<glyph unicode="Ä" horiz-adv-x="692" d="M290 749h110l243 -690l62 -10v-49h-264v49l83 10l-47 148h-292l-47 -148l86 -10v-49h-237v49l62 10zM353 589l-25 88l-24 -90l-101 -321h255zM173 837.5q-15 18.5 -15 44.5q0 32 16.5 53t48.5 21h1q28 0 44 -19t16 -45q0 -32 -18 -52.5t-52 -20.5h-1q-25 0 -40 18.5z M417.5 837.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t48 21.5h1q28 0 43.5 -19t15.5 -45q0 -32 -17.5 -52.5t-51.5 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="Å" horiz-adv-x="692" d="M-13 49l62 10l238 682q-53 11 -79.5 41.5t-26.5 73.5q0 61 48.5 94t117.5 33q77 0 118 -33t41 -89q0 -46 -28.5 -76t-75.5 -42l241 -684l62 -10v-49h-264v49l83 10l-47 148h-292l-47 -148l86 -10v-49h-237v49zM275 802.5q23 -23.5 69 -23.5q90 0 90 76q0 37 -21.5 60 t-67.5 23t-69.5 -19.5t-23.5 -57.5q0 -35 23 -58.5zM458 266l-105 323l-25 88l-24 -90l-101 -321h255z" />
|
||||
<glyph unicode="Æ" horiz-adv-x="921" d="M401 216h-259l-63 -157l77 -11v-48h-244v48l73 11l275 623l-133 12v49h699l16 -158h-57l-31 102l-246 5v-283l164 3l13 83h56v-230h-56l-13 87l-164 2v-299l281 11l60 126l61 -17l-37 -175h-558v48l86 11v157zM401 688h-66l-55 -131l-114 -282h235v413z" />
|
||||
<glyph unicode="Ç" horiz-adv-x="653" d="M190.5 36.5q-77.5 47.5 -117.5 133.5t-40 202q0 112 47 198t129 133.5t184 47.5q77 0 185 -24l33 -6l-10 -180h-67l-25 127q-14 12 -48.5 20.5t-84.5 8.5q-64 0 -114 -36.5t-78.5 -107.5t-28.5 -170q0 -94 25 -171t76 -122.5t126 -45.5q53 0 81.5 9t48.5 26l42 98l63 -8 l-24 -142q-21 -1 -62 -14q-36 -11 -69.5 -17.5t-83.5 -6.5q-110 0 -187.5 47.5zM288 -237q-20 4 -34 9l1 69q10 -4 23 -6t22 -2q40 0 57 13.5t17 57.5q0 26 -11.5 54.5t-22.5 42.5l31 5l19 -5q21 -19 43 -58t22 -80q0 -56 -32.5 -80t-97.5 -24q-17 0 -37 4z" />
|
||||
<glyph unicode="È" horiz-adv-x="651" d="M129 681l-82 12v50h509l14 -155h-57l-29 97l-248 6v-282l167 3l14 83h55v-230h-55l-14 86l-167 3v-298l282 10l53 126l59 -18l-29 -174h-555v49l83 10v622zM276.5 856.5q-51.5 39.5 -77.5 73.5l80 51l135 -152l-48 -30q-38 18 -89.5 57.5z" />
|
||||
<glyph unicode="É" horiz-adv-x="651" d="M129 681l-82 12v50h509l14 -155h-57l-29 97l-248 6v-282l167 3l14 83h55v-230h-55l-14 86l-167 3v-298l282 10l53 126l59 -18l-29 -174h-555v49l83 10v622zM266 829l134 152l81 -51q-28 -35 -77.5 -74t-87.5 -57z" />
|
||||
<glyph unicode="Ê" horiz-adv-x="651" d="M129 681l-82 12v50h509l14 -155h-57l-29 97l-248 6v-282l167 3l14 83h55v-230h-55l-14 86l-167 3v-298l282 10l53 126l59 -18l-29 -174h-555v49l83 10v622zM382 982l135 -144l-41 -29l-134 103l-136 -103l-39 28l135 145h80z" />
|
||||
<glyph unicode="Ë" horiz-adv-x="651" d="M129 681l-82 12v50h509l14 -155h-57l-29 97l-248 6v-282l167 3l14 83h55v-230h-55l-14 86l-167 3v-298l282 10l53 126l59 -18l-29 -174h-555v49l83 10v622zM171 837.5q-15 18.5 -15 44.5q0 32 16.5 53t48.5 21h1q28 0 44 -19t16 -45q0 -32 -18 -52.5t-52 -20.5h-1 q-25 0 -40 18.5zM415.5 837.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t48 21.5h1q28 0 43.5 -19t15.5 -45q0 -32 -17.5 -52.5t-51.5 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="Ì" horiz-adv-x="403" d="M147 681l-93 12v50h294v-50l-93 -12v-622l93 -11v-48h-293v49l92 10v622zM137.5 856.5q-51.5 39.5 -77.5 73.5l80 51l135 -152l-48 -30q-38 18 -89.5 57.5z" />
|
||||
<glyph unicode="Í" horiz-adv-x="403" d="M147 681l-93 12v50h294v-50l-93 -12v-622l93 -11v-48h-293v49l92 10v622zM127 829l134 152l81 -51q-28 -35 -77.5 -74t-87.5 -57z" />
|
||||
<glyph unicode="Î" horiz-adv-x="403" d="M147 681l-93 12v50h294v-50l-93 -12v-622l93 -11v-48h-293v49l92 10v622zM243 982l135 -144l-41 -29l-134 103l-136 -103l-39 28l135 145h80z" />
|
||||
<glyph unicode="Ï" horiz-adv-x="403" d="M147 681l-93 12v50h294v-50l-93 -12v-622l93 -11v-48h-293v49l92 10v622zM32 837.5q-15 18.5 -15 44.5q0 32 16.5 53t48.5 21h1q28 0 44 -19t16 -45q0 -32 -18 -52.5t-52 -20.5h-1q-25 0 -40 18.5zM276.5 837.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t48 21.5h1 q28 0 43.5 -19t15.5 -45q0 -32 -17.5 -52.5t-51.5 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="Ð" horiz-adv-x="758" d="M129 681l-78 12v50h131q31 0 89 4t87 4q186 0 276.5 -93.5t90.5 -262.5q0 -118 -46.5 -209.5t-130.5 -142.5t-193 -51q-24 0 -82 4q-60 4 -90 4h-137v49l83 10v302h-75v52h75v268zM410 361h-175v-305q35 -8 90 -8h30q75 1 132.5 38t89.5 110.5t32 178.5q0 158 -68.5 240 t-206.5 82q-29 0 -69 -4q-17 -3 -30 -3v-277h175v-52z" />
|
||||
<glyph unicode="Ñ" horiz-adv-x="799" d="M130 681l-80 12v50h186l333 -488l56 -106v532l-87 12v50h236v-50l-80 -12v-681h-79l-340 499l-77 132v-572l95 -10v-49h-243v49l80 11v621zM440 825.5q-19 10.5 -44 30.5q-17 15 -29.5 22.5t-27.5 7.5q-25 0 -37.5 -15.5t-22.5 -43.5l-47 27q14 45 42 73t71 28 q31 0 50.5 -11t43.5 -33q17 -15 28 -22t24 -7q22 0 35.5 17t23.5 44l47 -27q-15 -47 -40 -74t-69 -27q-29 0 -48 10.5z" />
|
||||
<glyph unicode="Ò" horiz-adv-x="722" d="M176.5 36q-70.5 47 -106.5 132.5t-36 198.5q0 115 43.5 202t119.5 134.5t171 47.5q156 0 238.5 -98.5t82.5 -272.5q0 -117 -44.5 -205.5t-122 -137t-173.5 -48.5q-102 0 -172.5 47zM209 614.5q-56 -84.5 -56 -247.5q0 -150 54.5 -237.5t152.5 -87.5q96 0 152.5 87 t56.5 250q0 151 -54 235.5t-153 84.5q-97 0 -153 -84.5zM298.5 856.5q-51.5 39.5 -77.5 73.5l80 51l135 -152l-48 -30q-38 18 -89.5 57.5z" />
|
||||
<glyph unicode="Ó" horiz-adv-x="722" d="M176.5 36q-70.5 47 -106.5 132.5t-36 198.5q0 115 43.5 202t119.5 134.5t171 47.5q156 0 238.5 -98.5t82.5 -272.5q0 -117 -44.5 -205.5t-122 -137t-173.5 -48.5q-102 0 -172.5 47zM209 614.5q-56 -84.5 -56 -247.5q0 -150 54.5 -237.5t152.5 -87.5q96 0 152.5 87 t56.5 250q0 151 -54 235.5t-153 84.5q-97 0 -153 -84.5zM288 829l134 152l81 -51q-28 -35 -77.5 -74t-87.5 -57z" />
|
||||
<glyph unicode="Ô" horiz-adv-x="722" d="M176.5 36q-70.5 47 -106.5 132.5t-36 198.5q0 115 43.5 202t119.5 134.5t171 47.5q156 0 238.5 -98.5t82.5 -272.5q0 -117 -44.5 -205.5t-122 -137t-173.5 -48.5q-102 0 -172.5 47zM209 614.5q-56 -84.5 -56 -247.5q0 -150 54.5 -237.5t152.5 -87.5q96 0 152.5 87 t56.5 250q0 151 -54 235.5t-153 84.5q-97 0 -153 -84.5zM404 982l135 -144l-41 -29l-134 103l-136 -103l-39 28l135 145h80z" />
|
||||
<glyph unicode="Õ" horiz-adv-x="722" d="M176.5 36q-70.5 47 -106.5 132.5t-36 198.5q0 115 43.5 202t119.5 134.5t171 47.5q156 0 238.5 -98.5t82.5 -272.5q0 -117 -44.5 -205.5t-122 -137t-173.5 -48.5q-102 0 -172.5 47zM209 614.5q-56 -84.5 -56 -247.5q0 -150 54.5 -237.5t152.5 -87.5q96 0 152.5 87 t56.5 250q0 151 -54 235.5t-153 84.5q-97 0 -153 -84.5zM391 825.5q-19 10.5 -44 30.5q-17 15 -29.5 22.5t-27.5 7.5q-25 0 -37.5 -15.5t-22.5 -43.5l-47 27q14 45 42 73t71 28q31 0 50.5 -11t43.5 -33q17 -15 28 -22t24 -7q22 0 35.5 17t23.5 44l47 -27q-15 -47 -40 -74 t-69 -27q-29 0 -48 10.5z" />
|
||||
<glyph unicode="Ö" horiz-adv-x="722" d="M176.5 36q-70.5 47 -106.5 132.5t-36 198.5q0 115 43.5 202t119.5 134.5t171 47.5q156 0 238.5 -98.5t82.5 -272.5q0 -117 -44.5 -205.5t-122 -137t-173.5 -48.5q-102 0 -172.5 47zM209 614.5q-56 -84.5 -56 -247.5q0 -150 54.5 -237.5t152.5 -87.5q96 0 152.5 87 t56.5 250q0 151 -54 235.5t-153 84.5q-97 0 -153 -84.5zM193 837.5q-15 18.5 -15 44.5q0 32 16.5 53t48.5 21h1q28 0 44 -19t16 -45q0 -32 -18 -52.5t-52 -20.5h-1q-25 0 -40 18.5zM437.5 837.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t48 21.5h1q28 0 43.5 -19t15.5 -45 q0 -32 -17.5 -52.5t-51.5 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="×" horiz-adv-x="609" d="M84 464l59 61l162 -173l161 173l59 -61l-169 -163l169 -163l-59 -61l-161 173l-162 -173l-59 61l170 163z" />
|
||||
<glyph unicode="Ø" horiz-adv-x="723" d="M76.5 154.5q-42.5 89.5 -42.5 212.5q0 115 43.5 202t119.5 134.5t171 47.5q59 0 110 -15l40 103l47 -16l-42 -105q82 -41 124 -128t42 -210q0 -117 -44.5 -205.5t-122.5 -137t-176 -48.5q-48 0 -100 15l-45 -108l-49 16l48 111q-81 42 -123.5 131.5zM209.5 615 q-56.5 -84 -56.5 -248q0 -88 21.5 -156.5t62.5 -107.5l216 571q-39 25 -90 25q-97 0 -153.5 -84zM548.5 533q-21.5 67 -62.5 107l-216 -571q39 -27 91 -27q63 0 110 38t73 114t26 185q0 87 -21.5 154z" />
|
||||
<glyph unicode="Ù" horiz-adv-x="740" d="M164.5 70.5q-69.5 78.5 -69.5 243.5v367l-71 12v50h267v-50l-85 -13v-377q0 -136 48.5 -196t139.5 -60t136.5 64t45.5 186v383l-84 13v50h233v-50l-73 -12v-379q0 -156 -74 -233t-197 -77q-147 0 -216.5 78.5zM326.5 856.5q-51.5 39.5 -77.5 73.5l80 51l135 -152l-48 -30 q-38 18 -89.5 57.5z" />
|
||||
<glyph unicode="Ú" horiz-adv-x="740" d="M164.5 70.5q-69.5 78.5 -69.5 243.5v367l-71 12v50h267v-50l-85 -13v-377q0 -136 48.5 -196t139.5 -60t136.5 64t45.5 186v383l-84 13v50h233v-50l-73 -12v-379q0 -156 -74 -233t-197 -77q-147 0 -216.5 78.5zM316 829l134 152l81 -51q-28 -35 -77.5 -74t-87.5 -57z" />
|
||||
<glyph unicode="Û" horiz-adv-x="740" d="M164.5 70.5q-69.5 78.5 -69.5 243.5v367l-71 12v50h267v-50l-85 -13v-377q0 -136 48.5 -196t139.5 -60t136.5 64t45.5 186v383l-84 13v50h233v-50l-73 -12v-379q0 -156 -74 -233t-197 -77q-147 0 -216.5 78.5zM432 982l135 -144l-41 -29l-134 103l-136 -103l-39 28 l135 145h80z" />
|
||||
<glyph unicode="Ü" horiz-adv-x="740" d="M164.5 70.5q-69.5 78.5 -69.5 243.5v367l-71 12v50h267v-50l-85 -13v-377q0 -136 48.5 -196t139.5 -60t136.5 64t45.5 186v383l-84 13v50h233v-50l-73 -12v-379q0 -156 -74 -233t-197 -77q-147 0 -216.5 78.5zM221 837.5q-15 18.5 -15 44.5q0 32 16.5 53t48.5 21h1 q28 0 44 -19t16 -45q0 -32 -18 -52.5t-52 -20.5h-1q-25 0 -40 18.5zM465.5 837.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t48 21.5h1q28 0 43.5 -19t15.5 -45q0 -32 -17.5 -52.5t-51.5 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="Ý" horiz-adv-x="644" d="M273 289l-225 391l-60 13v50h261v-50l-79 -12l141 -268l32 -76l36 76l133 268l-82 12v50h228v-50l-65 -12l-209 -391v-230l112 -11v-49h-332v49l109 10v230zM254 829l134 152l81 -51q-28 -35 -77.5 -74t-87.5 -57z" />
|
||||
<glyph unicode="Þ" horiz-adv-x="645" d="M128 681l-82 13v50h276l1 -50l-88 -13v-110l33 3q10 1 48.5 4t73.5 3q109 0 168 -49.5t59 -147.5q0 -111 -68 -166.5t-191 -55.5q-75 0 -123 5v-108l107 -11v-48h-297v48l83 11v622zM458.5 253.5q42.5 40.5 42.5 124.5q0 70 -37.5 109t-116.5 39q-49 0 -112 -9v-300 q34 -4 69 -4h42q70 0 112.5 40.5z" />
|
||||
<glyph unicode="ß" horiz-adv-x="635" d="M91 466q0 98 38 170t102.5 110t143.5 38t126.5 -33.5t47.5 -99.5q0 -42 -16.5 -69t-48.5 -60q-24 -24 -35.5 -41t-11.5 -39q0 -25 17 -46t53 -51q34 -30 55 -52.5t36.5 -55t15.5 -72.5q0 -85 -62 -130.5t-166 -45.5q-18 0 -43.5 3.5t-40.5 7.5v71q43 -17 91 -17 q54 0 81.5 25t27.5 66t-20 69.5t-60 65.5q-39 36 -59 65t-20 68q0 24 11 43t35 48q28 33 43 60t15 64q0 98 -95 98q-73 0 -114 -62t-41 -182v-482h-172v49l66 9v408z" />
|
||||
<glyph unicode="à" horiz-adv-x="561" d="M139 288.5q94 44.5 238 47.5v28q0 47 -10 74t-34.5 39.5t-69.5 12.5q-51 0 -91.5 -14.5t-80.5 -35.5l-25 52q13 11 48 29t81 32t92 14q71 0 112.5 -19.5t59.5 -62.5t18 -115v-321h59v-44q-20 -5 -50.5 -10t-53.5 -5q-28 0 -38 8.5t-10 37.5v33q-30 -30 -73.5 -55 t-98.5 -25q-72 0 -119.5 41.5t-47.5 119.5q0 94 94 138.5zM315 73q34 16 62 38v172q-109 0 -164.5 -33.5t-55.5 -87.5t26.5 -79.5t71.5 -25.5q26 0 60 16zM240 693q-42 32 -81 69t-52 59l72 63l161 -198l-37 -33h-1q-20 8 -62 40z" />
|
||||
<glyph unicode="á" horiz-adv-x="561" d="M139 288.5q94 44.5 238 47.5v28q0 47 -10 74t-34.5 39.5t-69.5 12.5q-51 0 -91.5 -14.5t-80.5 -35.5l-25 52q13 11 48 29t81 32t92 14q71 0 112.5 -19.5t59.5 -62.5t18 -115v-321h59v-44q-20 -5 -50.5 -10t-53.5 -5q-28 0 -38 8.5t-10 37.5v33q-30 -30 -73.5 -55 t-98.5 -25q-72 0 -119.5 41.5t-47.5 119.5q0 94 94 138.5zM315 73q34 16 62 38v172q-109 0 -164.5 -33.5t-55.5 -87.5t26.5 -79.5t71.5 -25.5q26 0 60 16zM195 686l160 199l76 -64q-21 -34 -90 -93t-107 -75z" />
|
||||
<glyph unicode="â" horiz-adv-x="561" d="M139 288.5q94 44.5 238 47.5v28q0 47 -10 74t-34.5 39.5t-69.5 12.5q-51 0 -91.5 -14.5t-80.5 -35.5l-25 52q13 11 48 29t81 32t92 14q71 0 112.5 -19.5t59.5 -62.5t18 -115v-321h59v-44q-20 -5 -50.5 -10t-53.5 -5q-28 0 -38 8.5t-10 37.5v33q-30 -30 -73.5 -55 t-98.5 -25q-72 0 -119.5 41.5t-47.5 119.5q0 94 94 138.5zM315 73q34 16 62 38v172q-109 0 -164.5 -33.5t-55.5 -87.5t26.5 -79.5t71.5 -25.5q26 0 60 16zM313 860l140 -195l-40 -28l-140 144l-145 -144l-38 27l143 196h80z" />
|
||||
<glyph unicode="ã" horiz-adv-x="561" d="M139 288.5q94 44.5 238 47.5v28q0 47 -10 74t-34.5 39.5t-69.5 12.5q-51 0 -91.5 -14.5t-80.5 -35.5l-25 52q13 11 48 29t81 32t92 14q71 0 112.5 -19.5t59.5 -62.5t18 -115v-321h59v-44q-20 -5 -50.5 -10t-53.5 -5q-28 0 -38 8.5t-10 37.5v33q-30 -30 -73.5 -55 t-98.5 -25q-72 0 -119.5 41.5t-47.5 119.5q0 94 94 138.5zM315 73q34 16 62 38v172q-109 0 -164.5 -33.5t-55.5 -87.5t26.5 -79.5t71.5 -25.5q26 0 60 16zM122.5 774.5q31.5 30.5 79.5 30.5q30 0 50.5 -12t45.5 -35q19 -17 30.5 -24.5t25.5 -7.5q27 0 41.5 19t19.5 40 l51 -25q-11 -46 -40 -76t-76 -30q-29 0 -48.5 11.5t-44.5 34.5q-19 17 -31.5 25t-27.5 8q-25 0 -38.5 -13t-21 -27.5t-10.5 -19.5l-47 27q10 44 41.5 74.5z" />
|
||||
<glyph unicode="ä" horiz-adv-x="561" d="M139 288.5q94 44.5 238 47.5v28q0 47 -10 74t-34.5 39.5t-69.5 12.5q-51 0 -91.5 -14.5t-80.5 -35.5l-25 52q13 11 48 29t81 32t92 14q71 0 112.5 -19.5t59.5 -62.5t18 -115v-321h59v-44q-20 -5 -50.5 -10t-53.5 -5q-28 0 -38 8.5t-10 37.5v33q-30 -30 -73.5 -55 t-98.5 -25q-72 0 -119.5 41.5t-47.5 119.5q0 94 94 138.5zM315 73q34 16 62 38v172q-109 0 -164.5 -33.5t-55.5 -87.5t26.5 -79.5t71.5 -25.5q26 0 60 16zM112.5 675q-15.5 18 -15.5 45q0 31 17 52.5t49 21.5q28 0 44 -19t16 -45q0 -32 -17 -52.5t-51 -20.5q-27 0 -42.5 18z M339.5 675.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t49 21.5q28 0 43.5 -19t15.5 -45q0 -32 -17 -52.5t-52 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="å" horiz-adv-x="561" d="M139 288.5q94 44.5 238 47.5v28q0 47 -10 74t-34.5 39.5t-69.5 12.5q-51 0 -91.5 -14.5t-80.5 -35.5l-25 52q13 11 48 29t81 32t92 14q71 0 112.5 -19.5t59.5 -62.5t18 -115v-321h59v-44q-20 -5 -50.5 -10t-53.5 -5q-28 0 -38 8.5t-10 37.5v33q-30 -30 -73.5 -55 t-98.5 -25q-72 0 -119.5 41.5t-47.5 119.5q0 94 94 138.5zM315 73q34 16 62 38v172q-109 0 -164.5 -33.5t-55.5 -87.5t26.5 -79.5t71.5 -25.5q26 0 60 16zM151 678.5q-41 38.5 -41 99.5q0 42 24 72.5t63 46.5t82 16q74 0 115 -37t41 -97q0 -64 -47 -101.5t-116 -37.5 q-80 0 -121 38.5zM365 773q0 41 -22 66.5t-68 25.5q-45 0 -70 -22.5t-25 -62.5t24 -66.5t70 -26.5q91 0 91 86z" />
|
||||
<glyph unicode="æ" horiz-adv-x="869" d="M89.5 29.5q-48.5 40.5 -48.5 118.5q0 94 93 139.5t236 48.5q0 67 -8 99t-31 44.5t-72 12.5q-50 0 -91.5 -14.5t-87.5 -38.5l-25 51q14 13 51.5 31.5t85 32t93.5 13.5q66 0 105 -17.5t57 -56.5q35 37 81.5 57t100.5 20q94 0 145.5 -51.5t54.5 -147.5q0 -61 -7 -93h-345 q2 -99 46 -159.5t125 -60.5q40 0 83.5 14.5t67.5 33.5l19 -43q-29 -30 -85.5 -52t-114.5 -22q-71 0 -122.5 28t-82.5 79q-29 -42 -82 -74.5t-121 -32.5q-72 0 -120.5 40.5zM719 331q1 13 1 43q0 65 -26.5 102.5t-82.5 37.5q-58 0 -93 -42t-40 -141h241zM335 82q39 25 57 57 q-23 65 -23 148q-105 -1 -159.5 -36t-54.5 -90q0 -54 26.5 -79t71.5 -25q43 0 82 25z" />
|
||||
<glyph unicode="ç" horiz-adv-x="513" d="M65.5 424q32.5 67 96 106.5t152.5 39.5q43 0 74 -8t74 -22l-4 -154h-65l-22 102q-6 28 -76 28t-110.5 -56.5t-40.5 -160.5q0 -118 45.5 -179.5t118.5 -61.5q42 0 79.5 13t64.5 31l19 -40q-26 -27 -74 -48t-98 -24q21 -24 37.5 -57.5t16.5 -68.5q0 -56 -32.5 -80.5 t-97.5 -24.5q-17 0 -37 4t-34 9l1 69q10 -4 23 -6t22 -2q40 0 57 13.5t17 57.5q0 40 -28 88q-103 13 -157 90.5t-54 191.5q0 83 32.5 150z" />
|
||||
<glyph unicode="è" horiz-adv-x="544" d="M106.5 68q-63.5 79 -63.5 211q0 87 33 153t92.5 102t135.5 36q93 0 144.5 -51.5t54.5 -147.5q0 -61 -7 -93h-344q2 -99 46 -159.5t125 -60.5q40 0 83.5 14.5t67.5 34.5l19 -44q-29 -30 -86 -52t-116 -22q-121 0 -184.5 79zM393 331q3 21 3 43q-1 65 -27.5 102.5 t-83.5 37.5q-58 0 -92.5 -42t-39.5 -141h240zM259 693q-42 32 -81 69t-52 59l72 63l161 -198l-37 -33h-1q-20 8 -62 40z" />
|
||||
<glyph unicode="é" horiz-adv-x="544" d="M106.5 68q-63.5 79 -63.5 211q0 87 33 153t92.5 102t135.5 36q93 0 144.5 -51.5t54.5 -147.5q0 -61 -7 -93h-344q2 -99 46 -159.5t125 -60.5q40 0 83.5 14.5t67.5 34.5l19 -44q-29 -30 -86 -52t-116 -22q-121 0 -184.5 79zM393 331q3 21 3 43q-1 65 -27.5 102.5 t-83.5 37.5q-58 0 -92.5 -42t-39.5 -141h240zM214 686l160 199l76 -64q-21 -34 -90 -93t-107 -75z" />
|
||||
<glyph unicode="ê" horiz-adv-x="544" d="M106.5 68q-63.5 79 -63.5 211q0 87 33 153t92.5 102t135.5 36q93 0 144.5 -51.5t54.5 -147.5q0 -61 -7 -93h-344q2 -99 46 -159.5t125 -60.5q40 0 83.5 14.5t67.5 34.5l19 -44q-29 -30 -86 -52t-116 -22q-121 0 -184.5 79zM393 331q3 21 3 43q-1 65 -27.5 102.5 t-83.5 37.5q-58 0 -92.5 -42t-39.5 -141h240zM332 860l140 -195l-40 -28l-140 144l-145 -144l-38 27l143 196h80z" />
|
||||
<glyph unicode="ë" horiz-adv-x="544" d="M106.5 68q-63.5 79 -63.5 211q0 87 33 153t92.5 102t135.5 36q93 0 144.5 -51.5t54.5 -147.5q0 -61 -7 -93h-344q2 -99 46 -159.5t125 -60.5q40 0 83.5 14.5t67.5 34.5l19 -44q-29 -30 -86 -52t-116 -22q-121 0 -184.5 79zM393 331q3 21 3 43q-1 65 -27.5 102.5 t-83.5 37.5q-58 0 -92.5 -42t-39.5 -141h240zM131.5 675q-15.5 18 -15.5 45q0 31 17 52.5t49 21.5q28 0 44 -19t16 -45q0 -32 -17 -52.5t-51 -20.5q-27 0 -42.5 18zM358.5 675.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t49 21.5q28 0 43.5 -19t15.5 -45q0 -32 -17 -52.5 t-52 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="ì" horiz-adv-x="333" d="M123 478l-76 18v53l155 19h2l23 -18v-493l80 -8v-49h-265v49l81 9v420zM134 693q-42 32 -81 69t-52 59l72 63l161 -198l-37 -33h-1q-20 8 -62 40z" />
|
||||
<glyph unicode="í" horiz-adv-x="333" d="M123 478l-76 18v53l155 19h2l23 -18v-493l80 -8v-49h-265v49l81 9v420zM89 686l160 199l76 -64q-21 -34 -90 -93t-107 -75z" />
|
||||
<glyph unicode="î" horiz-adv-x="333" d="M123 478l-76 18v53l155 19h2l23 -18v-493l80 -8v-49h-265v49l81 9v420zM207 860l140 -195l-40 -28l-140 144l-145 -144l-38 27l143 196h80z" />
|
||||
<glyph unicode="ï" horiz-adv-x="333" d="M123 478l-76 18v53l155 19h2l23 -18v-493l80 -8v-49h-265v49l81 9v420zM6.5 675q-15.5 18 -15.5 45q0 31 17 52.5t49 21.5q28 0 44 -19t16 -45q0 -32 -17 -52.5t-51 -20.5q-27 0 -42.5 18zM233.5 675.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t49 21.5q28 0 43.5 -19 t15.5 -45q0 -32 -17 -52.5t-52 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="ð" horiz-adv-x="581" d="M103 63q-64 74 -64 198q0 99 35.5 169t94.5 105t127 35q56 0 98 -20q-22 56 -63 108t-97 88l-69 -86l-48 33l73 84q-27 17 -57 32t-51 20l20 49q66 -20 129 -52l64 78l45 -36l-60 -71q122 -83 192.5 -201.5t70.5 -270.5q0 -88 -25.5 -164t-81.5 -124t-144 -48 q-125 0 -189 74zM431 315q0 51 -6.5 92t-14.5 66q-13 17 -41.5 32t-69.5 15q-67 0 -106.5 -65.5t-39.5 -183.5q0 -99 34 -163.5t108 -64.5q136 0 136 272z" />
|
||||
<glyph unicode="ñ" horiz-adv-x="664" d="M105 478l-72 18v54l143 18h3l21 -18v-42l-1 -24q36 32 95 58t113 26q63 0 97.5 -24t48.5 -73.5t14 -133.5v-280l70 -7v-50h-237v49l62 8v281q0 59 -8 92.5t-30 50t-64 16.5q-36 0 -77 -18t-73 -42v-379l68 -9v-49h-236v49l63 9v420zM168.5 774.5q31.5 30.5 79.5 30.5 q30 0 50.5 -12t45.5 -35q19 -17 30.5 -24.5t25.5 -7.5q27 0 41.5 19t19.5 40l51 -25q-11 -46 -40 -76t-76 -30q-29 0 -48.5 11.5t-44.5 34.5q-19 17 -31.5 25t-27.5 8q-25 0 -38.5 -13t-21 -27.5t-10.5 -19.5l-47 27q10 44 41.5 74.5z" />
|
||||
<glyph unicode="ò" horiz-adv-x="608" d="M82 435q37 66 97.5 100.5t129.5 34.5q126 0 189.5 -80t63.5 -210q0 -91 -37 -157t-97.5 -100t-129.5 -34q-126 0 -189.5 80t-63.5 210q0 90 37 156zM410 103q37 57 37 169q0 111 -34 176t-109 65q-69 0 -106.5 -57t-37.5 -169q0 -111 35 -176t109 -65q69 0 106 57z M272 693q-42 32 -81 69t-52 59l72 63l161 -198l-37 -33h-1q-20 8 -62 40z" />
|
||||
<glyph unicode="ó" horiz-adv-x="608" d="M82 435q37 66 97.5 100.5t129.5 34.5q126 0 189.5 -80t63.5 -210q0 -91 -37 -157t-97.5 -100t-129.5 -34q-126 0 -189.5 80t-63.5 210q0 90 37 156zM410 103q37 57 37 169q0 111 -34 176t-109 65q-69 0 -106.5 -57t-37.5 -169q0 -111 35 -176t109 -65q69 0 106 57z M227 686l160 199l76 -64q-21 -34 -90 -93t-107 -75z" />
|
||||
<glyph unicode="ô" horiz-adv-x="608" d="M82 435q37 66 97.5 100.5t129.5 34.5q126 0 189.5 -80t63.5 -210q0 -91 -37 -157t-97.5 -100t-129.5 -34q-126 0 -189.5 80t-63.5 210q0 90 37 156zM410 103q37 57 37 169q0 111 -34 176t-109 65q-69 0 -106.5 -57t-37.5 -169q0 -111 35 -176t109 -65q69 0 106 57z M345 860l140 -195l-40 -28l-140 144l-145 -144l-38 27l143 196h80z" />
|
||||
<glyph unicode="õ" horiz-adv-x="608" d="M82 435q37 66 97.5 100.5t129.5 34.5q126 0 189.5 -80t63.5 -210q0 -91 -37 -157t-97.5 -100t-129.5 -34q-126 0 -189.5 80t-63.5 210q0 90 37 156zM410 103q37 57 37 169q0 111 -34 176t-109 65q-69 0 -106.5 -57t-37.5 -169q0 -111 35 -176t109 -65q69 0 106 57z M154.5 774.5q31.5 30.5 79.5 30.5q30 0 50.5 -12t45.5 -35q19 -17 30.5 -24.5t25.5 -7.5q27 0 41.5 19t19.5 40l51 -25q-11 -46 -40 -76t-76 -30q-29 0 -48.5 11.5t-44.5 34.5q-19 17 -31.5 25t-27.5 8q-25 0 -38.5 -13t-21 -27.5t-10.5 -19.5l-47 27q10 44 41.5 74.5z" />
|
||||
<glyph unicode="ö" horiz-adv-x="608" d="M82 435q37 66 97.5 100.5t129.5 34.5q126 0 189.5 -80t63.5 -210q0 -91 -37 -157t-97.5 -100t-129.5 -34q-126 0 -189.5 80t-63.5 210q0 90 37 156zM410 103q37 57 37 169q0 111 -34 176t-109 65q-69 0 -106.5 -57t-37.5 -169q0 -111 35 -176t109 -65q69 0 106 57z M144.5 675q-15.5 18 -15.5 45q0 31 17 52.5t49 21.5q28 0 44 -19t16 -45q0 -32 -17 -52.5t-51 -20.5q-27 0 -42.5 18zM371.5 675.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t49 21.5q28 0 43.5 -19t15.5 -45q0 -32 -17 -52.5t-52 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="÷" horiz-adv-x="665" d="M291.5 479q-18.5 17 -18.5 44q0 29 22.5 49.5t50.5 20.5q31 0 47 -17.5t16 -44.5q0 -31 -21.5 -50t-52.5 -19q-25 0 -43.5 17zM560 285h-455v72h455v-72zM286.5 162.5q22.5 20.5 51.5 20.5q31 0 47 -17.5t16 -43.5q0 -31 -22 -50.5t-52 -19.5q-25 0 -44 17t-19 44 q0 29 22.5 49.5z" />
|
||||
<glyph unicode="ø" horiz-adv-x="600" d="M78 435q37 66 97.5 100.5t129.5 34.5q41 0 74 -9l35 96l43 -11l-33 -100q67 -33 100.5 -102.5t33.5 -163.5q0 -91 -37 -157t-97.5 -100t-129.5 -34q-37 0 -71 8l-39 -103l-46 13l39 105q-68 33 -102 103t-34 164q0 90 37 156zM170 171q14 -51 42 -81l147 408 q-24 15 -59 15q-69 0 -106.5 -57t-37.5 -169q0 -65 14 -116zM406 103q37 57 37 169q0 135 -54 195l-148 -406q26 -15 59 -15q69 0 106 57z" />
|
||||
<glyph unicode="ù" horiz-adv-x="632" d="M458.5 2q-13.5 11 -13.5 36v34q-33 -33 -82.5 -58t-99.5 -25q-93 0 -132 50t-39 165v290l-56 16v44l140 13h1l19 -12v-343q0 -58 8.5 -90.5t30 -48t62.5 -15.5q40 0 75 17t61 40v379l-72 16v44l152 13h1l23 -12v-504h60l-1 -45q-28 -7 -48.5 -11t-47.5 -4q-28 0 -41.5 11 zM270 693q-42 32 -81 69t-52 59l72 63l161 -198l-37 -33h-1q-20 8 -62 40z" />
|
||||
<glyph unicode="ú" horiz-adv-x="632" d="M458.5 2q-13.5 11 -13.5 36v34q-33 -33 -82.5 -58t-99.5 -25q-93 0 -132 50t-39 165v290l-56 16v44l140 13h1l19 -12v-343q0 -58 8.5 -90.5t30 -48t62.5 -15.5q40 0 75 17t61 40v379l-72 16v44l152 13h1l23 -12v-504h60l-1 -45q-28 -7 -48.5 -11t-47.5 -4q-28 0 -41.5 11 zM225 686l160 199l76 -64q-21 -34 -90 -93t-107 -75z" />
|
||||
<glyph unicode="û" horiz-adv-x="632" d="M458.5 2q-13.5 11 -13.5 36v34q-33 -33 -82.5 -58t-99.5 -25q-93 0 -132 50t-39 165v290l-56 16v44l140 13h1l19 -12v-343q0 -58 8.5 -90.5t30 -48t62.5 -15.5q40 0 75 17t61 40v379l-72 16v44l152 13h1l23 -12v-504h60l-1 -45q-28 -7 -48.5 -11t-47.5 -4q-28 0 -41.5 11 zM343 860l140 -195l-40 -28l-140 144l-145 -144l-38 27l143 196h80z" />
|
||||
<glyph unicode="ü" horiz-adv-x="632" d="M458.5 2q-13.5 11 -13.5 36v34q-33 -33 -82.5 -58t-99.5 -25q-93 0 -132 50t-39 165v290l-56 16v44l140 13h1l19 -12v-343q0 -58 8.5 -90.5t30 -48t62.5 -15.5q40 0 75 17t61 40v379l-72 16v44l152 13h1l23 -12v-504h60l-1 -45q-28 -7 -48.5 -11t-47.5 -4q-28 0 -41.5 11 zM142.5 675q-15.5 18 -15.5 45q0 31 17 52.5t49 21.5q28 0 44 -19t16 -45q0 -32 -17 -52.5t-51 -20.5q-27 0 -42.5 18zM369.5 675.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t49 21.5q28 0 43.5 -19t15.5 -45q0 -32 -17 -52.5t-52 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="ý" horiz-adv-x="572" d="M92.5 -247q-16.5 2 -23.5 6v87q6 -4 23.5 -6t33.5 -2q48 0 84.5 33.5t70.5 128.5h-48l-190 495l-46 13v47h241v-47l-77 -12l98 -295l46 -146l43 147l89 294l-67 12v47h201v-47l-50 -12q-147 -450 -173 -511q-34 -86 -62 -134.5t-66 -74t-94 -25.5q-17 0 -33.5 2zM222 686 l160 199l76 -64q-21 -34 -90 -93t-107 -75z" />
|
||||
<glyph unicode="þ" horiz-adv-x="608" d="M160 819h2l23 -15v-301q28 28 70.5 47.5t92.5 19.5q60 0 109.5 -29t79 -90t29.5 -154q0 -86 -35.5 -156t-101 -111t-152.5 -41q-46 0 -95 9l2 -64l1 -119l109 -12v-45h-286v45l73 12v932l-82 11v42zM237 481q-33 -18 -52 -39v-368q6 -14 34.5 -22.5t63.5 -8.5 q78 0 124.5 62.5t46.5 184.5q0 105 -41 157t-106 52q-37 0 -70 -18z" />
|
||||
<glyph unicode="ÿ" horiz-adv-x="572" d="M92.5 -247q-16.5 2 -23.5 6v87q6 -4 23.5 -6t33.5 -2q48 0 84.5 33.5t70.5 128.5h-48l-190 495l-46 13v47h241v-47l-77 -12l98 -295l46 -146l43 147l89 294l-67 12v47h201v-47l-50 -12q-147 -450 -173 -511q-34 -86 -62 -134.5t-66 -74t-94 -25.5q-17 0 -33.5 2z M139.5 675q-15.5 18 -15.5 45q0 31 17 52.5t49 21.5q28 0 44 -19t16 -45q0 -32 -17 -52.5t-51 -20.5q-27 0 -42.5 18zM366.5 675.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t49 21.5q28 0 43.5 -19t15.5 -45q0 -32 -17 -52.5t-52 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="ı" horiz-adv-x="333" d="M123 478l-76 18v53l155 19h2l23 -18v-493l80 -8v-49h-265v49l81 9v420z" />
|
||||
<glyph unicode="Œ" horiz-adv-x="1031" d="M352 -8q-101 0 -172.5 47t-108.5 132t-37 197q0 117 45 204.5t123.5 135t176.5 47.5q64 0 119 -25v13h428l14 -158h-57l-28 98l-250 7v-280l168 3l14 82h57v-230h-57l-14 87l-168 3v-300l286 11l62 125l56 -16l-36 -175h-475v29q-69 -37 -146 -37zM498 117v524 q-22 32 -54.5 47t-79.5 15q-99 0 -156 -87t-57 -248q0 -95 25 -168.5t73 -114.5t114 -41q84 0 135 73z" />
|
||||
<glyph unicode="œ" horiz-adv-x="951" d="M106.5 67q-64.5 78 -64.5 212q0 89 37 155.5t98 101t131 34.5q69 0 119.5 -27t79.5 -77q34 49 86.5 76.5t116.5 27.5q93 0 144.5 -51.5t54.5 -147.5q1 -59 -6 -93h-344q2 -99 45.5 -159.5t124.5 -60.5q40 0 83 14.5t69 33.5l19 -43q-30 -30 -87 -52t-114 -22 q-70 0 -121 28t-82 80q-34 -50 -86 -79t-114 -29q-125 0 -189.5 78zM800 331q2 28 2 43q0 65 -26.5 102.5t-83.5 37.5q-58 0 -93 -42t-40 -141h241zM407 102.5q37 55.5 37 170.5q0 113 -35 176.5t-108 63.5q-70 0 -107 -57t-37 -169q0 -117 36 -178.5t108 -61.5 q69 0 106 55.5z" />
|
||||
<glyph unicode="Ÿ" horiz-adv-x="644" d="M273 289l-225 391l-60 13v50h261v-50l-79 -12l141 -268l32 -76l36 76l133 268l-82 12v50h228v-50l-65 -12l-209 -391v-230l112 -11v-49h-332v49l109 10v230zM159 837.5q-15 18.5 -15 44.5q0 32 16.5 53t48.5 21h1q28 0 44 -19t16 -45q0 -32 -18 -52.5t-52 -20.5h-1 q-25 0 -40 18.5zM403.5 837.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t48 21.5h1q28 0 43.5 -19t15.5 -45q0 -32 -17.5 -52.5t-51.5 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="ˆ" horiz-adv-x="514" d="M296 869l141 -195l-41 -27l-140 143l-144 -144l-38 27l143 196h79z" />
|
||||
<glyph unicode="˜" horiz-adv-x="518" d="M102.5 779.5q36.5 32.5 87.5 32.5q29 0 48.5 -12t43.5 -35q20 -19 33.5 -28t31.5 -9q29 0 45.5 17.5t27.5 41.5l44 -27q-16 -44 -48 -74t-80 -30q-29 0 -48.5 11.5t-44.5 34.5q-20 19 -35 28.5t-34 9.5q-20 0 -35 -10t-22 -19t-20 -30l-43 27q12 39 48.5 71.5z" />
|
||||
<glyph unicode="̀" d="M-33 693q-42 32 -81 69t-52 59l72 63l161 -198l-37 -33h-1q-20 8 -62 40z" />
|
||||
<glyph unicode="́" d="M-78 686l160 199l76 -64q-21 -34 -90 -93t-107 -75z" />
|
||||
<glyph unicode="̂" d="M40 860l140 -195l-40 -28l-140 144l-145 -144l-38 27l143 196h80z" />
|
||||
<glyph unicode="̃" d="M-150.5 774.5q31.5 30.5 79.5 30.5q30 0 50.5 -12t45.5 -35q19 -17 30.5 -24.5t25.5 -7.5q27 0 41.5 19t19.5 40l51 -25q-11 -46 -40 -76t-76 -30q-29 0 -48.5 11.5t-44.5 34.5q-19 17 -31.5 25t-27.5 8q-25 0 -38.5 -13t-21 -27.5t-10.5 -19.5l-47 27q10 44 41.5 74.5z " />
|
||||
<glyph unicode="̈" d="M-160.5 675q-15.5 18 -15.5 45q0 31 17 52.5t49 21.5q28 0 44 -19t16 -45q0 -32 -17 -52.5t-51 -20.5q-27 0 -42.5 18zM66.5 675.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t49 21.5q28 0 43.5 -19t15.5 -45q0 -32 -17 -52.5t-52 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph unicode="̊" d="M-122 678.5q-41 38.5 -41 99.5q0 42 24 72.5t63 46.5t82 16q74 0 115 -37t41 -97q0 -64 -47 -101.5t-116 -37.5q-80 0 -121 38.5zM92 773q0 41 -22 66.5t-68 25.5q-45 0 -70 -22.5t-25 -62.5t24 -66.5t70 -26.5q91 0 91 86z" />
|
||||
<glyph unicode=" " horiz-adv-x="491" />
|
||||
<glyph unicode=" " horiz-adv-x="983" />
|
||||
<glyph unicode=" " horiz-adv-x="491" />
|
||||
<glyph unicode=" " horiz-adv-x="983" />
|
||||
<glyph unicode=" " horiz-adv-x="327" />
|
||||
<glyph unicode=" " horiz-adv-x="245" />
|
||||
<glyph unicode=" " horiz-adv-x="163" />
|
||||
<glyph unicode=" " horiz-adv-x="163" />
|
||||
<glyph unicode=" " horiz-adv-x="122" />
|
||||
<glyph unicode=" " horiz-adv-x="196" />
|
||||
<glyph unicode=" " horiz-adv-x="54" />
|
||||
<glyph unicode="‐" horiz-adv-x="628" d="M516 284h-404v73h404v-73z" />
|
||||
<glyph unicode="‑" horiz-adv-x="628" d="M516 284h-404v73h404v-73z" />
|
||||
<glyph unicode="‒" horiz-adv-x="628" d="M516 284h-404v73h404v-73z" />
|
||||
<glyph unicode="–" horiz-adv-x="814" d="M701 283h-589v74h589v-74z" />
|
||||
<glyph unicode="—" horiz-adv-x="1185" d="M1073 283h-961v74h961v-74z" />
|
||||
<glyph unicode="‘" horiz-adv-x="381" d="M160 453q-23 23 -36.5 61.5t-13.5 80.5q0 61 21 114t51 89t56 49l27 -27v-11q-13 -10 -29 -38t-28 -68.5t-12 -83.5q0 -21 8.5 -36t25.5 -35q16 -18 24 -31.5t8 -31.5q0 -26 -15 -40.5t-39 -14.5q-25 0 -48 23z" />
|
||||
<glyph unicode="’" horiz-adv-x="381" d="M115 448v11q12 10 29 44.5t29 80t12 89.5q0 11 -6.5 20t-21.5 24q-18 17 -28 31.5t-10 34.5q0 26 14.5 41t38.5 15q26 0 49 -19t36.5 -52.5t13.5 -75.5q0 -61 -21.5 -118.5t-51.5 -98.5t-55 -54z" />
|
||||
<glyph unicode="‚" horiz-adv-x="381" d="M115 -234v11q12 9 28.5 43.5t29 80t12.5 89.5q0 11 -6.5 20t-21.5 24q-18 17 -28 31.5t-10 34.5q0 26 14.5 41t38.5 15q26 0 49 -19t36.5 -52.5t13.5 -75.5q0 -61 -21.5 -118.5t-51.5 -98.5t-55 -53z" />
|
||||
<glyph unicode="“" horiz-adv-x="644" d="M160 453q-23 23 -36.5 61.5t-13.5 80.5q0 61 21 113.5t51 88.5t55 50h1l27 -27v-11q-24 -19 -46.5 -62t-22.5 -105q0 -34 10 -54.5t29 -45.5q14 -17 20.5 -28.5t6.5 -28.5q0 -26 -15 -40.5t-39 -14.5q-25 0 -48 23zM422 453q-23 23 -36.5 61.5t-13.5 80.5q0 61 21 113.5 t51 88.5t55 50h1l28 -27v-11q-24 -19 -47 -62t-23 -105q0 -34 10 -55t30 -45q14 -17 20.5 -28.5t6.5 -28.5q0 -26 -15 -40.5t-39 -14.5q-26 0 -49 23z" />
|
||||
<glyph unicode="”" horiz-adv-x="644" d="M115 456v11q13 10 29.5 36.5t28.5 65t12 81.5q0 27 -9.5 44.5t-27.5 37.5q-15 17 -22 29.5t-7 29.5q0 26 14.5 40.5t38.5 14.5q26 0 49 -23t36.5 -61.5t13.5 -80.5q0 -61 -21 -113.5t-51 -88.5t-55 -50h-1zM378 456v11q13 10 29 36.5t28 65t12 81.5q0 27 -9.5 44.5 t-27.5 37.5q-15 17 -22 29.5t-7 29.5q0 26 14.5 40.5t38.5 14.5q26 0 49 -23t36.5 -61.5t13.5 -80.5q0 -61 -21 -113.5t-51 -88.5t-55 -50h-1z" />
|
||||
<glyph unicode="„" horiz-adv-x="644" d="M115 -224v11q24 19 47 62t23 105q0 34 -10 54.5t-29 45.5q-14 17 -20.5 28.5t-6.5 28.5q0 26 14.5 40.5t38.5 14.5q26 0 49 -23t36.5 -61.5t13.5 -80.5q0 -61 -21 -113.5t-51 -88.5t-55 -50h-1zM378 -224v11q24 19 46.5 62t22.5 105q0 34 -10 54.5t-29 45.5 q-14 17 -20.5 28.5t-6.5 28.5q0 26 14.5 40.5t38.5 14.5q26 0 49 -23t36.5 -61.5t13.5 -80.5q0 -61 -21 -113.5t-51 -88.5t-55 -50h-1z" />
|
||||
<glyph unicode="•" horiz-adv-x="415" d="M139 267q-26 29 -27 70q0 42 30 70t70 28q39 0 65 -27.5t26 -70.5q0 -41 -30 -70t-70 -29q-38 0 -64 29z" />
|
||||
<glyph unicode="…" horiz-adv-x="792" d="M81.5 8q-18.5 18 -18.5 46q0 31 22.5 52t52.5 21q31 0 47.5 -18.5t16.5 -45.5q0 -33 -22 -53t-54 -20q-26 0 -44.5 18zM345.5 8q-18.5 18 -18.5 46q0 31 22.5 52t51.5 21q31 0 47.5 -18.5t16.5 -45.5q0 -33 -21.5 -53t-53.5 -20q-26 0 -44.5 18zM608.5 8 q-18.5 18 -18.5 46q0 31 22.5 52t52.5 21q31 0 47.5 -18.5t16.5 -45.5q0 -33 -22 -53t-54 -20q-26 0 -44.5 18z" />
|
||||
<glyph unicode=" " horiz-adv-x="196" />
|
||||
<glyph unicode="‹" horiz-adv-x="404" d="M338 520l-171 -221l171 -213l-50 -34l-232 212v69l232 218z" />
|
||||
<glyph unicode="›" horiz-adv-x="404" d="M348 333v-69l-232 -212l-50 34l171 213l-171 221l50 31z" />
|
||||
<glyph unicode="⁄" horiz-adv-x="188" d="M310 807l-361 -884l-71 4l363 886z" />
|
||||
<glyph unicode=" " horiz-adv-x="245" />
|
||||
<glyph unicode="€" horiz-adv-x="698" d="M122 349q0 43 3 71h-103l20 55h92q32 140 118.5 214t212.5 74q45 0 81 -7.5t74 -19.5q30 -9 43 -11l-10 -165h-58l-19 114q-14 14 -49.5 23.5t-78.5 9.5q-168 0 -205 -232h270l-20 -55h-255q-2 -44 -2 -53q0 -34 1 -51h221l-20 -55h-195q28 -224 204 -224q40 0 70 11.5 t56 33.5l32 88l55 -10l-11 -128q-19 -1 -51 -14q-42 -15 -80 -23.5t-92 -8.5q-126 0 -202.5 74t-95.5 201h-105l20 55h79v33z" />
|
||||
<glyph unicode="™" horiz-adv-x="1112" d="M211 717l-87 -3l-19 -70l-38 -1l9 117h355v-116l-36 -2l-12 72l-89 4v-296l67 -7v-40h-214v40l64 7v295zM551 713l-55 4v43h174l72 -204l27 -89l100 293h161v-43l-55 -4l26 -291l51 -7v-40h-179v40l47 7l-12 190l-5 108l-18 -57l-102 -292h-54l-98 267l-33 85l-2 -88 l-13 -213l47 -7v-40h-155v40l55 7z" />
|
||||
<glyph unicode="◼" horiz-adv-x="555" d="M0 555h555v-555h-555v555z" />
|
||||
<glyph unicode="ffi" horiz-adv-x="1133" d="M125 489h-94v46l94 19v47q0 62 32.5 114t85 82.5t111.5 30.5q34 0 59 -9v-100q-9 8 -35.5 15.5t-58.5 7.5q-47 0 -68.5 -24.5t-21.5 -84.5v-79h138v-65h-138v-432l111 -8v-49h-300v49l85 9v431zM525 489h-94v46l94 19v47q0 62 32.5 114t85 82.5t111.5 30.5q34 0 59 -9 v-100q-9 8 -35.5 15.5t-58.5 7.5q-47 0 -68.5 -24.5t-21.5 -84.5v-79h138v-65h-138v-432l111 -8v-49h-300v49l85 9v431zM915 673q-16 18 -16 46q0 32 19.5 53t53.5 21t50 -18t16 -46q0 -34 -19.5 -54t-54.5 -20h-1q-32 0 -48 18zM923 478l-76 18v53l155 19h2l23 -18v-493 l80 -8v-49h-265v49l81 9v420z" />
|
||||
<glyph unicode="ffl" horiz-adv-x="1133" d="M125 489h-94v46l94 19v47q0 62 32.5 114t85 82.5t111.5 30.5q34 0 59 -9v-100q-9 8 -35.5 15.5t-58.5 7.5q-47 0 -68.5 -24.5t-21.5 -84.5v-79h138v-65h-138v-432l111 -8v-49h-300v49l85 9v431zM525 489h-94v46l94 19v47q0 62 32.5 114t85 82.5t111.5 30.5q34 0 59 -9 v-100q-9 8 -35.5 15.5t-58.5 7.5q-47 0 -68.5 -24.5t-21.5 -84.5v-79h138v-65h-138v-432l111 -8v-49h-300v49l85 9v431zM918 746l-81 11v43l161 19h2l22 -15v-747l85 -8v-49h-270v49l81 9v688z" />
|
||||
<glyph horiz-adv-x="498" d="M170.5 115q59.5 50 105 110t45.5 113q0 44 -25.5 71t-71.5 27q-41 0 -76.5 -17.5t-56.5 -38.5l-32 35q23 30 73.5 57.5t111.5 27.5q80 0 124.5 -39t44.5 -104q0 -72 -78.5 -160.5t-183.5 -151.5l217 15l37 75l49 -10l-25 -134h-349l-17 45q48 29 107.5 79z" />
|
||||
<glyph horiz-adv-x="505" d="M44 171q51 91 111.5 199.5t90.5 163.5h81l16 -19l-194 -315l-39 -52l193 8l9 135l72 5v-136l90 5v-66h-90v-99h-82v99h-246l-30 39z" />
|
||||
<glyph horiz-adv-x="484" d="M221 674q-42 -17 -128 -34l-13 52q53 16 95 34t80 47h2l51 -10v-447l112 -10v-48h-327v48l128 10v358z" />
|
||||
<glyph horiz-adv-x="498" d="M170.5 382q59.5 50 105 110t45.5 113q0 44 -25.5 71t-71.5 27q-41 0 -76.5 -17.5t-56.5 -38.5l-32 35q23 30 73.5 57.5t111.5 27.5q80 0 124.5 -39t44.5 -104q0 -72 -78.5 -160.5t-183.5 -151.5l217 15l37 75l49 -10l-25 -134h-349l-17 45q48 29 107.5 79z" />
|
||||
<glyph horiz-adv-x="488" d="M143 264.5q-39 7.5 -68 21.5v53q27 -10 58.5 -17t59.5 -7q157 0 157 98q0 35 -31.5 60t-85.5 24q-14 -6 -59 -21l-16 48q26 5 69 24q82 39 82 96q0 33 -21.5 49t-67.5 16q-35 0 -70 -10.5t-55 -27.5l-28 45q25 24 73.5 39.5t104.5 15.5q71 0 113.5 -32.5t42.5 -82.5 q0 -42 -27 -74.5t-87 -57.5q53 3 89 -13t53 -43.5t17 -56.5q0 -69 -60.5 -111.5t-171.5 -42.5q-32 0 -71 7.5z" />
|
||||
<glyph d="M-170 837.5q-15 18.5 -15 44.5q0 32 16.5 53t48.5 21h1q28 0 44 -19t16 -45q0 -32 -18 -52.5t-52 -20.5h-1q-25 0 -40 18.5zM74.5 837.5q-15.5 18.5 -15.5 44.5q0 31 17 52.5t48 21.5h1q28 0 43.5 -19t15.5 -45q0 -32 -17.5 -52.5t-51.5 -20.5q-25 0 -40.5 18.5z" />
|
||||
<glyph d="M-64.5 856.5q-51.5 39.5 -77.5 73.5l80 51l135 -152l-48 -30q-38 18 -89.5 57.5z" />
|
||||
<glyph d="M-75 829l134 152l81 -51q-28 -35 -77.5 -74t-87.5 -57z" />
|
||||
<glyph d="M41 982l135 -144l-41 -29l-134 103l-136 -103l-39 28l135 145h80z" />
|
||||
<glyph d="M28 825.5q-19 10.5 -44 30.5q-17 15 -29.5 22.5t-27.5 7.5q-25 0 -37.5 -15.5t-22.5 -43.5l-47 27q14 45 42 73t71 28q31 0 50.5 -11t43.5 -33q17 -15 28 -22t24 -7q22 0 35.5 17t23.5 44l47 -27q-15 -47 -40 -74t-69 -27q-29 0 -48 10.5z" />
|
||||
</font>
|
||||
</defs></svg>
|
After Width: | Height: | Size: 70 KiB |
BIN
src/public/font/Merriweather.ttf
Normal file
BIN
src/public/font/Merriweather.woff
Normal file
BIN
src/public/font/Merriweather.woff2
Normal file
BIN
src/public/icons/favicon.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
src/public/icons/logo16.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
src/public/icons/logo32.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
src/public/icons/logo320.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
src/public/icons/logo512.png
Normal file
After Width: | Height: | Size: 158 KiB |
BIN
src/public/icons/logo64.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
src/public/icons/logo640.png
Normal file
After Width: | Height: | Size: 223 KiB |
BIN
src/public/img/background.jpg
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
src/public/img/bee.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
src/public/img/bee.webp
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
src/public/img/headerLogo.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
src/public/img/headerLogo.webp
Normal file
After Width: | Height: | Size: 10 KiB |
461
src/public/polyfills/boxsizing.htc
Normal file
|
@ -0,0 +1,461 @@
|
|||
<!DOCTYPE html><!-- DOCTYPE is needed to make IE version detection possible. -->
|
||||
<public:component lightWeight="true">
|
||||
<attach event="onpropertychange" onevent="checkPropertyChange()" />
|
||||
<attach event="ondetach" onevent="restore()" />
|
||||
<attach event="onresize" for="window" onevent="update()" />
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var viewportwidth = (typeof window.innerWidth != 'undefined' ? window.innerWidth : element.document.documentElement.clientWidth);
|
||||
|
||||
// Shortcut for the document object
|
||||
var doc = element.document;
|
||||
|
||||
// Buffer for multiple resize events
|
||||
var resizetimeout = null;
|
||||
|
||||
// Don't apply box-sizing to certain elements
|
||||
var apply = false;
|
||||
switch(element.nodeName){
|
||||
case '#comment':
|
||||
case 'HTML':
|
||||
case 'HEAD':
|
||||
case 'TITLE':
|
||||
case 'SCRIPT':
|
||||
case 'STYLE':
|
||||
case 'LINK':
|
||||
case 'META':
|
||||
break;
|
||||
|
||||
default:
|
||||
apply = true;
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* update gets called during resize events, then waits until there are no further resize events, and finally triggers a recalculation
|
||||
*/
|
||||
function update(){
|
||||
if(resizetimeout !== null){
|
||||
window.clearTimeout(resizetimeout);
|
||||
}
|
||||
resizetimeout = window.setTimeout(function(){
|
||||
try{
|
||||
restore();
|
||||
init();
|
||||
}
|
||||
catch(e){}
|
||||
resizetimeout = null;
|
||||
},100);
|
||||
}
|
||||
|
||||
/*
|
||||
* restore gets called when the behavior is being detached (see event binding at the top),
|
||||
* resets everything like it was before applying the behavior
|
||||
*/
|
||||
function restore(){
|
||||
if(apply){
|
||||
try{
|
||||
element.runtimeStyle.removeAttribute("width");
|
||||
element.runtimeStyle.removeAttribute("height");
|
||||
}
|
||||
catch(e){}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* init gets called once at the start and then never again,
|
||||
* triggers box-sizing calculations and updates width and height
|
||||
*/
|
||||
function init(){
|
||||
if(apply){
|
||||
updateBorderBoxWidth();
|
||||
updateBorderBoxHeight();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* checkPropertyChange gets called as soon as an element property changes
|
||||
* (see event binding at the top), it then checks if any property influencing its
|
||||
* dimensions was changed and if yes recalculates width and height
|
||||
*/
|
||||
function checkPropertyChange(){
|
||||
if(apply){
|
||||
var pn = event.propertyName;
|
||||
if(pn === "style.boxSizing" && element.style.boxSizing === ""){
|
||||
element.style.removeAttribute("boxSizing");
|
||||
element.runtimeStyle.removeAttribute("boxSizing");
|
||||
element.runtimeStyle.removeAttribute("width");
|
||||
element.runtimeStyle.removeAttribute("height");
|
||||
}
|
||||
switch (pn){
|
||||
case "style.width":
|
||||
case "style.minWidth":
|
||||
case "style.maxWidth":
|
||||
case "style.borderLeftWidth":
|
||||
case "style.borderLeftStyle":
|
||||
case "style.borderRightWidth":
|
||||
case "style.borderRightStyle":
|
||||
case "style.paddingLeft":
|
||||
case "style.paddingRight":
|
||||
updateBorderBoxWidth();
|
||||
break;
|
||||
|
||||
case "style.height":
|
||||
case "style.minHeight":
|
||||
case "style.maxHeight":
|
||||
case "style.borderTopWidth":
|
||||
case "style.borderTopStyle":
|
||||
case "style.borderBottomWidth":
|
||||
case "style.borderBottomStyle":
|
||||
case "style.paddingTop":
|
||||
case "style.paddingBottom":
|
||||
updateBorderBoxHeight();
|
||||
break;
|
||||
|
||||
case "className":
|
||||
case "style.boxSizing":
|
||||
updateBorderBoxWidth();
|
||||
updateBorderBoxHeight();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Helper function, taken from Dean Edward's IE7 framework,
|
||||
* added by Schepp on 12.06.2010.
|
||||
* http://code.google.com/p/ie7-js/
|
||||
*
|
||||
* Allows us to convert from relative to pixel-values.
|
||||
*/
|
||||
function getPixelValue(value){
|
||||
var PIXEL = /^\d+(px)?$/i;
|
||||
if (PIXEL.test(value)) return parseInt(value);
|
||||
var style = element.style.left;
|
||||
var runtimeStyle = element.runtimeStyle.left;
|
||||
element.runtimeStyle.left = element.currentStyle.left;
|
||||
element.style.left = value || 0;
|
||||
value = parseInt(element.style.pixelLeft);
|
||||
element.style.left = style;
|
||||
element.runtimeStyle.left = runtimeStyle;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
function getPixelWidth(object, value){
|
||||
// For Pixel Values
|
||||
var PIXEL = /^\d+(px)?$/i;
|
||||
if (PIXEL.test(value)) return parseInt(value);
|
||||
|
||||
// For Percentage Values
|
||||
var PERCENT = /^[\d\.]+%$/i;
|
||||
if (PERCENT.test(value)){
|
||||
try{
|
||||
var parentPaddingLeft = getPixelWidth(object.parentElement,object.parentElement.currentStyle.paddingLeft);
|
||||
var parentPaddingRight = getPixelWidth(object.parentElement,object.parentElement.currentStyle.paddingRight);
|
||||
var parentBorderLeft = getPixelWidth(object.parentElement,object.parentElement.currentStyle.borderLeftWidth);
|
||||
var parentBorderRight = getPixelWidth(object.parentElement,object.parentElement.currentStyle.borderRightWidth);
|
||||
|
||||
//var parentWidth = getPixelWidth(object.parentElement,(object.parentElement.currentStyle.width != "auto" ? object.parentElement.currentStyle.width : "100%"));
|
||||
var parentWidth = object.parentElement.offsetWidth - parentPaddingLeft - parentPaddingRight - parentBorderLeft - parentBorderRight;
|
||||
var value = (parseFloat(value) / 100) * parentWidth;
|
||||
}
|
||||
catch(e){
|
||||
var value = (parseFloat(value) / 100) * element.document.documentElement.clientWidth;
|
||||
}
|
||||
return parseInt(value);
|
||||
}
|
||||
|
||||
// For EM Values
|
||||
var style = object.style.left;
|
||||
var runtimeStyle = object.runtimeStyle.left;
|
||||
object.runtimeStyle.left = object.currentStyle.left;
|
||||
object.style.left = value || 0;
|
||||
value = parseInt(object.style.pixelLeft);
|
||||
object.style.left = style;
|
||||
object.runtimeStyle.left = runtimeStyle;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
function getPixelHeight(object, value){
|
||||
// For Pixel Values
|
||||
var PIXEL = /^\d+(px)?$/i;
|
||||
if (PIXEL.test(value)) return parseInt(value);
|
||||
|
||||
// For Percentage Values
|
||||
var PERCENT = /^[\d\.]+%$/i;
|
||||
if (PERCENT.test(value)){
|
||||
try{
|
||||
if(object.parentElement.currentStyle.height != "auto"){
|
||||
switch(object.parentElement.nodeName){
|
||||
default:
|
||||
if(object.parentElement.currentStyle.height !== "auto"){
|
||||
var parentPaddingTop = getPixelWidth(object.parentElement,object.parentElement.currentStyle.paddingTop);
|
||||
var parentPaddingBottom = getPixelWidth(object.parentElement,object.parentElement.currentStyle.paddingBottom);
|
||||
var parentBorderTop = getPixelWidth(object.parentElement,object.parentElement.currentStyle.borderTopWidth);
|
||||
var parentBorderBottom = getPixelWidth(object.parentElement,object.parentElement.currentStyle.borderBottomWidth);
|
||||
|
||||
var parentHeight = object.parentElement.offsetHeight - parentPaddingTop - parentPaddingBottom - parentBorderTop - parentBorderBottom;
|
||||
//var parentHeight = getPixelHeight(object.parentElement,object.parentElement.currentStyle.height);
|
||||
|
||||
value = (parseFloat(value) / 100) * parentHeight;
|
||||
}
|
||||
else {
|
||||
value = "auto";
|
||||
}
|
||||
break;
|
||||
|
||||
case 'HTML':
|
||||
parentHeight = element.document.documentElement.clientHeight;
|
||||
if(parentHeight !== "auto"){
|
||||
value = (parseFloat(value) / 100) * parentHeight;
|
||||
}
|
||||
else {
|
||||
value = "auto";
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(value !== "auto") value = parseInt(value);
|
||||
}
|
||||
else {
|
||||
value = "auto";
|
||||
}
|
||||
}
|
||||
catch(e){
|
||||
value = "auto";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
// For EM Values
|
||||
var style = object.style.left;
|
||||
var runtimeStyle = object.runtimeStyle.left;
|
||||
object.runtimeStyle.left = object.currentStyle.left;
|
||||
object.style.left = value || 0;
|
||||
value = parseInt(object.style.pixelLeft);
|
||||
object.style.left = style;
|
||||
object.runtimeStyle.left = runtimeStyle;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* getBorderWidth & friends
|
||||
* Border width getters
|
||||
*/
|
||||
function getBorderWidth(sSide){
|
||||
if(element.currentStyle["border" + sSide + "Style"] == "none"){
|
||||
return 0;
|
||||
}
|
||||
var n = getPixelValue(element.currentStyle["border" + sSide + "Width"]);
|
||||
return n || 0;
|
||||
}
|
||||
function getBorderLeftWidth() { return getBorderWidth("Left"); }
|
||||
function getBorderRightWidth() { return getBorderWidth("Right"); }
|
||||
function getBorderTopWidth() { return getBorderWidth("Top"); }
|
||||
function getBorderBottomWidth() { return getBorderWidth("Bottom"); }
|
||||
|
||||
|
||||
/*
|
||||
* getPadding & friends
|
||||
* Padding width getters
|
||||
*/
|
||||
function getPadding(sSide) {
|
||||
var n = getPixelValue(element.currentStyle["padding" + sSide]);
|
||||
return n || 0;
|
||||
}
|
||||
function getPaddingLeft() { return getPadding("Left"); }
|
||||
function getPaddingRight() { return getPadding("Right"); }
|
||||
function getPaddingTop() { return getPadding("Top"); }
|
||||
function getPaddingBottom() { return getPadding("Bottom"); }
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* getBoxSizing
|
||||
* Get the box-sizing value for the current element
|
||||
*/
|
||||
function getBoxSizing(){
|
||||
var s = element.style;
|
||||
var cs = element.currentStyle
|
||||
if(typeof s.boxSizing != "undefined" && s.boxSizing != ""){
|
||||
return s.boxSizing;
|
||||
}
|
||||
if(typeof s["box-sizing"] != "undefined" && s["box-sizing"] != ""){
|
||||
return s["box-sizing"];
|
||||
}
|
||||
if(typeof cs.boxSizing != "undefined" && cs.boxSizing != ""){
|
||||
return cs.boxSizing;
|
||||
}
|
||||
if(typeof cs["box-sizing"] != "undefined" && cs["box-sizing"] != ""){
|
||||
return cs["box-sizing"];
|
||||
}
|
||||
return getDocumentBoxSizing();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* getDocumentBoxSizing
|
||||
* Get the default document box sizing (check for quirks mode)
|
||||
*/
|
||||
function getDocumentBoxSizing(){
|
||||
if(doc.compatMode === null || doc.compatMode === "BackCompat"){
|
||||
return "border-box";
|
||||
}
|
||||
return "content-box"
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* setBorderBoxWidth & friends
|
||||
* Width and height setters
|
||||
*/
|
||||
function setBorderBoxWidth(n){
|
||||
element.runtimeStyle.width = Math.max(0, n - getBorderLeftWidth() -
|
||||
getPaddingLeft() - getPaddingRight() - getBorderRightWidth()) + "px";
|
||||
}
|
||||
function setBorderBoxMinWidth(n){
|
||||
element.runtimeStyle.minWidth = Math.max(0, n - getBorderLeftWidth() -
|
||||
getPaddingLeft() - getPaddingRight() - getBorderRightWidth()) + "px";
|
||||
}
|
||||
function setBorderBoxMaxWidth(n){
|
||||
element.runtimeStyle.maxWidth = Math.max(0, n - getBorderLeftWidth() -
|
||||
getPaddingLeft() - getPaddingRight() - getBorderRightWidth()) + "px";
|
||||
}
|
||||
function setBorderBoxHeight(n){
|
||||
element.runtimeStyle.height = Math.max(0, n - getBorderTopWidth() -
|
||||
getPaddingTop() - getPaddingBottom() - getBorderBottomWidth()) + "px";
|
||||
}
|
||||
function setBorderBoxMinHeight(n){
|
||||
element.runtimeStyle.minHeight = Math.max(0, n - getBorderTopWidth() -
|
||||
getPaddingTop() - getPaddingBottom() - getBorderBottomWidth()) + "px";
|
||||
}
|
||||
function setBorderBoxMaxHeight(n){
|
||||
element.runtimeStyle.maxHeight = Math.max(0, n - getBorderTopWidth() -
|
||||
getPaddingTop() - getPaddingBottom() - getBorderBottomWidth()) + "px";
|
||||
}
|
||||
function setContentBoxWidth(n){
|
||||
element.runtimeStyle.width = Math.max(0, n + getBorderLeftWidth() +
|
||||
getPaddingLeft() + getPaddingRight() + getBorderRightWidth()) + "px";
|
||||
}
|
||||
function setContentBoxMinWidth(n){
|
||||
element.runtimeStyle.minWidth = Math.max(0, n + getBorderLeftWidth() +
|
||||
getPaddingLeft() + getPaddingRight() + getBorderRightWidth()) + "px";
|
||||
}
|
||||
function setContentBoxMaxWidth(n){
|
||||
element.runtimeStyle.maxWidth = Math.max(0, n + getBorderLeftWidth() +
|
||||
getPaddingLeft() + getPaddingRight() + getBorderRightWidth()) + "px";
|
||||
}
|
||||
function setContentBoxHeight(n){
|
||||
element.runtimeStyle.height = Math.max(0, n + getBorderTopWidth() +
|
||||
getPaddingTop() + getPaddingBottom() + getBorderBottomWidth()) + "px";
|
||||
}
|
||||
function setContentBoxMinHeight(n){
|
||||
element.runtimeStyle.minHeight = Math.max(0, n + getBorderTopWidth() +
|
||||
getPaddingTop() + getPaddingBottom() + getBorderBottomWidth()) + "px";
|
||||
}
|
||||
function setContentBoxMaxHeight(n){
|
||||
element.runtimeStyle.maxHeight = Math.max(0, n + getBorderTopWidth() +
|
||||
getPaddingTop() + getPaddingBottom() + getBorderBottomWidth()) + "px";
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* updateBorderBoxWidth & updateBorderBoxHeight
|
||||
*
|
||||
*/
|
||||
function updateBorderBoxWidth() {
|
||||
if(getDocumentBoxSizing() == getBoxSizing()){
|
||||
return;
|
||||
}
|
||||
|
||||
var csw = element.currentStyle.width;
|
||||
if(csw != "auto"){
|
||||
csw = getPixelWidth(element,csw);
|
||||
if(getBoxSizing() == "border-box"){
|
||||
setBorderBoxWidth(parseInt(csw));
|
||||
}
|
||||
else{
|
||||
setContentBoxWidth(parseInt(csw));
|
||||
}
|
||||
}
|
||||
|
||||
csw = element.currentStyle.minWidth;
|
||||
if(csw != "none"){
|
||||
csw = getPixelWidth(element,csw);
|
||||
if(getBoxSizing() == "border-box"){
|
||||
setBorderBoxMinWidth(parseInt(csw));
|
||||
}
|
||||
else{
|
||||
setContentBoxMinWidth(parseInt(csw));
|
||||
}
|
||||
}
|
||||
|
||||
csw = element.currentStyle.maxWidth;
|
||||
if(csw != "none"){
|
||||
csw = getPixelWidth(element,csw);
|
||||
if(getBoxSizing() == "border-box"){
|
||||
setBorderBoxMaxWidth(parseInt(csw));
|
||||
}
|
||||
else{
|
||||
setContentBoxMaxWidth(parseInt(csw));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateBorderBoxHeight() {
|
||||
if(getDocumentBoxSizing() == getBoxSizing()){
|
||||
return;
|
||||
}
|
||||
|
||||
var csh = element.currentStyle.height;
|
||||
if(csh != "auto"){
|
||||
csh = getPixelHeight(element,csh);
|
||||
if(csh !== "auto"){
|
||||
if(getBoxSizing() == "border-box"){
|
||||
setBorderBoxHeight(parseInt(csh));
|
||||
}
|
||||
else{
|
||||
setContentBoxHeight(parseInt(csh));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
csh = element.currentStyle.minHeight;
|
||||
if(csh != "none"){
|
||||
csh = getPixelHeight(element,csh);
|
||||
if(csh !== "none"){
|
||||
if(getBoxSizing() == "border-box"){
|
||||
setBorderBoxMinHeight(parseInt(csh));
|
||||
}
|
||||
else{
|
||||
setContentBoxMinHeight(parseInt(csh));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
csh = element.currentStyle.maxHeight;
|
||||
if(csh != "none"){
|
||||
csh = getPixelHeight(element,csh);
|
||||
if(csh !== "none"){
|
||||
if(getBoxSizing() == "border-box"){
|
||||
setBorderBoxMaxHeight(parseInt(csh));
|
||||
}
|
||||
else{
|
||||
setContentBoxMaxHeight(parseInt(csh));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Run the calculations
|
||||
init();
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</public:component>
|
||||
|
272
src/public/polyfills/display-table.htc
Normal file
|
@ -0,0 +1,272 @@
|
|||
<!DOCTYPE html><!-- DOCTYPE is needed to make IE version detection possible. -->
|
||||
<public:component lightweight="true"><public:attach event="ondocumentready" onevent="_(element)" />
|
||||
<script>
|
||||
/**
|
||||
* display-table.htc by Marat Tanalin
|
||||
* http://tanalin.com/en/projects/display-table-htc/
|
||||
* @version 2011-11-25
|
||||
*/
|
||||
function _(element) {
|
||||
var d = element.document;
|
||||
|
||||
// Exit if {display: table} is natively supported (IE8+).
|
||||
// See http://tanalin.com/en/articles/ie-version-js/
|
||||
if (d.querySelector) {
|
||||
return;
|
||||
}
|
||||
|
||||
var rspace = /\s+/g,
|
||||
prefix = 'dt-';
|
||||
|
||||
// If IE7+. See http://tanalin.com/en/articles/ie-version-js/
|
||||
if (window.XMLHttpRequest) {
|
||||
// IE6 can't read properties with leading dash, but can without,
|
||||
// so using full prefix in IE7, and no-leading-dash one in IE6.
|
||||
prefix = '-' + prefix;
|
||||
}
|
||||
|
||||
var getCssValue = function(el, property) {
|
||||
return el.currentStyle.getAttribute(prefix + property);
|
||||
};
|
||||
|
||||
var inArray = function(needle, haystack) {
|
||||
var i = haystack.length;
|
||||
|
||||
while (i--) {
|
||||
if (needle === haystack[i]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
var trim = function(str) {
|
||||
return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
|
||||
};
|
||||
|
||||
var hasClass = function(elem, className) {
|
||||
return (' ' + elem.className.replace(rspace, ' ') + ' ').indexOf(' ' + className + ' ') != -1;
|
||||
};
|
||||
|
||||
var addClass = function(elem, className) {
|
||||
className = trim(className);
|
||||
|
||||
if (!className.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (rspace.test(className)) {
|
||||
var classes = className.split(rspace),
|
||||
i = classes.length;
|
||||
|
||||
while (i--) {
|
||||
addClass(elem, classes[i]);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (elem.className.length) {
|
||||
if (!hasClass(elem, className)) {
|
||||
elem.className += ' ' + className;
|
||||
}
|
||||
}
|
||||
else {
|
||||
elem.className = className;
|
||||
}
|
||||
};
|
||||
|
||||
var getChildren = function(elem) {
|
||||
var node = elem.firstChild,
|
||||
elems = [];
|
||||
|
||||
while (node) {
|
||||
if (1 === node.nodeType) {
|
||||
elems.push(node);
|
||||
}
|
||||
|
||||
node = node.nextSibling;
|
||||
}
|
||||
|
||||
return elems;
|
||||
};
|
||||
|
||||
var getFirstChildElement = function(elem) {
|
||||
var node = elem.firstChild;
|
||||
|
||||
while (node) {
|
||||
if (1 === node.nodeType) {
|
||||
return node;
|
||||
}
|
||||
|
||||
node = node.nextSibling;
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
var moveChildNodes = function(src, dst) {
|
||||
while (src.firstChild) {
|
||||
dst.appendChild(src.firstChild);
|
||||
}
|
||||
};
|
||||
|
||||
var addFirstLastClass = function(outElem, inElem, className) {
|
||||
addClass(outElem, inElem.nodeName + '-' + className + ' ' + className);
|
||||
};
|
||||
|
||||
var copyClasses = function(src, dst) {
|
||||
addClass(dst, src.nodeName + ' ' + src.className);
|
||||
};
|
||||
|
||||
// Filters elements that can be converted to table elements.
|
||||
var filterElements = function(elems) {
|
||||
var filtered = [],
|
||||
count = elems.length;
|
||||
|
||||
for (var i = 0; i < count; i++) {
|
||||
var elem = elems[i];
|
||||
|
||||
if ('HR' !== elem.nodeName) {
|
||||
filtered.push(elem);
|
||||
}
|
||||
}
|
||||
|
||||
return filtered;
|
||||
};
|
||||
|
||||
var generateElements = function(inContainer, outElemNodeName, action, outContainer) {
|
||||
var inElems = filterElements(getChildren(inContainer)),
|
||||
count = inElems.length;
|
||||
|
||||
if (!count) {
|
||||
return;
|
||||
}
|
||||
|
||||
var outElems = [],
|
||||
lastIndex = count - 1;
|
||||
|
||||
for (var i = 0; i < count; i++) {
|
||||
var inElem = inElems[i],
|
||||
outElem = d.createElement(outElemNodeName);
|
||||
|
||||
outElem.id = inElem.id;
|
||||
copyClasses(inElem, outElem);
|
||||
action(inElem, outElem);
|
||||
outContainer.appendChild(outElem);
|
||||
outElems.push(outElem);
|
||||
}
|
||||
|
||||
addFirstLastClass(outElems[0], inElems[0], 'first');
|
||||
addFirstLastClass(outElems[lastIndex], inElems[lastIndex], 'last');
|
||||
|
||||
if (!lastIndex) {
|
||||
addClass(outElems[0], inElems[0].nodeName + '-first-last');
|
||||
}
|
||||
};
|
||||
|
||||
var generateRowCells = function(inRow, outRow) {
|
||||
generateElements(inRow, 'td', moveChildNodes, outRow);
|
||||
};
|
||||
|
||||
var generateRows = function(inTable, outTbody) {
|
||||
var firstChildEl = getFirstChildElement(inTable);
|
||||
|
||||
// If cells are direct children of table.
|
||||
if ( firstChildEl && ('table-cell' === getCssValue(firstChildEl, 'display')) ) {
|
||||
var outRow = d.createElement('tr');
|
||||
outTbody.appendChild(outRow);
|
||||
generateRowCells(inTable, outRow);
|
||||
}
|
||||
else {
|
||||
generateElements(inTable, 'tr', generateRowCells, outTbody);
|
||||
}
|
||||
};
|
||||
|
||||
var getTablyElements = function() {
|
||||
var elems = d.body.getElementsByTagName('*'),
|
||||
i = elems.length,
|
||||
tables = [];
|
||||
|
||||
while (i--) {
|
||||
var elem = elems[i];
|
||||
|
||||
if ('table' === getCssValue(elem, 'display')) {
|
||||
tables.push(elem);
|
||||
}
|
||||
}
|
||||
|
||||
return tables;
|
||||
};
|
||||
|
||||
var processTable = function(inTable) {
|
||||
var inNodeName = inTable.nodeName;
|
||||
|
||||
// Exit if element to process is already a table element.
|
||||
if (inArray(inNodeName, ['TABLE', 'TR', 'TD', 'TH', 'TBODY', 'THEAD', 'TFOOT'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
var outTable = d.createElement('table'),
|
||||
outTbody = d.createElement('tbody');
|
||||
|
||||
var borderSpacing = getCssValue(inTable, 'border-spacing');
|
||||
|
||||
outTable.cellSpacing = null === borderSpacing
|
||||
? 0
|
||||
: parseInt(borderSpacing, 10);
|
||||
|
||||
outTable.cellPadding = 0;
|
||||
|
||||
// Unlike HTML-tables, default vertical align for CSS-table cells
|
||||
// is 'baseline' (as for normal text elements).
|
||||
outTbody.vAlign = 'baseline';
|
||||
|
||||
copyClasses(inTable, outTable);
|
||||
generateRows(inTable, outTbody);
|
||||
outTable.appendChild(outTbody);
|
||||
|
||||
// If element cannot be replaced with table due to its semantics/functioning,
|
||||
// then we insert table inside the element, replacing its contents.
|
||||
if (inArray(inNodeName, ['DT', 'DD', 'LI', 'FORM', 'A'])) {
|
||||
inTable.innerHTML = '';
|
||||
inTable.appendChild(outTable);
|
||||
|
||||
if ('A' === inNodeName) {
|
||||
// Default link cursor is displayed unstably for link that contains
|
||||
// table, so we set it explicitly.
|
||||
if ('auto' === inTable.currentStyle.cursor) {
|
||||
inTable.style.cursor = 'pointer';
|
||||
}
|
||||
|
||||
// Table inside link is unclickable in IE, so we generate click
|
||||
// event for link manually when generated table iself is clicked.
|
||||
outTable.onclick = function() {
|
||||
this.parentNode.click();
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
outTable.id = inTable.id;
|
||||
inTable.replaceNode(outTable);
|
||||
}
|
||||
};
|
||||
|
||||
// If display-table.htc is attached to HTML or BODY element,
|
||||
// process all elements that have {-dt-display: table}.
|
||||
if (inArray(element.nodeName, ['HTML', 'BODY'])) {
|
||||
var tables = getTablyElements(),
|
||||
i = tables.length;
|
||||
|
||||
while (i--) {
|
||||
processTable(tables[i]);
|
||||
}
|
||||
}
|
||||
// Process single element that display-table.htc is attached to.
|
||||
else {
|
||||
processTable(element);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</public:component>
|
91
src/scss/_mixins.scss
Normal file
|
@ -0,0 +1,91 @@
|
|||
@mixin box-sizing {
|
||||
* {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-border-box: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin section {
|
||||
border: $border-width solid $border-color;
|
||||
@include border-radius($outer-radius);
|
||||
background: $black;
|
||||
margin-bottom: $outer-gap;
|
||||
}
|
||||
|
||||
@mixin linear-gradient($deg, $first, $values...) {
|
||||
background-color: $first;
|
||||
background: -webkit-linear-gradient($deg, $first, $values);
|
||||
background: -moz-linear-gradient($deg, $first, $values);
|
||||
background: linear-gradient($deg, $first, $values);
|
||||
}
|
||||
|
||||
@mixin border-radius($radius) {
|
||||
-moz-border-radius: $radius;
|
||||
-webkit-border-radius: $radius;
|
||||
border-radius: $radius;
|
||||
}
|
||||
|
||||
@mixin text-decoration($decor) {
|
||||
-moz-text-decoration: $decor;
|
||||
-webkit-text-decoration: $decor;
|
||||
text-decoration: $decor;
|
||||
}
|
||||
|
||||
@mixin keyframes($name) {
|
||||
@-webkit-keyframes #{$name} { @content; }
|
||||
@-moz-keyframes #{$name} { @content; }
|
||||
@keyframes #{$name} { @content; }
|
||||
}
|
||||
|
||||
@mixin animation($args...) {
|
||||
-moz-animation: $args;
|
||||
-webkit-animation: $args;
|
||||
animation: $args;
|
||||
}
|
||||
|
||||
@mixin animation-delay($args...) {
|
||||
-moz-animation-delay: $args;
|
||||
-webkit-animation-delay: $args;
|
||||
animation-delay: $args;
|
||||
}
|
||||
|
||||
@mixin transition($trans...) {
|
||||
-moz-transition: $trans;
|
||||
-webkit-transition: $trans;
|
||||
transition: $trans;
|
||||
}
|
||||
|
||||
@mixin transform($trans...) {
|
||||
-moz-transform: $trans;
|
||||
-webkit-transform: $trans;
|
||||
transform: $trans;
|
||||
}
|
||||
|
||||
@mixin font-face($name) {
|
||||
@font-face {
|
||||
font-family: $name;
|
||||
src: url("../font/" + $name + ".eot");
|
||||
src: url("../font/" + $name + ".eot?#iefix") format("embedded-opentype"),
|
||||
url("../font/" + $name + ".woff2") format("woff2"),
|
||||
url("../font/" + $name + ".woff") format("woff"),
|
||||
url("../font/" + $name + ".ttf") format("truetype"),
|
||||
url("../font/" + $name + ".otf") format("opentype"),
|
||||
url("../font/" + $name + ".svg#" + $name) format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin display-table($spacing) {
|
||||
-dt-display: table;
|
||||
display: table;
|
||||
border-spacing: $spacing;
|
||||
-dt-border-spacing: $spacing;
|
||||
}
|
||||
|
||||
@mixin display-table-cell {
|
||||
-dt-display: table-cell;
|
||||
display: table-cell;
|
||||
}
|
25
src/scss/_variables.scss
Normal file
|
@ -0,0 +1,25 @@
|
|||
|
||||
$white: #e6edf0;
|
||||
$white-alt: #9dabb0;
|
||||
$yellow: #dcde81;
|
||||
$yellow-alt: #808037;
|
||||
$green: #4fd15a;
|
||||
$green-alt: #519c57;
|
||||
$blue: #366199;
|
||||
$blue-alt: #244266;
|
||||
$black: #14171d;
|
||||
$black-alt: #242526;
|
||||
|
||||
$font: 'Courier New', Courier, monospace;
|
||||
$header-font: 'FontStuck-Extended', monospace;
|
||||
|
||||
$inner-gap: 16px;
|
||||
$outer-gap: 16px;
|
||||
|
||||
$outer-radius: 8px;
|
||||
$inner-radius: 4px;
|
||||
|
||||
$border-width: 5px;
|
||||
$border-color: #ccc;
|
||||
|
||||
$page-width: 1000px;
|
61
src/scss/blog.scss
Normal file
|
@ -0,0 +1,61 @@
|
|||
@import "./variables";
|
||||
@import "./mixins";
|
||||
|
||||
#blog {
|
||||
padding-bottom: $inner-gap;
|
||||
}
|
||||
|
||||
#main span {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#comments {
|
||||
> span {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.comment {
|
||||
.header {
|
||||
display: inline-block;;
|
||||
}
|
||||
.date {
|
||||
font-size: 70%;
|
||||
display: inline-block;;
|
||||
}
|
||||
.content {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#new_comment {
|
||||
margin-left: $inner-gap;
|
||||
max-width: 400px;
|
||||
padding-right: $inner-gap;
|
||||
|
||||
input.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
input#author,
|
||||
input#content {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
input {
|
||||
@include border-radius($inner-radius);
|
||||
display: block;
|
||||
margin: 10px 0;
|
||||
padding: 5px;
|
||||
border: 2px solid $white-alt;
|
||||
background: $black-alt;
|
||||
color: $white;
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
outline: none;
|
||||
border: 2px solid $white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
src/scss/bucket.scss
Normal file
|
@ -0,0 +1,2 @@
|
|||
@import "./bucket/default";
|
||||
@import "./bucket/style";
|
55
src/scss/bucket/_default.scss
Normal file
|
@ -0,0 +1,55 @@
|
|||
@import "../mixins";
|
||||
|
||||
$red: #ffcaca !default;
|
||||
$orange: #ffedc1 !default;
|
||||
$yellow: #feffb8 !default;
|
||||
$green: #c4ffcb !default;
|
||||
$blue: #add8ff !default;
|
||||
$purple: #ccafe9 !default;
|
||||
|
||||
$darkgreen: #3E885B !default;
|
||||
$darkblue: #7fb4f5 !default;
|
||||
|
||||
$white: #fefefa !default;
|
||||
$lightgray: #94B0C2 !default;
|
||||
$lightblue: #d1e9ff !default;
|
||||
$gray: #ADACB5 !default;
|
||||
$darkgray: #333C57 !default;
|
||||
$black: #454545 !default;
|
||||
$trueblack: #242424 !default;
|
||||
|
||||
$lessred: #ffcacaaa !default;
|
||||
$lessorange: #ffedc1aa !default;
|
||||
$lessyellow: #feffb8aa !default;
|
||||
$lessgreen: #c4ffcbaa !default;
|
||||
$lessblue: #add8ffaa !default;
|
||||
$lesspurple: #ccafe9aa !default;
|
||||
|
||||
$rainbowright:
|
||||
to right,
|
||||
$red 0%,
|
||||
$orange 20%,
|
||||
$yellow 40%,
|
||||
$green 60%,
|
||||
$blue 80%,
|
||||
$purple 100% !default;
|
||||
|
||||
$hrainbow:
|
||||
to right,
|
||||
#00000000 0%,
|
||||
$lessred 14%,
|
||||
$orange 28%,
|
||||
$yellow 42%,
|
||||
$green 56%,
|
||||
$blue 70%,
|
||||
$lesspurple 84%,
|
||||
#00000000 100% !default;
|
||||
|
||||
$bgrainbow:
|
||||
to right,
|
||||
$lessred 0%,
|
||||
$lessorange 20%,
|
||||
$lessyellow 40%,
|
||||
$lessgreen 60%,
|
||||
$lessblue 80%,
|
||||
$lesspurple 100% !default;
|
109
src/scss/bucket/_style.scss
Normal file
|
@ -0,0 +1,109 @@
|
|||
@include box-sizing;
|
||||
@include font-face("Merriweather");
|
||||
@include font-face("CourierNew");
|
||||
|
||||
* {
|
||||
font-family: Merriweather, Georgia, serif;
|
||||
color: $lightblue;
|
||||
}
|
||||
|
||||
html {
|
||||
background-color: #454545;
|
||||
}
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
transition: linear 0.2s;
|
||||
color: $purple;
|
||||
|
||||
&:before {
|
||||
content: '';
|
||||
height: 2px;
|
||||
position: absolute;
|
||||
bottom: -1.5px;
|
||||
width: 100%;
|
||||
left: 50%;
|
||||
@include linear-gradient($rainbowright...);
|
||||
@include transform(translate(-50%, 0));
|
||||
@include transition(width 0.2s ease-in-out);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&:hover:before {
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin animate-letter($n) {
|
||||
.e#{$n} {
|
||||
position: relative;
|
||||
$delay: (12 - $n) * -100ms;
|
||||
@include animation-delay($delay);
|
||||
@include animation(
|
||||
wave 1s linear $delay infinite,
|
||||
rainbow 3s linear $delay infinite);
|
||||
}
|
||||
}
|
||||
|
||||
#webring {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
padding: 0.5em;
|
||||
|
||||
.left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
center {
|
||||
width: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
|
||||
.center {
|
||||
.header {
|
||||
@for $i from 0 through 12 {
|
||||
@include animate-letter($i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.header span {
|
||||
animation: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include keyframes(wave) {
|
||||
0% {top: 0px;}
|
||||
25% {top: -1px;}
|
||||
50% {top: 0px;}
|
||||
75% {top: 1px;}
|
||||
100% {top: 0px;}
|
||||
}
|
||||
|
||||
@include keyframes(rainbow) {
|
||||
0% {color: $red;}
|
||||
17% {color: $orange;}
|
||||
33% {color: $yellow;}
|
||||
50% {color: $green;}
|
||||
67% {color: $blue;}
|
||||
83% {color: $purple;}
|
||||
100% {color: $red;}
|
||||
}
|
36
src/scss/bucket_light.scss
Normal file
|
@ -0,0 +1,36 @@
|
|||
@import "./bucket/default";
|
||||
|
||||
$white: #fff;
|
||||
$red: #B80000;
|
||||
$orange: #B88400;
|
||||
$yellow: #B5B800;
|
||||
$green: #00B815;
|
||||
$blue: #0069CC;
|
||||
$purple: #7030B0;
|
||||
|
||||
$darkgreen: #3E885B;
|
||||
$darkblue: #7fb4f5;
|
||||
|
||||
$background: #fefefa;
|
||||
|
||||
$rainbowright:
|
||||
to right,
|
||||
$red 0%,
|
||||
$orange 20%,
|
||||
$yellow 40%,
|
||||
$green 60%,
|
||||
$blue 80%,
|
||||
$purple 100%;
|
||||
|
||||
$hrainbow:
|
||||
to right,
|
||||
#FFFFFF00 0%,
|
||||
$lessred 14%,
|
||||
$orange 28%,
|
||||
$yellow 42%,
|
||||
$green 56%,
|
||||
$blue 70%,
|
||||
$lesspurple 84%,
|
||||
#FFFFFF00 100%;
|
||||
|
||||
@import "./bucket/style";
|
14
src/scss/error.scss
Normal file
|
@ -0,0 +1,14 @@
|
|||
@import "./variables";
|
||||
|
||||
.section {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#main h1 {
|
||||
color: $green;
|
||||
text-shadow: 4px 4px $green-alt;
|
||||
}
|
||||
|
||||
#main h2 {
|
||||
text-shadow: 3px 3px $white-alt;
|
||||
}
|
23
src/scss/home.scss
Normal file
|
@ -0,0 +1,23 @@
|
|||
@import "./variables";
|
||||
|
||||
#main .col {
|
||||
width: 50%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
#main .left {
|
||||
padding-right: $outer-gap;
|
||||
}
|
||||
|
||||
@media (max-width: 800px) {
|
||||
#main .col {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#main .left {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
21
src/scss/legacy.scss
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* IE 6 & 7 Styles */
|
||||
|
||||
@import "./variables";
|
||||
|
||||
* {
|
||||
behavior: url(boxsizing.htc);
|
||||
}
|
||||
|
||||
#main.legacy .col {
|
||||
display: block !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
#main.legacy .left {
|
||||
padding-right: 0 !important;
|
||||
padding-bottom: $outer-gap;
|
||||
}
|
||||
|
||||
#nav {
|
||||
behavior: url(display-table.htc);
|
||||
}
|
328
src/scss/main.scss
Normal file
|
@ -0,0 +1,328 @@
|
|||
@import "./variables";
|
||||
@import "./mixins";
|
||||
|
||||
@include box-sizing;
|
||||
@include font-face("FontStuck-Extended");
|
||||
@include font-face("CourierNew");
|
||||
|
||||
@include keyframes(shake) {
|
||||
0% { @include transform(translate(1px, 1px) rotate(0deg)); }
|
||||
10% { @include transform(translate(-1px, -2px) rotate(-1deg)); }
|
||||
20% { @include transform(translate(-3px, 0px) rotate(1deg)); }
|
||||
30% { @include transform(translate(3px, 2px) rotate(0deg)); }
|
||||
40% { @include transform(translate(1px, -1px) rotate(1deg)); }
|
||||
50% { @include transform(translate(-1px, 2px) rotate(-1deg)); }
|
||||
60% { @include transform(translate(-3px, 1px) rotate(0deg)); }
|
||||
70% { @include transform(translate(3px, 1px) rotate(-1deg)); }
|
||||
80% { @include transform(translate(-1px, -1px) rotate(1deg)); }
|
||||
90% { @include transform(translate(1px, 2px) rotate(0deg)); }
|
||||
100% { @include transform(translate(1px, -2px) rotate(-1deg)); }
|
||||
}
|
||||
|
||||
img:hover {
|
||||
@include animation(shake 0.5s linear infinite);
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion) {
|
||||
img:hover {
|
||||
@include animation(none !important);
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
scrollbar-color: $blue transparent;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-family: $header-font;
|
||||
font-size: 325%;
|
||||
line-height: 100%;
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-family: $header-font;
|
||||
font-size: 200%;
|
||||
line-height: 100%;
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-family: $header-font;
|
||||
font-size: 150%;
|
||||
line-height: 100%;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-family: $header-font;
|
||||
font-size: 130%;
|
||||
line-height: 100%;
|
||||
margin: 2px 0;
|
||||
}
|
||||
|
||||
a,
|
||||
a:visited {
|
||||
color: $yellow;
|
||||
@include text-decoration(underline);
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: $yellow-alt;
|
||||
@include text-decoration(underline);
|
||||
}
|
||||
|
||||
html {
|
||||
color: $white;
|
||||
font-family: $font;
|
||||
font-size: 120%;
|
||||
background: #181818;
|
||||
background-image: url("../img/background.jpg?ref=2");
|
||||
background-repeat: repeat;
|
||||
background-size: 512px;
|
||||
}
|
||||
|
||||
html,
|
||||
body,
|
||||
#container {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: $inner-gap;
|
||||
min-height: 100%;
|
||||
|
||||
.center {
|
||||
display: table;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
#header,
|
||||
#main,
|
||||
#footer,
|
||||
#container {
|
||||
@include border-radius($outer-radius);
|
||||
width: $page-width;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@media (max-width: ($page-width + $outer-gap * 2)) {
|
||||
body, #header,
|
||||
#main, #footer,
|
||||
#container {
|
||||
width: 100%;
|
||||
min-width: 250px;
|
||||
}
|
||||
}
|
||||
|
||||
#header,
|
||||
#footer {
|
||||
display: block;
|
||||
@include section;
|
||||
}
|
||||
|
||||
#header {
|
||||
$logo-size: 200px;
|
||||
height: #{$logo-size + $inner-gap * 2 + 10px};
|
||||
padding: $inner-gap;
|
||||
|
||||
img {
|
||||
@include border-radius($inner-radius);
|
||||
float: left;
|
||||
height: $logo-size;
|
||||
width: $logo-size;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding-top: 30px;
|
||||
padding-left: $logo-size;
|
||||
|
||||
.logo-text {
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
text-shadow: 3px 3px $white-alt;
|
||||
}
|
||||
|
||||
#nav {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
margin: 0 auto;
|
||||
@include display-table($inner-gap);
|
||||
|
||||
li {
|
||||
@include display-table-cell;
|
||||
float: left;
|
||||
padding: $inner-gap;
|
||||
|
||||
a {
|
||||
@include text-decoration(none);
|
||||
|
||||
&:hover,
|
||||
&:active {
|
||||
color: $yellow;
|
||||
@include text-decoration(underline);
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 0;
|
||||
text-shadow: 3px 3px $yellow-alt;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 800px) {
|
||||
#header {
|
||||
display: block;
|
||||
height: auto;
|
||||
|
||||
img {
|
||||
float: none;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
|
||||
#nav {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 550px) {
|
||||
#header .content #nav {
|
||||
li {
|
||||
float: none;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#footer {
|
||||
padding: $inner-gap;
|
||||
|
||||
.footer-text {
|
||||
display: block;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.bucket {
|
||||
margin-top: $inner-gap;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.john {
|
||||
display: block;
|
||||
max-width: 732px;
|
||||
height: 94px;
|
||||
width: 100%;
|
||||
border: none;
|
||||
|
||||
@media(max-width: 732px) {
|
||||
height: 12vw;
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
a, img {
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#main .section {
|
||||
@include section;
|
||||
|
||||
.heading {
|
||||
@include linear-gradient(to bottom, $blue, $black);
|
||||
margin: 0;
|
||||
padding-left: $inner-gap;
|
||||
@include border-radius($inner-radius $inner-radius 0 0);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5,
|
||||
span, pre {
|
||||
margin-left: $inner-gap;
|
||||
}
|
||||
|
||||
p {
|
||||
padding: 0 $inner-gap;
|
||||
}
|
||||
|
||||
blockquote p {
|
||||
border-left: 5px solid $blue;
|
||||
}
|
||||
|
||||
pre {
|
||||
background: black;
|
||||
margin-right: $inner-gap;
|
||||
@include border-radius($outer-radius);
|
||||
padding: $inner-gap;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: $font;
|
||||
color: $green;
|
||||
}
|
||||
|
||||
pre code {
|
||||
color: $white;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
|
||||
th, td {
|
||||
padding: $outer-radius;
|
||||
font-family: $header-font;
|
||||
font-size: 120%;
|
||||
line-height: 120%;
|
||||
|
||||
@media (max-width: 400px) {
|
||||
font-size: 100%;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
@media (max-width: 360px) {
|
||||
font-size: 90%;
|
||||
line-height: 90%;
|
||||
}
|
||||
|
||||
@media (max-width: 320px) {
|
||||
font-size: 80%;
|
||||
line-height: 80%;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
td {
|
||||
background: $blue-alt;
|
||||
}
|
||||
|
||||
th {
|
||||
background: $blue;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
tr:last-child {
|
||||
th {
|
||||
@include border-radius(0 0 0 $inner-radius);
|
||||
}
|
||||
tr {
|
||||
@include border-radius(0 0 $inner-radius 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
87
src/web/_controller/_comments.php
Normal file
|
@ -0,0 +1,87 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class _comments_controller extends Controller {
|
||||
|
||||
private $comments_model;
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
$this->comments_model = $this->load->model('_comments');
|
||||
}
|
||||
|
||||
|
||||
public function comments($page, $ref): void {
|
||||
$data = $this->comments_model->get_comments($page);
|
||||
$this->view('comments', array(
|
||||
'comments' => $data,
|
||||
'ref' => $ref,
|
||||
'page' => $page
|
||||
));
|
||||
}
|
||||
|
||||
public function post(): void {
|
||||
$author = ''; $content = ''; $ref = '';
|
||||
if (
|
||||
!array_key_exists('author', $_GET) ||
|
||||
!array_key_exists('content', $_GET) ||
|
||||
!array_key_exists('ref', $_GET) ||
|
||||
!array_key_exists('page', $_GET)
|
||||
) {
|
||||
$this->error(400); return;
|
||||
}
|
||||
|
||||
$author = trim($_GET['author']);
|
||||
$content = trim($_GET['content']);
|
||||
$page = $_GET['page'];
|
||||
$ref = $_GET['ref'];
|
||||
$url = NULL;
|
||||
|
||||
$author_len = strlen($author);
|
||||
$content_len = strlen($content);
|
||||
|
||||
if ($author_len < 1 || $content_len < 1) {
|
||||
$this->error(400);
|
||||
return;
|
||||
}
|
||||
|
||||
if ($author_len > 30 || $content_len > 500) {
|
||||
$this->error(413);
|
||||
return;
|
||||
}
|
||||
|
||||
if (base64_encode(base64_decode($ref)) !== $ref) {
|
||||
// invalid base64
|
||||
$this->error(400);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
$ref = base64_decode($ref);
|
||||
$url = parse_url($ref);
|
||||
if (!$url && array_key_exists('host', $url)) {
|
||||
// dont allow redirects off this site
|
||||
$this->error(400);
|
||||
return;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$this->error(400);
|
||||
return;
|
||||
}
|
||||
|
||||
$vulgar = 'false';
|
||||
if (
|
||||
$this->comments_model->is_vulgar($author) ||
|
||||
$this->comments_model->is_vulgar($content)
|
||||
) {
|
||||
$vulgar = 'true';
|
||||
}
|
||||
|
||||
$result = $this->comments_model
|
||||
->post_comment($author, $content, $page, $vulgar);
|
||||
|
||||
if ($result) {
|
||||
header('Location: ' . $this->main->get_url($ref) . '#comments');
|
||||
} else {
|
||||
$this->error(500);
|
||||
}
|
||||
}
|
||||
}
|
76
src/web/_controller/_meta.php
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class _meta_controller extends Controller {
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
}
|
||||
|
||||
public function robots() {
|
||||
header("Content-Type: text/plain");
|
||||
$sitemap = $this->main->get_url_full('sitemap.xml');
|
||||
|
||||
echo "User-agent: *\n";
|
||||
echo "Disallow:\n";
|
||||
echo "Crawl-delay: 5\n";
|
||||
echo "Disallow: /_comments/\n";
|
||||
echo "Disallow: /pacbattle/\n";
|
||||
echo "Disallow: /bucket/\n";
|
||||
echo "Sitemap: {$sitemap}\n";
|
||||
}
|
||||
|
||||
private function sitemap_page($url, $priority) {
|
||||
echo "<url>\n";
|
||||
echo "<loc>{$this->main->get_url_full($url)}</loc>\n";
|
||||
echo "<priority>{$priority}</priority>\n";
|
||||
echo "</url>";
|
||||
}
|
||||
|
||||
public function sitemap() {
|
||||
header("Content-Type: application/xml");
|
||||
|
||||
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
|
||||
echo "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
|
||||
|
||||
$this->sitemap_page('home', 1);
|
||||
$this->sitemap_page('projects', 0.8);
|
||||
$this->sitemap_page('blog', 0.8);
|
||||
|
||||
$this->load->app_lang('blog');
|
||||
$blog_modal = $this->load->model('blog');
|
||||
$blog = $blog_modal->get_data()['blog'];
|
||||
|
||||
foreach ($blog as $name => $_) {
|
||||
$this->sitemap_page("blog/post?name={$name}", 0.5);
|
||||
}
|
||||
|
||||
echo "</urlset>\n";
|
||||
}
|
||||
|
||||
public function manifest() {
|
||||
$json = array(
|
||||
'short_name' => lang('domain'),
|
||||
'name' => lang('domain'),
|
||||
'icons' => [
|
||||
array(
|
||||
'src' => $this->main->get_url('public/icons/logo512.png'),
|
||||
'type' => 'image/png',
|
||||
'sizes' => '512x512',
|
||||
'purpose' => 'any maskable'
|
||||
)
|
||||
],
|
||||
'id' => $this->main->get_url('home'),
|
||||
'start_url' => $this->main->get_url('home'),
|
||||
'background_color' => lang('theme_color'),
|
||||
'display' => 'standalone',
|
||||
'scope' => lang('base_path'),
|
||||
'theme_color' => lang('theme_color'),
|
||||
'shortcuts' => [],
|
||||
'description' => lang('default_short_desc'),
|
||||
'screenshots' => []
|
||||
);
|
||||
|
||||
header('Content-type: application/json');
|
||||
echo json_encode($json);
|
||||
}
|
||||
|
||||
}
|
74
src/web/_controller/blog.php
Normal file
|
@ -0,0 +1,74 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Blog_controller extends Controller {
|
||||
|
||||
public $comments_controller;
|
||||
private $blog_model;
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
$this->blog_model = $this->load->model('blog');
|
||||
$this->comments_controller = $this->load->controller('_comments');
|
||||
}
|
||||
|
||||
public function index(): void {
|
||||
parent::index();
|
||||
$data = $this->blog_model->get_data();
|
||||
$this->view('header', $data);
|
||||
$this->view('apps/blog', $data);
|
||||
$this->view('footer', $data);
|
||||
}
|
||||
|
||||
private function protect($folder) {
|
||||
if (!array_key_exists('name', $_GET)) {
|
||||
$this->error(400);
|
||||
}
|
||||
|
||||
$basepath = $GLOBALS['assetroot'] . '/' . $folder . '/';
|
||||
$realBase = realpath($basepath);
|
||||
|
||||
$userpath = $basepath . $_GET['name'];
|
||||
$realUserPath = realpath($userpath);
|
||||
|
||||
if ($realUserPath === false || strpos($realUserPath, $realBase) !== 0) {
|
||||
$this->error(404);
|
||||
}
|
||||
}
|
||||
|
||||
public function post(): void {
|
||||
$this->protect('blog');
|
||||
parent::index();
|
||||
$data = $this->blog_model->get_post($_GET['name']);
|
||||
if ($data === FALSE) {
|
||||
$this->error(404);
|
||||
}
|
||||
$this->view('header', $data);
|
||||
$this->view('apps/blog_post', $data);
|
||||
$ref = 'blog/post?name=' . $_GET['name'];
|
||||
$this->comments_controller->comments($data['post']['meta']['name'], $ref);
|
||||
$this->view('footer', $data);
|
||||
}
|
||||
|
||||
public function writeup(): void {
|
||||
$this->protect('writeup');
|
||||
parent::index();
|
||||
$data = $this->blog_model->get_writeup($_GET['name']);
|
||||
if ($data === FALSE) {
|
||||
$this->error(404);
|
||||
}
|
||||
$this->view('header', $data);
|
||||
$this->view('apps/blog_writeup', $data);
|
||||
$ref = 'blog/writeup?name=' . $_GET['name'];
|
||||
$this->comments_controller->comments($data['post']['meta']['name'], $ref);
|
||||
$this->view('footer', $data);
|
||||
}
|
||||
|
||||
public function rss() {
|
||||
$data = $this->blog_model->get_data();
|
||||
header('Content-Type: application/xml');
|
||||
$this->view('apps/blog_rss', $data);
|
||||
die();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
22
src/web/_controller/bucket.php
Normal file
|
@ -0,0 +1,22 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Bucket_controller extends Controller {
|
||||
|
||||
private $bucket_model;
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
$this->bucket_model = $this->load->model('bucket');
|
||||
}
|
||||
|
||||
public function index(): void {
|
||||
parent::index();
|
||||
$data = $this->bucket_model->get_data();
|
||||
if ($data === NULL) {
|
||||
$this->error(400);
|
||||
return;
|
||||
}
|
||||
$this->view('apps/bucket', $data);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
21
src/web/_controller/error.php
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Error_controller extends Controller {
|
||||
|
||||
private $error_model;
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
$this->error_model = $this->load->model('error');
|
||||
}
|
||||
|
||||
public function index(): void {
|
||||
parent::index();
|
||||
$data = $this->error_model->get_data();
|
||||
$this->view('header', $data);
|
||||
$this->view('apps/error', $data);
|
||||
$this->view('footer', $data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
17
src/web/_controller/home.php
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Home_controller extends Controller {
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
}
|
||||
|
||||
public function index(): void {
|
||||
parent::index();
|
||||
$data = $this->main->get_data();
|
||||
$this->view('header', $data);
|
||||
$this->view('apps/home', $data);
|
||||
$this->view('footer', $data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
21
src/web/_controller/projects.php
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Projects_controller extends Controller {
|
||||
|
||||
private $projects_model;
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
$this->projects_model = $this->load->model('projects');
|
||||
}
|
||||
|
||||
public function index(): void {
|
||||
parent::index();
|
||||
$data = $this->projects_model->get_data();
|
||||
$this->view('header', $data);
|
||||
$this->view('apps/projects', $data);
|
||||
$this->view('footer', $data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
66
src/web/_model/_comments.php
Normal file
|
@ -0,0 +1,66 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class _comments_model extends Model {
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
}
|
||||
|
||||
private function load_profanity() {
|
||||
$path = $GLOBALS['assetroot'] . '/profanity.txt';
|
||||
$str = file_get_contents($path);
|
||||
$lines = explode("\n", $str);
|
||||
|
||||
$regex = '/(';
|
||||
foreach ($lines as $idx => $line) {
|
||||
if ($line == '') {
|
||||
continue;
|
||||
}
|
||||
if ($idx != 0) {
|
||||
$regex .= '|';
|
||||
}
|
||||
$regex .= $line;
|
||||
}
|
||||
$regex .= ')/';
|
||||
|
||||
return $regex;
|
||||
}
|
||||
|
||||
public function is_vulgar($text) {
|
||||
$profanity = $this->load_profanity();
|
||||
return preg_match($profanity, $text);
|
||||
}
|
||||
|
||||
public function get_comments($page) {
|
||||
$ip = $this->main->info['ip'];
|
||||
$query = $this->db
|
||||
->select('*')
|
||||
->from('admin.comment c')
|
||||
->where('c.page')
|
||||
->eq($page)
|
||||
->query('AND (
|
||||
(c.vulgar IS FALSE) OR
|
||||
(c.vulgar IS TRUE and c.ip = ?)
|
||||
)')
|
||||
->order_by('c.id', 'DESC');
|
||||
$result = $query->rows($ip);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function ban_user() {
|
||||
$ip = $this->main->info['ip'];
|
||||
$this->db
|
||||
->insert_into('admin.banned', 'ip', 'reason')
|
||||
->values($ip, 'vulgar language')
|
||||
->execute();
|
||||
}
|
||||
|
||||
public function post_comment($author, $content, $page, $vulgar) {
|
||||
$ip = $this->main->info['ip'];
|
||||
return $this->db
|
||||
->insert_into('admin.comment',
|
||||
'author', 'content', 'page', 'ip', 'vulgar')
|
||||
->values($author, $content, $page, $ip, $vulgar)
|
||||
->execute();
|
||||
}
|
||||
|
||||
}
|
80
src/web/_model/blog.php
Normal file
|
@ -0,0 +1,80 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Blog_model extends Model {
|
||||
|
||||
private $markdown;
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
$this->markdown = new MarkdownParser();
|
||||
}
|
||||
|
||||
private function load_blog(&$data) {
|
||||
$blog = array();
|
||||
$dir = $GLOBALS['assetroot'] . '/blog';
|
||||
if ($handle = opendir($dir)) {
|
||||
while (false !== ($entry = readdir($handle))) {
|
||||
if (str_starts_with($entry, ".")) {
|
||||
continue;
|
||||
}
|
||||
$path = $dir . '/' . $entry;
|
||||
$md = $this->markdown->parse($path);
|
||||
$blog[$entry] = $md;
|
||||
}
|
||||
}
|
||||
krsort($blog);
|
||||
$data['blog'] = $blog;
|
||||
}
|
||||
|
||||
public function get_data(): ?array {
|
||||
$data = parent::get_data();
|
||||
$this->load_blog($data);
|
||||
$data['title'] = lang('title');
|
||||
$data['desc'] = lang('blog_short_desc');
|
||||
return $data;
|
||||
}
|
||||
|
||||
private function load_post($name) {
|
||||
$dir = $GLOBALS['assetroot'] . '/blog';
|
||||
$path = $dir . '/' . $name;
|
||||
if(!file_exists($path)) {
|
||||
return FALSE;
|
||||
}
|
||||
$md = $this->markdown->parse($path);
|
||||
return $md;
|
||||
}
|
||||
|
||||
public function get_post($name) {
|
||||
$data = parent::get_data();
|
||||
$post = $this->load_post($name);
|
||||
if (!$post) {
|
||||
return FALSE;
|
||||
}
|
||||
$data['title'] = $post['meta']['name'];
|
||||
$data['desc'] = $post['meta']['desc'];
|
||||
$data['post'] = $post;
|
||||
return $data;
|
||||
}
|
||||
|
||||
private function load_writeup($name) {
|
||||
$dir = $GLOBALS['assetroot'] . '/writeup';
|
||||
$path = $dir . '/' . $name;
|
||||
if(!file_exists($path)) {
|
||||
return FALSE;
|
||||
}
|
||||
$md = $this->markdown->parse($path);
|
||||
return $md;
|
||||
}
|
||||
|
||||
public function get_writeup($name) {
|
||||
$data = parent::get_data();
|
||||
$writeup = $this->load_writeup($name);
|
||||
if (!$writeup) {
|
||||
return FALSE;
|
||||
}
|
||||
$data['title'] = $writeup['meta']['name'];
|
||||
$data['desc'] = $writeup['meta']['desc'];
|
||||
$data['post'] = $writeup;
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
?>
|
26
src/web/_model/bucket.php
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Bucket_model extends Model {
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
}
|
||||
|
||||
public function get_data(): ?array {
|
||||
$data = parent::get_data();
|
||||
|
||||
if (array_key_exists('name', $_GET)) {
|
||||
$data['name'] = $_GET['name'];
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (array_key_exists('lightmode', $_GET)) {
|
||||
$data['lightmode'] = $_GET['lightmode'];
|
||||
} else {
|
||||
$data['lightmode'] = 'false';
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
?>
|
31
src/web/_model/error.php
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Error_model extends Model {
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
}
|
||||
|
||||
private function get_msg(&$data) {
|
||||
if (!array_key_exists('code', $_GET)) {
|
||||
http_response_code(500);
|
||||
$data['msg'] = ucfirst(lang('error'));
|
||||
$data['title'] = '500';
|
||||
} else {
|
||||
$code = $_GET['code'];
|
||||
http_response_code($code);
|
||||
$data['title'] = $code;
|
||||
$msg = ucfirst(lang('error_' . $code, FALSE));
|
||||
if (!$msg) {
|
||||
$msg = ucfirst(lang('error'));
|
||||
}
|
||||
$data['msg'] = $msg;
|
||||
}
|
||||
}
|
||||
|
||||
public function get_data(): ?array {
|
||||
$data = parent::get_data();
|
||||
$this->get_msg($data);
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
?>
|
97
src/web/_model/main.php
Normal file
|
@ -0,0 +1,97 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Main_model extends Model {
|
||||
|
||||
// stores the current request info
|
||||
public $info;
|
||||
|
||||
// the main loader
|
||||
public $load;
|
||||
|
||||
/**
|
||||
* Loads the main model
|
||||
* @param Loader $load - the main loader object
|
||||
*/
|
||||
function __construct($load) {
|
||||
parent::__construct($load, TRUE);
|
||||
$GLOBALS['main_model'] = $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the stamp for a asset path
|
||||
* @param string $path
|
||||
*/
|
||||
private function asset_stamp($path): int {
|
||||
$root = $GLOBALS['webroot'];
|
||||
$path = $root . '/../public/' . $path;
|
||||
return filemtime($path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current IE version
|
||||
* @returns the IE version if valid IE user agent, INT_MAX if not
|
||||
*/
|
||||
public function get_ie_version(): int {
|
||||
if (preg_match('/MSIE\s(?P<v>\d+)/i', @$_SERVER['HTTP_USER_AGENT'], $B)) {
|
||||
return $B['v'];
|
||||
} else {
|
||||
return PHP_INT_MAX;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the full url including the http scheme and host part
|
||||
* Needed for IE 6 & 7 need.
|
||||
*/
|
||||
public function get_url_full($path): string {
|
||||
$host = $_SERVER['HTTP_HOST'];
|
||||
$base = lang('base_path');
|
||||
$url = "http://{$host}{$base}{$path}";
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a full path url from a relative path
|
||||
*/
|
||||
public function get_url($path): string {
|
||||
if ($this->get_ie_version() <= 7) {
|
||||
return $this->get_url_full($path);
|
||||
}
|
||||
$base = lang('base_path');
|
||||
$url = "{$base}{$path}";
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a css html link
|
||||
* @param string $path - the path to the css file
|
||||
*/
|
||||
public function link_css($path): string {
|
||||
$stamp = $this->asset_stamp($path);
|
||||
$href = $this->get_url("public/{$path}?stamp={$stamp}");
|
||||
return '<link rel="stylesheet" href="'. $href .'">';
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a css html link
|
||||
* @param string $path - the path to the css file
|
||||
*/
|
||||
public function embed_css($path): string {
|
||||
$file = $GLOBALS['publicroot'] . '/' . $path;
|
||||
if (file_exists($file)) {
|
||||
$text = file_get_contents($file);
|
||||
return "<style>{$text}</style>";
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a ISO date
|
||||
* @param $iso_date the ISO date
|
||||
*/
|
||||
public function format_date($iso_date): string {
|
||||
return date("Y-m-d D H:m", strtotime($iso_date));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
36
src/web/_model/projects.php
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */
|
||||
class Projects_model extends Model {
|
||||
|
||||
private $markdown;
|
||||
|
||||
function __construct($load) {
|
||||
parent::__construct($load);
|
||||
$this->markdown = new MarkdownParser();
|
||||
}
|
||||
|
||||
private function load_projects(&$data) {
|
||||
$projects = array();
|
||||
$dir = $GLOBALS['assetroot'] . '/projects';
|
||||
if ($handle = opendir($dir)) {
|
||||
while (false !== ($entry = readdir($handle))) {
|
||||
if (str_starts_with($entry, ".")) {
|
||||
continue;
|
||||
}
|
||||
$path = $dir . '/' . $entry;
|
||||
$md = $this->markdown->parse($path);
|
||||
$projects[$entry] = $md;
|
||||
}
|
||||
}
|
||||
krsort($projects);
|
||||
$data['projects'] = $projects;
|
||||
}
|
||||
|
||||
public function get_data(): ?array {
|
||||
$data = parent::get_data();
|
||||
$this->load_projects($data);
|
||||
$data['title'] = lang('title');
|
||||
$data['desc'] = lang('short_desc');
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
?>
|
13
src/web/_views/apps/blog.php
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */ ?>
|
||||
<?=aria_section('blog', lang('title'))?>
|
||||
<p><?=lang('blog_desc')?></p>
|
||||
<?php
|
||||
foreach($blog as $name => $post) {
|
||||
$meta = $post['meta'];
|
||||
$link = $this->main->get_url('blog/post?name=' . $name);
|
||||
echo '<a href="' . $link . '"><h3>' . $meta['name'] . '</h3></a>';
|
||||
echo '<span>' . $meta['desc'] . '</span><br>';
|
||||
echo '<span><time>' . $this->main->format_date($meta['date']) . '</time></span>';
|
||||
}
|
||||
?>
|
||||
</div>
|
6
src/web/_views/apps/blog_post.php
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */ ?>
|
||||
<?=aria_section('post', $post['meta']['name'])?>
|
||||
<span><?=ucfirst(lang('posted'))?>: <time><?=$this->main->format_date($post['meta']['date'])?></time></span>
|
||||
<br>
|
||||
<?=$post['content']?>
|
||||
</div>
|
20
src/web/_views/apps/blog_rss.php
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */ ?>
|
||||
<rss version="2.0">
|
||||
<channel>
|
||||
<title><?=lang('title')?></title>
|
||||
<link><?=lang('root_url') . '/blog'?></link>
|
||||
<description><?=lang('blog_short_desc')?></description>
|
||||
<language><?=lang('lang_short')?></language>
|
||||
<?php
|
||||
foreach ($blog as $name => $post) {
|
||||
echo '<item>';
|
||||
echo '<title>' . $post['meta']['name'] . '</title>';
|
||||
echo '<description>' . $post['meta']['desc'] . '</description>';
|
||||
echo '<pubDate>' . $post['meta']['date'] . '</pubDate>';
|
||||
echo '<link>' . lang('root_url') . '/blog/post?name=' . $name . '</link>';
|
||||
echo '<guid>' . lang('root_url') . '/blog/post?name=' . $name . '</guid>';
|
||||
echo '</item>';
|
||||
}
|
||||
?>
|
||||
</channel>
|
||||
</rss>
|
5
src/web/_views/apps/blog_writeup.php
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?php /* Copyright (c) 2024 Freya Murphy */ ?>
|
||||
<?=aria_section('writeup', $post['meta']['name'])?>
|
||||
<br>
|
||||
<?=$post['content']?>
|
||||
</div>
|