Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca17557957 |
@@ -1,139 +0,0 @@
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
Language: Cpp
|
||||
BasedOnStyle: WebKit
|
||||
SpaceBeforeParens: ControlStatements
|
||||
|
||||
AccessModifierOffset: -4
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignConsecutiveAssignments: true
|
||||
AlignConsecutiveDeclarations: false
|
||||
AlignConsecutiveMacros: true
|
||||
AlignEscapedNewlines: Left
|
||||
AlignOperands: true
|
||||
AlignTrailingComments: true
|
||||
AllowAllArgumentsOnNextLine: true
|
||||
AllowAllConstructorInitializersOnNextLine: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortBlocksOnASingleLine: true
|
||||
AllowShortCaseLabelsOnASingleLine: true
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AllowShortLambdasOnASingleLine: All
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterDefinitionReturnType: None
|
||||
AlwaysBreakAfterReturnType: TopLevel
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: MultiLine
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: false
|
||||
AfterClass: false
|
||||
AfterControlStatement: false
|
||||
AfterEnum: false
|
||||
AfterFunction: true
|
||||
AfterNamespace: false
|
||||
AfterObjCDeclaration: false
|
||||
AfterStruct: false
|
||||
AfterUnion: false
|
||||
AfterExternBlock: false
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: false
|
||||
SplitEmptyRecord: false
|
||||
SplitEmptyNamespace: false
|
||||
BreakBeforeBinaryOperators: All
|
||||
BreakBeforeBraces: WebKit
|
||||
BreakBeforeInheritanceComma: false
|
||||
BreakInheritanceList: BeforeColon
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializersBeforeComma: false
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
BreakAfterJavaFieldAnnotations: false
|
||||
BreakStringLiterals: false
|
||||
ColumnLimit: 80
|
||||
CommentPragmas: '^ IWYU pragma:'
|
||||
CompactNamespaces: false
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: true
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
Cpp11BracedListStyle: false
|
||||
DerivePointerAlignment: false
|
||||
DisableFormat: false
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
FixNamespaceComments: true
|
||||
ForEachMacros:
|
||||
- foreach
|
||||
- Q_FOREACH
|
||||
- BOOST_FOREACH
|
||||
IncludeBlocks: Preserve
|
||||
IncludeCategories:
|
||||
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
||||
Priority: 2
|
||||
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
|
||||
Priority: 3
|
||||
- Regex: '<[[:alnum:].]+>'
|
||||
Priority: 4
|
||||
- Regex: '"[[:alnum:].]+"'
|
||||
Priority: 5
|
||||
- Regex: '.*'
|
||||
Priority: 1
|
||||
IncludeIsMainRegex: '(Test)?$'
|
||||
IndentCaseLabels: false
|
||||
IndentExternBlock: NoIndent
|
||||
IndentPPDirectives: AfterHash
|
||||
IndentWidth: 4
|
||||
IndentWrappedFunctionNames: false
|
||||
JavaScriptQuotes: Leave
|
||||
JavaScriptWrapImports: true
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 3
|
||||
NamespaceIndentation: None
|
||||
#NamespaceIndentation: Inner
|
||||
ObjCBinPackProtocolList: Auto
|
||||
ObjCBlockIndentWidth: 4
|
||||
ObjCSpaceAfterProperty: true
|
||||
ObjCSpaceBeforeProtocolList: true
|
||||
PenaltyBreakAssignment: 40
|
||||
PenaltyBreakBeforeFirstCallParameter: 100
|
||||
PenaltyBreakComment: 300
|
||||
PenaltyBreakFirstLessLess: 120
|
||||
PenaltyBreakString: 1000
|
||||
PenaltyBreakTemplateDeclaration: 10
|
||||
PenaltyExcessCharacter: 75
|
||||
PenaltyReturnTypeOnItsOwnLine: 50
|
||||
PointerAlignment: Left
|
||||
ReflowComments: false
|
||||
SortIncludes: true
|
||||
SortUsingDeclarations: true
|
||||
SpaceAfterCStyleCast: false
|
||||
SpaceAfterLogicalNot: false
|
||||
SpaceAfterTemplateKeyword: false
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
SpaceBeforeCpp11BracedList: true
|
||||
SpaceBeforeCtorInitializerColon: true
|
||||
SpaceBeforeInheritanceColon: true
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceBeforeRangeBasedForLoopColon: true
|
||||
SpaceInEmptyBlock: false
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 2
|
||||
SpacesInAngles: false
|
||||
SpacesInContainerLiterals: true
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: c++14
|
||||
StatementMacros:
|
||||
- Q_UNUSED
|
||||
- QT_REQUIRE_VERSION
|
||||
TabWidth: 8
|
||||
UseTab: Never
|
||||
#...
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
# Start using clang-format on OSL code base (#1215)
|
||||
630b4c042d696c94ec9b2a1b6f5adc250bd61e05
|
||||
|
||||
# More clang-format (#1218)
|
||||
bdb473cbdb119f3d9060d48f75f965cbd45f6d7a
|
||||
|
||||
# More clang-format: liboslquery, oslinfo, oslc, osl.imageio, osltoy (#1220)
|
||||
bf366d7a90c46599b82071dac6dbef7c5e3ca157
|
||||
|
||||
# Turn on clang-format for cpp files in testsuite (#1269)
|
||||
00c895fc642eb89685797c292048bdff15d675e7
|
||||
5e848fb761261521a3ee7cd8a4f6814f32fe4a47
|
||||
|
||||
# CI: Change our clang-format standard to clang11 (#1372)
|
||||
91d22ebe2f65d4ed0599e421172a15d99fe0e1b4
|
||||
|
||||
# More clang-format (this time, testrender and liboslnoise) (#1511)
|
||||
08706b7cbac781b6a9389780428016be985d9d89
|
||||
|
||||
# clang-format #1509
|
||||
b4026fd1695c08532557b3ba1c2142323087ccf9
|
||||
1f73b075c99861afa42fac44567b37f797bc72f2
|
||||
7f2e83794e6fa63d5180653cffb77be2cc38b32b
|
||||
28399fefc890442b5ac020e7a90cee0d5bf9f03c
|
||||
e56851056d33233b0bb8324faac251907099961a
|
||||
1c57fc61d8ab7c3f309be4335e4c71c26399edd4
|
||||
46d451ce74d00e904874df476ebeca19bb119ea9
|
||||
c1045f2c2845a98e661c7181932a031eb3c76063
|
||||
|
||||
# More clang-format (#1512)
|
||||
8c6ffdd911b9eb7db4adf41ab88891360452d7c5
|
||||
|
||||
# style: more clang-format (#1515)
|
||||
102430c83554fe7e328cd8c3317db00507bcfaba
|
||||
|
||||
# Revert some formatting (#1518)
|
||||
21eac9d9215d071b0a7b9ce2c32f189ed0c62c4a
|
||||
|
||||
# Another round of clang-format (#1540)
|
||||
38015b6be28643254aea530154b7860136cf5e15
|
||||
89d5db2b5c5fda79184d8245d903e580fc6a4e9c
|
||||
|
||||
# clang-format: the very last piece of the puzzle (#1555)
|
||||
4ee62cd2ef05543f818f4d95a19efc1d684a7381
|
||||
5be7c6bd4e7bd2e560cb6be8c06f11985384a87a
|
||||
@@ -1,40 +0,0 @@
|
||||
<!--
|
||||
Please ask questions ("how do I...?" "why doesn't this work?") on the [osl-dev mail list](https://lists.aswf.io/g/osl-dev), not by filing issues.
|
||||
|
||||
Make concrete suggestions for fixing the code ("here is a patch") by filing
|
||||
a pull request, not an issue.
|
||||
-->
|
||||
|
||||
### Problem
|
||||
|
||||
<!-- Describe the problem or suggestion here.] -->
|
||||
|
||||
**Expected behavior:** <!-- What you expected to happen -->
|
||||
|
||||
**Actual behavior:** <!-- What actually happened -->
|
||||
|
||||
<!-- If your problem is a broken build, please create a -->
|
||||
<!-- [gist](https://gist.github.com) that contains the _full_ verbose -->
|
||||
<!-- build log, which you can create like this: -->
|
||||
<!-- ```make clean ; make VERBOSE=1 > build.log``` -->
|
||||
|
||||
<!-- If you are reporting a problem about a release branch, have you -->
|
||||
<!-- already tried the current head of `master` to see if the problem -->
|
||||
<!-- has been fixed? -->
|
||||
|
||||
|
||||
### Steps to Reproduce
|
||||
|
||||
1. [First Step]
|
||||
2. [Second Step]
|
||||
3. [and so on...]
|
||||
|
||||
|
||||
### Versions
|
||||
|
||||
* OSL branch/version:
|
||||
* OS:
|
||||
* C++ compiler:
|
||||
* LLVM version:
|
||||
* OIIO version:
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
## Description
|
||||
|
||||
<!-- Please provide a description of what this PR is meant to fix, and -->
|
||||
<!-- how it works (if it's not going to be very clear from the code). -->
|
||||
|
||||
## Tests
|
||||
|
||||
<!-- Did you / should you add a testsuite case (new test, or add to an -->
|
||||
<!-- existing test) to verify that this works? -->
|
||||
|
||||
|
||||
## Checklist:
|
||||
|
||||
<!-- Put an 'x' in the boxes as you complete the checklist items -->
|
||||
|
||||
- [ ] I have read the [contribution guidelines](../CONTRIBUTING.md).
|
||||
- [ ] I have previously submitted a [Contributor License Agreement](http://opensource.imageworks.com/cla/).
|
||||
- [ ] I have updated the documentation, if applicable.
|
||||
- [ ] I have ensured that the change is tested somewhere in the testsuite (adding new test cases if necessary).
|
||||
- [ ] My code follows the prevailing code style of this project.
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
# Copyright 2008-present Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
name: Analysis
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Run nightly while we're still working our way through the warnings
|
||||
- cron: "0 8 * * *"
|
||||
# Run unconditionally once weekly
|
||||
# - cron: "0 0 * * 0"
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- '*analysis*'
|
||||
# Allow manual kicking off of the workflow from github.com
|
||||
workflow_dispatch:
|
||||
|
||||
permissions: read-all
|
||||
|
||||
# Allow subsequent pushes to the same PR or REF to cancel any previous jobs.
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
aswf:
|
||||
name: "SonarCloud Analysis"
|
||||
if: |
|
||||
github.repository == 'AcademySoftwareFoundation/OpenShadingLanguage'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- desc: sonar gcc9/C++14 llvm13 py3.9 boost1.76 exr3.1 oiio2.3 avx2
|
||||
nametag: static-analysis-sonar
|
||||
os: ubuntu-20.04-8c-32g-300h
|
||||
# os: ubuntu-latest
|
||||
vfxyear: 2022
|
||||
vfxsuffix: -clang13
|
||||
cxx_std: 14
|
||||
openimageio_ver: master
|
||||
python_ver: 3.9
|
||||
pybind11_ver: v2.9.0
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2,b16_AVX512
|
||||
coverage: 1
|
||||
# skip_tests: 1
|
||||
sonar: 1
|
||||
setenvs: export SONAR_SCANNER_VERSION=4.7.0.2747
|
||||
SONAR_SERVER_URL="https://sonarcloud.io"
|
||||
BUILD_WRAPPER_OUT_DIR=bw_output
|
||||
OSL_CMAKE_BUILD_WRAPPER="build-wrapper-linux-x86-64 --out-dir bw_output"
|
||||
CMAKE_BUILD_TYPE=Debug
|
||||
CMAKE_UNITY_BUILD=OFF
|
||||
CODECOV=1
|
||||
TESTRENDER_AA=1
|
||||
OSL_TESTSUITE_SKIP_DIFF=1
|
||||
CTEST_TEST_TIMEOUT=1200
|
||||
OSL_CMAKE_FLAGS="-DOSL_TEST_BIG_TIMEOUT=1200 -DUSE_QT=0"
|
||||
CTEST_EXCLUSIONS="broken|noise-reg.regress|noise-gabor-reg.regress"
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
container:
|
||||
image: aswf/ci-osl:${{matrix.vfxyear}}${{matrix.vfxsuffix}}
|
||||
env:
|
||||
CXX: ${{matrix.cxx_compiler}}
|
||||
CC: ${{matrix.cc_compiler}}
|
||||
CMAKE_CXX_STANDARD: ${{matrix.cxx_std}}
|
||||
FMT_VERSION: ${{matrix.fmt_ver}}
|
||||
OPENEXR_VERSION: ${{matrix.openexr_ver}}
|
||||
OPENIMAGEIO_VERSION: ${{matrix.openimageio_ver}}
|
||||
PYBIND11_VERSION: ${{matrix.pybind11_ver}}
|
||||
PYTHON_VERSION: ${{matrix.python_ver}}
|
||||
USE_BATCHED: ${{matrix.batched}}
|
||||
USE_SIMD: ${{matrix.simd}}
|
||||
PARALLEL: 24
|
||||
# DEBUG_CI: 1
|
||||
steps:
|
||||
# We would like to use harden-runner, but it flags too many false
|
||||
# positives, every time we download a dependency. We should use it only
|
||||
# on CI runs where we are producing artifacts that users might rely on.
|
||||
# - name: Harden Runner
|
||||
# uses: step-security/harden-runner@248ae51c2e8cc9622ecf50685c8bf7150c6e8813 # v1.4.3
|
||||
# with:
|
||||
# egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_keys
|
||||
run: echo "::set-output name=date::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
|
||||
- name: ccache
|
||||
id: ccache
|
||||
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4
|
||||
with:
|
||||
path: /tmp/ccache
|
||||
key: ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
|
||||
restore-keys: ${{github.job}}-
|
||||
- name: Build setup
|
||||
run: |
|
||||
${{matrix.setenvs}}
|
||||
src/build-scripts/ci-startup.bash
|
||||
- name: Remove existing OIIO
|
||||
if: matrix.openimageio_ver != ''
|
||||
run: |
|
||||
sudo rm -rf /usr/local/include/OpenImageIO
|
||||
sudo rm -rf /usr/local/lib*/cmake/OpenImageIO
|
||||
sudo rm -rf /usr/local/lib*/libOpenImageIO*
|
||||
sudo rm -rf /usr/local/lib*/python3.9/site-packages/OpenImageIO*
|
||||
- name: Dependencies
|
||||
run: |
|
||||
${{matrix.depcmds}}
|
||||
src/build-scripts/gh-installdeps.bash
|
||||
- name: Build
|
||||
run: src/build-scripts/ci-build.bash
|
||||
- name: Testsuite
|
||||
if: matrix.skip_tests != '1'
|
||||
run: src/build-scripts/ci-test.bash
|
||||
- name: Code coverage
|
||||
if: matrix.coverage == '1'
|
||||
run: src/build-scripts/ci-coverage.bash
|
||||
- name: Sonar-scanner
|
||||
if: matrix.sonar == 1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
run: |
|
||||
sonar-scanner -X --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="build/bw_output" --define sonar.cfamily.gcov.reportsPath="_coverage"
|
||||
@@ -1,495 +0,0 @@
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# GitHub Actions workflow file for CI
|
||||
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
||||
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
# Skip jobs when only documentation files are changed
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- '**.rst'
|
||||
- '**.tex'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- '**.rst'
|
||||
- '**.tex'
|
||||
schedule:
|
||||
# Full nightly build
|
||||
- cron: "0 6 * * *"
|
||||
|
||||
permissions: read-all
|
||||
|
||||
# Allow subsequent pushes to the same PR or REF to cancel any previous jobs.
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
aswf:
|
||||
name: "VFX${{matrix.vfxyear}} ${{matrix.desc}}"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- desc: gcc6/C++14 llvm9 py2.7 boost1.66 exr2.3 oiio2.2 sse2
|
||||
nametag: linux-vfx2019
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2019
|
||||
vfxsuffix: -clang9
|
||||
cxx_std: 14
|
||||
openimageio_ver: v2.3.17.0
|
||||
python_ver: 2.7
|
||||
pybind11_ver: v2.4.2
|
||||
- desc: clang9/C++14 llvm9 oiio-release boost1.66 avx2 exr2.3 py2.7
|
||||
nametag: linux-clang9-llvm9
|
||||
os: ubuntu-18.04
|
||||
vfxyear: 2019
|
||||
vfxsuffix: -clang9
|
||||
cc_compiler: clang
|
||||
cxx_compiler: clang++
|
||||
cxx_std: 14
|
||||
openimageio_ver: release
|
||||
python_ver: 2.7
|
||||
# pybind11_ver: v2.9.0
|
||||
simd: avx
|
||||
- desc: GPU Cuda10 gcc6/C++14 llvm10 py2.7 boost-1.70 exr-2.3 OIIO-master avx2
|
||||
nametag: linux-optix7-2019
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2019
|
||||
vfxsuffix: -clang10
|
||||
cxx_std: 14
|
||||
openimageio_ver: master
|
||||
python_ver: 2.7
|
||||
# pybind11_ver: v2.9.0
|
||||
simd: avx2,f16c
|
||||
skip_tests: 1
|
||||
setenvs: export OSL_CMAKE_FLAGS="-DUSE_OPTIX=1" OPTIX_VERSION=7.0
|
||||
- desc: gcc6/C++14 llvm10 py3.7 boost1.70 exr2.4 oiio2.2 sse4
|
||||
nametag: linux-vfx2020
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2020
|
||||
cxx_std: 14
|
||||
openimageio_ver: v2.3.17.0
|
||||
python_ver: 3.7
|
||||
pybind11_ver: v2.5.0
|
||||
simd: sse4.2
|
||||
setenvs: export CONAN_LLVM_VERSION=10.0.1
|
||||
- desc: gcc9/C++17 llvm11 py3.7 boost1.73 exr2.5 oiio2.2 avx2 batch-b8avx2
|
||||
nametag: linux-vfx2021
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2021
|
||||
vfxsuffix: -clang11
|
||||
cxx_std: 17
|
||||
openimageio_ver: dev-2.3
|
||||
python_ver: 3.7
|
||||
pybind11_ver: v2.7.0
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2_noFMA
|
||||
- desc: gcc9/C++17 llvm13 py3.9 boost1.76 exr3.1 oiio2.3 avx2
|
||||
nametag: linux-vfx2022
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2022
|
||||
vfxsuffix: -clang13
|
||||
cxx_std: 17
|
||||
openimageio_ver: release
|
||||
python_ver: 3.9
|
||||
pybind11_ver: v2.9.0
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2
|
||||
- desc: clang12/C++17 llvm12 oiio-master boost1.73 exr3.1 py3.9 avx2 batch-avx512
|
||||
nametag: linux-clang12-llvm12-batch
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2022
|
||||
vfxsuffix: -clang12
|
||||
cxx_std: 17
|
||||
openimageio_ver: master
|
||||
python_ver: 3.9
|
||||
pybind11_ver: v2.6.2
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2,b8_AVX512,b16_AVX512
|
||||
setenvs: USE_OPENVDB=0
|
||||
- desc: icc/C++17 llvm13 py3.9 boost1.76 exr3.1 oiio-master avx2
|
||||
nametag: linux-icc
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2022
|
||||
vfxsuffix: -clang13
|
||||
cc_compiler: icc
|
||||
cxx_compiler: icpc
|
||||
cxx_std: 17
|
||||
fmt_ver: 7.1.3
|
||||
openimageio_ver: master
|
||||
python_ver: 3.9
|
||||
pybind11_ver: v2.9.0
|
||||
# simd: avx2,f16c
|
||||
batched: b8_AVX2_noFMA
|
||||
setenvs: export OSL_CMAKE_FLAGS="-DSTOP_ON_WARNING=OFF -DEXTRA_CPP_ARGS=-fp-model=consistent"
|
||||
OPENIMAGEIO_CMAKE_FLAGS=-DBUILD_FMT_VERSION=7.1.3
|
||||
USE_OPENVDB=0
|
||||
- desc: icx/C++17 llvm13 py3.9 boost1.76 exr3.1 oiio2.3 avx2
|
||||
nametag: linux-icx
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2022
|
||||
vfxsuffix: -clang13
|
||||
cc_compiler: icx
|
||||
cxx_compiler: icpx
|
||||
cxx_std: 17
|
||||
fmt_ver: 7.1.3
|
||||
openimageio_ver: master
|
||||
python_ver: 3.9
|
||||
pybind11_ver: v2.9.0
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2_noFMA
|
||||
setenvs: export OSL_CMAKE_FLAGS="-DSTOP_ON_WARNING=OFF" USE_OPENVDB=0
|
||||
- desc: oldest everything gcc6/C++14 llvm9 py2.7 boost1.66 oiio2.2 no-simd exr2.3
|
||||
nametag: linux-oldest
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2019
|
||||
vfxsuffix: -clang9
|
||||
cxx_std: 14
|
||||
openimageio_ver: v2.3.17.0
|
||||
python_ver: 2.7
|
||||
pybind11_ver: v2.6.2
|
||||
simd: 0
|
||||
setenvs: export PUGIXML_VERSION=v1.8
|
||||
|
||||
# Address and leak sanitizers
|
||||
- desc: sanitizers
|
||||
nametag: sanitizer
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2022
|
||||
vfxsuffix: -clang13
|
||||
cc_compiler: clang
|
||||
cxx_compiler: clang++
|
||||
cxx_std: 17
|
||||
openimageio_ver: master
|
||||
python_ver: 3.9
|
||||
pybind11_ver: v2.9.0
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2
|
||||
setenvs: export OSL_CMAKE_FLAGS="-DSANITIZE=address -DOSL_TEST_BIG_TIMEOUT=1200"
|
||||
CMAKE_BUILD_TYPE=Debug
|
||||
CTEST_TEST_TIMEOUT=1200
|
||||
CTEST_EXCLUSIONS="broken|noise-reg.regress|noise-gabor-reg.regress|example-.*deformer|spline-reg.regress.batched|osl-imageio"
|
||||
OSL_OPTIONS=llvm_debugging_symbols=1
|
||||
TESTRENDER_AA=1
|
||||
OSL_TESTSUITE_SKIP_DIFF=1
|
||||
# Sanitizer notes:
|
||||
# - There are a handful of tests we disable entirely with
|
||||
# CTEST_EXCLUSIONS because they are irrelevant or just cannot be
|
||||
# made to be clean (and that's ok).
|
||||
# - Tests with sanitizers run slow, so we increase timeouts, and
|
||||
# also set AA to 1 for render tests to speed them up.
|
||||
# OSL_TESTSUITE_SKIP_DIFF prevents making the AA=1 image result
|
||||
# fail, but that's ok because every other CI test is checking
|
||||
# the results; here we have no reason to believe results will
|
||||
# differ from other tests, we just need to run with sanitizers
|
||||
# turned on.
|
||||
# - In testing.cmake, we rig texture tests to disable the leak
|
||||
# sanitizer, because we can't eliminate some completely benign
|
||||
# leaks from the texture system, and because they are called
|
||||
# from JITed code, we don't get a clean stack trace of things
|
||||
# that happen in OIIO and therefore we just can't enumerate the
|
||||
# allowed exceptions. So we trust that OIIO itself tests the
|
||||
# texture system adequately and is able to ignore the benign
|
||||
# "leaks."
|
||||
|
||||
# Test formatting. This test entry doesn't do a full build, it
|
||||
# just runs clang-format on everything, and passes if nothing is
|
||||
# misformatted. Upon failure, the build artifact will be the full
|
||||
# source code with the formatting fixed (diffs will also appear in
|
||||
# the console output).
|
||||
- desc: "clang-format"
|
||||
nametag: clang-format
|
||||
os: ubuntu-latest
|
||||
vfxyear: 2022
|
||||
vfxsuffix: -clang14
|
||||
cxx_std: 17
|
||||
openimageio_ver: release
|
||||
python_ver: 3.9
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2
|
||||
skip_tests: 1
|
||||
setenvs: export BUILDTARGET=clang-format
|
||||
OPENIMAGEIO_CMAKE_FLAGS=-DUSE_PYTHON=0
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
container:
|
||||
image: aswftesting/ci-osl:${{matrix.vfxyear}}${{matrix.vfxsuffix}}
|
||||
env:
|
||||
CXX: ${{matrix.cxx_compiler}}
|
||||
CC: ${{matrix.cc_compiler}}
|
||||
CMAKE_CXX_STANDARD: ${{matrix.cxx_std}}
|
||||
FMT_VERSION: ${{matrix.fmt_ver}}
|
||||
OPENEXR_VERSION: ${{matrix.openexr_ver}}
|
||||
OPENIMAGEIO_VERSION: ${{matrix.openimageio_ver}}
|
||||
PYBIND11_VERSION: ${{matrix.pybind11_ver}}
|
||||
PYTHON_VERSION: ${{matrix.python_ver}}
|
||||
USE_BATCHED: ${{matrix.batched}}
|
||||
USE_SIMD: ${{matrix.simd}}
|
||||
steps:
|
||||
# We would like to use harden-runner, but it flags too many false
|
||||
# positives, every time we download a dependency. We should use it only
|
||||
# on CI runs where we are producing artifacts that users might rely on.
|
||||
# - name: Harden Runner
|
||||
# uses: step-security/harden-runner@248ae51c2e8cc9622ecf50685c8bf7150c6e8813 # v1.4.3
|
||||
# with:
|
||||
# egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_keys
|
||||
run: echo "::set-output name=date::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
|
||||
- name: ccache
|
||||
id: ccache
|
||||
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4
|
||||
with:
|
||||
path: /tmp/ccache
|
||||
key: ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
|
||||
restore-keys: ${{github.job}}-${{matrix.nametag}}-
|
||||
- name: Build setup
|
||||
run: |
|
||||
${{matrix.setenvs}}
|
||||
src/build-scripts/ci-startup.bash
|
||||
- name: Remove existing OIIO
|
||||
if: matrix.openimageio_ver != ''
|
||||
run: |
|
||||
sudo rm -rf /usr/local/include/OpenImageIO
|
||||
sudo rm -rf /usr/local/lib*/cmake/OpenImageIO
|
||||
sudo rm -rf /usr/local/lib*/libOpenImageIO*
|
||||
sudo rm -rf /usr/local/lib*/python3.9/site-packages/OpenImageIO*
|
||||
- name: Dependencies
|
||||
run: |
|
||||
${{matrix.depcmds}}
|
||||
src/build-scripts/gh-installdeps.bash
|
||||
- name: Build
|
||||
run: |
|
||||
src/build-scripts/ci-build.bash
|
||||
- name: Testsuite
|
||||
if: matrix.skip_tests != '1'
|
||||
run: src/build-scripts/ci-test.bash
|
||||
- uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
|
||||
if: failure()
|
||||
with:
|
||||
name: osl-${{github.job}}-${{matrix.nametag}}
|
||||
path: |
|
||||
build/*.cmake
|
||||
build/CMake*
|
||||
build/testsuite/*/*.*
|
||||
|
||||
|
||||
ubuntu:
|
||||
name: "Ubuntu ${{matrix.desc}}"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- desc: Debug gcc7/C++14 llvm9 py2.7 oiio2.3 exr2.4 sse4 boost1.65 exr2.4
|
||||
nametag: linux-debug-gcc7-llvm9
|
||||
os: ubuntu-18.04
|
||||
cxx_compiler: g++-7
|
||||
cxx_std: 14
|
||||
openexr_ver: v2.4.3
|
||||
openimageio_ver: dev-2.3
|
||||
pybind11_ver: v2.6.2
|
||||
python_ver: 2.7
|
||||
simd: sse4.2
|
||||
setenvs: export CMAKE_BUILD_TYPE=Debug
|
||||
LLVM_VERSION=9.0.0
|
||||
PUGIXML_VERSION=v1.9
|
||||
CTEST_TEST_TIMEOUT=240
|
||||
- desc: gcc10/C++17 llvm10 oiio-release boost1.65 exr2.5 avx2
|
||||
nametag: linux-2021ish-gcc10-llvm10
|
||||
os: ubuntu-18.04
|
||||
cxx_compiler: g++-10
|
||||
cxx_std: 17
|
||||
fmt_ver: 7.0.1
|
||||
openexr_ver: v2.5.6
|
||||
openimageio_ver: release
|
||||
pybind11_ver: v2.8.1
|
||||
# python_ver: 2.7 FIXME
|
||||
simd: avx2,f16c
|
||||
setenvs: export LLVM_VERSION=10.0.0
|
||||
OPENIMAGEIO_CMAKE_FLAGS="-DBUILD_FMT_VERSION=7.0.1"
|
||||
PUGIXML_VERSION=v1.10
|
||||
- desc: latest releases gcc11/C++17 llvm13 boost1.71 exr3.1 py3.9 avx2 batch-b16avx512
|
||||
nametag: linux-latest-releases
|
||||
os: ubuntu-20.04
|
||||
cxx_compiler: g++-11
|
||||
cxx_std: 17
|
||||
fmt_ver: 9.1.0
|
||||
openexr_ver: v3.1.5
|
||||
openimageio_ver: master
|
||||
pybind11_ver: v2.10.0
|
||||
python_ver: 3.9
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2,b8_AVX512,b16_AVX512
|
||||
setenvs: export LLVM_VERSION=13.0.0
|
||||
LLVM_DISTRO_NAME=ubuntu-20.04
|
||||
OPENCOLORIO_VERSION=v2.1.2
|
||||
PUGIXML_VERSION=v1.11.4
|
||||
- desc: bleeding edge gcc12/C++17 llvm14 oiio/ocio/exr/pybind-master boost1.71 py3.10 avx2 batch-b16avx512
|
||||
nametag: linux-bleeding-edge
|
||||
os: ubuntu-22.04
|
||||
cxx_compiler: g++-12
|
||||
cxx_std: 17
|
||||
fmt_ver: master
|
||||
openexr_ver: main
|
||||
openimageio_ver: master
|
||||
pybind11_ver: master
|
||||
python_ver: "3.10"
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2,b8_AVX512,b16_AVX512
|
||||
setenvs: export LLVM_VERSION=14.0.0
|
||||
LLVM_DISTRO_NAME=ubuntu-18.04
|
||||
OPENCOLORIO_VERSION=main
|
||||
PUGIXML_VERSION=master
|
||||
- desc: clang14/C++17 llvm14 boost1.71 exr3.1 py3.8 avx2 batch-b16avx512
|
||||
nametag: linux-latest-releases-clang
|
||||
os: ubuntu-20.04
|
||||
cxx_compiler: clang++
|
||||
cc_compiler: clang
|
||||
cxx_std: 17
|
||||
fmt_ver: 8.1.1
|
||||
openexr_ver: v3.1.5
|
||||
openimageio_ver: master
|
||||
pybind11_ver: v2.9.2
|
||||
python_ver: 3.8
|
||||
simd: avx2,f16c
|
||||
batched: b8_AVX2,b8_AVX512,b16_AVX512
|
||||
setenvs: export LLVM_VERSION=14.0.0
|
||||
LLVM_DISTRO_NAME=ubuntu-18.04
|
||||
OPENCOLORIO_VERSION=v2.1.2
|
||||
PUGIXML_VERSION=v1.11.4
|
||||
|
||||
runs-on: ${{matrix.os}}
|
||||
env:
|
||||
CXX: ${{matrix.cxx_compiler}}
|
||||
CC: ${{matrix.cc_compiler}}
|
||||
CMAKE_CXX_STANDARD: ${{matrix.cxx_std}}
|
||||
FMT_VERSION: ${{matrix.fmt_ver}}
|
||||
OPENEXR_VERSION: ${{matrix.openexr_ver}}
|
||||
OPENIMAGEIO_VERSION: ${{matrix.openimageio_ver}}
|
||||
PYBIND11_VERSION: ${{matrix.pybind11_ver}}
|
||||
PYTHON_VERSION: ${{matrix.python_ver}}
|
||||
USE_BATCHED: ${{matrix.batched}}
|
||||
USE_SIMD: ${{matrix.simd}}
|
||||
steps:
|
||||
# We would like to use harden-runner, but it flags too many false
|
||||
# positives, every time we download a dependency. We should use it only
|
||||
# on CI runs where we are producing artifacts that users might rely on.
|
||||
# - name: Harden Runner
|
||||
# uses: step-security/harden-runner@248ae51c2e8cc9622ecf50685c8bf7150c6e8813 # v1.4.3
|
||||
# with:
|
||||
# egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_keys
|
||||
run: echo "::set-output name=date::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
|
||||
- name: ccache
|
||||
id: ccache
|
||||
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4
|
||||
with:
|
||||
path: /tmp/ccache
|
||||
key: ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
|
||||
restore-keys: ${{github.job}}-${{matrix.nametag}}-
|
||||
- name: Build setup
|
||||
run: |
|
||||
${{matrix.setenvs}}
|
||||
src/build-scripts/ci-startup.bash
|
||||
- name: Dependencies
|
||||
run: |
|
||||
${{matrix.depcmds}}
|
||||
src/build-scripts/gh-installdeps.bash
|
||||
- name: Build
|
||||
run: src/build-scripts/ci-build.bash
|
||||
- name: Testsuite
|
||||
if: matrix.skip_tests != '1'
|
||||
run: src/build-scripts/ci-test.bash
|
||||
- uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
|
||||
if: failure()
|
||||
with:
|
||||
name: osl-${{github.job}}-${{matrix.nametag}}
|
||||
path: |
|
||||
build/*.cmake
|
||||
build/CMake*
|
||||
build/testsuite/*/*.*
|
||||
|
||||
|
||||
macos:
|
||||
name: "${{matrix.os}} appleclang${{matrix.aclang}}/C++${{matrix.cxx_std}} py${{matrix.python_ver}} ${{matrix.desc}}"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- desc: MacOS-11
|
||||
os: macos-11
|
||||
nametag: macos11-py39
|
||||
cc_compiler: /usr/local/opt/llvm@14/bin/clang
|
||||
cxx_compiler: /usr/local/opt/llvm@14/bin/clang++
|
||||
cxx_std: 17
|
||||
python_ver: "3.10"
|
||||
aclang: 13
|
||||
setenvs: export LLVMBREWVER="@14" DO_BREW_UPDATE=1
|
||||
- desc: MacOS-12
|
||||
os: macos-12
|
||||
nametag: macos11-p310
|
||||
cc_compiler: /usr/local/opt/llvm@15/bin/clang
|
||||
cxx_compiler: /usr/local/opt/llvm@15/bin/clang++
|
||||
cxx_std: 17
|
||||
python_ver: "3.10"
|
||||
aclang: 13
|
||||
setenvs: export LLVMBREWVER="@15" DO_BREW_UPDATE=1
|
||||
runs-on: ${{matrix.os}}
|
||||
env:
|
||||
CXX: ${{matrix.cxx_compiler}}
|
||||
CC: ${{matrix.cc_compiler}}
|
||||
CMAKE_CXX_STANDARD: ${{matrix.cxx_std}}
|
||||
PYTHON_VERSION: ${{matrix.python_ver}}
|
||||
OPENIMAGEIO_VERSION: ${{matrix.openimageio_ver}}
|
||||
steps:
|
||||
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_keys
|
||||
run: echo "::set-output name=date::`date -u +'%Y-%m-%dT%H:%M:%SZ'`"
|
||||
- name: ccache
|
||||
id: ccache
|
||||
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4
|
||||
with:
|
||||
path: /Users/runner/.ccache
|
||||
key: ${{github.job}}-${{matrix.nametag}}-${{steps.ccache_cache_keys.outputs.date}}
|
||||
restore-keys: ${{github.job}}-${{matrix.nametag}}-
|
||||
- name: Build setup
|
||||
run: |
|
||||
${{matrix.setenvs}}
|
||||
src/build-scripts/ci-startup.bash
|
||||
- name: Dependencies
|
||||
run: |
|
||||
source src/build-scripts/install_homebrew_deps.bash
|
||||
if [[ "$OPENIMAGEIO_VERSION" != "" ]] ; then \
|
||||
OPENIMAGEIO_CMAKE_FLAGS="-DOIIO_BUILD_TESTS=0 -DUSE_OPENGL=0" ; \
|
||||
source src/build-scripts/build_openimageio.bash ; \
|
||||
else \
|
||||
brew install --display-times -q openimageio ; \
|
||||
PYTHONPATH=$PYTHONPATH:/usr/local/python${PYTHON_VERSION}/site-packages ; \
|
||||
fi
|
||||
src/build-scripts/save-env.bash
|
||||
- name: Build
|
||||
run: |
|
||||
src/build-scripts/ci-build.bash
|
||||
- name: Testsuite
|
||||
run: src/build-scripts/ci-test.bash
|
||||
- uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
|
||||
if: failure()
|
||||
with:
|
||||
name: osl-${{github.job}}-${{matrix.nametag}}
|
||||
path: |
|
||||
build/*.cmake
|
||||
build/CMake*
|
||||
build/testsuite/*/*.*
|
||||
@@ -1,62 +0,0 @@
|
||||
name: Scorecards supply-chain security
|
||||
on:
|
||||
# Only the default branch is supported.
|
||||
branch_protection_rule:
|
||||
schedule:
|
||||
- cron: '44 20 * * 6'
|
||||
push:
|
||||
branches: [ "main", "scorecard" ]
|
||||
|
||||
# Declare default permissions as read only.
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
analysis:
|
||||
name: Scorecards analysis
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
# Needed to upload the results to code-scanning dashboard.
|
||||
security-events: write
|
||||
# Used to receive a badge. (Upcoming feature)
|
||||
id-token: write
|
||||
# Needs for private repositories.
|
||||
contents: read
|
||||
actions: read
|
||||
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: "Run analysis"
|
||||
uses: ossf/scorecard-action@3e15ea8318eee9b333819ec77a36aca8d39df13e # v1.1.1
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
# (Optional) Read-only PAT token. Uncomment the `repo_token` line below if:
|
||||
# - you want to enable the Branch-Protection check on a *public* repository, or
|
||||
# - you are installing Scorecards on a *private* repository
|
||||
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
|
||||
# repo_token: ${{ secrets.SCORECARD_READ_TOKEN }}
|
||||
|
||||
# Publish the results for public repositories to enable scorecard badges. For more details, see
|
||||
# https://github.com/ossf/scorecard-action#publishing-results.
|
||||
# For private repositories, `publish_results` will automatically be set to `false`, regardless
|
||||
# of the value entered here.
|
||||
publish_results: true
|
||||
|
||||
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||
# format to the repository Actions tab.
|
||||
- name: "Upload artifact"
|
||||
uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 # v3.0.0
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
retention-days: 5
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard.
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@5f532563584d71fdef14ee64d17bafb34f751ce5 # v1.0.26
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
@@ -1,13 +0,0 @@
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
dist
|
||||
build
|
||||
*~
|
||||
\#*\#
|
||||
*.pyc
|
||||
*.log
|
||||
.vscode
|
||||
.envrc
|
||||
|
||||
@@ -1,149 +0,0 @@
|
||||
Project Name: Open Shading Language
|
||||
|
||||
Project Entity: Open Shading Language Project a Series of LF Projects, LLC
|
||||
|
||||
If emailing signed PDF, send to: manager@lfprojects.org
|
||||
|
||||
**Software Grant and Corporate Contributor License Agreement ("Agreement") v2.1**
|
||||
|
||||
Thank you for your interest in the project specified above (the “Project”). In
|
||||
order to clarify the intellectual property license granted with Contributions
|
||||
from any person or entity, the Project must have a Contributor License Agreement
|
||||
(CLA) on file that has been signed by each Contributor, indicating agreement to
|
||||
the license terms below. This license is for your protection as a Contributor as
|
||||
well as the protection of the Project and its users; it does not change your
|
||||
rights to use your own Contributions for any other purpose.
|
||||
|
||||
This version of the Agreement allows an entity (the “Corporation”) to submit
|
||||
Contributions to the Project, to authorize Contributions submitted by its
|
||||
designated employees to the Project, and to grant copyright and patent licenses
|
||||
thereto.
|
||||
|
||||
If you have not already done so, please complete and sign this Agreement using
|
||||
the electronic signature portal made available to you by the Project or its
|
||||
third-party service providers, or email a PDF of the signed agreement to the
|
||||
email address specified above. Please read this document carefully before
|
||||
signing and keep a copy for your records.
|
||||
|
||||
You accept and agree to the following terms and conditions for Your present and
|
||||
future Contributions submitted to the Project. In return, the Project shall not
|
||||
use Your Contributions in a way that is contrary to the public benefit or
|
||||
inconsistent with its charter at the time of the Contribution. Except for the
|
||||
license granted herein to the Project and recipients of software distributed by
|
||||
the Project, You reserve all right, title, and interest in and to Your
|
||||
Contributions.
|
||||
|
||||
1. Definitions.
|
||||
|
||||
“You” (or “Your”) shall mean the copyright owner or legal entity authorized by
|
||||
the copyright owner that is making this Agreement with the Project. For legal
|
||||
entities, the entity making a Contribution and all other entities that
|
||||
control, are controlled by, or are under common control with that entity are
|
||||
considered to be a single Contributor. For the purposes of this definition,
|
||||
“control” means (i) the power, direct or indirect, to cause the direction or
|
||||
management of such entity, whether by contract or otherwise, or (ii) ownership
|
||||
of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial
|
||||
ownership of such entity.
|
||||
|
||||
“Contribution” shall mean the code, documentation or other original works of
|
||||
authorship, including any modifications or additions to an existing work, that
|
||||
is intentionally submitted by You to the Project for inclusion in, or
|
||||
documentation of, any of the products owned or managed by the Project (the
|
||||
“Work”). For the purposes of this definition, “submitted” means any form
|
||||
of electronic, verbal, or written communication sent to the Project or its
|
||||
representatives, including but not limited to communication on electronic
|
||||
mailing lists, source code control systems, and issue tracking systems that
|
||||
are managed by, or on behalf of, the Project for the purpose of discussing and
|
||||
improving the Work, but excluding communication that is conspicuously marked
|
||||
or otherwise designated in writing by You as “Not a Contribution.”
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of this
|
||||
Agreement, You hereby grant to the Project and to recipients of software
|
||||
distributed by the Project a perpetual, worldwide, non-exclusive, no-charge,
|
||||
royalty-free, irrevocable copyright license to reproduce, prepare
|
||||
derivative works of, publicly display, publicly perform, sublicense,
|
||||
and distribute Your Contributions and such derivative works.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of this
|
||||
Agreement, You hereby grant to the Project and to recipients of software
|
||||
distributed by the Project a perpetual, worldwide, non-exclusive, no-charge,
|
||||
royalty-free, irrevocable (except as stated in this section) patent
|
||||
license to make, have made, use, offer to sell, sell, import, and
|
||||
otherwise transfer the Work, where such license applies only to
|
||||
those patent claims licensable by You that are necessarily infringed
|
||||
by Your Contribution(s) alone or by combination of Your
|
||||
Contribution(s) with the Work to which such Contribution(s) were
|
||||
submitted. If any entity institutes patent litigation against You or
|
||||
any other entity (including a cross-claim or counterclaim in a
|
||||
lawsuit) alleging that your Contribution, or the Work to which
|
||||
you have contributed, constitutes direct or contributory patent
|
||||
infringement, then any patent licenses granted to that entity under
|
||||
this Agreement for that Contribution or Work shall terminate as of
|
||||
the date such litigation is filed.
|
||||
|
||||
4. You represent that You are legally entitled to grant the above license. You
|
||||
represent further that the employee of the Corporation designated as the Initial
|
||||
CLA Manager below (and each who is designated in a subsequent written
|
||||
modification to the list of CLA Managers) (each, a “CLA Manager”) is
|
||||
authorized to maintain with the Project (1) the list of employees of the
|
||||
Corporation who are authorized to submit Contributions on behalf of the
|
||||
Corporation, and (2) the list of CLA Managers.
|
||||
|
||||
5. You represent that each of Your Contributions is Your original creation (see
|
||||
section 7 for submissions on behalf of others).
|
||||
|
||||
6. You are not expected to provide support for Your Contributions, except to the
|
||||
extent You desire to provide support. You may provide support for free, for a
|
||||
fee, or not at all. Unless required by applicable law or agreed to in writing,
|
||||
You provide Your Contributions on an “AS IS” BASIS, WITHOUT WARRANTIES OR
|
||||
CONDITIONS OF ANY KIND, either express or implied, including, without
|
||||
limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
|
||||
MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
7. Should You wish to submit work that is not Your original creation, You may
|
||||
submit it to the Project separately from any Contribution, identifying the
|
||||
complete details of its source and of any license or other restriction
|
||||
(including, but not limited to, related patents, trademarks, and license
|
||||
agreements) of which you are personally aware, and conspicuously marking the
|
||||
work as “Submitted on behalf of a third-party: [named here]”.
|
||||
|
||||
8. It is your responsibility to notify the Project when any change is required
|
||||
to the list of designated employees authorized to submit Contributions on behalf
|
||||
of the Corporation, or to the list of the CLA Managers.
|
||||
|
||||
\[Please complete and sign on the next page.\]
|
||||
|
||||
::: {style="page-break-after: always; visibility: hidden"}
|
||||
```{=tex}
|
||||
\pagebreak
|
||||
```
|
||||
:::
|
||||
|
||||
Please sign:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ Date:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Signatory Name:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Signatory E-mail:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Signatory Title:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Corporation Name:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Corporation Address:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Initial CLA Manager Name:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Initial CLA Manager E-Mail:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
@@ -1,137 +0,0 @@
|
||||
Project Name: Open Shading Language
|
||||
|
||||
Project Entity: Open Shading Language Project a Series of LF Projects, LLC
|
||||
|
||||
If emailing signed PDF, send to: manager@lfprojects.org
|
||||
|
||||
**Individual Contributor License Agreement ("Agreement") v2.1**
|
||||
|
||||
Thank you for your interest in the project specified above (the “Project”). In
|
||||
order to clarify the intellectual property license granted with Contributions
|
||||
from any person or entity, the Project must have a Contributor License Agreement
|
||||
(CLA) on file that has been signed by each Contributor, indicating agreement to
|
||||
the license terms below. This license is for your protection as a Contributor as
|
||||
well as the protection of the Project and its users; it does not change your
|
||||
rights to use your own Contributions for any other purpose.
|
||||
|
||||
If you have not already done so, please complete and sign this Agreement using
|
||||
the electronic signature portal made available to you by the Project or its
|
||||
third-party service providers, or email a PDF of the signed agreement to the
|
||||
email address specified above. Please read this document carefully before
|
||||
signing and keep a copy for your records.
|
||||
|
||||
You accept and agree to the following terms and conditions for Your present and
|
||||
future Contributions submitted to the Project. In return, the Project shall not
|
||||
use Your Contributions in a way that is contrary to the public benefit or
|
||||
inconsistent with its charter at the time of the Contribution. Except for the
|
||||
license granted herein to the Project and recipients of software distributed by
|
||||
the Project, You reserve all right, title, and interest in and to Your
|
||||
Contributions.
|
||||
|
||||
1. Definitions.
|
||||
|
||||
“You” (or “Your”) shall mean the copyright owner or legal entity authorized by
|
||||
the copyright owner that is making this Agreement with the Project. For legal
|
||||
entities, the entity making a Contribution and all other entities that control,
|
||||
are controlled by, or are under common control with that entity are considered
|
||||
to be a single Contributor. For the purposes of this definition, “control”
|
||||
means (i) the power, direct or indirect, to cause the direction or management
|
||||
of such entity, whether by contract or otherwise, or (ii) ownership of fifty
|
||||
percent (50%) or more of the outstanding shares, or (iii) beneficial ownership
|
||||
of such entity.
|
||||
|
||||
“Contribution” shall mean the code, documentation or other original works of
|
||||
authorship, including any modifications or additions to an existing work, that
|
||||
is intentionally submitted by You to the Project for inclusion in, or
|
||||
documentation of, any of the products owned or managed by the Project (the
|
||||
“Work”). For the purposes of this definition, “submitted” means any form of
|
||||
electronic, verbal, or written communication sent to the Project or its
|
||||
representatives, including but not limited to communication on electronic
|
||||
mailing lists, source code control systems, and issue tracking systems that are
|
||||
managed by, or on behalf of, the Project for the purpose of discussing and
|
||||
improving the Work, but excluding communication that is conspicuously marked or
|
||||
otherwise designated in writing by You as “Not a Contribution.”
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of this
|
||||
Agreement, You hereby grant to the Project and to recipients of software
|
||||
distributed by the Project a perpetual, worldwide, non-exclusive, no-charge,
|
||||
royalty-free, irrevocable copyright license to reproduce, prepare
|
||||
derivative works of, publicly display, publicly perform, sublicense,
|
||||
and distribute Your Contributions and such derivative works.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of this
|
||||
Agreement, You hereby grant to the Project and to recipients of software
|
||||
distributed by the Project a perpetual, worldwide, non-exclusive, no-charge,
|
||||
royalty-free, irrevocable (except as stated in this section) patent
|
||||
license to make, have made, use, offer to sell, sell, import, and
|
||||
otherwise transfer the Work, where such license applies only to
|
||||
those patent claims licensable by You that are necessarily infringed
|
||||
by Your Contribution(s) alone or by combination of Your
|
||||
Contribution(s) with the Work to which such Contribution(s) were
|
||||
submitted. If any entity institutes patent litigation against You or
|
||||
any other entity (including a cross-claim or counterclaim in a
|
||||
lawsuit) alleging that your Contribution, or the Work to which
|
||||
you have contributed, constitutes direct or contributory patent
|
||||
infringement, then any patent licenses granted to that entity under
|
||||
this Agreement for that Contribution or Work shall terminate as of
|
||||
the date such litigation is filed.
|
||||
|
||||
4. You represent that you are legally entitled to grant the above license. If
|
||||
your employer(s) has rights to intellectual property that you create that
|
||||
includes your Contributions, you represent that you have received permission to
|
||||
make Contributions on behalf of that employer, that your employer has waived
|
||||
such rights for your Contributions to the Project, or that your employer has
|
||||
executed a separate Corporate CLA with the Project.
|
||||
|
||||
5. You represent that each of Your Contributions is Your original creation (see
|
||||
section 7 for submissions on behalf of others). You represent that Your
|
||||
Contribution submissions include complete details of any third-party license or
|
||||
other restriction (including, but not limited to, related patents and
|
||||
trademarks) of which you are personally aware and which are associated with
|
||||
any part of Your Contributions.
|
||||
|
||||
6. You are not expected to provide support for Your Contributions, except to the
|
||||
extent You desire to provide support. You may provide support for free, for a
|
||||
fee, or not at all. Unless required by applicable law or agreed to in writing,
|
||||
You provide Your Contributions on an “AS IS” BASIS, WITHOUT WARRANTIES OR
|
||||
CONDITIONS OF ANY KIND, either express or implied, including, without
|
||||
limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
|
||||
MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
7. Should You wish to submit work that is not Your original creation, You may
|
||||
submit it to the Project separately from any Contribution, identifying the
|
||||
complete details of its source and of any license or other restriction
|
||||
(including, but not limited to, related patents, trademarks, and license
|
||||
agreements) of which you are personally aware, and conspicuously marking the
|
||||
work as “Submitted on behalf of a third-party: [named here]”.
|
||||
|
||||
8. You agree to notify the Project of any facts or circumstances of which you
|
||||
become aware that would make these representations inaccurate in any respect.
|
||||
|
||||
\[Please complete and sign on the next page.\]
|
||||
|
||||
::: {style="page-break-after: always; visibility: hidden"}
|
||||
```{=tex}
|
||||
\pagebreak
|
||||
```
|
||||
:::
|
||||
|
||||
Please sign:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
Date: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Full name:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Mailing Address:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Country:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
E-Mail:
|
||||
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
@@ -1,253 +0,0 @@
|
||||
# Technical Charter (the "Charter") for Open Shading Language a Series of LF Projects, LLC
|
||||
|
||||
This charter (the "Charter") sets forth the responsibilities and procedures
|
||||
for technical contribution to, and oversight of, the Open Shading Language
|
||||
project, which has been established as Open Shading Language a Series of LF
|
||||
Projects, LLC (the "Project"). LF Projects, LLC ("LF Projects") is a
|
||||
Delaware series limited liability company. All Contributors to the Project
|
||||
must comply with the terms of this Charter.
|
||||
|
||||
### 1. Mission and Scope of the Project
|
||||
|
||||
* **a.** The mission of the Project is to develop an open source project
|
||||
for programmable shading in advanced renderers and other applications,
|
||||
ideal for describing materials, lights, displacement, and pattern
|
||||
generation.
|
||||
|
||||
* **b.** The scope of the Project includes software development under an
|
||||
OSI-approved open source license supporting the mission, including
|
||||
documentation, testing, integration and the creation of other artifacts
|
||||
that aid the development, deployment, operation or adoption of the open
|
||||
source software project.
|
||||
|
||||
### 2. Technical Steering Committee
|
||||
|
||||
* **a.** The Technical Steering Committee (the "TSC") will be responsible
|
||||
for all technical oversight of the open source Project.
|
||||
|
||||
* **b.** The TSC voting members are initially the Project's Committers. At
|
||||
the inception of the project, the Committers of the Project will be as
|
||||
set forth within the "GOVERNANCE" file within the Project's code
|
||||
repository. The TSC may choose an alternative approach for determining
|
||||
the voting members of the TSC, and any such alternative approach will be
|
||||
documented in the GOVERNANCE file. Any meetings of the Technical
|
||||
Steering Committee are intended to be open to the public, and can be
|
||||
conducted electronically, via teleconference, or in person.
|
||||
|
||||
* **c.** TSC projects generally will involve Contributors and Committers.
|
||||
The TSC may adopt or modify roles so long as the roles are documented in
|
||||
the GOVERNANCE file. Unless otherwise documented:
|
||||
|
||||
- **i.** Contributors include anyone in the technical community that
|
||||
contributes code, documentation, or other technical artifacts to the
|
||||
Project;
|
||||
|
||||
- **ii.** Committers are Contributors who have earned the ability to
|
||||
modify ("commit") source code, documentation or other technical
|
||||
artifacts in a project's repository; and
|
||||
|
||||
- **iii.** A Contributor may become a Committer by a majority approval
|
||||
of the existing Committers or at the discretion of the TSC. A
|
||||
Committer may be removed by a majority approval of the other existing
|
||||
Committers, or at the discretion of the TSC.
|
||||
|
||||
* **d.** Participation in the Project through becoming a Contributor and
|
||||
Committer is open to anyone so long as they abide by the terms of this
|
||||
Charter.
|
||||
|
||||
* **e.** The TSC may (1) establish workflow procedures for the submission,
|
||||
approval, and closure/archiving of projects, (2) set requirements for
|
||||
the promotion of Contributors to Committer status, as applicable, and
|
||||
(3) amend, adjust, refine and/or eliminate the roles of Contributors,
|
||||
and Committers, and create new roles, and publicly document any TSC
|
||||
roles, as it sees fit.
|
||||
|
||||
* **f.** The TSC may elect a TSC Chair, who will preside over meetings of
|
||||
the TSC and will serve until his or her resignation or replacement by
|
||||
the TSC. The TSC Chair, or any other TSC member so designated by the
|
||||
TSC, will serve as the primary communication contact between the Project
|
||||
and the Academy Software Foundation Fund of The Linux Foundation.
|
||||
|
||||
* **g.** Responsibilities: The TSC will be responsible for all aspects of
|
||||
oversight relating to the Project, which may include:
|
||||
|
||||
- **i.** coordinating the technical direction of the Project;
|
||||
|
||||
- **ii.** approving project or system proposals (including, but not
|
||||
limited to, incubation, deprecation, and changes to a sub-project's
|
||||
scope);
|
||||
|
||||
- **iii.** organizing sub-projects and removing projects;
|
||||
|
||||
- **iv.** creating sub-committees or working groups to focus on
|
||||
cross-project technical issues and requirements;
|
||||
|
||||
- **v.** appointing representatives to work with other open source or
|
||||
open standards communities;
|
||||
|
||||
- **vi.** establishing community norms, workflows, issuing releases, and
|
||||
security issue reporting policies;
|
||||
|
||||
- **vii.** approving and implementing policies and processes for
|
||||
contributing (to be published in the CONTRIBUTING file) and
|
||||
coordinating with the Series Manager to resolve matters or concerns
|
||||
that may arise as set forth in Section 7 of this Charter;
|
||||
|
||||
- **viii.** discussions, seeking consensus, and where necessary, voting
|
||||
on technical matters relating to the code base that affect multiple
|
||||
projects; and
|
||||
|
||||
- **ix.** coordinating any marketing, events, or communications
|
||||
regarding the Project with the LF Projects Manager or their designee.
|
||||
|
||||
### 3. TSC Voting
|
||||
|
||||
* **a.** While the Project aims to operate as a consensus based community,
|
||||
if any TSC decision requires a vote to move the Project forward, the
|
||||
voting members of the TSC will vote on a one vote per voting member
|
||||
basis.
|
||||
|
||||
* **b.** At least fifty percent of all voting members of the TSC must be
|
||||
present at a TSC meeting in order to establish a quorum. The TSC may
|
||||
continue to meet if a quorum is not met, but will be prevented from
|
||||
making any decisions at such meeting.
|
||||
|
||||
* **c.** Except as provided in Section 7.c. and 8.a, decisions by vote at
|
||||
a meeting require a majority vote of those in attendance, provided
|
||||
quorum is met. Decisions made by electronic vote without a meeting
|
||||
require a majority vote of all voting members of the TSC.
|
||||
|
||||
* **d.** In the event a vote cannot be resolved by the TSC, any voting
|
||||
member of the TSC may refer the matter to the Series Manager or its
|
||||
designee for assistance in reaching a resolution.
|
||||
|
||||
### 4. Compliance with Policies
|
||||
|
||||
* **a.** This Charter is subject to the Series Agreement for the Project
|
||||
and the Operating Agreement of LF Projects. Contributors will comply
|
||||
with the policies of LF Projects as may be adopted and amended by LF
|
||||
Projects, including, without limitation the policies listed at
|
||||
https://lfprojects.org/policies/.
|
||||
|
||||
* **b.** The TSC may adopt a code of conduct ("CoC") for the Project,
|
||||
which is subject to approval by the Series Manager. Contributors to the
|
||||
Project will comply with the CoC or, in the event that a
|
||||
Project-specific CoC has not been approved, the LF Projects Code of
|
||||
Conduct listed at https://lfprojects.org/policies/.
|
||||
|
||||
* **c.** When amending or adopting any policy applicable to the Project,
|
||||
LF Projects will publish such policy, as to be amended or adopted, on
|
||||
its web site at least 30 days prior to such policy taking effect;
|
||||
provided, however, that in the case of any amendment of the Trademark
|
||||
Policy or Terms of Use of LF Projects, any such amendment is effective
|
||||
upon publication on LF Project's web site.
|
||||
|
||||
* **d.** All participants must allow open participation from any
|
||||
individual or organization meeting the requirements for contributing
|
||||
under this Charter and any policies adopted for all participants by the
|
||||
TSC, regardless of competitive interests. Put another way, the Project
|
||||
community must not seek to exclude any participant based on any
|
||||
criteria, requirement, or reason other than those that are reasonable
|
||||
and applied on a non-discriminatory basis to all participants in the
|
||||
Project community.
|
||||
|
||||
* **e.** The Project will operate in a transparent, open, collaborative,
|
||||
and ethical manner at all times. The output of all Project discussions,
|
||||
proposals, timelines, decisions, and status should be made open and
|
||||
easily visible to all. Any potential violations of this requirement
|
||||
should be reported immediately to the LF Projects Manager.
|
||||
|
||||
### 5. Community Assets
|
||||
|
||||
* **a.** LF Projects will hold title to all trade or service marks used by
|
||||
the Project ("Project Trademarks"), whether based on common law or
|
||||
registered rights. Project Trademarks will be transferred and assigned
|
||||
to LF Projects to hold on behalf of the Project. Any use of any Project
|
||||
Trademarks by participants in the Project will be in accordance with the
|
||||
license from LF Projects and inure to the benefit of LF Projects.
|
||||
|
||||
* **b.** The Project shall, as permitted and in accordance with such
|
||||
license from LF Projects, develop and own all Project GitHub and social
|
||||
media accounts, and domain name registrations created by the Project
|
||||
community.
|
||||
|
||||
* **c.** Under no circumstances will LF Projects be expected or required
|
||||
to undertake any action on behalf of the Project that is inconsistent
|
||||
with the tax-exempt status or purpose, as applicable, of LFP, Inc. or LF
|
||||
Projects, LLC.
|
||||
|
||||
### 6. General Rules and Operations.
|
||||
|
||||
* **a.** The Project will:
|
||||
|
||||
- **i.** engage in the work of the project in a professional manner
|
||||
consistent with maintaining a cohesive community, while also
|
||||
maintaining the goodwill and esteem of LF Projects, LFP, Inc. and
|
||||
other partner organizations in the open source software community; and
|
||||
|
||||
- **ii.** respect the rights of all trademark owners, including any
|
||||
branding and trademark usage guidelines.
|
||||
|
||||
### 7. Intellectual Property Policy
|
||||
|
||||
* **a.** Participants acknowledge that the copyright in all new
|
||||
contributions shall be retained by the copyright holder as independent
|
||||
works of authorship and that no contributor or copyright holder will be
|
||||
required to assign copyrights to the Project.
|
||||
|
||||
* **b.** Except as described in Section 7.c., all code contributions to
|
||||
the Project are subject to the following:
|
||||
|
||||
- **i.** All new inbound code contributions to the Project must be made
|
||||
using the BSD 3-Clause License (available here:
|
||||
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/main/LICENSE.md)
|
||||
(the "Project License").
|
||||
|
||||
- **ii.** All new inbound code contributions must:
|
||||
|
||||
o **a.** be made pursuant to a binding Project Contribution License
|
||||
Agreement (the "CLA") available on the Project's web site; and
|
||||
|
||||
o **b.** be accompanied by a Developer Certificate of Origin
|
||||
(http://developercertificate.org) sign-off in the source code system
|
||||
that is submitted through a TSC-approved contribution process which
|
||||
will bind the authorized contributor and, if not self-employed,
|
||||
their employer to the applicable license;
|
||||
|
||||
- **iii.** All outbound code will be made available under the Project
|
||||
License.
|
||||
|
||||
- **iv.** Documentation will be received and made available by the
|
||||
Project under the Creative Commons Attribution 4.0 International
|
||||
License (available at http://creativecommons.org/licenses/by/4.0/).
|
||||
|
||||
- **v.** The Project may seek to integrate and contribute back to other
|
||||
open source projects ("Upstream Projects"). In such cases, the Project
|
||||
will conform to all license requirements of the Upstream Projects,
|
||||
including dependencies, leveraged by the Project. Upstream Project
|
||||
code contributions not stored within the Project's main code
|
||||
repository shall comply with the contribution process and license
|
||||
terms for the applicable Upstream Project.
|
||||
|
||||
* **c.** If an alternative inbound or outbound license is required for
|
||||
compliance with the license for a leveraged open source project or is
|
||||
otherwise required to achieve the Project's mission, the Governing Board
|
||||
of the Academy Software Foundation Fund of the Linux Foundation
|
||||
("Governing Board"), or the Governing Board's representatives designated
|
||||
for such purpose, may approve the use of an alternative license for
|
||||
specific inbound or outbound contributions on an exception basis. Any
|
||||
exceptions must be approved by a vote of the Governing Board and must be
|
||||
limited in scope to what is required for such a purpose. To request an
|
||||
exception, please describe the contribution, the alternative open source
|
||||
license(s), and the justification for using an alternative open source
|
||||
license for the Project.
|
||||
|
||||
* **d.** Contributed files should contain license information, such as
|
||||
SPDX short form identifiers, indicating the open source license or
|
||||
licenses pertaining to the file.
|
||||
|
||||
### 8. Amendments
|
||||
|
||||
* **a.** This charter may be amended by a two-thirds vote of the entire
|
||||
TSC, subject to reasonable approval by LF Projects.
|
||||
|
||||
|
Before Width: | Height: | Size: 7.6 KiB |
@@ -1,105 +0,0 @@
|
||||
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
|
||||
<!-- Copyright Contributors to the Open Shading Language Project. -->
|
||||
|
||||
# TSC meeting 2020-04-02 (first TSC meeting!)
|
||||
|
||||
Host: John Mertic
|
||||
|
||||
### Attendees:
|
||||
|
||||
Meeting chair pro tem: John Mertic, Linux Foundation
|
||||
|
||||
TSC members:
|
||||
|
||||
* [x] Luke Emrose, Animal Logic
|
||||
* [x] Eric Enderton, NVIDIA
|
||||
* [x] Stephen Friedman, Pixar
|
||||
* [x] Larry Gritz, Sony Pictures Imageworks
|
||||
* [x] Derek Haase, DNEG
|
||||
* [x] Adrien Herubel, Autodesk
|
||||
* [x] Lee Kerley, Sony Pictures Imageworks
|
||||
* [x] Chris Kulla, Sony Pictures Imageworks
|
||||
* [x] Mitch Prater, Laika
|
||||
* [x] Brecht Van Lommel, Blender
|
||||
|
||||
Additional attendees:
|
||||
|
||||
* [x] Max Liani, Pixar
|
||||
* [x] Zap Anderson, Autodesk
|
||||
* [x] Pete Segal, Foundry
|
||||
* [x] JT Nelson, Pasadena Open Source
|
||||
* [x] Amir Shachar, DNEG
|
||||
* [x] Alex Wells, Intel
|
||||
|
||||
|
||||
### Agenda / Meeting notes
|
||||
|
||||
* Charter / legalities
|
||||
- All the proposed documents are in this PR:
|
||||
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1137
|
||||
- **Action**: Everybody please look over the charter, etc., give a +1,
|
||||
raise any objections or ask questions.
|
||||
- **Action**: Look at the CLA, show to your legal depts if they care. It's
|
||||
identical to the other ASWF projects, so the bar to alter it will be
|
||||
extremely high, please resist the temptation.
|
||||
- Aim to vote on approval by the next TSC meeting
|
||||
|
||||
* TSC membership
|
||||
- As above, per pre-meeting correspondence and opportunities to
|
||||
volunteer.
|
||||
- **Action**: suggest any edits to TSC voting members
|
||||
- People or orgs not on the list who want to be members and can commit
|
||||
a high level of involvement.
|
||||
- Swapping, adding, or subtracting people in the future is easy as
|
||||
circumstances changes, so don't overthink it.
|
||||
|
||||
* Office elections
|
||||
- LG nominated himself as chief architect, Chris Kulla for chair.
|
||||
- Both passed by voice vote without objections.
|
||||
- Welcome to the ASWF TAC, Chris!
|
||||
- Elections (and/or ratification of people staying in their current roles)
|
||||
will be annual.
|
||||
|
||||
* John went over the infrastructure checklist as we transition the project:
|
||||
- Where does the code live, issues, etc: we're already on GitHub, nothing
|
||||
to do there
|
||||
- CI: we are already using GitHub Actions CI
|
||||
- short term, nothing to do
|
||||
- long term, we will want to enhance our lack of good Windows CI and
|
||||
ability to CI test both the GPU path and the CPU "wide SIMD" batch
|
||||
shading mode.
|
||||
- **Action**: look at the CLA, +1 it
|
||||
- When we set up the new EasyCLA system, even orgs who previously signed
|
||||
the old Sony CLA will need to sign the new LF one. We will want to have
|
||||
everybody do this before we move the repository.
|
||||
- **Action**: LG to turn over the openshadinglanguage.org domain to LF
|
||||
(right now it's just a redirect to our GitHub repo)
|
||||
- **Action**: LF/Steve Winslow will do the code scan, make sure licenses
|
||||
are in order, etc., as another prerequisite to moving the repo from
|
||||
imageworks GH account to ASWF GH account.
|
||||
- Mail list:
|
||||
- **Action**: John Mertic will set up osl-dev@lists.aswf.io (and a
|
||||
second osl-tsc-private for the occasional topics among TSC members
|
||||
that can't be public, like security or code of conduct issues)
|
||||
- **Action**: LG will let people know about the new list. You will need
|
||||
to sign up even if you were signed up to the old list.
|
||||
- **Action**: John will figure out how to transfer the archives of the
|
||||
old osl-dev so they are not lost.
|
||||
- Future action: in a few weeks, after everybody is signed up for the
|
||||
new list, we will throw the switch and stop using the old one.
|
||||
- Social media: there are no other accounts to transfer.
|
||||
- Trademarks: SPI never registered any.
|
||||
- Slack channel: John already set up on ASWF slack.
|
||||
|
||||
* Meeting cadence
|
||||
- Let's keep the Thursday 2pm PT time for now. (No objections.)
|
||||
- LG suggests that we meet every 2nd week -- because this project is
|
||||
starting with so much more already completed compared to the other
|
||||
projects when they joined (already have CI, documents are same as were
|
||||
approved by the orgs before, etc.), we probably don't need every week.
|
||||
Can adjust later.
|
||||
- Hopefully will get this administrivia done soon and can spend all our
|
||||
time on tech stuff.
|
||||
|
||||
* Items for next TSC meeting agenda:
|
||||
- Ratify charter, governance, CLAs
|
||||
@@ -1,51 +0,0 @@
|
||||
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
|
||||
<!-- Copyright Contributors to the Open Shading Language Project. -->
|
||||
|
||||
# OSL TSC meeting DATE
|
||||
|
||||
[Video link](https://zoom.us/j/100511909)
|
||||
[Agenda link](https://docs.google.com/document/d/1yf0bG6eoE2EvKZBNZX3nskdTvu99ADTDTNOknCDJd1I/)
|
||||
|
||||
### Attendees:
|
||||
|
||||
TSC voting members:
|
||||
* [ ] Luke Emrose, Animal Logic
|
||||
* [ ] Eric Enderton, NVIDIA
|
||||
* [ ] Stephen Friedman, Pixar
|
||||
* [ ] Larry Gritz (_Chief Architect_), Sony Pictures Imageworks
|
||||
* [ ] Derek Haase, DNEG
|
||||
* [ ] Adrien Herubel, Autodesk
|
||||
* [ ] Lee Kerley, Sony Pictures Imageworks
|
||||
* [ ] Chris Kulla (_TSC Chair_), Sony Pictures Imageworks
|
||||
* [ ] Mitch Prater, Laika
|
||||
* [ ] Brecht Van Lommel, Blender
|
||||
|
||||
Additional attendees:
|
||||
|
||||
* [ ] Name - Org
|
||||
* ...others...
|
||||
|
||||
|
||||
### Agenda / Meeting notes
|
||||
|
||||
* Status on last meeting's action items:
|
||||
- info
|
||||
- info
|
||||
|
||||
* Topic 1
|
||||
- info
|
||||
- info
|
||||
|
||||
* Topic 2
|
||||
- info
|
||||
- info
|
||||
|
||||
|
||||
### Next steps
|
||||
|
||||
* New action items:
|
||||
-
|
||||
-
|
||||
|
||||
* Items for next TSC meeting agenda:
|
||||
- xxx
|
||||
@@ -1,53 +0,0 @@
|
||||
# Project Intake checklist
|
||||
|
||||
This is a checklist for TSC's to review as part of the intake process. The TSC should review this entire list during the kickoff meeting. For anything outstanding, create an [issue](../issues) to track and link to it in the list
|
||||
|
||||
- Existing Project Governance
|
||||
- [X] Project License exists ( [LICENSE.md](../LICENSE.md) ) and is OSI-approved
|
||||
- [X] Any third-party components/dependencies included are listed along with their licenses ( [THIRD_PARTY.md](../THIRD_PARTY.md) )
|
||||
- [X] Governance defined, outlining community roles and how decsions are made ( [GOVERNANCE.md](../GOVERNANCE.md] )
|
||||
- Closed by https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1137
|
||||
- [X] Contribution Policy defined ( [CONTRIBUTING.md](../CONTRIBUTING.md) )
|
||||
- Closed by https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1137
|
||||
- [X] Code of Conduct defined ( existing or pull from [ASWF Sample Project](https://github.com/AcademySoftwareFoundation/aswf-sample-project/blob/master/CODE_OF_CONDUCT.md) )
|
||||
- Closed by https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1137
|
||||
- [ ] Release methodology defined ( [release.md](process/release.md) )
|
||||
- New Project Governance
|
||||
- [X] TSC members identified
|
||||
- [X] First TSC meeting held
|
||||
- [X] TSC meeting cadence set and added to project calendar
|
||||
- [X] CLA Approved ( if used ) ( [CCLA](CLA-corporate.md) and [ICLA](CLA-individual.md) )
|
||||
- Project charter ( [charter.md](charter.md) )
|
||||
- [X] Approved by TSC
|
||||
- Closed by https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1137
|
||||
- [X] Filed ( create pull request against [foundation repo](https://github.com/AcademySoftwareFoundation/foundation) )
|
||||
- Current tools
|
||||
- [X] Source Control ( https://github.com/AcademySoftwareFoundation/OpenShadingLanguage )
|
||||
- [X] Issue/feature tracker ( https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues )
|
||||
- Collaboration tools
|
||||
- [X] Mailing lists (old: http://groups.google.com/group/osl-dev )
|
||||
- [X] Move to groups.io ( create [issue on foundation repo](https://github.com/AcademySoftwareFoundation/foundation/issues/new ) to setup/transfer
|
||||
- [X] Slack or IRC ( #openshadinglanguage )
|
||||
- [ ] CI/build environment
|
||||
- Already using GitHub Actions CI
|
||||
- [ ] Needs work on Windows
|
||||
- [X] Needs to use ASWF docker images for more complete VFXPlatform coverage
|
||||
- [ ] Longer term: needs GPU tests
|
||||
- Project assets
|
||||
- [X] Domain name
|
||||
- [X] Logo(s) ( https://github.com/AcademySoftwareFoundation/artwork/blob/master/examples/incubating.md#open-shading-language-logos )
|
||||
- [X] Trademarks/mark ownership rights
|
||||
- Outreach
|
||||
- [X] New project announcement done ( https://www.aswf.io/osl-joins-aswf/ )
|
||||
- [X] Project added to ASWF website and ASWF landscape
|
||||
- Graduation
|
||||
- [ ] CII Badge achieved
|
||||
- [ ] Committer Diversity established
|
||||
- [ ] Commit/Contribution growth during incubation
|
||||
- [ ] Committers defined in the project ( [COMMITTERS.csv](COMMITTERS.csv) or [COMMITTERS.yml](COMMITTERS.yml) )
|
||||
- [X] TAC representative appointed
|
||||
- Chris Kulla, TSC chair, is our TAC rep for the project
|
||||
- [X] License scan completed and no issues found
|
||||
- Minor issues were found but already fixed in PR https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1145
|
||||
- [X] Code repository imported to ASWF GitHub organization
|
||||
- [X] Developer Certificate of Origin post commit signoff done and DCO Probot enabled.
|
||||
@@ -1,295 +0,0 @@
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
cmake_minimum_required (VERSION 3.12)
|
||||
|
||||
set (OSL_VERSION "1.13.1.0" CACHE STRING "Version")
|
||||
project (OSL VERSION ${OSL_VERSION}
|
||||
LANGUAGES CXX C
|
||||
HOMEPAGE_URL "https://github.com/AcademySoftwareFoundation/OpenShadingLanguage")
|
||||
set (PROJ_NAME ${PROJECT_NAME}) # short name
|
||||
string (TOLOWER ${PROJ_NAME} PROJ_NAME_LOWER) # short name lower case
|
||||
string (TOUPPER ${PROJ_NAME} PROJ_NAME_UPPER) # short name upper case
|
||||
set (PROJECT_VERSION_RELEASE_TYPE "dev" CACHE STRING
|
||||
"Build type, for example: dev, beta2, RC1 (empty string for normal release)")
|
||||
set (${PROJECT_NAME}_VERSION_RELEASE_TYPE ${PROJECT_VERSION_RELEASE_TYPE})
|
||||
set (PROJECT_AUTHORS "Contributors to the Open Shading Language project")
|
||||
option (${PROJECT_NAME}_SUPPORTED_RELEASE
|
||||
"Set ON for supported release branch, OFF for master" OFF)
|
||||
if (${PROJECT_NAME}_SUPPORTED_RELEASE)
|
||||
set (${PROJECT_NAME}_DEV_RELEASE OFF)
|
||||
else ()
|
||||
set (${PROJECT_NAME}_DEV_RELEASE ON)
|
||||
endif ()
|
||||
|
||||
# Set PROJECT_IS_TOP_LEVEL to ON if if this is the top level project (not
|
||||
# if this is included as a subproject of something else). Note that this is
|
||||
# handled automatically for CMake >= 3.21.
|
||||
if (CMAKE_VERSION VERSION_LESS 3.21)
|
||||
if ("${CMAKE_PROJECT_NAME}" STREQUAL "${PROJECT_NAME}")
|
||||
set (PROJECT_IS_TOP_LEVEL ON)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (NOT CMAKE_BUILD_TYPE)
|
||||
set (CMAKE_BUILD_TYPE "Release")
|
||||
endif ()
|
||||
|
||||
# If the user hasn't configured cmake with an explicit
|
||||
# -DCMAKE_INSTALL_PREFIX=..., then set it to safely install into ./dist, to
|
||||
# help prevent the user from accidentally writing over /usr/local or whatever.
|
||||
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND PROJECT_IS_TOP_LEVEL)
|
||||
set (CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/dist" CACHE PATH
|
||||
"Installation location" FORCE)
|
||||
endif()
|
||||
|
||||
message (STATUS "Configuring ${PROJECT_NAME} ${PROJECT_VERSION}")
|
||||
message (STATUS "CMake ${CMAKE_VERSION}")
|
||||
message (STATUS "CMake system = ${CMAKE_SYSTEM}")
|
||||
message (STATUS "CMake system name = ${CMAKE_SYSTEM_NAME}")
|
||||
message (STATUS "Project source dir = ${PROJECT_SOURCE_DIR}")
|
||||
message (STATUS "Project build dir = ${CMAKE_BINARY_DIR}")
|
||||
message (STATUS "Project install prefix = ${CMAKE_INSTALL_PREFIX}")
|
||||
message (STATUS "Configuration types = ${CMAKE_CONFIGURATION_TYPES}")
|
||||
message (STATUS "Build type = ${CMAKE_BUILD_TYPE}")
|
||||
|
||||
# Make the build area layout look a bit more like the final dist layout
|
||||
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
if ("${PROJECT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
|
||||
message (FATAL_ERROR "Not allowed to run in-source build!")
|
||||
endif ()
|
||||
|
||||
|
||||
option (CMAKE_USE_FOLDERS "Use the FOLDER target property to organize targets into folders." ON)
|
||||
mark_as_advanced (CMAKE_USE_FOLDERS)
|
||||
if (CMAKE_USE_FOLDERS)
|
||||
set_property (GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
endif ()
|
||||
|
||||
|
||||
# Version of the OSO file format and instruction set
|
||||
set (OSO_FILE_VERSION_MAJOR 1)
|
||||
set (OSO_FILE_VERSION_MINOR 0)
|
||||
|
||||
|
||||
# This needs to be early, for CMAKE_INSTALL_FULL_DATADIR
|
||||
include (GNUInstallDirs)
|
||||
|
||||
|
||||
option (VERBOSE "Print lots of messages while compiling" OFF)
|
||||
set (OSL_LIBNAME_SUFFIX "" CACHE STRING
|
||||
"Optional name appended to ${PROJECT_NAME} libraries that are built")
|
||||
option (OSL_BUILD_TESTS "Build the unit tests, testshade, testrender" ON)
|
||||
if (WIN32)
|
||||
option (USE_LLVM_BITCODE "Generate embedded LLVM bitcode" OFF)
|
||||
else ()
|
||||
option (USE_LLVM_BITCODE "Generate embedded LLVM bitcode" ON)
|
||||
endif ()
|
||||
option (OSL_BUILD_PLUGINS "Bool OSL plugins, for example OIIO plugin" ON)
|
||||
option (OSL_BUILD_SHADERS "Build shaders" ON)
|
||||
option (USE_OPTIX "Include OptiX support" OFF)
|
||||
set (OPTIX_EXTRA_LIBS CACHE STRING "Extra lib targets needed for OptiX")
|
||||
set (CUDA_EXTRA_LIBS CACHE STRING "Extra lib targets needed for CUDA")
|
||||
set (CUDA_TARGET_ARCH "sm_60" CACHE STRING "CUDA GPU architecture (e.g. sm_50)")
|
||||
set (OSL_SHADER_INSTALL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT_NAME}/shaders"
|
||||
CACHE STRING "Directory where shaders will be installed")
|
||||
set (OSL_PTX_INSTALL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT_NAME}/ptx"
|
||||
CACHE STRING "Directory where OptiX PTX files will be installed")
|
||||
set (CMAKE_DEBUG_POSTFIX "" CACHE STRING "Library naming postfix for Debug builds (e.g., '_debug')")
|
||||
|
||||
|
||||
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
||||
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
||||
add_definitions ("-DOSL_NO_DEFAULT_TEXTURESYSTEM=1")
|
||||
endif ()
|
||||
|
||||
option (USE_FAST_MATH "Use fast math approximations (if no, then use system math library)" ON)
|
||||
if (USE_FAST_MATH)
|
||||
add_definitions ("-DOSL_FAST_MATH=1")
|
||||
else ()
|
||||
add_definitions ("-DOSL_FAST_MATH=0")
|
||||
endif ()
|
||||
|
||||
option (OIIO_FMATH_SIMD_FRIENDLY "Make sure OIIO fmath functions are SIMD-friendly" OFF)
|
||||
if (OIIO_FMATH_SIMD_FRIENDLY)
|
||||
add_definitions (-DOIIO_FMATH_SIMD_FRIENDLY=1)
|
||||
endif ()
|
||||
|
||||
if (USE_OPTIX)
|
||||
add_definitions ("-DOSL_USE_OPTIX=1")
|
||||
endif ()
|
||||
|
||||
# Define OSL_INTERNAL symbol only when building OSL itself, will not be
|
||||
# defined for downstream projects using OSL.
|
||||
add_definitions (-DOSL_INTERNAL=1)
|
||||
|
||||
# Set the default namespace. For symbol hiding reasons, it's important that
|
||||
# the project name is a subset of the namespace name.
|
||||
set (${PROJ_NAME}_NAMESPACE ${PROJECT_NAME} CACHE STRING
|
||||
"Customized outer namespace base name (version will be added)")
|
||||
option (${PROJ_NAME}_NAMESPACE_INCLUDE_PATCH
|
||||
"Should the inner namespace include the patch number" ${${PROJECT_NAME}_DEV_RELEASE})
|
||||
set (PROJ_NAMESPACE "${${PROJ_NAME}_NAMESPACE}")
|
||||
string(REGEX MATCH ${PROJECT_NAME} NAMESPACE_HAS_PROJECT_NAME ${PROJ_NAMESPACE})
|
||||
if (NOT NAMESPACE_HAS_PROJECT_NAME)
|
||||
set (PROJ_NAMESPACE ${PROJECT_NAME}_${PROJ_NAMESPACE})
|
||||
endif ()
|
||||
set (PROJ_NAMESPACE_V "${PROJ_NAMESPACE}_v${PROJECT_VERSION_MAJOR}_${PROJECT_VERSION_MINOR}")
|
||||
if (${PROJ_NAME}_NAMESPACE_INCLUDE_PATCH)
|
||||
set (PROJ_NAMESPACE_V "${PROJ_NAMESPACE_V}_${PROJECT_VERSION_PATCH}")
|
||||
endif ()
|
||||
message(STATUS "Setting Namespace to: ${PROJ_NAMESPACE_V}")
|
||||
|
||||
|
||||
list (APPEND CMAKE_MODULE_PATH
|
||||
"${PROJECT_SOURCE_DIR}/src/cmake/modules"
|
||||
"${PROJECT_SOURCE_DIR}/src/cmake")
|
||||
|
||||
# Helpful functions and macros for our project
|
||||
include (colors)
|
||||
include (check_is_enabled)
|
||||
include (checked_find_package)
|
||||
|
||||
# All the C++ and compiler related options and adjustments
|
||||
include (compiler)
|
||||
|
||||
# Utilities and options related to finding python and making python bindings
|
||||
include (pythonutils)
|
||||
|
||||
include (externalpackages)
|
||||
include (flexbison)
|
||||
include (cuda_macros)
|
||||
include (llvm_macros)
|
||||
|
||||
# Include all our testing apparatus and utils, but not if it's a subproject
|
||||
if (${PROJECT_NAME}_BUILD_TESTS AND PROJECT_IS_TOP_LEVEL)
|
||||
include (testing)
|
||||
endif ()
|
||||
|
||||
|
||||
|
||||
include_directories (
|
||||
BEFORE
|
||||
"${OSL_LOCAL_DEPS_DIR}/include"
|
||||
"${CMAKE_SOURCE_DIR}/src/include"
|
||||
"${CMAKE_BINARY_DIR}/src/include"
|
||||
"${CMAKE_BINARY_DIR}/include"
|
||||
)
|
||||
|
||||
|
||||
# Make sure our math calculations are consistent,
|
||||
# especially division. Different compilers may have choose to use
|
||||
# reciprocal division losing precision causing slightly different
|
||||
# results which can lead to aliasing differences when running the testsuite
|
||||
# Disable reciprocal division
|
||||
if (CMAKE_COMPILER_IS_INTEL)
|
||||
if (MSVC)
|
||||
add_compile_options("/Qprec-div")
|
||||
else ()
|
||||
add_compile_options("-prec-div")
|
||||
endif ()
|
||||
elseif (CMAKE_COMPILER_IS_CLANG OR CMAKE_COMPILER_IS_APPLECLANG OR CMAKE_COMPILER_IS_INTELCLANG)
|
||||
add_compile_options("-fno-reciprocal-math")
|
||||
endif ()
|
||||
|
||||
# Tell CMake to process the sub-directories
|
||||
add_subdirectory (src/include)
|
||||
add_subdirectory (src/liboslcomp)
|
||||
add_subdirectory (src/liboslquery)
|
||||
add_subdirectory (src/liboslexec)
|
||||
add_subdirectory (src/liboslnoise)
|
||||
add_subdirectory (src/oslc)
|
||||
add_subdirectory (src/oslinfo)
|
||||
|
||||
if (OSL_BUILD_TESTS)
|
||||
add_subdirectory (src/testshade)
|
||||
add_subdirectory (src/testrender)
|
||||
endif ()
|
||||
|
||||
if (OSL_BUILD_PLUGINS)
|
||||
add_subdirectory (src/osl.imageio)
|
||||
endif ()
|
||||
|
||||
if (USE_QT AND Qt5_FOUND)
|
||||
add_subdirectory (src/osltoy)
|
||||
endif ()
|
||||
|
||||
if (OSL_BUILD_SHADERS)
|
||||
add_subdirectory (src/shaders)
|
||||
endif ()
|
||||
|
||||
option (INSTALL_DOCS "Install documentation" ON)
|
||||
if (INSTALL_DOCS)
|
||||
add_subdirectory (src/doc)
|
||||
endif ()
|
||||
|
||||
# Last minute site-specific instructions, if they exist
|
||||
if (OSL_SITE AND EXISTS "${PROJECT_SOURCE_DIR}/site/${OSL_SITE}/cmake/sitecustom.cmake")
|
||||
include ("${PROJECT_SOURCE_DIR}/site/${OSL_SITE}/cmake/sitecustom.cmake")
|
||||
endif ()
|
||||
|
||||
# install pkgconfig files
|
||||
if ( NOT MSVC )
|
||||
configure_file(src/build-scripts/oslexec.pc.in "${CMAKE_BINARY_DIR}/oslexec.pc" @ONLY)
|
||||
configure_file(src/build-scripts/oslcomp.pc.in "${CMAKE_BINARY_DIR}/oslcomp.pc" @ONLY)
|
||||
configure_file(src/build-scripts/oslquery.pc.in "${CMAKE_BINARY_DIR}/oslquery.pc" @ONLY)
|
||||
install (FILES "${CMAKE_BINARY_DIR}/oslexec.pc"
|
||||
"${CMAKE_BINARY_DIR}/oslcomp.pc"
|
||||
"${CMAKE_BINARY_DIR}/oslquery.pc"
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||
COMPONENT developer)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
#########################################################################
|
||||
# Export the configuration files. There are also library-specific config
|
||||
# exports in the CMakeLists.txt of libOpenImageIO.
|
||||
include (CMakePackageConfigHelpers)
|
||||
|
||||
# the file containing the exported targets
|
||||
set (OSL_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets.cmake")
|
||||
# the version file
|
||||
set (OSL_VERSION_CONFIG "${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
|
||||
# the config file that is actually looked for by find_package
|
||||
set (OSL_PROJECT_CONFIG "${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake")
|
||||
# where all these files will be installed
|
||||
set (OSL_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
|
||||
|
||||
# first generate the version file in the binary dir
|
||||
write_basic_package_version_file (
|
||||
${OSL_VERSION_CONFIG}
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
# generate the Targets file in the binary dir using the targets collected in
|
||||
# OSL_EXPORTED_TARGETS each target is added to OSL_EXPORTED_TARGETS through
|
||||
# the macro install_target().
|
||||
export (EXPORT OSL_EXPORTED_TARGETS FILE "${CMAKE_BINARY_DIR}/${OSL_TARGETS_EXPORT_NAME}")
|
||||
|
||||
# generate the config file from the template in the binary dir
|
||||
configure_package_config_file ("${PROJECT_SOURCE_DIR}/src/cmake/Config.cmake.in"
|
||||
"${OSL_PROJECT_CONFIG}"
|
||||
INSTALL_DESTINATION "${OSL_CONFIG_INSTALL_DIR}")
|
||||
|
||||
# generate the config file from the template in the binary dir
|
||||
install (FILES "${OSL_PROJECT_CONFIG}" "${OSL_VERSION_CONFIG}"
|
||||
DESTINATION "${OSL_CONFIG_INSTALL_DIR}")
|
||||
|
||||
# install targets files
|
||||
install (EXPORT OSL_EXPORTED_TARGETS
|
||||
DESTINATION ${OSL_CONFIG_INSTALL_DIR}
|
||||
FILE ${OSL_TARGETS_EXPORT_NAME}
|
||||
NAMESPACE ${PROJECT_NAME}::)
|
||||
|
||||
if (${PROJECT_NAME}_BUILD_TESTS AND PROJECT_IS_TOP_LEVEL)
|
||||
osl_add_all_tests()
|
||||
endif ()
|
||||
|
||||
if (PROJECT_IS_TOP_LEVEL)
|
||||
include (packaging)
|
||||
endif ()
|
||||
@@ -1,8 +0,0 @@
|
||||
# Code of Conduct
|
||||
|
||||
The Open Shading Language project abides by Linux Foundation's code of
|
||||
conduct, which you can read in full
|
||||
[here](https://lfprojects.org/policies/code-of-conduct).
|
||||
|
||||
To report incidents or to appeal reports of incidents, send email to
|
||||
the Manager of LF Projects at manager@lfprojects.org.
|
||||
@@ -1,358 +0,0 @@
|
||||
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
|
||||
<!-- Copyright Contributors to the Open Shading Language Project. -->
|
||||
|
||||
|
||||
Contributing to OSL
|
||||
===========================
|
||||
|
||||
Code contributions to OSL are always welcome. That's a big part of
|
||||
why it's an open source project. Please review this document to get a
|
||||
briefing on our process.
|
||||
|
||||
|
||||
Mail List and Slack
|
||||
-------------------
|
||||
|
||||
Contributors should be reading the osl-dev mail list:
|
||||
|
||||
* [osl-dev](https://lists.aswf.io/g/osl-dev)
|
||||
|
||||
You can sign up for the mail list on your own using the link above.
|
||||
|
||||
We also have an `openshadinglanguage` channel on the
|
||||
[ASWF Slack](https://slack.aswf.io/). But note that the Slack channel is
|
||||
not archived, so while it's ok for fleeting comments, it is unreliable as
|
||||
a permanent repository of useful information. Serious discussions that are
|
||||
we would want to refer to over time should be sent to the mail list instead.
|
||||
|
||||
|
||||
Bug Reports and Issue Tracking
|
||||
------------------------------
|
||||
|
||||
We use GitHub's issue tracking system for reporting bugs and requesting
|
||||
enhancements:
|
||||
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues
|
||||
|
||||
**If you are merely asking a question ("how do I...")**, please do not file an
|
||||
issue, but instead ask the question on the [OSL developer mail
|
||||
list](https://lists.aswf.io/g/osl-dev).
|
||||
|
||||
If you are submitting a bug report, please be sure to note which version of
|
||||
OSL you are using, on what platform (OS/version, which compiler you used,
|
||||
and any special build flags or other unusual environmental issues). Please
|
||||
give an account of
|
||||
|
||||
* what you tried
|
||||
* what happened
|
||||
* what you expected to happen instead
|
||||
|
||||
with enough detail that others can reproduce the problem.
|
||||
|
||||
|
||||
Contributor License Agreement (CLA) and Intellectual Property
|
||||
-------------------------------------------------------------
|
||||
|
||||
To protect the project -- and the contributors! -- we do require a
|
||||
Contributor License Agreement (CLA) for anybody submitting changes.
|
||||
|
||||
* [Corporate CLA](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/ASWF/OSL-CLA-corporate.md)
|
||||
If you are writing the code as part of your job, or if there is any
|
||||
possibility that your employers might think they own any intellectual
|
||||
property you create. This needs to be executed by someone who has
|
||||
signatory power for the company.
|
||||
|
||||
* [Individual]((https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/ASWF/OSL-CLA-individual.md)).
|
||||
If you are an individual writing the code on your own time and you're SURE
|
||||
you are the sole owner of any intellectual property you contribute.
|
||||
|
||||
The easiest way to sign CLAs is digitally [using EasyCLA](https://corporate.v1.easycla.lfx.linuxfoundation.org).
|
||||
Companies who prefer not to use the online tools may sign, scan, and email
|
||||
the executed copy to manager@lfprojects.org.
|
||||
|
||||
The CLA allows a company to name a "CLA Manager" (who does not need
|
||||
signatory power) who has the ability to use the online system to add or
|
||||
delete individual employees of the company who are authorized to submit pull
|
||||
requests, without needing to get an executive to amend and sign the
|
||||
agreement each time.
|
||||
|
||||
Please note that these CLAs are based on the Apache 2.0 CLAs, and differ
|
||||
minimally, only as much as was required to correctly describe the EasyCLA
|
||||
process and our use of a CLA manager.
|
||||
|
||||
|
||||
** Contribution sign off
|
||||
|
||||
ASWF requires the use of the [Developer’s Certificate of Origin 1.1
|
||||
(DCO)](https://developercertificate.org/), which is the same mechanism that
|
||||
the [Linux®
|
||||
Kernel](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst#n416)
|
||||
and many other communities use to manage code contributions. The DCO is
|
||||
considered one of the simplest tools for sign offs from contributors as the
|
||||
representations are meant to be easy to read and indicating signoff is done
|
||||
as a part of the commit message.
|
||||
|
||||
Here is an example Signed-off-by line, which indicates that the submitter
|
||||
accepts the DCO:
|
||||
|
||||
`Signed-off-by: John Doe <john.doe@example.com>`
|
||||
|
||||
You can include this automatically when you commit a change to your local
|
||||
git repository using <code>git commit -s</code>. You might also want to
|
||||
leverage this [command line tool](https://github.com/coderanger/dco) for
|
||||
automatically adding the signoff message on commits.
|
||||
|
||||
|
||||
Pull Requests and Code Review
|
||||
-----------------------------
|
||||
|
||||
The best way to submit changes is via GitHub Pull Request. GitHub has a
|
||||
[Pull Request Howto](https://help.github.com/articles/using-pull-requests/).
|
||||
|
||||
All code must be formally reviewed before being merged into the official
|
||||
repository. The protocol is like this:
|
||||
|
||||
1. Get a GitHub account, fork AcademySoftwareFoundation/OpenShadingLanguage to create your
|
||||
own repository on GitHub, and then clone it to get a repository on your
|
||||
local machine.
|
||||
|
||||
2. Edit, compile, and test your changes.
|
||||
|
||||
3. Push your changes to your fork (each unrelated pull request to a separate
|
||||
"topic branch", please).
|
||||
|
||||
4. Make a "pull request" on GitHub for your patch.
|
||||
|
||||
5. If your patch will induce a major compatibility break, or has a design
|
||||
component that deserves extended discussion or debate among the wider OSL
|
||||
community, then it may be prudent to email osl-dev pointing everybody to
|
||||
the pull request URL and discussing any issues you think are important.
|
||||
|
||||
6. The reviewer will look over the code and critique on the "comments" area,
|
||||
or discuss in email. Reviewers may ask for changes, explain problems they
|
||||
found, congratulate the author on a clever solution, etc. But until somebody
|
||||
says "LGTM" (looks good to me), the code should not be committed. Sometimes
|
||||
this takes a few rounds of give and take. Please don't take it hard if your
|
||||
first try is not accepted. It happens to all of us.
|
||||
|
||||
7. After approval, one of the senior developers (with commit approval to the
|
||||
official main repository) will merge your fixes into the master branch.
|
||||
|
||||
|
||||
Coding Style
|
||||
------------
|
||||
|
||||
There are two overarching rules:
|
||||
|
||||
1. When making changes, conform to the style and conventions of the surrounding code.
|
||||
|
||||
2. Strive for clarity, even if that means occasionally breaking the
|
||||
guidelines. Use your head and ask for advice if your common sense seems to
|
||||
disagree with the conventions.
|
||||
|
||||
Below we try to enumerate the guidelines embodied in the code.
|
||||
|
||||
#### File conventions
|
||||
|
||||
C++ implementation should be named `*.cpp`. Headers should be named `.h`.
|
||||
All headers should contain
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
All source files should begin with the copyright and license, which can be
|
||||
found in the [LICENSE](LICENSE) file (or cut and pasted from any other other source
|
||||
file). Two notes on this:
|
||||
|
||||
* For NEW source files, please change the copyright year to the present. DO
|
||||
NOT edit existing files only to update the copyright year, it just creates
|
||||
pointless deltas and offers no increased protection.
|
||||
|
||||
* Occasionally a file contains substantial code from another project
|
||||
and will also list its copyright. Do NOT copy that notice to any new files,
|
||||
it really only applies to the particular file in which it appears.
|
||||
|
||||
#### Formatting
|
||||
|
||||
We use clang-format to enforce formatting rules for the vast majority of the
|
||||
code base. It is automatically run during CI and is a CI failure if the code
|
||||
does not conform. There are, however, parts of the code base that are not
|
||||
clang-formatted, either because we have not yet put them under the
|
||||
clang-format regime, or because individual modules were deemed to be less
|
||||
clear with clang-format than with hand formatting.
|
||||
|
||||
For non-clang-format regions of code, NEVER alter somebody else's code to
|
||||
reformat just because you found something that violates the rules. Let the
|
||||
group/author/leader know, and resist the temptation to change it yourself.
|
||||
|
||||
Each line of text in your code should be at most 80 characters long.
|
||||
Exceptions are allowed for those rare cases where letting a line be longer
|
||||
(and wrapping on an 80-character window) is actually a better and clearer
|
||||
alternative than trying to split it into two lines. Sometimes this happens,
|
||||
but it's extremely rare.
|
||||
|
||||
Indent 4 spaces at a time, and use actual spaces, not tabs. For files that
|
||||
must use tabs for some reason, tabs should always be on 8's. Most editors
|
||||
have a setting that forces indentations to be spaces. With emacs, you can do
|
||||
this:
|
||||
|
||||
(setq c-default-style "bsd")
|
||||
(setq-default indent-tabs-mode nil)
|
||||
|
||||
Opening brace on the same line as the condition or loop.
|
||||
|
||||
One statement per line, except in rare cases where violating this rule makes
|
||||
the code more clear.
|
||||
|
||||
Three (3) consecutive empty lines between function or class method
|
||||
implementations, one blank line between method declarations within a class
|
||||
definition. Put a single blank line within a function if it helps to
|
||||
visually separate different sequential tasks. Don't put multiple blank lines
|
||||
in a row within a function, or blank lines right after an opening brace or
|
||||
right before a closing brace. The goal is to use just enough white space to
|
||||
help developers visually parse the code (for example, spotting at a glance
|
||||
where new functions begin), but not so much as to spread it out or be
|
||||
confusing.
|
||||
|
||||
For if, for, while, etc., put a space before the paren, but NOT inside the parens. For example:
|
||||
|
||||
if (foo) // Yes
|
||||
|
||||
if(foo) // No
|
||||
if ( foo ) // No
|
||||
|
||||
Function calls should have a space between the function name and the opening
|
||||
parenthesis, NO space inside the parenthesis, except for a single blank
|
||||
space between each argument. For example:
|
||||
|
||||
x = foo(a, b); // Yes
|
||||
|
||||
x = foo ( a, b ); // No
|
||||
x = foo (a,b); // No
|
||||
|
||||
Function declarations: function names should begin at column 0 for a full
|
||||
function definition. (It's ok to violate this rule for very short inline
|
||||
functions within class definitions.)
|
||||
|
||||
|
||||
Here is a short code fragment that shows some of these rules in action:
|
||||
|
||||
static int
|
||||
function(int a, int b)
|
||||
{
|
||||
int x = a + b;
|
||||
if (a == 0 || b == 0) {
|
||||
x += 1;
|
||||
x *= 4;
|
||||
} else {
|
||||
x -= 3;
|
||||
}
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
x += a * i;
|
||||
x *= foo(i); // function call
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
Don't ever reformat, re-indent, change whitespace, or make any other such
|
||||
changes to working code. If you're adding just a few lines or fixing a bug
|
||||
in existing code, stick to the style of the surrounding code. In very rare
|
||||
circumstances, and with consensus of the group, reformatting is sometimes
|
||||
helpful to improve code readability, but it should be done as a separate
|
||||
formatting-only checkin.
|
||||
|
||||
#### Identifiers
|
||||
|
||||
In general, classes and templates should start with upper case and capitalize new words:
|
||||
|
||||
class CustomerList;
|
||||
|
||||
In general, local variables should start with lower case.
|
||||
|
||||
If your class is extremely similar to, or modeled after, something in the
|
||||
standard library, Boost, or something else we interoperate with, it's ok to
|
||||
use their naming conventions. For example, very general utility classes and
|
||||
templates (the kind of thing you would normally find in std or boost) should
|
||||
be lower case with underscores separating words, as they would be if they
|
||||
were standards.
|
||||
|
||||
template <class T> shared_ptr;
|
||||
class scoped_mutex;
|
||||
|
||||
Macros should be ALL_CAPS, if used at all.
|
||||
|
||||
Names of data should generally be nouns. Functions/methods are trickier: a
|
||||
the name of a function that returns a value but has no side effects should
|
||||
be a noun, but a procedure that performs an action should be a verb.
|
||||
|
||||
#### Class structure
|
||||
|
||||
Try to avoid public data members, although there are some classes that serve
|
||||
a role similar to a simple C struct -- a very straightforward collection of
|
||||
data members. In these, it's fine to make the data members public and have
|
||||
clients set and get them directly.
|
||||
|
||||
Private member data should be named m_foo (alternately, it's ok to use the
|
||||
common practice of member data foo_, but don't mix the conventions within a
|
||||
class).
|
||||
|
||||
Private member data that needs public accessors should use the convention:
|
||||
|
||||
void foo (const T& newfoo) { m_foo = newfoo; }
|
||||
const T& foo () const { return m_foo; }
|
||||
|
||||
Avoid multiple inheritance.
|
||||
|
||||
Namespaces: yes, use them!
|
||||
|
||||
#### Third-party libraries
|
||||
|
||||
Prefer C++11 `std` rather than Boost or other third party libraries, where
|
||||
both can do the same task.
|
||||
|
||||
If you see a third party library already used as a dependency (such as OIIO,
|
||||
Boost, Ilmbase, or LLVM), feel free to any of its public features in OSL
|
||||
internals (provided those features are present in the minimum version of
|
||||
that library that we support).
|
||||
|
||||
Please do not add any NEW dependencies without debate on osl-dev and
|
||||
approval of the project leader.
|
||||
|
||||
Use these libraries for OSL internals, but please DO NOT let them infect any
|
||||
of our public APIs unless it's been thoroughly discussed and approved by the
|
||||
group. (Exceptions: it's ok to use OIIO and Imath classes in our public
|
||||
APIs.)
|
||||
|
||||
#### Comments and Doxygen
|
||||
|
||||
Comment philosophy: try to be clear, try to help teach the reader what's
|
||||
going on in your code.
|
||||
|
||||
Prefer C++ comments (starting line with `//`) rather than C comments (`/* ... */`).
|
||||
|
||||
For any function that may be used by other programmers (e.g., public or
|
||||
protected members of classes), please use Doxygen-style comments. They looks
|
||||
like this:
|
||||
|
||||
/// Explanation of a class. Note THREE slashes!
|
||||
/// Also, you need at least two lines like this. If you don't have enough
|
||||
/// for two lines, make one line blank like this:
|
||||
///
|
||||
class myclass {
|
||||
....
|
||||
float foo; ///< Doxygen comments on same line look like this
|
||||
}
|
||||
|
||||
If you know Doxygen well, please feel free to use the various other markups.
|
||||
But don't go so crazy with Doxygen markups that the comment itself, in an
|
||||
ordinary editor, is not as readable as possible. The Doxygen-generated pages
|
||||
are nice, but the place that needs to be most readable is in the code.
|
||||
|
||||
#### Miscellaneous
|
||||
|
||||
Macros should be used only rarely -- prefer inline functions, templates,
|
||||
enums, or "const" values wherever possible.
|
||||
|
||||
#### Bottom Line
|
||||
|
||||
When in doubt, look elsewhere in the code base for examples of similar
|
||||
structures and try to format your code in the same manner.
|
||||
@@ -1,210 +0,0 @@
|
||||
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
|
||||
<!-- Copyright Contributors to the Open Shading Language Project. -->
|
||||
|
||||
# OSL Project Governance
|
||||
|
||||
OSL is a project of the Academy Software Foundation and relies on the ASWF
|
||||
governance policies, supported by the Linux Foundation.
|
||||
|
||||
There are three primary project roles: Contributors submit code to the
|
||||
project; Committers approve code to be included into the project; and the
|
||||
Technical Steering Committee (TSC) provides overall high-level project
|
||||
guidance.
|
||||
|
||||
* [Contributors](#Contributors)
|
||||
* [Committers](#Committers)
|
||||
* [Technical Steering Committee](#Technical-Steering-Committee)
|
||||
|
||||
## Contributors
|
||||
|
||||
The OSL project grows and thrives from assistance from Contributors.
|
||||
Contributors include anyone in the community who contributes code,
|
||||
documentation, or other technical artifacts that have been incorporated into
|
||||
the projects repository.
|
||||
|
||||
Anyone can be a Contributor. You need no formal approval from the project,
|
||||
beyond the legal forms.
|
||||
|
||||
### How to Become a Contributor
|
||||
|
||||
* Review the coding standards to ensure your contribution is in line
|
||||
with the project's coding and styling guidelines.
|
||||
|
||||
* Sign the Individual CLA, or if you are employed by an organization that
|
||||
might have any claim to IP you create, have your organization sign the
|
||||
Corporate CLA.
|
||||
|
||||
* Submit your code as a PR with the appropriate DCO sign-off.
|
||||
|
||||
## Committers
|
||||
|
||||
Project Committers have merge access on the OSL GitHub repository
|
||||
and are responsible for approving submissions by Contributors.
|
||||
|
||||
### Committer Responsibilities
|
||||
|
||||
Typical activities of a Committer include:
|
||||
|
||||
* Helping users and novice contributors.
|
||||
|
||||
* Ensuring a response to questions posted to the
|
||||
[osl-dev developer mail list](https://lists.aswf.io/g/osl-dev)
|
||||
|
||||
* Contributing code and documentation changes that improve the project.
|
||||
|
||||
* Reviewing and commenting on issues and pull requests.
|
||||
|
||||
* Ensuring that changes and new code meet acceptable standards and are in
|
||||
the long-term interest of the project.
|
||||
|
||||
* Participation in working groups.
|
||||
|
||||
* Merging pull requests.
|
||||
|
||||
### How to Become a Committer
|
||||
|
||||
Any member of the OSL community (though typically an existing Committer or
|
||||
TSC member) may nominate an individual making significant and valuable
|
||||
contributions to the OSL project to become a new Committer. To nominate a
|
||||
new Committer, open an issue in the OSL repository, send mail to the TSC
|
||||
mail list, or raise the issue at a TSC meeting.
|
||||
|
||||
The TSC may periodically review the Committer list to identify inactive
|
||||
Committers. Past Committers are typically given Emeritus status. Emeriti may
|
||||
request that the TSC restore them to active Committer status.
|
||||
|
||||
## Technical Steering Committee
|
||||
|
||||
The Technical Steering Committee (TSC) has final authority over this
|
||||
project. As defined in the project charter, TSC responsibilities include,
|
||||
but are not limited to:
|
||||
|
||||
* Coordinating technical direction of the Project.
|
||||
|
||||
* Project governance and contribution policy.
|
||||
|
||||
* GitHub repository administration.
|
||||
|
||||
* Maintaining the list of additional Committers
|
||||
|
||||
* Appointing representatives to work with other open source or open
|
||||
standards communities.
|
||||
|
||||
* Discussions, seeking consensus, and where necessary, voting on technical
|
||||
matters relating to the code base that affect multiple projects.
|
||||
|
||||
* Coordinating any marketing, events, or communications regarding the
|
||||
project.
|
||||
|
||||
Within the TSC are two elected leadership roles to be held by its members
|
||||
and voted on annually. Any TSC member can express interest in serving in a
|
||||
role, or nominate another member to serve. There are no term limits, and one
|
||||
person may hold multiple roles simultaneously. Should a TSC member resign
|
||||
from a leadership role before their term is complete, a successor shall be
|
||||
elected through the standard nomination and voting process to complete the
|
||||
remainder of the term. The leadership roles are:
|
||||
|
||||
* **Chair**: This position acts as the project manager, organizing meetings
|
||||
and providing oversight to project administration.
|
||||
|
||||
* **Chief Architect**: This position makes all the final calls on design and
|
||||
technical decisions, and is responsible for avoiding "design by committee"
|
||||
pitfalls.
|
||||
|
||||
The chair role is assumed to rotate annually (though there are no term
|
||||
limits, so the TSC may reelect an existing chair). The chief architect
|
||||
position should be a source of stability and coherent design vision, so the
|
||||
TSC is encouraged to choose an architect who can serve for many years and
|
||||
only change architects when it is necessary for the health of the project
|
||||
and its community.
|
||||
|
||||
At the time of election, the TSC will also agree upon which of these two
|
||||
leaders will serve as the OSL ASWF (Academy Software Foundation) TAC
|
||||
(Technical Advisory Council) representative for the term. This member
|
||||
represents the project at all ASWF TAC meetings.
|
||||
|
||||
### TSC Members
|
||||
|
||||
Current voting members of the TSC are:
|
||||
|
||||
* **Chair and TAC representative**: Chris Kulla - Epic Games
|
||||
* **Chief Architect**: Larry Gritz - Sony Pictures Imageworks
|
||||
|
||||
* Luke Emrose - Animal Logic
|
||||
* Eric Enderton - NVIDIA
|
||||
* Stephen Friedman - Pixar
|
||||
* Nicolas Guiard - Isotropix
|
||||
* Clint Hanson - DNEG
|
||||
* Adrien Herubel - Autodesk
|
||||
* Lee Kerley - Sony Pictures Imageworks
|
||||
* Mitch Prater - Laika
|
||||
* Brecht Van Lommel - Blender
|
||||
* Alex Wells - Intel
|
||||
|
||||
### TSC Nomination and Succession
|
||||
|
||||
Any proposal for additional members of the TSC may be submitted by
|
||||
Committers, TSC members, or other major stakeholders of the OSL community by
|
||||
opening an issue outlining their case or raising the issue at a TSC meeting.
|
||||
New TSC members are accepted or rejected by majority vote of the TSC.
|
||||
|
||||
If a TSC member is for an extended period not regularly participating or
|
||||
performing the responsibilities expected of TSC members, the TSC may by
|
||||
majority vote request an alternate TSC member be submitted by that
|
||||
organization, or remove the inactive member from the TSC.
|
||||
|
||||
A voting member of the TSC may nominate a successor in the event that such
|
||||
voting member decides to leave the TSC, and the TSC, including the departing
|
||||
member, shall confirm or reject such nomination by a vote. In the event that
|
||||
the departing member's nomination for successor is rejected by vote of the
|
||||
TSC, the departing member shall be entitled to continue nominating
|
||||
successors until one such successor is confirmed by vote of the TSC. If the
|
||||
departing member fails or is unable to nominate a successor, the TSC may
|
||||
nominate one on the departing member's behalf.
|
||||
|
||||
TSC membership is presumed to be retained by the individual even if they
|
||||
change employers. The TSC may take action to ensure that organizational
|
||||
stakeholder representation not become severely disproportionate, for example
|
||||
by urging an organization that loses its sole TSC representative to nominate
|
||||
a new member, or to limit the total number of voting members from any one
|
||||
organization if too many members all move to the same organization.
|
||||
|
||||
### TSC Meetings
|
||||
|
||||
Any meetings of the TSC are intended to be open to the public, except where
|
||||
there is a reasonable need for privacy. The TSC meets regularly in a voice
|
||||
conference call, at a cadence deemed appropriate by the TSC. The TSC Chair
|
||||
moderates the meeting, or appoints another TSC member to moderate in his or
|
||||
her absence. Meetings may also be streamed online where appropriate;
|
||||
connection details will be posted to the osl-dev mail list in advance of the
|
||||
scheduled meeting.
|
||||
|
||||
Items are added to the TSC agenda which are considered contentious or are
|
||||
modifications of governance, contribution policy, TSC membership, or release
|
||||
process, in addition to topics involving the high-level technical direction
|
||||
of the project.
|
||||
|
||||
The intention of the agenda is not to approve or review all patches. That
|
||||
should happen continuously on GitHub and be handled by the larger group of
|
||||
Committers.
|
||||
|
||||
Any community member or Contributor can ask that something be reviewed by
|
||||
the TSC at the meeting by logging a GitHub issue. Any Committer, TSC member,
|
||||
or the meeting chair can bring the issue to the TSC's attention by applying
|
||||
the `TSC` label.
|
||||
|
||||
Prior to each TSC meeting, the meeting chair will share the agenda with
|
||||
members of the TSC. TSC members can also add items to the agenda at the
|
||||
beginning of each meeting. The meeting chair and the TSC cannot veto or
|
||||
remove items.
|
||||
|
||||
The TSC may invite additional persons to participate in a non-voting
|
||||
capacity.
|
||||
|
||||
The meeting chair is responsible for ensuring that minutes are taken and
|
||||
archived in the project repository.
|
||||
|
||||
Due to the challenges of scheduling a global meeting with participants in
|
||||
several time zones, the TSC will seek to resolve as many agenda items as
|
||||
possible outside of meetings on the public mailing list.
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
|
||||
<!-- Copyright Contributors to the Open Shading Language Project. -->
|
||||
|
||||
Building OSL
|
||||
============
|
||||
|
||||
OSL currently compiles and runs cleanly on Linux, Mac OS X, and Windows.
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
OSL requires the following dependencies or tools.
|
||||
NEW or CHANGED dependencies since the last major release are **bold**.
|
||||
|
||||
* Build system: [CMake](https://cmake.org/) 3.12 or newer (tested through 3.24)
|
||||
|
||||
* A suitable C++14 or C++17 compiler to build OSL itself, which may be any of:
|
||||
- GCC 6.1 or newer (tested through gcc 12.1)
|
||||
- Clang 3.4 or newer (tested through clang 15)
|
||||
- Microsoft Visual Studio 2017 or newer
|
||||
- Intel C++ compiler icc version 17 or newer or LLVM-based icx compiler
|
||||
version 2022 or newer.
|
||||
|
||||
* **[OpenImageIO](http://openimageio.org) 2.3 or newer** (tested through 2.4)
|
||||
|
||||
OSL uses OIIO both for its texture mapping functionality as well as
|
||||
numerous utility classes. If you are integrating OSL into an existing
|
||||
renderer, you may use your own favorite texturing system rather than
|
||||
OpenImageIO with a little minor surgery. There are only a few places
|
||||
where OIIO texturing calls are made, and they could easily be bypassed.
|
||||
But it is probably not possible to remove OIIO completely as a
|
||||
dependency, since we so heavily rely on a number of other utility classes
|
||||
that it provides (for which there was no point reinventing redundantly
|
||||
for OSL).
|
||||
|
||||
After building OpenImageIO, if you don't have it installed in a
|
||||
"standard" place (like /usr/include), you should set the environment
|
||||
variable $OpenImageIO_ROOT to point to the compiled distribution, and
|
||||
then OSL's build scripts will be able to find it. You should also have
|
||||
$OpenImageIO_ROOT/lib to be in your LD_LIBRARY_PATH (or
|
||||
DYLD_LIBRARY_PATH on OS X).
|
||||
|
||||
* [LLVM](http://www.llvm.org) 9, 10, 11, 12, 13, 14, or 15, including
|
||||
clang libraries.
|
||||
|
||||
* (optional) For GPU rendering on NVIDIA GPUs:
|
||||
* [OptiX](https://developer.nvidia.com/rtx/ray-tracing/optix) 7.0 or higher.
|
||||
* [Cuda](https://developer.nvidia.com/cuda-downloads) 8.0 or higher.
|
||||
|
||||
* [Boost](https://www.boost.org) 1.55 or newer (tested through boost 1.80)
|
||||
* [Ilmbase or Imath](https://github.com/AcademySoftwareFoundation/openexr) 2.3
|
||||
or newer (recommended: 2.4 or higher; tested through 3.1)
|
||||
* [Flex](https://github.com/westes/flex) 2.5.35 or newer and
|
||||
[GNU Bison](https://www.gnu.org/software/bison/) 2.7 or newer.
|
||||
Note that on some MacOS/xcode releases, the system-installed Bison is too
|
||||
old, and it's better to install a newer Bison (via Homebrew is one way to
|
||||
do this easily).
|
||||
* [PugiXML](http://pugixml.org/)
|
||||
* (optional) [Partio](https://www.disneyanimation.com/technology/partio.html)
|
||||
If it is not found at build time, the OSL `pointcloud` functions will not
|
||||
be operative.
|
||||
* (optional) Python: If you are building the Python bindings or running the
|
||||
testsuite:
|
||||
* Python >= 2.7 (tested against 2.7, 3.7, 3.8, 3.9, 3.10)
|
||||
* pybind11 >= 2.4.2 (Tested through 2.10)
|
||||
* NumPy
|
||||
* (optional) Qt >= 5.6 (tested through 5.15). If not found at build time,
|
||||
the `osltoy` application will be disabled.
|
||||
|
||||
|
||||
|
||||
Build process
|
||||
-------------
|
||||
|
||||
Here are the steps to check out, build, and test the OSL distribution:
|
||||
|
||||
1. Install and build dependencies.
|
||||
|
||||
2. Check out a copy of the source code from the Git repository:
|
||||
|
||||
git clone https://github.com/AcademySoftwareFoundation/OpenShadingLanguage.git osl
|
||||
|
||||
3. Change to the distribution directory and 'make'
|
||||
|
||||
cd osl
|
||||
make
|
||||
|
||||
Note: OSL uses 'CMake' for its cross-platform build system. But for
|
||||
simplicity, we have made a "make wrapper" around it, so that by just
|
||||
typing 'make' everything will build. Type 'make help' for other
|
||||
options, and note that 'make nuke' will blow everything away for the
|
||||
freshest possible compile.
|
||||
|
||||
NOTE: If the build breaks due to compiler warnings which have been
|
||||
elevated to errors, you can try "make clean" followed by
|
||||
"make STOP_ON_WARNING=0", that create a build that will only stop for
|
||||
full errors, not warnings.
|
||||
|
||||
4. After compilation, you'll end up with a full OSL distribution in
|
||||
dist/
|
||||
|
||||
5. Add the "dist/bin" to your $PATH, and "dist/lib" to your
|
||||
$LD_LIBRAY_PATH (or $DYLD_LIBRARY_PATH on MacOS), or copy the contents
|
||||
of those files to appropriate directories. Public include files
|
||||
(those needed when building applications that incorporate OSL)
|
||||
can be found in "dist/include", and documentation can be found
|
||||
in "dist/share/doc".
|
||||
|
||||
6. After building (and setting your library path), you can run the
|
||||
test suite with:
|
||||
|
||||
make test
|
||||
|
||||
Troubleshooting
|
||||
----------------
|
||||
|
||||
- [Build issues on macOS Catalina (fatal error: 'wchar.h' file not found)](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues/1055#issuecomment-581920327)
|
||||
@@ -1,27 +0,0 @@
|
||||
Copyright (c) 2009-present Contributors to the Open Shading Language project.
|
||||
All Rights Reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -1,409 +0,0 @@
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
#########################################################################
|
||||
#
|
||||
# This is the master makefile.
|
||||
# Here we put all the top-level make targets, platform-independent
|
||||
# rules, etc. This is just a fancy wrapper around cmake, but for many
|
||||
# people, it's a lot simpler to just type "make" and have everything
|
||||
# happen automatically.
|
||||
#
|
||||
# Run 'make help' to list helpful targets.
|
||||
#
|
||||
#########################################################################
|
||||
|
||||
|
||||
.PHONY: all debug profile clean realclean nuke
|
||||
|
||||
working_dir := ${shell pwd}
|
||||
|
||||
# Figure out which architecture we're on
|
||||
include ${working_dir}/src/make/detectplatform.mk
|
||||
|
||||
MY_MAKE_FLAGS ?=
|
||||
MY_NINJA_FLAGS ?=
|
||||
MY_CMAKE_FLAGS ?=
|
||||
BUILDSENTINEL ?= Makefile
|
||||
NINJA ?= ninja
|
||||
CMAKE ?= cmake
|
||||
CMAKE_BUILD_TYPE ?= Release
|
||||
|
||||
# Site-specific build instructions
|
||||
OSL_SITE ?= ${shell uname -n}
|
||||
ifneq (${shell echo ${OSL_SITE} | grep imageworks.com},)
|
||||
include ${working_dir}/site/spi/Makefile-bits
|
||||
endif
|
||||
|
||||
# Set up variables holding the names of platform-dependent directories --
|
||||
# set these after evaluating site-specific instructions
|
||||
build_dir ?= build
|
||||
dist_dir ?= dist
|
||||
|
||||
INSTALL_PREFIX ?= ${working_dir}/${dist_dir}
|
||||
|
||||
VERBOSE ?= ${SHOWCOMMANDS}
|
||||
ifneq (${VERBOSE},)
|
||||
MY_MAKE_FLAGS += VERBOSE=${VERBOSE}
|
||||
MY_CMAKE_FLAGS += -DVERBOSE:BOOL=${VERBOSE}
|
||||
ifneq (${VERBOSE},0)
|
||||
MY_NINJA_FLAGS += -v
|
||||
TEST_FLAGS += -V
|
||||
endif
|
||||
$(info OSL_SITE = ${OSL_SITE})
|
||||
$(info dist_dir = ${dist_dir})
|
||||
$(info INSTALL_PREFIX = ${INSTALL_PREFIX})
|
||||
endif
|
||||
|
||||
ifneq (${NAMESPACE},)
|
||||
MY_CMAKE_FLAGS += -DOSL_NAMESPACE:STRING=${NAMESPACE}
|
||||
endif
|
||||
|
||||
ifneq (${LLVM_DIRECTORY},)
|
||||
MY_CMAKE_FLAGS += -DLLVM_DIRECTORY:STRING=${LLVM_DIRECTORY}
|
||||
MY_CMAKE_FLAGS += -DLLVM_ROOT:STRING=${LLVM_DIRECTORY}
|
||||
endif
|
||||
|
||||
ifneq (${LLVM_VERSION},)
|
||||
MY_CMAKE_FLAGS += -DLLVM_VERSION:STRING=${LLVM_VERSION}
|
||||
endif
|
||||
|
||||
ifneq (${LLVM_NAMESPACE},)
|
||||
MY_CMAKE_FLAGS += -DLLVM_NAMESPACE:STRING=${LLVM_NAMESPACE}
|
||||
endif
|
||||
|
||||
ifneq (${LLVM_STATIC},)
|
||||
MY_CMAKE_FLAGS += -DLLVM_STATIC:BOOL=${LLVM_STATIC}
|
||||
endif
|
||||
|
||||
ifneq (${USE_LLVM_BITCODE},)
|
||||
MY_CMAKE_FLAGS += -DUSE_LLVM_BITCODE:BOOL=${USE_LLVM_BITCODE}
|
||||
endif
|
||||
|
||||
ifneq (${USE_FAST_MATH},)
|
||||
MY_CMAKE_FLAGS += -DUSE_FAST_MATH:BOOL=${USE_FAST_MATH}
|
||||
endif
|
||||
|
||||
ifneq (${STOP_ON_WARNING},)
|
||||
MY_CMAKE_FLAGS += -DSTOP_ON_WARNING:BOOL=${STOP_ON_WARNING}
|
||||
endif
|
||||
|
||||
ifneq (${BUILD_SHARED_LIBS},)
|
||||
MY_CMAKE_FLAGS += -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
|
||||
endif
|
||||
|
||||
ifneq (${LINKSTATIC},)
|
||||
MY_CMAKE_FLAGS += -DLINKSTATIC:BOOL=${LINKSTATIC}
|
||||
endif
|
||||
|
||||
ifneq (${SOVERSION},)
|
||||
MY_CMAKE_FLAGS += -DSOVERSION:STRING=${SOVERSION}
|
||||
endif
|
||||
|
||||
ifneq (${OSL_LIBNAME_SUFFIX},)
|
||||
MY_CMAKE_FLAGS += -DOSL_LIBNAME_SUFFIX:STRING=${OSL_LIBNAME_SUFFIX}
|
||||
endif
|
||||
|
||||
ifneq (${OSL_BUILD_TESTS},)
|
||||
MY_CMAKE_FLAGS += -DOSL_BUILD_TESTS:BOOL=${OSL_BUILD_TESTS}
|
||||
endif
|
||||
|
||||
ifneq (${OSL_BUILD_SHADERS},)
|
||||
MY_CMAKE_FLAGS += -DOSL_BUILD_SHADERS:BOOL=${OSL_BUILD_SHADERS}
|
||||
endif
|
||||
|
||||
ifdef DEBUG
|
||||
CMAKE_BUILD_TYPE=Debug
|
||||
endif
|
||||
|
||||
ifdef PROFILE
|
||||
CMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
endif
|
||||
|
||||
ifneq (${MYCC},)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER:STRING="${MYCC}"
|
||||
endif
|
||||
ifneq (${MYCXX},)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_CXX_COMPILER:STRING="${MYCXX}"
|
||||
endif
|
||||
|
||||
ifneq (${USE_CPP},)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_CXX_STANDARD=${USE_CPP}
|
||||
endif
|
||||
|
||||
ifneq (${CMAKE_CXX_STANDARD},)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
|
||||
endif
|
||||
|
||||
ifneq (${USE_LIBCPLUSPLUS},)
|
||||
MY_CMAKE_FLAGS += -DUSE_LIBCPLUSPLUS:BOOL=${USE_LIBCPLUSPLUS}
|
||||
endif
|
||||
|
||||
ifneq (${GLIBCXX_USE_CXX11_ABI},)
|
||||
MY_CMAKE_FLAGS += -DGLIBCXX_USE_CXX11_ABI=${GLIBCXX_USE_CXX11_ABI}
|
||||
endif
|
||||
|
||||
ifneq (${EXTRA_CPP_ARGS},)
|
||||
MY_CMAKE_FLAGS += -DEXTRA_CPP_ARGS:STRING="${EXTRA_CPP_ARGS}"
|
||||
endif
|
||||
|
||||
ifneq (${USE_SIMD},)
|
||||
MY_CMAKE_FLAGS += -DUSE_SIMD:STRING="${USE_SIMD}"
|
||||
endif
|
||||
|
||||
ifneq (${USE_BATCHED},)
|
||||
MY_CMAKE_FLAGS += -DUSE_BATCHED:STRING="${USE_BATCHED}"
|
||||
endif
|
||||
|
||||
ifneq (${VEC_REPORT},)
|
||||
MY_CMAKE_FLAGS += -DVEC_REPORT:BOOL="${VEC_REPORT}"
|
||||
endif
|
||||
|
||||
ifneq (${TEST},)
|
||||
TEST_FLAGS += -R ${TEST}
|
||||
endif
|
||||
|
||||
ifneq (${USE_CCACHE},)
|
||||
MY_CMAKE_FLAGS += -DUSE_CCACHE:BOOL=${USE_CCACHE}
|
||||
endif
|
||||
|
||||
ifeq (${USE_NINJA},1)
|
||||
MY_CMAKE_FLAGS += -G Ninja
|
||||
BUILDSENTINEL := build.ninja
|
||||
endif
|
||||
|
||||
ifeq (${CODECOV},1)
|
||||
CMAKE_BUILD_TYPE=Debug
|
||||
MY_CMAKE_FLAGS += -DCODECOV:BOOL=${CODECOV}
|
||||
endif
|
||||
|
||||
ifneq (${SANITIZE},)
|
||||
MY_CMAKE_FLAGS += -DSANITIZE=${SANITIZE}
|
||||
endif
|
||||
|
||||
ifneq (${CLANG_TIDY},)
|
||||
MY_CMAKE_FLAGS += -DCLANG_TIDY:BOOL=1
|
||||
endif
|
||||
ifneq (${CLANG_TIDY_CHECKS},)
|
||||
MY_CMAKE_FLAGS += -DCLANG_TIDY_CHECKS:STRING=${CLANG_TIDY_CHECKS}
|
||||
endif
|
||||
ifneq (${CLANG_TIDY_ARGS},)
|
||||
MY_CMAKE_FLAGS += -DCLANG_TIDY_ARGS:STRING=${CLANG_TIDY_ARGS}
|
||||
endif
|
||||
ifneq (${CLANG_TIDY_FIX},)
|
||||
MY_CMAKE_FLAGS += -DCLANG_TIDY_FIX:BOOL=${CLANG_TIDY_FIX}
|
||||
MY_NINJA_FLAGS += -j 1
|
||||
# N.B. when fixing, you don't want parallel jobs!
|
||||
endif
|
||||
|
||||
ifneq (${CLANG_FORMAT_INCLUDES},)
|
||||
MY_CMAKE_FLAGS += -DCLANG_FORMAT_INCLUDES:STRING=${CLANG_FORMAT_INCLUDES}
|
||||
endif
|
||||
ifneq (${CLANG_FORMAT_EXCLUDES},)
|
||||
MY_CMAKE_FLAGS += -DCLANG_FORMAT_EXCLUDES:STRING=${CLANG_FORMAT_EXCLUDES}
|
||||
endif
|
||||
|
||||
ifneq (${BUILD_MISSING_DEPS},)
|
||||
MY_CMAKE_FLAGS += -DBUILD_MISSING_DEPS:BOOL=${BUILD_MISSING_DEPS}
|
||||
endif
|
||||
|
||||
ifneq (${USE_OPTIX},)
|
||||
MY_CMAKE_FLAGS += -DUSE_OPTIX:BOOL=${USE_OPTIX}
|
||||
endif
|
||||
|
||||
ifneq (${USE_PYTHON},)
|
||||
MY_CMAKE_FLAGS += -DUSE_PYTHON:BOOL=${USE_PYTHON}
|
||||
endif
|
||||
|
||||
ifneq (${PYTHON_VERSION},)
|
||||
MY_CMAKE_FLAGS += -DPYTHON_VERSION:STRING=${PYTHON_VERSION}
|
||||
endif
|
||||
|
||||
ifneq (${PYLIB_LIB_PREFIX},)
|
||||
MY_CMAKE_FLAGS += -DPYLIB_LIB_PREFIX:BOOL=${PYLIB_LIB_PREFIX}
|
||||
endif
|
||||
|
||||
ifneq (${PYLIB_INCLUDE_SONAME},)
|
||||
MY_CMAKE_FLAGS += -DPYLIB_INCLUDE_SONAME:BOOL=${PYLIB_INCLUDE_SONAME}
|
||||
endif
|
||||
|
||||
|
||||
#$(info MY_CMAKE_FLAGS = ${MY_CMAKE_FLAGS})
|
||||
#$(info MY_MAKE_FLAGS = ${MY_MAKE_FLAGS})
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
||||
|
||||
|
||||
#########################################################################
|
||||
# Top-level documented targets
|
||||
|
||||
all: install
|
||||
|
||||
# 'make debug' is implemented via recursive make setting DEBUG
|
||||
debug:
|
||||
${MAKE} DEBUG=1 --no-print-directory
|
||||
|
||||
# 'make profile' is implemented via recursive make setting PROFILE
|
||||
profile:
|
||||
${MAKE} PROFILE=1 --no-print-directory
|
||||
|
||||
# 'make config' constructs the build directory and runs 'cmake' there,
|
||||
# generating makefiles to build the project. For speed, it only does this when
|
||||
# ${build_dir}/Makefile doesn't already exist, in which case we rely on the
|
||||
# cmake generated makefiles to regenerate themselves when necessary.
|
||||
config:
|
||||
@ (if [ ! -e ${build_dir}/${BUILDSENTINEL} ] ; then \
|
||||
${CMAKE} -E make_directory ${build_dir} ; \
|
||||
cd ${build_dir} ; \
|
||||
${CMAKE} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} \
|
||||
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
|
||||
${MY_CMAKE_FLAGS} ${working_dir} ; \
|
||||
fi)
|
||||
|
||||
|
||||
# 'make build' does a basic build (after first setting it up)
|
||||
build: config
|
||||
@ ( cd ${build_dir} ; \
|
||||
${CMAKE} --build . --config ${CMAKE_BUILD_TYPE} \
|
||||
)
|
||||
|
||||
# 'make install' builds everthing and installs it in 'dist'.
|
||||
# Suppress pointless output from docs installation.
|
||||
install: build
|
||||
@ ( cd ${build_dir} ; \
|
||||
${CMAKE} --build . --target install --config ${CMAKE_BUILD_TYPE} | grep -v '^-- \(Installing\|Up-to-date\|Set runtime path\)' \
|
||||
)
|
||||
|
||||
# 'make package' builds everything and then makes an installable package
|
||||
# (platform dependent -- may be .tar.gz, .sh, .dmg, .rpm, .deb. .exe)
|
||||
package: install
|
||||
@ ( cd ${build_dir} ; \
|
||||
${CMAKE} --build . --target package --config ${CMAKE_BUILD_TYPE} \
|
||||
)
|
||||
|
||||
# 'make package_source' makes an installable source package
|
||||
# (platform dependent -- may be .tar.gz, .sh, .dmg, .rpm, .deb. .exe)
|
||||
package_source: install
|
||||
@ ( cd ${build_dir} ; \
|
||||
${CMAKE} --build . --target package_source --config ${CMAKE_BUILD_TYPE} \
|
||||
)
|
||||
|
||||
# 'make clang-format' runs clang-format on all source files (if it's installed)
|
||||
clang-format: config
|
||||
@ ( cd ${build_dir} ; \
|
||||
${CMAKE} --build . --target clang-format --config ${CMAKE_BUILD_TYPE} \
|
||||
)
|
||||
|
||||
|
||||
# DEPRECATED: 'make dist' is just a synonym for 'make install'
|
||||
dist : install
|
||||
|
||||
TEST_FLAGS += --force-new-ctest-process --output-on-failure
|
||||
|
||||
# 'make test' does a full build and then runs all tests
|
||||
test: build
|
||||
@ ${CMAKE} -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests ${TEST_FLAGS}..."
|
||||
@ ( cd ${build_dir} ; \
|
||||
OSL_ROOT_DIR=${INSTALL_PREFIX} \
|
||||
OSL_ROOT=${INSTALL_PREFIX} \
|
||||
LD_LIBRARY_PATH=${INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH} \
|
||||
DYLD_LIBRARY_PATH=${INSTALL_PREFIX}/lib:${DYLD_LIBRARY_PATH} \
|
||||
OIIO_LIBRARY_PATH=${INSTALL_PREFIX}/lib:${OIIO_LIBRARY_PATH} \
|
||||
PYTHONPATH=${working_dir}/${build_dir}/lib/python/site-packages:${PYTHONPATH} \
|
||||
ctest -E broken ${TEST_FLAGS} \
|
||||
)
|
||||
@ ( if [[ "${CODECOV}" == "1" ]] ; then \
|
||||
cd ${build_dir} ; \
|
||||
lcov -b . -d . -c -o cov.info ; \
|
||||
lcov --remove cov.info "/usr*" -o cov.info ; \
|
||||
genhtml -o ./cov -t "Test coverage" --num-spaces 4 cov.info ; \
|
||||
fi )
|
||||
|
||||
# 'make clean' clears out the build directory for this platform
|
||||
clean:
|
||||
${CMAKE} -E remove_directory ${build_dir}
|
||||
|
||||
# 'make realclean' clears out both build and dist directories for this platform
|
||||
realclean: clean
|
||||
${CMAKE} -E remove_directory ${dist_dir}
|
||||
|
||||
# DEPRECATED: use 'make realclean'
|
||||
nuke:
|
||||
${CMAKE} -E remove_directory ${build_dir}
|
||||
${CMAKE} -E remove_directory ${dist_dir}
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
||||
|
||||
# 'make help' prints important make targets
|
||||
help:
|
||||
@echo "Targets:"
|
||||
@echo " make Build and install optimized binaries and libraries"
|
||||
@echo " make install Build and install optimized binaries and libraries"
|
||||
@echo " make build Build only (no install) optimized binaries and libraries"
|
||||
@echo " make config Just configure cmake, don't build"
|
||||
@echo " make debug Build and install unoptimized with symbols"
|
||||
@echo " make profile Build and install for profiling"
|
||||
@echo " make clean Remove the temporary files in ${build_dir}"
|
||||
@echo " make realclean Remove both ${build_dir} AND ${dist_dir}"
|
||||
@echo " make test Run tests"
|
||||
@echo " make testall Run all tests, even broken ones"
|
||||
@echo " make clang-format Run clang-format on all the source files"
|
||||
@echo ""
|
||||
@echo "Helpful modifiers:"
|
||||
@echo " C++ compiler and build process:"
|
||||
@echo " VERBOSE=1 Show all compilation commands"
|
||||
@echo " STOP_ON_WARNING=0 Do not stop building if compiler warns"
|
||||
@echo " OSL_SITE=xx Use custom site build mods"
|
||||
@echo " MYCC=xx MYCXX=yy Use custom compilers"
|
||||
@echo " CMAKE_CXX_STANDARD=14 C++ standard to build with (default is 14)"
|
||||
@echo " USE_LIBCPLUSPLUS=1 For clang, use libc++"
|
||||
@echo " GLIBCXX_USE_CXX11_ABI=1 For gcc, use the new string ABI"
|
||||
@echo " EXTRA_CPP_ARGS= Additional args to the C++ command"
|
||||
@echo " USE_NINJA=1 Set up Ninja build (instead of make)"
|
||||
@echo " USE_CCACHE=0 Disable ccache (even if available)"
|
||||
@echo " CODECOV=1 Enable code coverage tests"
|
||||
@echo " SANITIZE=name1,... Enable sanitizers (address, leak, thread)"
|
||||
@echo " CLANG_TIDY=1 Run clang-tidy on all source (can be modified"
|
||||
@echo " by CLANG_TIDY_ARGS=... and CLANG_TIDY_FIX=1"
|
||||
@echo " CLANG_FORMAT_INCLUDES=... CLANG_FORMAT_EXCLUDES=..."
|
||||
@echo " Customize files for 'make clang-format'"
|
||||
@echo " Linking and libraries:"
|
||||
@echo " BUILD_SHARED_LIBS=0 Build static library instead of shared"
|
||||
@echo " LINKSTATIC=1 Link with static external libs when possible"
|
||||
@echo " Dependency hints:"
|
||||
@echo " For each dependeny Foo, defining ENABLE_Foo=0 disables it, even"
|
||||
@echo " if found. And you can hint where to find it with Foo_ROOT=path"
|
||||
@echo " Note that it is case sensitive!"
|
||||
@echo " Finding and Using Dependencies:"
|
||||
@echo " BOOST_ROOT=path Custom Boost installation"
|
||||
@echo " USE_QT=0 Skip anything that needs Qt"
|
||||
@echo " LLVM-related options:"
|
||||
@echo " LLVM_VERSION=12.0 Specify which LLVM version to use"
|
||||
@echo " LLVM_DIRECTORY=xx Specify where LLVM lives"
|
||||
@echo " LLVM_NAMESPACE=xx Specify custom LLVM namespace"
|
||||
@echo " LLVM_STATIC=1 Use static LLVM libraries"
|
||||
@echo " USE_LLVM_BITCODE=0 Don't generate embedded LLVM bitcode"
|
||||
@echo " OSL build-time options:"
|
||||
@echo " INSTALL_PREFIX=path Set installation prefix (default: ${INSTALL_PREFIX})"
|
||||
@echo " NAMESPACE=name Override namespace base name (default: OSL)"
|
||||
@echo " USE_FAST_MATH=1 Use faster, but less accurate math (set to 0 for libm defaults)"
|
||||
@echo " OSL_BUILD_TESTS=0 Don't build unit tests, testshade, testrender"
|
||||
@echo " OSL_BUILD_SHADERS=0 Don't build any shaders"
|
||||
@echo " USE_SIMD=arch Build with SIMD support (comma-separated choices:"
|
||||
@echo " 0, sse2, sse3, ssse3, sse4.1, sse4.2, f16c,"
|
||||
@echo " avx, avx2, avx512f)"
|
||||
@echo " USE_OPTIX=1 Build the OptiX test renderer"
|
||||
@echo " USE_BATCHED=targets Build batched SIMD execution of shaders for (comma-separated choices:"
|
||||
@echo " 0, b8_AVX, b8_AVX2, b8_AVX2_noFMA,"
|
||||
@echo " b8_AVX512, b8_AVX512_noFMA,"
|
||||
@echo " b16_AVX512, b16_AVX512_noFMA)"
|
||||
@echo " VEC_REPORT=0 Generate compiler vectorization reports"
|
||||
@echo " make test, extra options:"
|
||||
@echo " TEST=regex Run only tests matching the regex"
|
||||
@echo ""
|
||||
|
||||
@@ -1,527 +0,0 @@
|
||||
<div align="center">
|
||||
<img src="https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/main/src/doc/Figures/osl-short.png" width=256 height=128>
|
||||
|
||||
<H1>Open Shading Language</H1>
|
||||
</div>
|
||||
|
||||
[](https://www.youtube.com/watch?v=nmwMz1YnGPA "Open Shading Language Reel 2020")
|
||||
|
||||
[](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/actions)
|
||||
[](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/LICENSE.md)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/3061)
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Welcome to Open Shading Language!
|
||||
|
||||
Open Shading Language (OSL) is a small but rich language for
|
||||
programmable shading in advanced renderers and other applications, ideal
|
||||
for describing materials, lights, displacement, and pattern generation.
|
||||
|
||||
OSL was originally developed by Sony Pictures Imageworks for use in its in-
|
||||
house renderer used for feature film animation and visual effects, released
|
||||
as open source so it could be used by other visual effects and animation
|
||||
studios and rendering software vendors. Now it's the de facto standard
|
||||
shading language for VFX and animated features, used across the industry in
|
||||
many commercial and studio- proprietary renderers. Because of this, the work
|
||||
on OSL received an Academy Award for Technical Achievement in 2017.
|
||||
|
||||
OSL is robust and production-proven, and has been used in films as diverse
|
||||
as "The Amazing Spider-Man," "Hotel Transylvania," "Edge of Tomorrow", "Ant
|
||||
Man", "Finding Dory," and many more. OSL support is in most leading
|
||||
renderers used for high-end VFX and animation work. For a full list of films
|
||||
and products, see the [filmography](#where-osl-has-been-used).
|
||||
|
||||
The OSL code is distributed under the
|
||||
["New/3-clause BSD" license](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/LICENSE.md),
|
||||
and the documentation under the [Creative Commons Attribution 4.0 International
|
||||
License](https://creativecommons.org/licenses/by/4.0/). In short, you are
|
||||
free to use OSL in your own applications, whether they are free or
|
||||
commercial, open or proprietary, as well as to modify the OSL code and
|
||||
documentation as you desire, provided that you retain the original copyright
|
||||
notices as described in the license.
|
||||
|
||||
|
||||
How OSL is different
|
||||
--------------------
|
||||
|
||||
OSL has syntax similar to C, as well as other shading languages.
|
||||
However, it is specifically designed for advanced rendering algorithms
|
||||
and has features such as radiance closures, BSDFs, and deferred ray
|
||||
tracing as first-class concepts.
|
||||
|
||||
OSL has several unique characteristics not found in other shading
|
||||
languages (certainly not all together). Here are some things you will
|
||||
find are different in OSL compared to other languages:
|
||||
|
||||
* Surface and volume shaders compute radiance closures, not final colors.
|
||||
|
||||
OSL's surface and volume shaders compute an explicit symbolic
|
||||
description, called a "closure", of the way a surface or volume
|
||||
scatters light, in units of radiance. These radiance closures may be
|
||||
evaluated in particular directions, sampled to find important
|
||||
directions, or saved for later evaluation and re-evaluation.
|
||||
This new approach is ideal for a physically-based renderer that
|
||||
supports ray tracing and global illumination.
|
||||
|
||||
In contrast, other shading languages usually compute just a surface
|
||||
color as visible from a particular direction. These old shaders are
|
||||
"black boxes" that a renderer can do little with but execute to find
|
||||
this one piece of information (for example, there is no effective way
|
||||
to discover from them which directions are important to sample).
|
||||
Furthermore, the physical units of lights and surfaces are often
|
||||
underspecified, making it very difficult to ensure that shaders are
|
||||
behaving in a physically correct manner.
|
||||
|
||||
* Surface and volume shaders do not loop over lights or shoot rays.
|
||||
|
||||
There are no "light loops" or explicitly traced illumination rays in
|
||||
OSL surface shaders. Instead, surface shaders compute a radiance
|
||||
closure describing how the surface scatters light, and a part of the
|
||||
renderer called an "integrator" evaluates the closures for a
|
||||
particular set of light sources and determines in which directions
|
||||
rays should be traced. Effects that would ordinarily require explicit
|
||||
ray tracing, such as reflection and refraction, are simply part of the
|
||||
radiance closure and look like any other BSDF.
|
||||
|
||||
Advantages of this approach include that integration and sampling may
|
||||
be batched or re-ordered to increase ray coherence; a "ray budget" can
|
||||
be allocated to optimally sample the BSDF; the closures may be used by
|
||||
for bidirectional ray tracing or Metropolis light transport; and the
|
||||
closures may be rapidly re-evaluated with new lighting without having
|
||||
to re-run the shaders.
|
||||
|
||||
* Surface and light shaders are the same thing.
|
||||
|
||||
OSL does not have a separate kind of shader for light sources. Lights
|
||||
are simply surfaces that are emissive, and all lights are area lights.
|
||||
|
||||
* Transparency is just another kind of illumination.
|
||||
|
||||
You don't need to explicitly set transparency/opacity variables in the
|
||||
shader. Transparency is just another way for light to interact with a
|
||||
surface, and is included in the main radiance closure computed by a
|
||||
surface shader.
|
||||
|
||||
* Renderer outputs (AOV's) may be specified using "light path expressions."
|
||||
|
||||
Sometimes it is desirable to output images containing individual
|
||||
lighting components such as specular, diffuse, reflection, individual
|
||||
lights, etc. In other languages, this is usually accomplished by
|
||||
adding a plethora of "output variables" to the shaders that collect
|
||||
these individual quantities.
|
||||
|
||||
OSL shaders need not be cluttered with any code or output variables to
|
||||
accomplish this. Instead, there is a regular-expression-based
|
||||
notation for describing which light paths should contribute to which
|
||||
outputs. This is all done on the renderer side (though supported by
|
||||
the OSL implementation). If you desire a new output, there is no need
|
||||
to modify the shaders at all; you only need to tell the renderer the
|
||||
new light path expression.
|
||||
|
||||
* Shaders are organized into networks.
|
||||
|
||||
OSL shaders are not monolithic, but rather can be organized into
|
||||
networks of shaders (sometimes called a shader group, graph, or DAG),
|
||||
with named outputs of some nodes being connected to named inputs of
|
||||
other nodes within the network. These connections may be done
|
||||
dynamically at render time, and do not affect compilation of
|
||||
individual shader nodes. Furthermore, the individual nodes are
|
||||
evaluated lazily, only when their outputs are "pulled" from the later
|
||||
nodes that depend on them (shader writers may remain blissfully
|
||||
unaware of these details, and write shaders as if everything is
|
||||
evaluated normally).
|
||||
|
||||
* Arbitrary derivatives without grids or extra shading points.
|
||||
|
||||
In OSL, you can take derivatives of any computed quantity in a shader,
|
||||
and use arbitrary quantities as texture coordinates and expect correct
|
||||
filtering. This does not require that shaded points be arranged in a
|
||||
rectangular grid, or have any particular connectivity, or that any
|
||||
"extra points" be shaded. This is because derivatives are not
|
||||
computed by finite differences with neighboring points, but rather by
|
||||
"automatic differentiation", computing partial differentials for the
|
||||
variables that lead to derivatives, without any intervention required
|
||||
by the shader writer.
|
||||
|
||||
* OSL optimizes aggressively at render time
|
||||
|
||||
OSL uses the LLVM compiler framework to translate shader networks into
|
||||
machine code on the fly (just in time, or "JIT"), and in the process
|
||||
heavily optimizes shaders and networks with full knowledge of the
|
||||
shader parameters and other runtime values that could not have been
|
||||
known when the shaders were compiled from source code. As a result,
|
||||
we are seeing our OSL shading networks execute 25% faster than the
|
||||
equivalent shaders hand-crafted in C! (That's how our old shaders
|
||||
worked in our renderer.)
|
||||
|
||||
|
||||
|
||||
What OSL consists of
|
||||
--------------------
|
||||
|
||||
The OSL open source distribution consists of the following components:
|
||||
|
||||
* oslc, a standalone compiler that translates OSL source code into
|
||||
an assembly-like intermediate code (in the form of .oso files).
|
||||
|
||||
* liboslc, a library that implements the OSLCompiler class, which
|
||||
contains the guts of the shader compiler, in case anybody needs to
|
||||
embed it into other applications and does not desire for the compiler
|
||||
to be a separate executable.
|
||||
|
||||
* liboslquery, a library that implements the OSLQuery class, which
|
||||
allows applications to query information about compiled shaders,
|
||||
including a full list of its parameters, their types, and any metadata
|
||||
associated with them.
|
||||
|
||||
* oslinfo, a command-line program that uses liboslquery to print to the
|
||||
console all the relevant information about a shader and its parameters.
|
||||
|
||||
* liboslexec, a library that implements the ShadingSystem class, which
|
||||
allows compiled shaders to be executed within an application.
|
||||
Currently, it uses LLVM to JIT compile the shader bytecode to x86
|
||||
instructions.
|
||||
|
||||
* testshade, a program that lets you execute a shader (or connected
|
||||
shader network) on a rectangular array of points, and save any of its
|
||||
outputs as images. This allows for verification of shaders (and the
|
||||
shading system) without needing to be integrated into a fully
|
||||
functional renderer, and is the basis for most of our testsuite
|
||||
verification. Along with testrender, testshade is a good example
|
||||
of how to call the OSL libraries.
|
||||
|
||||
* testrender, a tiny ray-tracing renderer that uses OSL for shading.
|
||||
Features are very minimal (only spheres are permitted at this time)
|
||||
and there has been no attention to performance, but it demonstrates how
|
||||
the OSL libraries may be integrated into a working renderer, what
|
||||
interfaces the renderer needs to supply, and how the BSDFs/radiance
|
||||
closures should be evaluated and integrated (including with multiple
|
||||
importance sampling).
|
||||
|
||||
* A few sample shaders.
|
||||
|
||||
* Documentation -- at this point consisting of the OSL language
|
||||
specification (useful for shader writers), but in the future will have
|
||||
detailed documentation about how to integrate the OSL libraries into
|
||||
renderers.
|
||||
|
||||
|
||||
|
||||
Where OSL has been used
|
||||
-----------------------
|
||||
|
||||
*This list only contains films or products whose OSL use is stated or can be
|
||||
inferred from public sources, or that we've been told is ok to list here. If
|
||||
an OSL-using project is missing and it's not a secret, just email the OSL
|
||||
project leader or submit a PR with edits to this file.*
|
||||
|
||||
Renderers and other tools with OSL support (in approximate order of
|
||||
adding OSL support):
|
||||
* Sony Pictures Imageworks: in-house "Arnold" renderer
|
||||
* [Blender/Cycles](https://docs.blender.org/manual/en/dev/render/shader_nodes/osl.html)
|
||||
* [Chaos Group: V-Ray](https://www.chaosgroup.com/)
|
||||
* [Pixar: PhotoRealistic RenderMan RIS](https://renderman.pixar.com)
|
||||
* [Isotropix: Clarisse](http://www.isotropix.com/clarisse)
|
||||
* [Isotropix: Angie](http://www.isotropix.com/angie)
|
||||
* [Autodesk Beast](http://www.autodesk.com/products/beast/overview)
|
||||
* [Appleseed](http://appleseedhq.net)
|
||||
* [Animal Logic: Glimpse renderer](https://www.fxguide.com/featured/a-glimpse-at-animal-logic/)
|
||||
* [Image Engine: Gaffer](http://www.gafferhq.org/) (for expressions and deformers)
|
||||
* [DNA Research: 3Delight](http://www.3delight.com/)
|
||||
* Ubisoft motion picture group's proprietary renderer
|
||||
* [Autodesk/SolidAngle: Arnold](https://www.solidangle.com/arnold/)
|
||||
* [Autodesk: 3DS Max 2019](https://help.autodesk.com/view/3DSMAX/2019/ENU/?guid=__developer_3ds_max_sdk_features_rendering_osl_html)
|
||||
* [Maxon: Redshift](https://www.maxon.net/en/redshift)
|
||||
|
||||
Films using OSL (grouped by year of release date):
|
||||
* **(2012)**
|
||||
Men in Black 3, The Amazing Spider-Man, Hotel Transylvania
|
||||
* **(2013)**
|
||||
Oz the Great and Powerful, Smurfs 2, Cloudy With a Chance of Meatballs 2
|
||||
* **(2014)**
|
||||
The Amazing Spider-Man 2, Blended, Edge of Tomorrow, 22 Jump Street,
|
||||
Guardians of the Galaxy, Fury,
|
||||
The Hunger Games: Mockingjay - Part 1, Exodus: Gods and Kings,
|
||||
The Interview
|
||||
* **(2015)**
|
||||
American Sniper,
|
||||
Insurgent,
|
||||
Avengers Age of Ultron,
|
||||
Ant Man,
|
||||
Pixels,
|
||||
Mission Impossible: Rogue Nation,
|
||||
Hotel Transylvania 2,
|
||||
Bridge of Spies,
|
||||
James Bond: Spectre,
|
||||
The Hunger Games: Mockingjay - Part 2,
|
||||
Concussion
|
||||
* **(2016)**
|
||||
Allegiant,
|
||||
Batman vs Superman: Dawn of Justice,
|
||||
The Huntsman,
|
||||
Angry Birds Movie,
|
||||
Alice Through the Looking Glass,
|
||||
Captain America: Civil War,
|
||||
Finding Dory,
|
||||
Piper,
|
||||
Independence Day: Resurgence,
|
||||
Ghostbusters,
|
||||
Star Trek Beyond,
|
||||
Suicide Squad,
|
||||
Kingsglaive: Final Fantasy XV,
|
||||
Storks,
|
||||
Miss Peregrine's Home for Peculiar Children,
|
||||
Fantastic Beasts and Where to Find Them,
|
||||
Assassin's Creed
|
||||
* **(2017)**
|
||||
Lego Batman,
|
||||
The Great Wall,
|
||||
A Cure for Wellness,
|
||||
Logan,
|
||||
Power Rangers,
|
||||
Life,
|
||||
Smurfs: The Lost Village,
|
||||
The Fate of the Furious,
|
||||
Alien Covenant,
|
||||
Guardians of the Galaxy 2,
|
||||
The Mummy,
|
||||
Wonder Woman,
|
||||
Cars 3,
|
||||
Baby Driver,
|
||||
Spider-Man: Homecoming,
|
||||
Dunkirk,
|
||||
The Emoji Movie,
|
||||
Detroit,
|
||||
Kingsman: The Golden Circle,
|
||||
Lego Ninjago Movie,
|
||||
Blade Runner 2049,
|
||||
Geostorm,
|
||||
Coco,
|
||||
Justice League,
|
||||
Thor: Ragnarok
|
||||
* **(2018)**
|
||||
Peter Rabbit,
|
||||
Black Panther,
|
||||
Annnihilation,
|
||||
Red Sparrow,
|
||||
Pacific Rim Uprising,
|
||||
Avengers Infinity War,
|
||||
Deadpool 2,
|
||||
Incredibles 2,
|
||||
Jurassic World: Fallen Kingdom,
|
||||
Hotel Transylvania 3: Summer Vacation,
|
||||
Ant Man and the Wasp,
|
||||
Skyscraper,
|
||||
Mission Impossible: Fallout,
|
||||
The Meg,
|
||||
Kin,
|
||||
Smallfoot,
|
||||
Alpha,
|
||||
Venom,
|
||||
First Man,
|
||||
Bad Times at the El Royale,
|
||||
Fantastic Beasts: The Crimes of Grindelwald,
|
||||
Bohemian Rhapsody,
|
||||
Holmes and Watson,
|
||||
Spider-Man: Into the Spider-Verse
|
||||
* **(2019)**
|
||||
The Kid Who Would Be King,
|
||||
Alita: Battle Angel,
|
||||
Lego Movie 2,
|
||||
Lucky 13 (Love, Death, and Robots),
|
||||
Captain Marvel,
|
||||
Triple Frontier,
|
||||
Avengers: Endgame,
|
||||
Pokémon Detective Pikachu,
|
||||
Godzilla: King of Monsters,
|
||||
Rim of the World,
|
||||
John Wick 3 Parabellum,
|
||||
Men in Black International,
|
||||
Toy Story 4,
|
||||
Spider-Man: Far From Home,
|
||||
Hobbs & Shaw,
|
||||
Angry Birds 2,
|
||||
The Art of Racing in the Rain,
|
||||
Secret Life of Pets,
|
||||
The Mandalorian (S1),
|
||||
The Dark Crystal: Age of Resistance,
|
||||
The King,
|
||||
Jumanji: The Next Level,
|
||||
Richard Jewell,
|
||||
Game of Thrones (S8),
|
||||
Lost in Space (S1),
|
||||
Togo
|
||||
* **(2020)**
|
||||
Underwater,
|
||||
Birds of Prey,
|
||||
Onward,
|
||||
Bloodshot,
|
||||
Greyhound,
|
||||
The Old Guard,
|
||||
Mulan,
|
||||
Tenet,
|
||||
The New Mutants,
|
||||
Artemis Fowl,
|
||||
The Eight Hundred,
|
||||
Over the Moon,
|
||||
Wonder Woman 1984,
|
||||
Soul,
|
||||
The Mandalorian (S2)
|
||||
* **(2021)**
|
||||
Chaos Walking,
|
||||
Peter Rabbit 2: The Runaway,
|
||||
The Falcon and the Winder Soldier,
|
||||
Secret Magic Control Agency,
|
||||
Zack Snyder's Justice League,
|
||||
The Mitchells vs the Machines,
|
||||
Jupiter's Legacy,
|
||||
Luca,
|
||||
F9,
|
||||
Vivo,
|
||||
Jungle Cruise,
|
||||
Dune,
|
||||
No Time To Die,
|
||||
Ron's Gone Wrong,
|
||||
Venom: Let There Be Carnage,
|
||||
Last Night in Soho,
|
||||
Ghostbusters: Afterlife,
|
||||
Spider-Man 3: No Way Home,
|
||||
Matrix Resurrections
|
||||
* **(2022 / upcoming)**
|
||||
Hotel Transylvania 4: Transformania,
|
||||
Death on the Nile,
|
||||
Uncharted,
|
||||
Turning Red,
|
||||
The Adam Project,
|
||||
Doctor Strange in the Multiverse of Madness,
|
||||
Love, Death, and Robots: In Vaulted Halls Entombed,
|
||||
Jurassic World: Dominion,
|
||||
Lightyear,
|
||||
Thor: Love and Thunder,
|
||||
The Sea Beast,
|
||||
DC League of Super Pets,
|
||||
Bullet Train,
|
||||
...
|
||||
|
||||
|
||||
|
||||
Building and Installation
|
||||
-------------------------
|
||||
|
||||
Please read the [INSTALL.md](INSTALL.md) file for detailed instructions on
|
||||
how to build and install OSL.
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
The OSL language specification can be found at
|
||||
[src/doc/osl-languagespec.pdf](src/doc/osl-languagespec.pdf) (in a source
|
||||
distribution) or in the share/doc/OSL/osl-languagespec.pdf file of an
|
||||
installed binary distribution.
|
||||
|
||||
|
||||
Contact & reporting problems
|
||||
----------------------------
|
||||
|
||||
Simple "how do I...", "I'm having trouble", or "is this a bug" questions are
|
||||
best asked on the [osl-dev developer mail
|
||||
list](https://lists.aswf.io/g/osl-dev).
|
||||
That's where the most people will see it and potentially be able to answer
|
||||
your question quickly (more so than a GH "issue").
|
||||
|
||||
Bugs, build problems, and discovered vulnerabilities that you are relatively
|
||||
certain is a legit problem in the code, and for which you can give clear
|
||||
instructions for how to reproduce, should be [reported as
|
||||
issues](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues).
|
||||
|
||||
If you think you've found a potential vulnerability in OSL, please
|
||||
confidentially report it by emailing the project administrators at
|
||||
[security@openshadinglanguage.org](security@openshadinglanguage.org).
|
||||
|
||||
If any other issue requires confidentiality that precludes a public question
|
||||
or issue, you may contact the project administrator privately at
|
||||
[lg@larrygritz.com](lg@larrygritz.com).
|
||||
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
OSL welcomes code contributions, and nearly 50 people have done so over the
|
||||
years. We take code contributions via the usual GitHub pull request (PR)
|
||||
mechanism. Please see [CONTRIBUTING](CONTRIBUTING.md) for detailed
|
||||
instructions.
|
||||
|
||||
|
||||
Contacts, Links, and References
|
||||
-------------------------------
|
||||
|
||||
[OSL GitHub page](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage)
|
||||
|
||||
[Read or subscribe to the OSL development mail list](https://lists.aswf.io/g/osl-dev)
|
||||
|
||||
[Most recent PDF of the OSL language specification](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/main/src/doc/osl-languagespec.pdf
|
||||
)
|
||||
|
||||
[OSL home page](http://openshadinglanguage.org)
|
||||
|
||||
|
||||
|
||||
|
||||
Credits
|
||||
-------
|
||||
|
||||
The current project leadership is documented in the
|
||||
[Governance](GOVERNANCE.md) file.
|
||||
|
||||
Many people have contributed features, bug fixes, and other changes to OSL
|
||||
over the years: Steve Agland, Shane Ambler, Martijn Berger, Farchad
|
||||
Bidgolirad, Nicholas Bishop, Solomon Boulos, Stefan Bruens, Stefan Büttner,
|
||||
Matthaus G. Chajdas, Clark Chen, Alejandro Conty, Dieter De Baets, Thomas
|
||||
Dinges, Mads Drøschler, Luke Emrose, Louis Feng, Mark Final, Henri Fousse,
|
||||
Stephen Friedman, Syoyo Fujita, Tim Grant, Larry Gritz, Nicolas Guiard, Euan
|
||||
Haahr, Derek Haase, Sven-Hendrik Haase, John Haddon, Niklas Harrysson, Daniel
|
||||
Heckenberg, Adrien Herubel, Thiago Ize, Matt Johnson, Ronan Keryell, Chris
|
||||
Kulla, Elvic Liang, Max Liani, Adam Martinez, John Mertic, Bastien Montagne,
|
||||
Steena Monteiro, Alexis Oblet, Erich Ocean, Mikko Ohtamaa, Jino Park, Alexei
|
||||
Pawlow, Jay Reynolds, Declan Russell, Benoit Ruiz, Patrick Scheibe, Alex
|
||||
Schworer, Jonathan Scruggs, Sergey Sharybin, Sandip Shukla, Cliff Stein,
|
||||
Stephan Steinbach, Luya Tshimbalanga, Esteban Tovagliari, Brecht Van Lommel,
|
||||
Alexander von Knorring, Alex Wells, Roman Zulak. (Listed alphabetically; if
|
||||
we've left anybody out, it is inadvertent, please let us know.)
|
||||
|
||||
We cannot possibly express sufficient gratitude to the managers at Sony
|
||||
Pictures Imageworks who allowed this project to proceed, supported it
|
||||
wholeheartedly, and permitted us to release the source, especially Rob
|
||||
Bredow, Brian Keeney, Barbara Ford, Rene Limberger, Erik Strauss, and Mike
|
||||
Ford.
|
||||
|
||||
Huge thanks also go to the crack shading team at SPI, and the brave lookdev
|
||||
TDs and CG supes willing to use OSL on their shows. They served as our
|
||||
guinea pigs, inspiration, testers, and a fantastic source of feedback. And
|
||||
of course, the many engineers, TDs, and artists elsewhere who incorporated
|
||||
OSL into their products and pipelines, especially the early risk-takers at
|
||||
Chaos Group, Double Negative, Pixar, DNA, Isotropix, and Animal Logic. Thank
|
||||
you, and we hope we've been responsive to your needs.
|
||||
|
||||
OSL was not developed in isolation. We owe a debt to the individuals
|
||||
and studios who patiently read early drafts of the language
|
||||
specification and gave us very helpful feedback and additional ideas,
|
||||
as well as to the continuing contributions and feedback of its current
|
||||
developers and users at other VFX and animation studios.
|
||||
|
||||
The OSL implementation depends upon several other open source packages,
|
||||
all with compatible licenses:
|
||||
|
||||
* [OpenImageIO](http://www.openimageio.org)
|
||||
* [Boost](http://www.boost.org)
|
||||
* [IlmBase](http://www.openexr.com)
|
||||
* [LLVM Compiler Infrastructure](http://llvm.org)
|
||||
|
||||
OSL's documentation incorporates parts of [Markdeep](https://casual-effects.com/markdeep/)
|
||||
(c) 2015-2016, Morgan McGuire, and [highlight.js](https://highlightjs.org/)
|
||||
(c) 2006, Ivan Sagalaev, both distributed under BSD licenses.
|
||||
@@ -1,27 +0,0 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
This gives guidance about which branches are supported with patches to
|
||||
security vulnerabilities.
|
||||
|
||||
| Version / branch | Supported |
|
||||
| --------- | ---------------------------------------------------- |
|
||||
| main | :white_check_mark: :construction: ALL fixes immediately, but this is a branch under development with a frequently unstable ABI and occasionally unstable API. |
|
||||
| 1.12.x | :white_check_mark: All fixes that can be backported without breaking ABI compatibility. New tagged releases monthly. |
|
||||
| 1.11.x | :warning: Only the most critical fixes, only if they can be easily backported. |
|
||||
| <= 1.10.x | :x: No longer receiving patches of any kind. |
|
||||
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
If you think you've found a potential vulnerability in OSL, please report it
|
||||
by emailing the project administrators at
|
||||
[security@openshadinglanguage.org](security@openshadinglanguage.org). Only the
|
||||
project administrators have access to these messages. Include detailed steps to
|
||||
reproduce the issue, and any other information that could aid an
|
||||
investigation. Our policy is to respond to vulnerability reports within 14
|
||||
days.
|
||||
|
||||
Our policy is to address critical security vulnerabilities rapidly and post
|
||||
patches as quickly as possible.
|
||||
@@ -1,293 +0,0 @@
|
||||
See [LICENSE.md](LICENSE.md) for the main open source license of original
|
||||
code written for the Open Shading Language project.
|
||||
|
||||
The remainder of this file reproduces the open source licensing details
|
||||
of other projects that have been imported, incorporated into, or derived
|
||||
into parts of OSL.
|
||||
|
||||
In no particular order:
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
BSD 3-Clause License
|
||||
SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
* OpenImageIO Copyright (c) Larry Gritz, et al.
|
||||
https://github.com/OpenImageIO/oiio
|
||||
|
||||
Many bits of code flow back and forth between OIIO and OSL, especially
|
||||
parts of the CMake build system.
|
||||
|
||||
* OpenEXR, Copyright (c) Contributors to the OpenEXR Project.
|
||||
https://github.com/AcademySoftwareFoundation/OpenEXR
|
||||
|
||||
OSL replicates and modifies several files from the "Imath" portion of
|
||||
OpenEXR. These are all found in src/include/OSL/Imathx.
|
||||
|
||||
* Qt, Copyright (c) The Qt Company Ltd.
|
||||
http://doc.qt.io/
|
||||
|
||||
Some widget code in src/osltoy is copied and/or derived from example code
|
||||
for Qt.
|
||||
|
||||
* Highlight.js
|
||||
https://github.com/highlightjs/highlight.js/
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
- Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
|
||||
SPDX-License-Identifier: BSD-2-Clause
|
||||
|
||||
* Markdeep
|
||||
https://casual-effects.com/markdeep
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Public domain
|
||||
|
||||
* The simplex noise implementation is Copyright (c) Stefan Gustavson.
|
||||
It bears the following notice:
|
||||
|
||||
This library is public domain software, released by the author
|
||||
into the public domain in February 2011. You may do anything
|
||||
you like with it. You may even remove all attributions,
|
||||
but of course I'd appreciate it if you kept my name somewhere.
|
||||
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Modified Apache 2.0 License
|
||||
|
||||
Universal Scene Description
|
||||
Copyright Pixar.
|
||||
|
||||
Portions of the build_osl.py were derived from scripts distributed with USD.
|
||||
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor
|
||||
and its affiliates, except as required to comply with Section 4(c) of
|
||||
the License and to reproduce the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
If we have left anything out, it is unintentional. Please let us know.
|
||||
@@ -1,27 +0,0 @@
|
||||
# Documentation
|
||||
|
||||
The OSL Documentation Project is a work in progress.
|
||||
|
||||
The plan is to adopt the OCIO Documentation Project's methodology for maintaining and building documentation of various kinds as it becomes the blueprint for the ASWF.
|
||||
|
||||
There is much work to be done here.
|
||||
|
||||
Of particular interest are these topics. Please consider adding any information you might have about any of these to the repo:
|
||||
|
||||
* Any material at all for people learning to write OSL shaders (beyond the formal language spec, which is not intended to be a tutorial or cookbook for writing shaders).
|
||||
* Example .osl code and/or .h files that are:
|
||||
1. Generally useful, but do not warrant inclusion into the OSL source itself.
|
||||
2. Tutorial in nature.
|
||||
* Robust installation or build instructions for Windows and macOS.
|
||||
* Guide for how to integrate OSL into an application such as a renderer.
|
||||
|
||||
If you have some relevant content and you'd like to discuss its inclusion, please use the OSL Documentation discussion:
|
||||
|
||||
[OSL Documentation](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/discussions/1324)
|
||||
|
||||
or alternatively, you may post to:
|
||||
|
||||
https://lists.aswf.io/g/osl-dev/topics<br>
|
||||
osl-dev@lists.aswf.io
|
||||
|
||||
You may also simply submit a PR.
|
||||
@@ -1,341 +0,0 @@
|
||||
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
|
||||
<!-- Copyright Contributors to the Open Shading Language Project. -->
|
||||
|
||||
# Release Procedures for Open Shading Language
|
||||
|
||||
## Version nomenclature and release cadence
|
||||
|
||||
### The meaning of the version parts
|
||||
|
||||
Our release numbers are of the form `MAJOR.MINOR.PATCH.TWEAK`, and we follow
|
||||
an almost-semantic-versioning scheme.
|
||||
|
||||
MAJOR changes are those that break backward-compatibility of the public APIs,
|
||||
requiring existing application code to change their source code where it calls
|
||||
OSL API functions in order to compile and work correctly.
|
||||
|
||||
MINOR changes guarantee API backward-compatibility with prior releases that
|
||||
have the same major number, but can introduce ABI or link incompatibilities.
|
||||
Applications using OSL need to be recompiled to move to a new minor release,
|
||||
but should not need to change their source code. Minor releases are allowed
|
||||
to drop support for sufficiently old compilers and dependencies.
|
||||
|
||||
PATCH changes guarantee both API and ABI/link backward-compatibility with
|
||||
prior releases that have the same minor number. Features and new public API
|
||||
calls may be added (thus deviating from strict semantic versioning), but only
|
||||
if they preserve ABI/link compatibility. This means that standalone functions
|
||||
or static methods may be added, but existing functions will not change their
|
||||
parameters, and no new virtual methods or struct data layouts change for patch
|
||||
releases (for classes in public header files). Application code can be
|
||||
re-linked to a new patch release without needing to be recompiled. We also
|
||||
guarantee that any compilers or dependencies supported for the first release
|
||||
of a minor series will continue to be supported for all patches to that minor
|
||||
series.
|
||||
|
||||
TWEAK changes are restricted to critical bug fixes or build breaks that do
|
||||
not alter public APIs in any way.
|
||||
|
||||
### Cadence of releases
|
||||
|
||||
Major (arbitrarily incompatible) releases happen rarely, usually with multiple
|
||||
years between them.
|
||||
|
||||
Minor (API backward-compatible) releases are scheduled annually, targeted at
|
||||
late summer (SIGGRAPH time) to be in beta, and early autumn for a full
|
||||
release.
|
||||
|
||||
Patch (API and ABI backward-compatible) releases are scheduled monthly,
|
||||
usually aiming for the first day of each month.
|
||||
|
||||
Tweak (fully forward and backward compatible) releases are not regularly
|
||||
scheduled, and only happen sporadically, when a critical fix is needed in
|
||||
between scheduled patch releases.
|
||||
|
||||
### Things are different in "main"
|
||||
|
||||
The "main" branch is where ongoing development occurs without any
|
||||
compatibility guarantees. We don't always know if the next year's release from
|
||||
main will turn out to be major (API breaking) or minor (only ABI breaking).
|
||||
|
||||
Some studios or products need the most up-to-date enhancements, and thus tend
|
||||
to build OSL from the "main" branch rather than using tagged releases. For
|
||||
these users, we try to set version numbers and occasionally tag in main, to
|
||||
send a signal about which points in main seem safe to rely on various
|
||||
compatibility levels. However, the rules are slightly different than we use
|
||||
for releases.
|
||||
|
||||
In the "main" branch:
|
||||
|
||||
- TWEAK changes within "main" only guarantee ABI back-compatibility, but may
|
||||
have additions or non-bug-fix behavior changes (akin to patch releases
|
||||
within a release branch).
|
||||
- PATCH changes within "main" are allowed to break ABI or API (changes that
|
||||
would require minor or major releases, if they were not in "main").
|
||||
- Beware of unmarked breaks in compatibility of commits in main that are
|
||||
in between developer preview tags.
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Branch and tag names
|
||||
|
||||
**Branches** are places where commits containing new development may be added
|
||||
(and thus the branch markers will move over time). Branch names obey the
|
||||
following conventions:
|
||||
|
||||
- `main` is the area for arbitrary changes intended for the next year's major
|
||||
or minor release.
|
||||
- `dev-1.2` are the areas for staging additions to the next month's patch
|
||||
release for the designated minor version series.
|
||||
- `release` is a special branch marker that is always set to the latest tag of
|
||||
the currently supported, stable release family. People can count on
|
||||
"release" always being the latest stable release, whatever that may be at
|
||||
the time.
|
||||
|
||||
**Tags** indicate releases or developer previews, and once a commit is
|
||||
tagged, it is permanent and will never be moved. Tag names obey the following
|
||||
conventions:
|
||||
|
||||
- `v1.2.3.4` is a specific public stable release, corresponding to official
|
||||
major, minor, public, or tweak releases.
|
||||
- `v1.2.3.4-alpha`, `v1.2.3.4-beta`, or `v1.2.3.4-RC1` are pre-releases for an
|
||||
upcoming public stable release, at the alpha, beta, or release candidate
|
||||
stages, respectively.
|
||||
- `v1.2.3.4-dev` is a "developer preview" within "main." It is not an official
|
||||
supported release, and while the numbering may indicate compatibility versus
|
||||
other recent developer previews, they should not be assumed to be compatible
|
||||
with any prior official stable releases.
|
||||
|
||||
*Very* occasionally, other branch or tag names (with custom suffixes or
|
||||
different naming schemes) may be used for special purposes by particular
|
||||
developers or users, but should not be considered reliable or permanent, and
|
||||
in general should be ignored by anyone who didn't make the tag or branch.
|
||||
|
||||
---
|
||||
|
||||
## Release Procedures
|
||||
|
||||
### Soft freeze for monthly tweak releases:
|
||||
|
||||
We freely backport *safe*, non-ABI-breaking changes by cherry-picking them
|
||||
from main to the supported branch continually throughout most of the month.
|
||||
|
||||
In the seven days before the new month, we do a "soft freeze" where only
|
||||
important bug fixes are backported. Hold on to any other patches you wish to
|
||||
backport until after the monthly patch release (i.e., save them for the next
|
||||
month's release so you never have a release that contains changes that are
|
||||
only a few days old, and therefore not as well tested). You may, of course,
|
||||
continue to backport fixes to documentation or other non-code parts of the
|
||||
project during this soft freeze.
|
||||
|
||||
### Branching for annual major/minor releases
|
||||
|
||||
By mid-June (about 1-2 months before the beta of a new annual big release),
|
||||
you should branch and mark it as an alpha.
|
||||
|
||||
At the tip of "main," create a new branch named `dev-MAJOR.MINOR` that will be
|
||||
the staging area for the next release.
|
||||
|
||||
Customarily, at that point we add a commit to main (but not to the new
|
||||
dev-MAJ.MIN branch) that bumps main's version to the next minor level, to
|
||||
avoid any confusion between builds from main versus what will be the next
|
||||
release branch. This starts the divergence between main and the release
|
||||
branch, and henceforth, any big or compatibility-breaking changes will only be
|
||||
committed to main and not backported to the release branch. (Though we are
|
||||
loose about this rule during the alpha period and allow continued breaking
|
||||
changes in the alpha, but by the time we call it beta, we allow no more
|
||||
breaking changes.)
|
||||
|
||||
|
||||
### Prior to a release
|
||||
|
||||
1. Update CI dependencies: Ensure that the "latest" CI test specifies the
|
||||
current releases of the dependencies and compilers (check their home
|
||||
pages), and that the [INSTALL.md](../INSTALL.md) file correctly documents
|
||||
the version ranges that we expect to work and that we actively test.
|
||||
|
||||
2. Release notes: [CHANGES.md](../CHANGES.md) should be updated to reflect
|
||||
all the new features and fixes. Looking at the notes from older releases
|
||||
should provide a good example of what we're aiming for.
|
||||
|
||||
- Patch and tweak releases can be brief one-line descriptions (often the
|
||||
first line of the commit messages involved), presented in a single
|
||||
section in either chronological or any other order that seems right.
|
||||
- Minor or major releases have a much more extensive, prose-based
|
||||
description of all changes since the last minor release, broken into
|
||||
sections (dependency changes, major new features, enhancements and fixes,
|
||||
internals and developer goodies, testing/CI/ports, etc.) and ordered for
|
||||
readability and relevance.
|
||||
|
||||
3. Ensure docs are up to date:
|
||||
|
||||
- Actually read the [README.md](../README.md), [INSTALL.md](../INSTALL.md),
|
||||
and other repository docs and make sure all the information is up to
|
||||
date. Check the "contributor credits" in the README against the recent
|
||||
repo history to be sure new contributors are listed. Also check the
|
||||
list of films and make sure it includes any recent productions that are
|
||||
known to have used OSL.
|
||||
- Skim the primary user documentation to look for any obvious errors,
|
||||
especially the parts that describe new features. In the case of PDF docs
|
||||
(such as osl-languagespec.pdf), make sure that a new PDF book is built if
|
||||
the documentation source has been changed since the last release.
|
||||
- If we are using any online docs (like readthedocs), make sure it is
|
||||
building and looks correct on the web site.
|
||||
|
||||
4. Make sure the the top-level CMakeLists.txt file is updated:
|
||||
|
||||
- The version on the `project()` call should be correct.
|
||||
- The `PROJECT_VERSION_RELEASE_TYPE` variable should be set to "alpha" or
|
||||
"beta" if appropriate, "RC" for release candidate, or empty string `""`
|
||||
for most supported releases, and "dev" only for the main branch or
|
||||
developer previews.
|
||||
- The `${PROJECT_NAME}_SUPPORTED_RELEASE` variable should be `ON` for any
|
||||
release branch, `OFF` for main.
|
||||
|
||||
5. Make sure everything passes the usual CI workflow. Also check the daily or
|
||||
weekly "analysis" workflows to make sure there aren't any important
|
||||
warnings that should be fixed.
|
||||
|
||||
|
||||
### Staging alpha / beta / release candidate (annual minor/major releases only)
|
||||
|
||||
For monthly patch releases, we don't have any formal alpha/beta/RC stages.
|
||||
|
||||
For the annual minor or major releases we have a staged release:
|
||||
|
||||
- `alpha` is everything after we have branched, in which we think all the big
|
||||
new features have been added, and while we will make continued changes and
|
||||
fixes, we are aiming for increased stability and to minimize additional
|
||||
breaking changes prior to the release.
|
||||
- `beta` should be about one month prior to the final release date. We create
|
||||
a tag `v1.2.3.4-beta` and announce the beta (see below "Making the
|
||||
release"). Once we tag a beta, we try very hard not to allow any further
|
||||
changes that change the API or are not ABI-compatible (i.e., safe fixes
|
||||
only).
|
||||
- `RC` or release candidates around one week prior to the final release date.
|
||||
This is a trial run, hopefully identical to the final release (except for
|
||||
removing the RC label and making a new tag). The only changes allowed after
|
||||
RC are fixes to the most critical bugs or build breaks that would be bad for
|
||||
users to encounter. If critical problems are found with RC1, they should be
|
||||
fixed and immediately re-tagged as RC2, etc. All other fixes should be
|
||||
postponed until the next month's patch release.
|
||||
|
||||
### Making the release
|
||||
|
||||
A final release is made on the scheduled date, provided the latest RC has
|
||||
survived for at least a few days of testing without finding any critical
|
||||
problems. Don't make the release final until you are sure there are no
|
||||
truly critical bugs or build breaks that users will encounter.
|
||||
|
||||
The following are the steps for making the release:
|
||||
|
||||
1. Edit the top-level CMakeLists.txt to remove any RC designation
|
||||
(i.e., `PROJECT_VERSION_RELEASE_TYPE` should be set to `""`).
|
||||
|
||||
2. Edit CHANGES.md to reflect the correct date of the release and ensure it
|
||||
includes any last-minute changes that were made during beta or release
|
||||
candidate stages.
|
||||
|
||||
3. Push it to **your** GitHub, make sure it passes CI.
|
||||
|
||||
4. Tag the release: `git tag v1.2.3.4` (no more beta, RC, or dev suffix).
|
||||
|
||||
5. If this will now be the recommended stable release, move the `release`
|
||||
branch marker to the same position.
|
||||
|
||||
6. Push it to GitHub: `git push aswf release --tags`
|
||||
|
||||
(This example assumes "aswf" is the name of the remote for the GitHub
|
||||
`AcademySoftwareFoundation/OpenShadingLanguage` repo.)
|
||||
|
||||
7. Draft a release on GitHub: On
|
||||
https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/releases
|
||||
select "Draft a new release." Choose the new tag you just pushed. Make the
|
||||
release title "Open Shading Language v1.2.3.4" (and beta, etc., designation
|
||||
if applicable). In the description, paste the release notes for this
|
||||
release (from Changes.md). If this is a beta or release candidate, check
|
||||
"this is a pre-release" box at the bottom.
|
||||
|
||||
8. Announce the release on the [osl-dev mail list](https://lists.aswf.io/g/osl-dev)
|
||||
with the subject "Release: OSL v1.2.3.4" and using one of these templates
|
||||
for the body of the email.
|
||||
|
||||
For a monthly patch release:
|
||||
|
||||
> We have tagged v1.2.3.4 as the latest production release and moved the
|
||||
> "release" branch marker to that point. This is guaranteed to be API,
|
||||
> ABI, and link back-compatible with prior 1.2 releases. Release notes
|
||||
> are below.
|
||||
>
|
||||
> (Paste the full set of 1.2 changes here, just copy the appropriate
|
||||
> part of CHANGES.md)
|
||||
|
||||
For an annual major/minor release:
|
||||
|
||||
> OSL version 1.2 has been released! Officially tagged as "v1.2.3.4", we
|
||||
> have also moved the "release" branch tag to this position. Henceforth,
|
||||
> 1.2 is the supported production release family. The API is now frozen --
|
||||
> we promise that subsequent 1.2.x releases (which should happen monthly)
|
||||
> will not break back-compatibility of API, ABI, or linkage, compared to
|
||||
> this release. Please note that this release is *not* ABI or link
|
||||
> compatible with 1.1 or older releases.
|
||||
>
|
||||
> Release notes for 1.2 outlining all the changes since last year's
|
||||
> release are below.
|
||||
>
|
||||
> Please note that a few of the build and runtime dependencies have
|
||||
> changed their minimum supported versions. (List here any important
|
||||
> changes to dependencies, compilers, or C++ standard that users should be
|
||||
> aware of.)
|
||||
>
|
||||
> (List here anything else that people should know about this release
|
||||
> family that may be surprising if they haven't followed the last year of
|
||||
> development closely, or that they must know even if they are too lazy to
|
||||
> read the release notes. If this is a major release that is not
|
||||
> backward-compatible with prior versions, warn about that here.)
|
||||
>
|
||||
> Enjoy, and please report any problems. We will continue to make patch
|
||||
> releases to the 1.2 family roughly monthly, which will contain bug fixes
|
||||
> and non-breaking enhancements.
|
||||
>
|
||||
> The older 1.1 series of releases is now considered obsolete. We will
|
||||
> continue for now to make 1.1 patch releases, but over time, these will
|
||||
> become less frequent and be reserved for only the most critical bug
|
||||
> fixes.
|
||||
>
|
||||
> The "main" branch is now progressing toward an eventual 1.3 release next
|
||||
> summer. As usual, you are welcome to use main for real work, but we do
|
||||
> not make any compatibility guarantees and don't guarantee continuing API
|
||||
> compatibility in main.
|
||||
>
|
||||
> (Paste the full set of 1.2 changes here, just copy the appropriate
|
||||
> part of CHANGES.md)
|
||||
|
||||
For a beta leading up to the annual major/minor release:
|
||||
|
||||
> OSL version 1.2 is now in beta, tagged as "v1.2.3.4-beta". We
|
||||
> will try very hard not to make any further API or ABI changes between
|
||||
> now and the final release (unless it is absolutely necessary to fix
|
||||
> an important problem identified during beta testing). The final 1.2
|
||||
> release is scheduled for [DATE GOES HERE], so please try building and
|
||||
> testing the beta so we are sure to find any problems.
|
||||
>
|
||||
> Release notes for 1.2 outlining all the changes since last year's
|
||||
> release are below.
|
||||
>
|
||||
> (Paste the full set of 1.2 changes here, just copy the appropriate
|
||||
> part of CHANGES.md)
|
||||
|
||||
|
||||
### After the release
|
||||
|
||||
Odds and ends to do after the tag is pushed and the announcements are sent:
|
||||
|
||||
- Re-read RELEASING.md and ensure that the instructions match what you
|
||||
have done. Update as necessary.
|
||||
|
||||
- For annual beta releases, post a short message to the "Open Shading
|
||||
Language" channel of the ASWF slack. It can be a one-line announcement and
|
||||
then just a link to the GitHub release page for this version.
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# Application Integration
|
||||
|
||||
Contains content related to integrating OSL into a renderer, or any application for that matter, using the C API.
|
||||
@@ -1,21 +0,0 @@
|
||||
# Build and Install Instructions
|
||||
|
||||
---
|
||||
|
||||
#### Copyright Contributors to the Open Shading Language project.
|
||||
|
||||
#### SPDX-License-Identifier: CC-BY-4.0
|
||||
|
||||
---
|
||||
|
||||
Contains information about building and installing OSL.
|
||||
|
||||
## Windows
|
||||
|
||||
Method #1:
|
||||
https://github.com/debaetsd/OSL_build
|
||||
|
||||
Method #2:
|
||||
Go through `doc/build_install/windows/Readme.md` and using batch files to install OSL cleanly!
|
||||
|
||||
## macOS
|
||||
@@ -1,314 +0,0 @@
|
||||
## **Building, Using and Debugging OSL in Windows**
|
||||
|
||||
---
|
||||
|
||||
#### Copyright Contributors to the Open Shading Language project.
|
||||
|
||||
#### SPDX-License-Identifier: CC-BY-4.0
|
||||
|
||||
---
|
||||
|
||||
### **Contents**
|
||||
|
||||
1. Introduction
|
||||
- Experimental
|
||||
- My Setup
|
||||
- Inspiration
|
||||
2. Preparing Environment
|
||||
- Cleaning Up the PATH
|
||||
- Set-Up needed Environment Variables
|
||||
- Set Flags based on your needs
|
||||
3. Building (Release, Debug)
|
||||
- Running the code based on your config
|
||||
- Be Patient
|
||||
- Errors
|
||||
4. Running
|
||||
5. Development in Windows
|
||||
|
||||
---
|
||||
|
||||
### **1. Introduction**
|
||||
|
||||
This document is prepared for those who have problem in building OSL in Windows OS, this is completely custom setup. And it is developing to make it compatible with all situations.
|
||||
|
||||
(`Disclaimer:` This Process is completely Experimental and it worked on my system, maybe you get error with changing some configs, during this process).
|
||||
|
||||
At a first glance it seems to be complicated, but it is very easy to do, bare with me.
|
||||
So it would be great to share our experiences to reach to best way of building in Windows (and of course other Operating Systems) to save our time and energy to focus on OSL development and OSL Shader writing.
|
||||
|
||||
### **1.1 Experimental**
|
||||
|
||||
After a lot of efforts on manual building OSL on Windows, Finally I found a clean way to do that, I explained every steps I did, I hope it works for you too. This method is stricktly related to Environment Variables you create and Flags you set to the command and need patient and hard disk.
|
||||
|
||||
I've built OSL with minimal needed packages, for extra packages, they should be set as flag (**script is under development**)
|
||||
|
||||
### **1.2 My Setup**
|
||||
|
||||
This is my setup I have on my PC for building OSL, so you need to install some software before start.
|
||||
|
||||
My System and Setup Configuration:
|
||||
|
||||
**OS:** Windows 10 Home
|
||||
|
||||
**Compiler:** Microsoft Visual Studio 2019
|
||||
|
||||
**Git:** 2.28.0
|
||||
|
||||
**Python:** 3.7 tip: disable python App Installer in Manage `App Execution Aliases (Windows 10)`
|
||||
|
||||
**Cmake:** 3.18.4
|
||||
|
||||
**Qt:** 5.15.0
|
||||
|
||||
**NASM:** 2.15.05 for JPEG
|
||||
|
||||
**OpenShadingLanguage:** cloned from latest master branch
|
||||
|
||||
**Boost:** 1.70
|
||||
|
||||
**LLVM:** 11.0.0 C++ is set on C++14
|
||||
|
||||
**CLANG:** 11.0.0 C++ is set on C++14
|
||||
|
||||
**WinFlexBison:** 2.5.22
|
||||
|
||||
**Zlib:** 1.2.11
|
||||
|
||||
**JPEG:** 2.0.5
|
||||
|
||||
**TIFF:** 4.1.0
|
||||
|
||||
**PNG:** 1.6.35
|
||||
|
||||
**PyBind11:** 2.6.0
|
||||
|
||||
**LibRaw:** 0.20.2
|
||||
|
||||
**OpenImageIO:** 2.1.20
|
||||
|
||||
**OpenColorIO:** 1.1.0
|
||||
|
||||
**OpenEXR/**IlmBase: 2.5.3
|
||||
|
||||
**GLUT:** 3.2.1 freeglut on windows (this is needed for partio) (unfortunately Partio didn't build, it has a problem) (I’ve created a PR for it in Disney github repo)
|
||||
|
||||
**Disney Partio:** latest from master (zip file) (Skip this for now) (I didn't build OSL with Partio)
|
||||
|
||||
**PugiXML:** 1.10
|
||||
|
||||
---
|
||||
|
||||
### **1.3 Inspiration**
|
||||
|
||||
After lots of manual building dependencies one by one and fix errors and things I got inspired by `PIXAR USD INSTALLATION METHOD` and borrowed its structure to build OSL.
|
||||
|
||||
so I studied its python build script and found we can use same logic for installing OSL, fortunately after changing and adding OSL needed packages and some custom setup it worked fine
|
||||
It still needs some other works to make it complete for all dependencies (optional).
|
||||
|
||||
We will keep Pixar name on it as inspiration code (or we can keep their copyright)
|
||||
You can Run the installer from: `yourpath/OpenShadingLanguage/doc/build_install/windows/build_osl.bat`
|
||||
|
||||
---
|
||||
|
||||
### **21. Preparing Environment**
|
||||
|
||||
There are bunch od prerequisites for building OSL that I explained in following sections.
|
||||
|
||||
### **2.1 Cleaning Up the PATH**
|
||||
|
||||
Be sure you don't have any custom item added to PATH in your global Environment Variables of Windows
|
||||
|
||||
You can do it:
|
||||
|
||||
`Start Menu > Edit the system environmment variables > Environment Variables > User Variables/System Variables`
|
||||
|
||||
so you should not have any path that refer to previous osl installation folders
|
||||
|
||||
Recommendation: remove added path for cmake, git, python, Qt, llvm
|
||||
|
||||
it should be clean now.
|
||||
|
||||
### **2.2 Set-Up needed Environment Variables**
|
||||
|
||||
For running batch scripts without any problem I recommend to create some base environment variables.
|
||||
|
||||
**Needed Environment Variables: (Key/Value based on my installation folder)**
|
||||
|
||||
| Env Var | Path Example |
|
||||
| --------------- | ---------------------------------------------------------------------------------- |
|
||||
| BASE_LOCATION | D:\madoodia\sdks |
|
||||
| PYTHON_LOCATION | D:\madoodia\sdks |
|
||||
| QT_LOCATION | C:\Qt\5.15.0\msvc2019_64 |
|
||||
| NASM_LOCATION | C:\NASM |
|
||||
| GIT_LOCATION | "C:\Program Files\Git" |
|
||||
| CMAKE_LOCATION | "C:\Program Files\CMake" |
|
||||
| VCVARS_LOCATION | "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build" |
|
||||
|
||||
|
|
||||
|
||||
Open `doc/build_install/windows/osl_env_vars_setup.bat` in your editor and edit paths' values based on your installation folders.
|
||||
|
||||
### **2.3 Set Flags based on your needs**
|
||||
|
||||
The main build launcher is here `doc/build_install/windows/build_osl.bat`
|
||||
|
||||
For now we can not assign pre-installed llvm or boost so we have to build all together at once and put all of them in one directory.
|
||||
|
||||
I am working on it to see how we can use external llvm and boost installation without error.
|
||||
|
||||
**Table of flags we can assign to the command**
|
||||
|
||||
| Flag | State | Can Use |
|
||||
| ------------- | --------------- | ------- |
|
||||
| --osl | Implemented | Yes |
|
||||
| --python | Implemented | Yes |
|
||||
| --zlib | Implemented | Yes |
|
||||
| --boost | Implemented | Yes |
|
||||
| --llvm | Implemented | Yes |
|
||||
| --clang | Implemented | Yes |
|
||||
| --pugixml | Implemented | Yes |
|
||||
| --openexr | Implemented | Yes |
|
||||
| --tiff | Implemented | Yes |
|
||||
| --jpeg | Implemented | Yes |
|
||||
| --png | Implemented | Yes |
|
||||
| --flex | Implemented | Yes |
|
||||
| --bison | Implemented | Yes |
|
||||
| --opencolorio | Implemented | Yes |
|
||||
| --openimageio | Implemented | Yes |
|
||||
| --libraw | Implemented | Yes |
|
||||
| --pybind11 | Implemented | Yes |
|
||||
| --Ptex | Implemented | No |
|
||||
| --openvdb | Implemented | No |
|
||||
| --partio | Implemented | No |
|
||||
| --ffmpeg | Not-Implemented | No |
|
||||
| --field3d | Not-Implemented | No |
|
||||
| --opencv | Not-Implemented | No |
|
||||
| --gif | Not-Implemented | No |
|
||||
| --heif | Not-Implemented | No |
|
||||
| --squish | Not-Implemented | No |
|
||||
| --dcmtk | Not-Implemented | No |
|
||||
| --webp | Not-Implemented | No |
|
||||
|
||||
---
|
||||
|
||||
### **3. Building (Release, Debug)**
|
||||
|
||||
We Prepared some batch files to do it for you automatically.
|
||||
Based on Environment Variables you set in previous sections you can just call them and wait for it to be built and installed.
|
||||
|
||||
**My Method:**
|
||||
|
||||
- Open Powershell
|
||||
- Go to: yourPath/OpenShadingLanguage/doc/build_install/windows
|
||||
- Run build_osl.bat release
|
||||
|
||||
### **3.1 Running the code based on your config**
|
||||
|
||||
Based on the config (`Release` or `Debug`) that you send for installer it will create directory in `BASE_LOCATION` for you
|
||||
|
||||
`BASE_LOCATION/osl_release` for Release mode
|
||||
|
||||
`BASE_LOCATION/osl_debug` for Debug mode
|
||||
|
||||
**IMPORTANT:** `Good to know you can not have Release and Debug files in one directory at the same time, it makes conflict and give you weired errors. So keep them separate.`
|
||||
|
||||
### **3.2 Be Patient**
|
||||
|
||||
You should be patient because the whole process (based on your PC config) takes time between 30 minutes to 1 hour
|
||||
|
||||
And it takes:
|
||||
|
||||
**Release:** `~8Gb` of your hard disk (after installation) (Download size is `~350Mb`)
|
||||
|
||||
**Debug:** `~90Gb` of your hard disk (after installation) (Download size is `~400Mb`)
|
||||
|
||||
so please set a location to `BASE_LOCATION` that have enough space.
|
||||
|
||||
### **3.4 Errors**
|
||||
|
||||
If you got any error in any step of building process, you can remove the related package's build directory from `BASE_LOCATION/build` and run the installer again.
|
||||
|
||||
If you got any error please report to the forum of OSL.
|
||||
|
||||
---
|
||||
|
||||
### **4. Running**
|
||||
|
||||
We Prepared some batch files to do it for you automatically. Based on Environment Variables you set in previous sections you can just call it.
|
||||
|
||||
**Recommendation:** use `Powershell`
|
||||
|
||||
**TIP:** If you add your osl installation folders (both release and debug) in global Windows Environment Variable, you will get error.
|
||||
|
||||
So you can add release path or debug path in your global environment variables. Or create and use batch scripts.
|
||||
For adding path you should add these two paths to your global env variables:
|
||||
|
||||
• PATH : `<osl install dir>\bin`;
|
||||
|
||||
• PATH : `<osl install dir>\lib`;
|
||||
|
||||
For example, you can open osltoy in releae mode with running `osltoy_release_launcher.bat`
|
||||
|
||||
if you have question, feel free to ask.
|
||||
|
||||
---
|
||||
|
||||
### **5. Development in Windows**
|
||||
|
||||
After editing your code, when you want to see your changes you should build osl again. But this time, it is so faster than before, (if you keep build folders) So just need to rebuild it in release mode.
|
||||
|
||||
**Release mode**:
|
||||
|
||||
- open powershell
|
||||
- cd OpenShadingLanguage repo
|
||||
- cd build_script
|
||||
- run build_osl.bat release
|
||||
- run osl_release_sln.bat
|
||||
- example: set osltoy as default project
|
||||
- run it in release x64 mode
|
||||
|
||||
**Debug mode**:
|
||||
|
||||
- open powershell
|
||||
- cd OpenShadingLanguage repo
|
||||
- cd build_script
|
||||
- run build_osl.bat debug
|
||||
- run osl_debug_sln.bat
|
||||
- example: set osltoy as default project
|
||||
- run it in debug x64 mode
|
||||
|
||||
If you open Visual Studio solution (sln) from release or debug, you can build it from inside it after your code editing
|
||||
|
||||
I recommend using: (in **powershell**)
|
||||
|
||||
- **osl_release_sln.bat** or **osl_debug_sln.bat**
|
||||
|
||||
now you can use Visual Studio for debugging.
|
||||
|
||||
---
|
||||
|
||||
**TIP about OSLToy:**
|
||||
|
||||
If you load a shader in `osltoy` and when hit Recompile, it is crashed and closed, probabely your output color attribute name is not `Cout`
|
||||
|
||||
It is mandatory to have at least one `Cout` output Variable in any shader, Otherwise osltoy will crash.
|
||||
|
||||
That's it
|
||||
|
||||
TIP: this process is getting better, I will update the document soon
|
||||
|
||||
**Conclusion:**
|
||||
For easy installation you just need to setup your Environment Variables in `yourPath/OpenShadingLanguage/doc/build_install/windows/osl_env_vars_setup.bat` based on your paths
|
||||
|
||||
It is a custom setup, for example all dependencies are built before osl, because I had lots of issues on using external installation (like llvm)
|
||||
and I tried this method on llvm 7, 8 and 9, all with error, so my current build setup is on llvm 11 and C++14, it can be changed in code. (I am trying to make it easy to use for changing configs with arguments)
|
||||
|
||||
Please take a look at docs and let me know my mistakes.
|
||||
|
||||
This method worked fine for me for release, debug and debugging in visual studio.
|
||||
|
||||
I am trying to build OSL on `Linux` with same method. If it worked fine I will Update the build system.
|
||||
|
||||
---
|
||||
|
||||

|
||||
@@ -1,48 +0,0 @@
|
||||
@REM /* --------------------- */
|
||||
@REM Copyright Contributors to the Open Shading Language project.
|
||||
@REM SPDX-License-Identifier: BSD-3-Clause
|
||||
@REM /* --------------------- */
|
||||
|
||||
@REM Main batch file for installing OSL
|
||||
|
||||
@echo off
|
||||
|
||||
|
||||
call osl_env_vars_setup.bat
|
||||
|
||||
cls
|
||||
|
||||
set OSL_INPUT_CONFIG=%1
|
||||
|
||||
if "%OSL_INPUT_CONFIG%" equ "debug" (
|
||||
set OSL_LOCATION_DIR=osl_debug
|
||||
set OSL_BUILD_CONFIG=--debug
|
||||
goto RUN
|
||||
)
|
||||
if "%OSL_INPUT_CONFIG%" equ "release" (
|
||||
set OSL_LOCATION_DIR=osl_release
|
||||
set OSL_BUILD_CONFIG=
|
||||
goto RUN
|
||||
)
|
||||
if "%OSL_INPUT_CONFIG%" equ "" (
|
||||
echo --= Enter debug or release as argument
|
||||
exit
|
||||
)
|
||||
@REM if argument is not debug or release
|
||||
if "%OSL_INPUT_CONFIG%" neq "" (
|
||||
echo --= Enter debug or release as argument
|
||||
exit
|
||||
)
|
||||
|
||||
:RUN
|
||||
|
||||
set PATH=%CMAKE_LOCATION%/bin;GIT_LOCATION/cmd;%PYTHON_LOCATION%;%PYTHON_LOCATION%/Scripts;%QT_LOCATION%/bin;%QT_LOCATION%/lib;%NASM_LOCATION%;%PATH%
|
||||
set PYTHONPATH=%PYTHON_LOCATION%/Lib/site-packages;
|
||||
set Qt5_ROOT=%QT_LOCATION%/lib/cmake
|
||||
|
||||
call %VCVARS_LOCATION%/vcvarsall.bat x64
|
||||
|
||||
cls
|
||||
|
||||
python build_osl.py --generator "Visual Studio 16 2019" --osl --python %OSL_BUILD_CONFIG% --zlib --boost --llvm --clang --pugixml --openexr --tiff --jpeg --png --flex --bison --opencolorio --openimageio --libraw --pybind11 %BASE_LOCATION%/%OSL_LOCATION_DIR%
|
||||
|
||||
|
Before Width: | Height: | Size: 100 KiB |
@@ -1,19 +0,0 @@
|
||||
@REM /* --------------------- */
|
||||
@REM Copyright Contributors to the Open Shading Language project.
|
||||
@REM SPDX-License-Identifier: BSD-3-Clause
|
||||
@REM /* --------------------- */
|
||||
|
||||
@REM Running Visual Studio 2019 in debug mode for editing and debugging OSL
|
||||
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
call osl_env_vars_setup.bat
|
||||
|
||||
cls
|
||||
|
||||
set PATH=%PYTHON_LOCATION%;%PYTHON_LOCATION%/Scripts;%QT_LOCATION%/bin;%QT_LOCATION%/lib;%BASE_LOCATION%/osl_debug/bin;%BASE_LOCATION%/osl_debug/lib;%PATH%
|
||||
set PYTHONPATH=%PYTHON_LOCATION%/Lib/site-packages;
|
||||
|
||||
%BASE_LOCATION%\osl_debug\build\OpenShadingLanguage\OSL.sln
|
||||
@@ -1,33 +0,0 @@
|
||||
@REM /* --------------------- */
|
||||
@REM Copyright Contributors to the Open Shading Language project.
|
||||
@REM SPDX-License-Identifier: BSD-3-Clause
|
||||
@REM /* --------------------- */
|
||||
|
||||
@REM Running Visual Studio 2019 in release mode for running OSL or editing code
|
||||
|
||||
@echo off
|
||||
|
||||
@REM TIP:
|
||||
@REM for modifying env vars based on your paths
|
||||
@REM if your path has space in it, put whole path between
|
||||
@REM double quotation
|
||||
|
||||
|
||||
set BASE_LOCATION=D:/madoodia/sdks
|
||||
set PYTHON_LOCATION=C:/Python37
|
||||
set QT_LOCATION=C:/Qt/5.15.0/msvc2019_64
|
||||
set NASM_LOCATION=C:/NASM
|
||||
set GIT_LOCATION="C:/Program Files/Git"
|
||||
set CMAKE_LOCATION="C:/Program Files/CMake"
|
||||
set VCVARS_LOCATION="C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build"
|
||||
|
||||
echo --= -------------------------------------------- =--
|
||||
echo --= Environmment Variables created successfully! =--
|
||||
echo BASE_LOCATION : %BASE_LOCATION%
|
||||
echo PYTHON_LOCATION : %PYTHON_LOCATION%
|
||||
echo QT_LOCATION : %QT_LOCATION%
|
||||
echo NASM_LOCATION : %NASM_LOCATION%
|
||||
echo GIT_LOCATION : %GIT_LOCATION%
|
||||
echo CMAKE_LOCATION : %CMAKE_LOCATION%
|
||||
echo VCVARS_LOCATION : %VCVARS_LOCATION%
|
||||
echo --= -------------------------------------------- =--
|
||||
@@ -1,18 +0,0 @@
|
||||
@REM /* --------------------- */
|
||||
@REM Copyright Contributors to the Open Shading Language project.
|
||||
@REM SPDX-License-Identifier: BSD-3-Clause
|
||||
@REM /* --------------------- */
|
||||
|
||||
@REM Main batch file for installing OSL
|
||||
|
||||
@echo off
|
||||
|
||||
|
||||
call osl_env_vars_setup.bat
|
||||
|
||||
cls
|
||||
|
||||
set PATH=%PYTHON_LOCATION%;%PYTHON_LOCATION%/Scripts;%QT_LOCATION%/bin;%QT_LOCATION%/lib;%BASE_LOCATION%/osl_release/bin;%BASE_LOCATION%/osl_release/lib;%PATH%
|
||||
set PYTHONPATH=%PYTHON_LOCATION%/Lib/site-packages;
|
||||
|
||||
%BASE_LOCATION%\osl_release\build\OpenShadingLanguage\OSL.sln
|
||||
@@ -1,18 +0,0 @@
|
||||
@REM /* --------------------- */
|
||||
@REM Copyright Contributors to the Open Shading Language project.
|
||||
@REM SPDX-License-Identifier: BSD-3-Clause
|
||||
@REM /* --------------------- */
|
||||
|
||||
@REM Running OSLToy in debug mode
|
||||
|
||||
@echo off
|
||||
|
||||
|
||||
call osl_env_vars_setup.bat
|
||||
|
||||
cls
|
||||
|
||||
set PATH=%PYTHON_LOCATION%;%PYTHON_LOCATION%/Scripts;%QT_LOCATION%/bin;%QT_LOCATION%/lib;%BASE_LOCATION%/osl_debug/bin;%BASE_LOCATION%/osl_debug/lib;%PATH%
|
||||
set PYTHONPATH=%PYTHON_LOCATION%/Lib/site-packages;
|
||||
|
||||
osltoy
|
||||
@@ -1,18 +0,0 @@
|
||||
@REM /* --------------------- */
|
||||
@REM Copyright Contributors to the Open Shading Language project.
|
||||
@REM SPDX-License-Identifier: BSD-3-Clause
|
||||
@REM /* --------------------- */
|
||||
|
||||
@REM Running OSLToy in release mode
|
||||
|
||||
@echo off
|
||||
|
||||
|
||||
call osl_env_vars_setup.bat
|
||||
|
||||
cls
|
||||
|
||||
set PATH=%PYTHON_LOCATION%;%PYTHON_LOCATION%/Scripts;%QT_LOCATION%/bin;%QT_LOCATION%/lib;%BASE_LOCATION%/osl_release/bin;%BASE_LOCATION%/osl_release/lib;%PATH%
|
||||
set PYTHONPATH=%PYTHON_LOCATION%/Lib/site-packages;
|
||||
|
||||
osltoy
|
||||
@@ -1,3 +0,0 @@
|
||||
# Shader Writing in OSL
|
||||
|
||||
Contains OSL shader writing content.
|
||||
@@ -1,3 +0,0 @@
|
||||
# Web Site
|
||||
|
||||
Contains OSL web site content.
|
||||
@@ -0,0 +1,247 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
This is a custom SVG webfont generated by Font Squirrel.
|
||||
Copyright : Copyright c 2010 Daniel Rhatigansparkyultrasparkyorg with Reserved Font Name Copse
|
||||
Designer : Daniel Rhatigan
|
||||
Foundry : Daniel Rhatigan
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="CopseRegular" horiz-adv-x="1200" >
|
||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
||||
<missing-glyph horiz-adv-x="440" />
|
||||
<glyph unicode=" " horiz-adv-x="440" />
|
||||
<glyph unicode="	" horiz-adv-x="440" />
|
||||
<glyph unicode=" " horiz-adv-x="440" />
|
||||
<glyph unicode="!" horiz-adv-x="596" d="M163 120q0 29 10 54q9 26 27 44q38 40 96 41q58 -1 100 -41q42 -39 42 -84t-11 -70.5t-31 -43.5q-42 -39 -100 -40q-90 0 -123 84q-10 26 -10 56zM165 1494q0 31 134 31q133 0 133 -33l-50 -1060q0 -27 -55 -38q-15 -3 -28 -3q-86 0 -86 44z" />
|
||||
<glyph unicode=""" horiz-adv-x="760" d="M67 1534q0 49 124 49q62 0 85.5 -16.5t23.5 -28.5l-35 -398q-3 -30 -69 -30q-42 0 -59 11t-18 19zM459 1538q1 32 77 42q18 2 33 3h10q11 0 25 -1q20 -2 40 -6q48 -11 48 -42l-52 -394q-4 -30 -77 -30q-66 0 -69 30z" />
|
||||
<glyph unicode="#" horiz-adv-x="1190" d="M60 519q0 11 2 25q3 12 8 24q12 28 31 28h184l46 310h-146q-29 0 -39 52q-2 13 -2 24q0 46 15 62t26 16h168l66 445q3 18 31 19t39 1q10 0 22.5 -0.5t23.5 -2.5q26 -4 26 -17l-64 -445h287l66 445q3 18 31 19t39 1q10 0 22.5 -0.5t23.5 -2.5q26 -4 26 -17l-64 -445h162 q26 0 36 -51q2 -13 3 -24v-4q0 -9 -2 -21q-3 -14 -7 -26q-10 -28 -30 -28h-184l-45 -310h148q27 0 37 -50q2 -13 2 -24q0 -12 -2 -26q-4 -14 -8 -26q-10 -28 -29 -28h-170l-63 -442q-2 -17 -33.5 -18.5t-41.5 -1.5h-22q-11 0 -23 2q-26 3 -27 18l65 442h-286l-63 -442 q-2 -17 -33.5 -18.5t-41.5 -1.5h-22q-12 0 -24 2q-26 3 -26 18l65 442h-162q-29 0 -39 52q-2 13 -2 25zM430 596h286l46 310h-287z" />
|
||||
<glyph unicode="$" horiz-adv-x="1130" d="M65 300q0 66 45 111t109 45q65 0 109 -45q44 -46 44 -111q0 -8 -2 -18l-6 -21q-3 -11 -6.5 -21t-5.5 -17q58 -43 138 -48v506q-185 80 -253.5 141.5t-102.5 126.5t-34 152q0 86 30.5 150.5t83.5 110.5q103 90 276 113v133q0 28 71 28t71 -28v-127q153 -9 272 -79 q140 -81 140 -205q0 -64 -44 -110q-43 -44 -109 -44q-65 0 -109 44q-45 45 -45 96q0 50 29 108q-55 32 -134 36v-477q204 -94 276.5 -151t110.5 -119t38 -148q0 -87 -32 -158q-33 -70 -89 -122q-112 -103 -304 -126v-168q0 -28 -71 -28t-71 28v163q-163 11 -284 80 q-141 80 -141 199zM311 1135q0 -120 179 -216v399q-179 -32 -179 -183zM632 184q153 29 198 137q16 37 16 79t-16 72q-17 30 -46 56q-47 42 -152 91v-435z" />
|
||||
<glyph unicode="%" horiz-adv-x="1281" d="M67 0l992 1505q20 32 96 32q62 0 62 -32l-984 -1505q-22 -30 -103 -30q-63 0 -63 30zM81 1182q0 140 85 231q86 92 220 92q129 0 202 -91q66 -82 66 -208q0 -140 -85 -231q-86 -92 -221 -92q-68 0 -118 25q-48 25 -82 66q-66 81 -67 208zM238 1205q0 -147 69 -196 q24 -17 58 -17q130 0 130 189q0 148 -71 196q-25 17 -59 17q-127 0 -127 -189zM627 279q0 140 85 231q86 92 220 92q129 0 202 -91q66 -82 66 -208q0 -140 -85 -231q-86 -92 -221 -92q-68 0 -118 25q-48 25 -82 66q-66 81 -67 208zM785 305q0 -147 69 -196q24 -17 58 -17 q130 0 130 189q0 148 -71 196q-25 17 -59 17q-127 0 -127 -189z" />
|
||||
<glyph unicode="&" horiz-adv-x="1354" d="M74 376q0 125 60 228q52 89 196 233l-44 72q-89 151 -89 291q1 136 101 227q108 98 292 98q195 -1 293 -111q75 -85 75 -209q0 -120 -63 -229q-59 -102 -215 -262l255 -338q117 169 117 274q0 16 -13 16h-124q-29 0 -39 54q-2 14 -2 28q0 59 26 59h398q25 0 25 -70 q0 -71 -35 -71h-61q-22 -185 -202 -403l21 -33q31 -49 76.5 -69t115.5 -20q24 0 24 -65q0 -47 -14.5 -61.5t-24.5 -14.5h-170q-76 0 -168 103q-171 -123 -379 -123q-190 0 -310 109q-122 111 -122 287zM307 423q1 -137 63 -215q59 -74 142 -74q161 0 281 91l-369 487 q-117 -117 -117 -289zM399 1228q0 -55 15.5 -102t41.5 -95q42 -77 132 -191q165 146 165 347q-1 125 -93 169q-30 14 -73 15h-4q-41 0 -75 -12q-36 -12 -60 -33q-49 -43 -49 -98z" />
|
||||
<glyph unicode="'" horiz-adv-x="379" d="M73 1534q0 49 116 49q71 0 94 -15t23 -30l-43 -398q-3 -30 -69 -30q-74 0 -77 30z" />
|
||||
<glyph unicode="(" horiz-adv-x="636" d="M92 727q0 287 102 549q90 230 245 399q10 9 43 9q32 0 55 -21.5t23 -48.5q-208 -356 -244 -660q-12 -106 -12 -224q-1 -5 -1 -9q0 -114 13 -218q12 -107 42 -215q59 -210 202 -454q0 -45 -47 -67q-13 -6 -32 -6q-20 0 -42 12q-239 257 -319 663q-28 140 -28 291z" />
|
||||
<glyph unicode=")" horiz-adv-x="637" d="M76 -166q208 353 244 669q12 108 13 227v9q0 113 -12 216q-13 106 -43 211q-58 204 -202 448q0 27 23 48.5t47 21.5q41 0 51 -9q241 -261 319 -657q28 -138 28 -291q0 -433 -213 -777q-63 -102 -134 -177q-22 -12 -41 -12q-20 0 -33 6q-13 5 -23 15q-24 21 -24 52z" />
|
||||
<glyph unicode="*" horiz-adv-x="676" d="M66 1349q0 20 4 40t12 40q18 50 42 50l5 -1l147 -67l-17 158q0 21 52 29q13 2 25 2q11 0 26 -2q16 0 28 -4q29 -8 29 -24v-1l-20 -160l145 67q2 1 10 1t19 -14.5t19 -34.5q18 -41 18 -69q0 -29 -14 -35l-161 -33l114 -116q3 -5 3 -14q0 -10 -13 -26.5t-31 -30.5 q-44 -34 -62 -34q-19 0 -23 7l-89 145l-77 -142q-6 -7 -17 -7q-12 0 -31.5 8.5t-38.5 22.5q-46 33 -46 59q0 5 3 10l109 122l-156 30q-14 4 -14 24z" />
|
||||
<glyph unicode="+" horiz-adv-x="1042" d="M59 655q0 10 3 22q2 13 7 25q12 27 30 27h349v369q0 21 72 21t72 -21v-369h350q26 0 36 -50q2 -13 3 -24q0 -45 -14.5 -62.5t-24.5 -17.5h-350v-413q0 -21 -72 -21t-72 21v413h-348q-28 0 -38 52q-2 13 -2 25q-1 1 -1 3z" />
|
||||
<glyph unicode="," horiz-adv-x="505" d="M74 -211q106 119 106 195q-74 39 -74 129q0 59 42 99t87 40t72 -11t47 -29q44 -40 45 -99q0 -176 -265 -383q-29 0 -44.5 16t-15.5 43z" />
|
||||
<glyph unicode="-" horiz-adv-x="750" d="M112 600q0 12 2.5 27t7.5 29q12 33 31 33h447q26 0 36 -59q2 -14 2 -26q0 -52 -14.5 -71.5t-24.5 -19.5h-447q-28 0 -38 61q-2 14 -2 26z" />
|
||||
<glyph unicode="." horiz-adv-x="487" d="M106 115q0 95 84 129q26 10 55 10t54 -10q25 -12 43 -30q39 -40 39 -99q0 -92 -82 -125q-25 -10 -54 -10q-30 0 -55.5 10t-43.5 28q-40 38 -40 97z" />
|
||||
<glyph unicode="/" horiz-adv-x="913" d="M34 -141l673 1747q49 32 75 32q25 0 38 -1q12 -1 24 -5q28 -8 28 -26l-666 -1747q-40 -29 -97 -29q-46 0 -60.5 10t-14.5 19z" />
|
||||
<glyph unicode="0" d="M94 679q0 246 35.5 401.5t104 254.5t167.5 144.5t227 45.5t218 -56q91 -55 149 -155q111 -190 111 -536q0 -367 -142 -581q-144 -217 -390 -217q-240 0 -370 246q-110 206 -110 453zM327 753q0 -427 153 -562q52 -46 122 -46q69 0 120 46q50 46 84 127q66 161 67 435 q0 439 -140 561q-52 46 -131 46q-218 0 -262 -364q-13 -105 -13 -226v-17z" />
|
||||
<glyph unicode="1" d="M242 1204q0 26 16 36l458 285q91 0 91 -20v-1364h245q25 0 25 -70q0 -71 -36 -71h-723q-23 0 -23 55v3q0 47 27 75q8 8 16 8h149q91 0 105 25q4 8 4 18v967q0 61 -21 61q-7 0 -27 -8l-46 -18q-26 -10 -55 -23t-56 -23q-66 -26 -80 -26t-26 9q-11 9 -21 23q-22 31 -22 58z " />
|
||||
<glyph unicode="2" d="M143 1174q0 76 40.5 143t104.5 113q131 94 307 95q199 0 321 -89q123 -90 123 -241v-2q0 -231 -186 -410q-53 -52 -113 -101l-120 -98q-223 -182 -282 -373h553l40 137q27 22 55 22q55 0 79 -51l-46 -319h-846v75q0 279 200 499q57 62 117 118l116 110q125 118 173 226 q27 61 27 150t-65 141t-180 52q-125 0 -185 -71q32 -16 53 -54t21 -77t-12 -67t-32 -49q-42 -44 -109 -44q-65 0 -109 44q-45 45 -45 121z" />
|
||||
<glyph unicode="3" d="M145 340v2q0 65 45 110q44 44 109 44q60 0 105 -42q46 -43 46 -113t-72 -136q60 -71 185 -71q117 0 189 76q74 77 74 206q0 116 -71 204q-77 96 -210 111v93q173 49 237 189q26 55 26 117t-17 103t-49 72q-67 66 -179 66q-125 0 -185 -71q32 -16 53 -54t21 -77t-12 -67 t-32 -49q-43 -44 -109 -44q-65 0 -109 44q-45 45 -45 121t40.5 143t104.5 113q131 94 307 95q194 0 310 -105q112 -102 112 -259v-2q0 -187 -157 -303q-44 -33 -91 -54q125 -63 180 -123q108 -120 108 -273v-2q0 -166 -131 -291q-139 -133 -346 -133q-164 0 -294 94 q-143 104 -143 266z" />
|
||||
<glyph unicode="4" d="M96 485l459 1040q175 0 175 -132l-416 -823h382v348q0 102 211 102v-450h183q25 0 25 -62q0 -52 -17 -72t-28 -20h-163v-275h147q25 0 25 -70q0 -71 -36 -71h-625q-23 0 -23 55v3q0 47 27 75q8 8 16 8h149q91 0 105 25q4 8 4 18v232h-553q-41 24 -47 69z" />
|
||||
<glyph unicode="5" d="M145 340q0 66 45 111t109 45q65 0 109 -45q44 -46 44 -112t-74 -134q60 -71 197 -71q111 0 185 76q80 82 80 218q0 153 -97 244q-94 88 -254 88h-244v745h758q0 -110 -12 -143q-25 -68 -98 -68h-494v-380h154q248 0 391 -146q129 -132 129 -329q0 -209 -139 -335 q-137 -123 -355 -124q-162 0 -291 94q-143 104 -143 266z" />
|
||||
<glyph unicode="6" d="M109 710q0 404 182 624q157 191 367 191h2q299 -1 384 -205q28 -68 28 -128t-12 -88.5t-33 -49.5q-45 -45 -109 -45t-108 45q-44 46 -45 111q0 97 74 135q-60 71 -177 71h-2q-126 0 -217 -145q-101 -160 -101 -417q69 72 204 100q49 10 130 10q80 0 165 -32 q85 -31 146 -93q128 -129 128 -351q0 -206 -156 -339q-146 -124 -331 -124q-519 0 -519 730zM342 577q0 -168 70 -299q78 -144 202 -144q116 0 191 88q77 91 77 237q0 123 -70 211q-76 94 -188 95q-58 0 -104 -17.5t-82 -45.5q-68 -53 -96 -125z" />
|
||||
<glyph unicode="7" d="M91 1215l38 290h972q35 0 35 -65l-148 -258q-138 -247 -199.5 -403.5t-93.5 -270.5q-64 -226 -87 -508q0 -20 -116 -20q-117 0 -117 20q53 556 331 1014q88 144 193 296h-637l-37 -124q-6 -19 -44 -19q-84 0 -90 48z" />
|
||||
<glyph unicode="8" d="M93 389v3q0 234 264 444q-87 72 -122 128q-71 112 -71 236q0 132 124 227q127 98 316 98q205 0 333 -101q115 -91 115 -219q0 -189 -140 -347q-38 -44 -76 -80q139 -75 187.5 -132t69 -113t20.5 -141q0 -86 -40.5 -164t-108.5 -133q-141 -115 -339 -115q-259 0 -399 116 q-133 109 -133 293zM326 413q0 -123 76 -200q78 -79 208 -79q121 0 201 86q69 74 69 145t-28.5 121t-80.5 96q-78 68 -284 179q-161 -172 -161 -348zM366 1201q0 -62 27 -107t73 -86q71 -64 236 -158q145 187 145 307v3q0 94 -73 154q-68 57 -170 57q-111 -1 -177 -57 q-61 -52 -61 -113z" />
|
||||
<glyph unicode="9" d="M92 1062q0 206 156 339q146 124 331 124q519 0 519 -730q0 -621 -318 -769q-100 -46 -201 -46t-176 23t-135 69q-133 101 -133 266v2q0 66 45 111t109 45q65 0 109 -45q44 -46 44 -111q0 -97 -74 -135q60 -71 198 -71q129 0 209 134q90 151 90 428q-64 -72 -204 -100 q-49 -10 -129 -10q-81 0 -166 32t-146 94q-128 129 -128 350zM325 1043q0 -122 69 -209q74 -94 189 -94q58 0 104 18q45 16 81 44q70 54 97 126q-1 197 -71 318q-73 125 -201 125q-116 -1 -191 -89q-77 -91 -77 -236v-3z" />
|
||||
<glyph unicode=":" horiz-adv-x="559" d="M142 162q0 60 39 100q38 40 82 40h1q45 -1 70 -12q26 -10 44 -28q39 -39 39 -97v-6q0 -56 -39 -95q-38 -38 -83 -38q-2 -1 -4 -1q-42 0 -67 10q-25 11 -43 29q-39 40 -39 98zM142 772q0 58 39 98q37 38 83 39h4q42 0 66 -10q26 -11 44 -29q39 -39 39 -95v-6 q0 -56 -39 -95q-38 -38 -84 -39q-76 0 -114 39.5t-38 97.5z" />
|
||||
<glyph unicode=";" horiz-adv-x="573" d="M110 -211q106 119 106 195q-74 39 -74 129q0 59 42 99t87 40t72 -11t47 -29q44 -40 45 -99q0 -176 -265 -383q-29 0 -44.5 16t-15.5 43zM147 772q0 94 82 127q25 10 55 10q29 0 54 -10q26 -11 44 -29q39 -39 39 -95v-6q0 -56 -39 -95q-38 -38 -84 -39q-74 0 -112.5 38.5 t-38.5 98.5z" />
|
||||
<glyph unicode="<" horiz-adv-x="1075" d="M56 641q0 60 53 90l791 443q46 -15 62 -73q4 -17 5 -33l-636 -426l636 -446q0 -76 -62 -100l-799 462q-50 30 -50 83z" />
|
||||
<glyph unicode="=" horiz-adv-x="1165" d="M118 838q0 46 15 62t26 16h846q27 0 37 -51q2 -13 2 -24t-2 -25q-4 -14 -8 -26q-10 -28 -29 -28h-846q-29 0 -39 52q-2 13 -2 24zM122 466q0 11 2.5 24.5t7.5 25.5q12 27 30 27h843q27 0 37 -50q2 -13 2 -24q0 -12 -2 -26q-4 -14 -8 -26q-10 -28 -29 -28h-842 q-29 0 -39 52q-2 13 -2 25z" />
|
||||
<glyph unicode=">" horiz-adv-x="1074" d="M108 196l636 446l-636 426q0 57 38 90q12 11 29 16l791 -443q53 -30 53 -90q0 -53 -50 -83l-799 -462q-62 24 -62 100z" />
|
||||
<glyph unicode="?" horiz-adv-x="947" d="M56 1267q0 53 22 89.5t58 64t80.5 47.5t90.5 32q90 24 176 25h2q84 0 161 -29q78 -29 130 -78q106 -99 107 -251q0 -149 -117 -271q-52 -54 -116 -103l-129 -101v-247q0 -45 -63 -59q-18 -4 -38 -4q-94 0 -94 63v270q36 33 76 63l77 60q90 73 124 122q63 93 63 187 q0 101 -63 163q-62 60 -166 61q-81 0 -124 -11q23 -41 23 -79t-11 -63.5t-30 -43.5q-41 -40 -85 -40t-70 10q-25 12 -44 30q-40 39 -40 93zM281 119q0 30 10.5 55.5t29.5 43.5q42 40 86 41h3q41 0 66 -11q25 -12 44 -30q41 -40 41 -84q0 -45 -11 -70.5t-30 -43.5 q-41 -40 -85 -40t-69.5 10.5t-44.5 29t-29.5 44t-10.5 55.5z" />
|
||||
<glyph unicode="@" horiz-adv-x="1843" d="M68 459q0 398 249 650q156 158 381 217q111 29 266 29t308.5 -63t261.5 -174q226 -231 226 -589q0 -225 -129 -381q-131 -159 -329 -159h-3q-103 0 -143 52q-14 18 -24 44q-83 -67 -211 -95q-46 -10 -95 -10q-366 0 -366 532q0 228 138 373q132 139 331 139 q100 0 233 -37l40 51q6 2 12 2h15q59 0 104 -36q13 -10 19 -23l-55 -215v-577q0 -35 9 -44q14 -15 53 -15t80.5 25t76.5 75q82 118 82 279q0 160 -45 282.5t-131 213.5q-184 196 -492 196q-310 -1 -499 -195q-198 -203 -198 -558q1 -286 183 -465q186 -183 471 -183t461 116 q46 -20 76 -84q8 -18 11 -34q-217 -148 -523 -148q-390 0 -614 210q-230 216 -230 599zM665 512q0 -105 16 -176.5t43 -116.5q51 -85 143 -85q115 0 235 100v571q-83 65 -188 65q-158 0 -224 -184q-25 -70 -25 -174z" />
|
||||
<glyph unicode="A" horiz-adv-x="1424" d="M-12 57q0 52 24 76q8 8 36 8q74 0 97 57l509 1307q8 20 39 20q67 0 75 -20l533 -1364h117q26 0 26 -60q0 -50 -14.5 -65.5t-24.5 -15.5h-485q-25 0 -25 55q0 52 15 69t26 17q124 0 124 24q0 9 -8 25l-119 309h-507l-139 -358h172q26 0 26 -58q0 -52 -13.5 -67.5 t-22.5 -15.5h-436q-25 0 -25 57zM485 653h389l-193 504z" />
|
||||
<glyph unicode="B" horiz-adv-x="1329" d="M74 1446q0 59 26 59h514q543 0 543 -368q0 -114 -82 -205q-79 -87 -194 -118q169 -24 269 -124q99 -100 99 -252q0 -318 -316 -415q-108 -33 -255 -33l-251 10h-302q-25 0 -25 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163 q-29 0 -39 54q-2 14 -2 28zM502 298q0 -79 39.5 -116.5t133.5 -37.5q93 0 157 14t105 48q79 65 79 231q0 143 -132 225q-113 71 -274 71h-108v-435zM502 887h153q186 0 246 118q23 45 23 118t-28 119t-82 70q-87 39 -312 39v-464z" />
|
||||
<glyph unicode="C" horiz-adv-x="1274" d="M102 734q0 386 194 596q180 195 478 195h3q157 0 288 -76q145 -84 145 -208q0 -64 -44 -110q-43 -44 -109 -44q-65 0 -109 44q-45 45 -45 106q0 60 22 98q-59 36 -155 36t-176 -39q-78 -39 -136 -111q-122 -153 -123 -398q0 -507 249 -637q79 -42 161 -42q1 0 2 1 q82 0 130.5 13t87.5 31.5t69 38.5q58 40 73 40q14 0 28 -11t26 -27q27 -35 27 -61q0 -27 -18.5 -43.5t-57 -42t-94.5 -48.5q-135 -55 -277 -55t-255 44q-112 45 -198 138q-186 202 -186 572z" />
|
||||
<glyph unicode="D" horiz-adv-x="1517" d="M73 1442q0 63 26 63h582q395 0 569 -190q162 -177 163 -557v-3q0 -380 -229 -579q-202 -175 -503 -176h-553q-27 0 -27 57q0 46 26 76q7 8 34 8q26 0 55 3q30 2 46 7q28 9 28 33v1166q0 14 -12 14h-164q-28 0 -38 52q-2 14 -3 26zM501 154h147q214 0 364 139 q168 157 168 430q0 468 -292 589q-94 39 -215 39h-172v-1197z" />
|
||||
<glyph unicode="E" horiz-adv-x="1288" d="M73 1442q0 63 26 63h1100v-291q0 -34 -70 -34q-71 0 -71 22q0 84 -22 108q-39 41 -142 41h-393v-503h254q46 0 54 22q13 32 13 129q0 23 60 23q52 0 67 -14t15 -23v-428q0 -41 -72 -41t-72 27v151h-319v-540h530l76 149q10 19 38 19q27 0 42 -3t27 -8q27 -11 27 -30 q0 -5 -1 -7l-92 -274h-1020q-27 0 -27 59q1 51 25 75q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1166q0 14 -12 14h-164q-28 0 -38 52q-2 14 -3 26z" />
|
||||
<glyph unicode="F" horiz-adv-x="1236" d="M73 1442q0 63 26 63h1100v-291q0 -34 -70 -34q-71 0 -71 22q0 84 -22 108q-39 41 -142 41h-393v-503h254q46 0 54 22q13 32 13 129q0 23 60 23q52 0 67 -14t15 -23v-428q0 -41 -72 -41t-72 27v151h-319v-553h215q26 0 26 -61q0 -48 -15 -64t-26 -16h-573q-27 0 -27 59 q1 51 25 75q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1166q0 14 -12 14h-164q-28 0 -38 52q-2 14 -3 26z" />
|
||||
<glyph unicode="G" horiz-adv-x="1363" d="M100 777q0 157 52 305q51 150 141 248q178 195 477 195h8q183 0 313 -75q142 -81 142 -209q-1 -64 -45 -110q-43 -44 -108 -44t-109 44q-45 45 -45 107q0 61 16 98q-77 35 -173 35q-97 0 -177 -39q-78 -39 -136 -111q-122 -153 -123 -398v-4q0 -504 247 -633 q79 -42 190 -42q2 0 3 1q113 0 214 41v289q0 16 -13 16h-163q-29 1 -39 55q-2 14 -2 27q0 59 26 59h483q25 0 25 -70q0 -71 -35 -71h-71v-344q-84 -72 -154 -103q-147 -64 -323 -64q-167 0 -310 94q-221 146 -289 446q-22 100 -22 257z" />
|
||||
<glyph unicode="H" horiz-adv-x="1612" d="M73 1444q0 61 26 61h592q25 0 25 -70q0 -71 -35 -71h-180v-516h610v500q0 16 -12 16h-164q-29 0 -39 53q-2 14 -2 27q0 61 27 61h591q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q27 0 27 -61q0 -49 -15.5 -64.5t-25.5 -15.5h-531q-24 0 -24 57q0 51 27 77q8 8 32 8h3 q4 -1 9 -1q23 0 47 3q28 2 44 7q28 9 28 33v510h-610v-553h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-532q-23 0 -23 57v3q0 47 27 74q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-28 0 -38 53q-2 14 -3 27z" />
|
||||
<glyph unicode="I" horiz-adv-x="791" d="M74 1446q0 59 26 59h592q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-532q-23 0 -23 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28z" />
|
||||
<glyph unicode="J" horiz-adv-x="756" d="M-53 -303q0 95 83 129q25 10 54 10q75 0 117 -67q72 45 72 231v1348q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28q0 59 26 59h592q25 0 25 -70q0 -71 -35 -71h-180v-1296q0 -187 -100 -339q-70 -104 -178 -147q-56 -22 -103 -22q-48 0 -73 10q-26 10 -44 28 q-39 39 -39 96v3z" />
|
||||
<glyph unicode="K" horiz-adv-x="1487" d="M74 1446q0 59 26 59h540q25 0 25 -70q0 -71 -35 -71h-128v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-532q-23 0 -23 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28zM569 796l525 568h-132 q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h437q25 0 25 -57q0 -52 -24 -76q-8 -8 -24 -8q-17 0 -34 -3.5t-29 -9.5q-20 -10 -38 -30l-457 -518l440 -573q35 -46 78.5 -67.5t113.5 -21.5q24 0 24 -65q0 -47 -14.5 -61.5t-24.5 -14.5h-170q-69 0 -139 62q-20 18 -36 40z" />
|
||||
<glyph unicode="L" horiz-adv-x="1183" d="M73 1449q0 9 2 17q1 10 4 18q7 20 20 21h592q25 0 25 -70q0 -71 -35 -71h-180v-1210h469l77 149q10 19 38 19q27 0 42 -3t27 -8q28 -12 28 -30q0 -5 -1 -7l-93 -274h-966q-23 0 -23 59v3q0 45 27 72q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164 q0 16 -13 16h-163q-28 0 -38 54q-2 14 -2 26q-1 2 -1 5z" />
|
||||
<glyph unicode="M" horiz-adv-x="1969" d="M74 1446q0 59 26 59h298q28 0 41 -29l549 -1156l481 1165q9 20 26 20h375q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-530q-25 0 -25 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v935l-449 -1119 q-12 -12 -40 -12q-54 0 -75 12l-460 1023v-882h167q26 0 26 -61q0 -48 -15 -64t-26 -16h-472q-25 0 -25 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28z" />
|
||||
<glyph unicode="N" horiz-adv-x="1667" d="M74 1446q0 59 26 59h348l793 -1160v1003q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28q0 59 26 59h534q25 0 25 -70q0 -71 -35 -71h-179v-1366q0 -18 -74 -18q-71 0 -82 18l-794 1129v-986h168q27 0 27 -61q0 -50 -15 -65t-27 -15h-473q-25 0 -25 57q0 49 28 77q8 8 31 8 h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28z" />
|
||||
<glyph unicode="O" horiz-adv-x="1501" d="M102 731q0 386 192 597q179 197 480 197q303 -1 465 -215q159 -210 159 -594q0 -366 -200 -562q-176 -174 -464 -174q-132 0 -246 44q-114 45 -200 137q-186 200 -186 570zM332 823q0 -505 249 -636q80 -42 172 -42q91 0 164 30q73 31 129 99q122 149 122 455 q0 265 -122 447q-124 184 -305 184q-175 0 -289 -145q-120 -151 -120 -392z" />
|
||||
<glyph unicode="P" horiz-adv-x="1221" d="M73 1446q0 59 27 59h556q231 -1 367 -111q137 -111 137 -304q0 -461 -659 -461v-488h223q26 0 26 -61q0 -48 -15 -64t-26 -16h-586q-24 0 -24 56v3q0 48 27 75q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1165q0 15 -13 15h-163q-28 0 -38 54q-2 14 -3 28z M501 783q210 1 304 51q122 65 122 230v3q0 166 -99 227q-92 57 -327 57v-568z" />
|
||||
<glyph unicode="Q" horiz-adv-x="1502" d="M103 727v4q0 386 192 597q179 197 480 197q303 -1 465 -215q159 -210 159 -594q0 -410 -242 -600q-74 -58 -161 -91q165 -310 392 -310q108 0 248 84q7 4 18 4q10 0 24 -9q16 -10 28 -25q28 -34 28 -65t-22 -46.5t-55 -31.5q-33 -18 -78 -32q-101 -33 -212 -33h-7 q-363 0 -620 419h-8q-276 0 -444 182q-185 200 -185 565zM333 823q0 -505 249 -636q80 -42 172 -42q91 0 164 30q73 31 129 99q122 149 122 455q-1 265 -123 447q-124 184 -304 184q-176 0 -290 -145q-119 -150 -119 -388v-4z" />
|
||||
<glyph unicode="R" horiz-adv-x="1355" d="M73 1446q0 59 27 59h556q231 -1 367 -111q137 -111 137 -304q0 -302 -291 -408l280 -452q30 -49 76 -69t116 -20q24 0 24 -65q0 -47 -14.5 -61.5t-24.5 -14.5h-170q-76 0 -141 60q-20 18 -34 42l-328 534q-63 -7 -152 -7v-488h223q26 0 26 -61q0 -48 -15 -64t-26 -16 h-586q-24 0 -24 56v3q0 48 27 75q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1165q0 15 -13 15h-163q-28 0 -38 54q-2 14 -3 28zM501 783q210 1 304 51q122 65 122 230v3q0 166 -99 227q-92 57 -327 57v-568z" />
|
||||
<glyph unicode="S" horiz-adv-x="1177" d="M83 260q0 66 45 111t109 45q65 0 109 -45q44 -46 44 -99t-28 -103q65 -35 161 -35t154 18q57 16 99 48q88 67 89 177v1q0 126 -205 244q-58 34 -126 67l-143 73q-273 144 -273 385q0 185 150 287q134 91 341 91h9q154 0 286 -69q158 -81 158 -215q0 -64 -44 -110 q-43 -44 -109 -44q-65 0 -109 44q-45 45 -45 110q0 53 29 94q-59 36 -141 36q-83 0 -137 -15q-54 -14 -94 -42q-82 -57 -83 -163v-2q0 -78 87 -141q42 -32 104 -64l135 -70q221 -110 310 -203q111 -115 111 -276q0 -184 -144 -299.5t-365 -115.5q-170 0 -315 71 q-169 83 -169 209z" />
|
||||
<glyph unicode="T" horiz-adv-x="1275" d="M18 1228v4l38 273h1161l38 -273v-4q0 -36 -55 -48q-12 -3 -25 -3h-6q-39 0 -48 26l-44 148h-335v-1210h168q27 0 27 -67q0 -43 -15.5 -58.5t-25.5 -15.5h-531q-24 0 -24 57q0 51 27 77q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q27 8 27 33v1167h-335l-44 -148 q-9 -26 -50 -26q-50 1 -76 31q-8 10 -8 20z" />
|
||||
<glyph unicode="U" horiz-adv-x="1545" d="M41 1444q0 61 26 61h572q25 0 25 -70q0 -71 -35 -71h-160v-786q0 -341 194 -411q61 -22 141 -22t142 25.5t102 78.5q78 103 78 326v773q0 16 -13 16h-144q-29 0 -39 54q-2 14 -2 28q0 59 26 59h516q26 0 26 -64q0 -48 -13.5 -62.5t-22.5 -14.5h-169v-809 q0 -575 -519 -575q-280 0 -402 152q-112 139 -112 437v779q0 16 -13 16h-163q-28 0 -38 54q-2 14 -3 26z" />
|
||||
<glyph unicode="V" horiz-adv-x="1426" d="M-19 1424q0 49 14 65t25 16h485q25 0 25 -55q0 -53 -15.5 -69.5t-25.5 -16.5q-124 0 -124 -24q0 -9 8 -25l371 -967l375 1016h-153q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h436q25 0 25 -57q0 -52 -24 -76q-9 -8 -37 -8q-76 0 -96 -57l-503 -1307q-8 -20 -61 -20 q-49 0 -59 20l-540 1364h-110q-26 0 -26 60z" />
|
||||
<glyph unicode="W" horiz-adv-x="2059" d="M-37 1424q0 49 14 65t25 16h485q25 0 25 -55q0 -53 -15.5 -69.5t-25.5 -16.5q-124 0 -124 -24q0 -9 8 -25l360 -939l229 691l-116 297h-117q-26 0 -26 60q0 49 14 65t25 16h485q25 0 25 -55q0 -53 -15.5 -69.5t-25.5 -16.5q-124 0 -124 -24q0 -9 8 -25l359 -939l297 988 h-156q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h436q25 0 25 -57q0 -52 -24 -76q-8 -8 -36 -8q-74 0 -97 -57l-410 -1307q-6 -20 -41 -20q-71 0 -79 20l-331 848l-277 -848q-6 -20 -55 -20t-59 20l-541 1364h-109q-26 0 -26 60z" />
|
||||
<glyph unicode="X" horiz-adv-x="1383" d="M17 61q0 47 26 73q7 7 28 7t45.5 4.5t41.5 12.5q28 12 47 38l349 569l-375 599h-122q-27 0 -27 58q0 50 14.5 66.5t24.5 16.5h511q23 0 23 -57q0 -53 -15.5 -68.5t-26.5 -15.5q-111 0 -111 -22q0 -7 9 -25l257 -411l318 458h-165q-26 0 -26 59q0 51 13.5 66.5t22.5 15.5 h441q24 0 24 -58q0 -51 -15 -67t-25 -16q-72 0 -110 -43l-387 -560l349 -557q34 -56 134 -62q19 -1 37 -1h17q26 0 26 -61q0 -48 -15 -64t-26 -16h-528q-27 0 -27 61q0 47 28 73q8 7 14 7h129l-299 477l-275 -447q-7 -10 -7 -17q0 -13 18 -13h105q26 0 26 -60q0 -49 -15 -65 t-26 -16h-429q-26 0 -26 61z" />
|
||||
<glyph unicode="Y" horiz-adv-x="1284" d="M-31 1424q0 49 14 65t25 16h493q25 0 25 -57q0 -52 -15 -68t-26 -16q-106 0 -106 -35q0 -10 6 -22l285 -572l316 629h-156q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h436q25 0 25 -57q0 -52 -24 -76q-9 -8 -37 -8q-66 0 -88 -43l-397 -762v-418h245q26 0 26 -61 q0 -48 -15 -64t-26 -16h-717q-25 0 -25 57v3q0 47 27 74q7 7 14 7h151q91 0 105 25q4 8 4 18v375l-437 805h-112q-26 0 -26 60z" />
|
||||
<glyph unicode="Z" horiz-adv-x="1280" d="M80 0v75l822 1276h-644l-44 -148q-9 -26 -50 -26q-50 1 -76 31q-8 10 -8 20v4l38 273h1084l-3 -68l-825 -1283h626l77 149q10 19 38 19q27 0 42 -3t27 -8q28 -12 28 -30q0 -5 -1 -7l-93 -274h-1038z" />
|
||||
<glyph unicode="[" horiz-adv-x="654" d="M185 -160v1831h429q33 0 33 -70q0 -71 -33 -71h-234v-1549h234q30 0 30 -70q0 -71 -30 -71h-429z" />
|
||||
<glyph unicode="\" horiz-adv-x="913" d="M41 1606q0 32 75 32q41 0 90 -32l673 -1747q0 -29 -75 -29q-57 0 -97 29z" />
|
||||
<glyph unicode="]" horiz-adv-x="654" d="M7 1601q0 70 33 70h429v-1831h-429q-30 0 -30 71q0 70 30 70h234v1549h-234q-33 0 -33 71z" />
|
||||
<glyph unicode="^" horiz-adv-x="1180" d="M59 920l453 489q30 35 64 35q50 0 83 -35l459 -491q0 -38 -20 -61t-56 -23l-462 405l-445 -405q-76 0 -76 86z" />
|
||||
<glyph unicode="_" horiz-adv-x="1178" d="M0 -164h1178v-123h-1178v123z" />
|
||||
<glyph unicode="`" horiz-adv-x="1065" d="M211 1423q0 109 90 147q25 11 54 11h5l273 -285q-1 -43 -21 -66q-36 -42 -77 -42z" />
|
||||
<glyph unicode="a" horiz-adv-x="1045" d="M69 261v3q0 153 113 239q99 76 247 76h247q0 167 -27.5 215.5t-66 67t-102.5 18.5h-102q12 -26 12 -59t-10 -58q-12 -25 -30 -43q-38 -38 -97 -39q-93 0 -127 82q-10 25 -10 62q0 36 21 68t55.5 55t78 37t88.5 22q79 14 173 14q93 0 161.5 -30t108.5 -81q69 -89 69 -252 v-517h168q27 0 27 -59q0 -26 -10 -51.5t-31 -30.5q-56 -16 -160 -16q-105 0 -117 3.5t-22 12.5q-19 17 -38 69q-122 -89 -294 -89q-154 0 -242 82q-83 76 -83 199zM271 291q0 -118 98 -148q29 -9 61 -9q126 0 246 100v195h-218q-80 0 -118 -27q-69 -48 -69 -111z" />
|
||||
<glyph unicode="b" horiz-adv-x="1099" d="M-70 1491q0 44 26.5 54.5t70.5 17.5t93 11q93 8 177 9q43 0 45 -85v-559q138 82 247 82q108 0 183 -35q76 -36 130 -102q115 -140 115 -374v-8q0 -241 -139 -383q-130 -133 -336 -133q-80 0 -180 60q-24 14 -41 23l-70 -85q-10 -6 -25 -6q-30 0 -79 24q-43 21 -45 42 l45 181v1184h-176q-29 0 -39 52q-2 14 -2 30zM342 207q95 -67 188 -67q191 0 256 182q26 72 26 181t-25 175q-25 64 -62 102q-66 66 -160 67q-87 0 -169 -49q-30 -18 -54 -45v-546z" />
|
||||
<glyph unicode="c" horiz-adv-x="1004" d="M82 510q0 240 145 380q136 130 347 131q226 -1 313 -99q33 -38 33 -81t-10 -68q-12 -25 -30 -43q-40 -39 -97 -39t-97 39q-40 38 -40 76t9 74h-93q-104 0 -179 -79q-96 -101 -96 -291q0 -278 155 -352q49 -24 100 -24t92 11t80 29q40 17 76 39l71 43q4 3 14 3 q9 0 23 -11.5t26 -27.5q26 -38 26 -63t-11 -34q-191 -143 -416 -143q-209 0 -327 145q-114 140 -114 385z" />
|
||||
<glyph unicode="d" horiz-adv-x="1147" d="M83 512v3q0 240 149 379q136 127 351 127q101 0 176 -20v408h-176q-29 0 -39 49q-2 14 -2 30q0 48 27 58t71 17t92 11q92 8 177 9h1q42 0 44 -85v-1358h168q26 0 26 -60q0 -45 -15 -62t-22.5 -17.5t-28 -3t-52.5 -5.5q-87 -8 -135 -8q-49 0 -63 4q-14 3 -24 12 q-19 16 -38 69q-122 -89 -287 -89q-194 0 -299 146q-101 140 -101 386zM288 512q0 -105 21 -176.5t53 -116.5q62 -85 148 -85q129 0 249 100v568q-83 65 -188 65q-187 0 -257 -181q-26 -69 -26 -174z" />
|
||||
<glyph unicode="e" horiz-adv-x="1041" d="M81 514q0 124 41 220q40 94 108 158q138 128 341 129h3q186 0 287 -117q101 -116 101 -335q0 -47 -43 -81q-42 -33 -106 -33h-527q18 -234 163 -300q46 -21 97 -21t91 11.5t77 29t72 39.5q73 46 86 46q12 -1 26 -12q12 -12 24 -28q26 -38 27 -64v-2q0 -24 -11 -32 q-183 -142 -416 -142q-209 0 -326 146q-115 142 -115 388zM286 605h471v4q0 198 -115 244q-36 14 -80 14t-92 -16q-48 -17 -88 -49q-89 -73 -96 -197z" />
|
||||
<glyph unicode="f" horiz-adv-x="792" d="M64 847q0 110 13.5 132t29.5 22h10q116 0 132 23q6 8 6 20v126q0 288 179 379q66 34 135 34t107 -7t68 -26q70 -43 70 -133q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55v32h-1q-81 0 -87 -169q-2 -48 -2 -96v-183h269q25 0 25 -59q0 -58 -24 -86 q-7 -9 -19 -9h-251v-706h226q27 0 27 -61q0 -48 -15 -64t-26 -16h-569q-27 0 -27 61q0 48 15 64t26 16h10q116 0 132 23q6 8 6 20v663h-191z" />
|
||||
<glyph unicode="g" horiz-adv-x="1130" d="M63 -166q0 43 14.5 82t38.5 72q24 34 55 64l64 65q-12 15 -24 29t-21 30q-21 38 -21 91q0 52 84 141q-68 45 -106.5 115.5t-38.5 157.5t38.5 150.5t99.5 104.5q119 80 282 80q59 0 117 -15h366q90 0 111 -61q6 -18 6 -39t-9 -40t-23 -31q-30 -26 -66 -26q-2 -1 -3 -1 q-34 0 -51 11q-16 11 -34 26q-48 41 -116 52q76 -86 76 -180t-37.5 -161t-98.5 -112q-123 -91 -298 -91q-39 0 -75 6q-34 -42 -34 -76t34.5 -58.5t91.5 -24.5h203q196 0 282 -85q67 -66 67 -192q0 -136 -128 -238q-151 -120 -416 -120q-217 0 -337 98q-50 41 -71.5 87 t-21.5 89zM258 -137q0 -149 241 -149q135 0 233 57q110 63 110 157q0 79 -108 107q-38 10 -93 10h-272l-34 -37q-77 -84 -77 -145zM318 690q0 -1 1 -1q0 -90 48 -138.5t110 -48.5t99.5 17t63.5 47q51 59 51 146v3q0 69 -49 119q-50 52 -110 52t-97 -14t-63 -40 q-54 -54 -54 -142z" />
|
||||
<glyph unicode="h" horiz-adv-x="1249" d="M-7 1489q0 46 27 56.5t71 17.5q45 7 93 11q92 8 176 9q42 0 44 -85q0 -25 1 -52v-535q129 74 259 102q38 8 62 8q196 0 266 -102q54 -78 54 -276v-502h156q26 0 26 -61q0 -48 -15 -64t-26 -16h-454q-27 0 -27 61q0 48 15 64t26 16q104 0 104 43v297q0 192 -22 248.5 t-56.5 80t-93.5 23.5q-134 0 -274 -112v-580h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q116 0 131 23q6 8 6 20v1225h-176q-28 1 -38 51q-2 14 -3 29z" />
|
||||
<glyph unicode="i" horiz-adv-x="662" d="M34 927q0 46 27 56.5t71 17.5t92 11q92 8 177 9h1q42 0 44 -85v-795h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q117 0 132 23q5 7 5 17v666h-176q-29 1 -39 51q-2 14 -2 29zM190 1409q0 95 83 129q25 10 54 10q58 0 97.5 -39.5 t39.5 -99.5q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55z" />
|
||||
<glyph unicode="j" horiz-adv-x="568" d="M-92 -303q0 95 83 129q25 10 54 10q73 0 99 -67q90 0 90 231v847h-176q-30 1 -38 49q-2 14 -3 29q0 46 26 57q105 39 341 39h1q41 0 43 -85q0 -24 1 -52v-816q0 -191 -92 -339q-105 -169 -292 -169q-93 0 -127 82q-10 25 -10 55zM172 1409q0 95 84 129q26 10 54 10 q58 0 97.5 -39.5t39.5 -99.5v-3q0 -57 -39 -96q-38 -38 -98 -38q-94 0 -128 82q-10 25 -10 55z" />
|
||||
<glyph unicode="k" horiz-adv-x="1209" d="M-7 1489q0 46 27 56.5t71 17.5q45 7 93 11q92 8 176 9q42 0 44 -85q0 -25 1 -52v-1305h105q27 0 27 -61q0 -49 -15.5 -64.5t-25.5 -15.5h-448q-26 0 -26 61q0 48 15 64t26 16h10q116 0 131 23q6 8 6 20v1225h-176q-28 1 -38 51q-2 14 -3 29zM417 600l403 401h212 q28 0 38 -52q2 -14 2 -27q0 -62 -26 -62q-97 0 -132 -14.5t-51 -30.5l-219 -222l350 -385q60 -67 160 -67q27 0 27 -63q0 -46 -15 -62t-26 -16h-261z" />
|
||||
<glyph unicode="l" horiz-adv-x="621" d="M-7 1489q0 46 27 56.5t71 17.5q45 7 93 11q92 8 176 9q42 0 44 -85q0 -25 1 -52v-1305h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q116 0 131 23q6 8 6 20v1225h-176q-28 1 -38 51q-2 14 -3 29z" />
|
||||
<glyph unicode="m" horiz-adv-x="1931" d="M34 924q0 47 26.5 57.5t67.5 18.5t86 12q90 10 135 10h4q44 -1 53 -10q10 -10 14 -26q5 -17 5 -71v-19q151 84 275 115q40 10 67 10q185 0 266 -141q155 90 301 129q44 12 107 12t125 -26.5t98 -76.5q64 -88 64 -280v-497h155q27 0 27 -70q0 -71 -37 -71h-459 q-26 0 -26 61q0 49 24 73q7 7 15 7h2q104 0 104 43v297q0 194 -22 254.5t-56.5 86t-93.5 25.5q-111 0 -274 -129v-577h155q27 0 27 -70q0 -71 -41 -71h-455q-26 0 -26 59v4q0 46 25 71q7 7 14 7h2q104 0 104 43v297q0 194 -22 254.5t-56.5 86t-93.5 25.5q-111 0 -274 -129 v-577h168q26 0 26 -59q0 -49 -15.5 -65.5t-25.5 -16.5h-508q-28 0 -28 57q0 52 15 68t26 16h10q115 0 131 23q6 8 6 20v663h-176q-29 1 -39 51q-2 14 -2 26z" />
|
||||
<glyph unicode="n" horiz-adv-x="1290" d="M34 925q0 46 26.5 56.5t67.5 18.5t86 12q90 10 135 10h4q44 -1 53 -10q10 -10 14 -26q5 -17 5 -71v-19q151 84 275 115q40 10 102 10q61 0 123 -26.5t98 -76.5q64 -88 64 -280v-497h155q27 0 27 -61q0 -48 -15 -64t-26 -16h-455q-26 0 -26 61q0 48 15 64t26 16 q104 0 104 43v297q0 194 -22 254.5t-56.5 86t-93.5 25.5q-111 0 -274 -129v-577h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q115 0 131 23q6 8 6 20v663h-176q-31 1 -39 49q-2 14 -2 29z" />
|
||||
<glyph unicode="o" horiz-adv-x="1093" d="M80 512q0 246 152 384q138 125 348 125h3q196 0 315 -149q114 -142 114 -368q0 -252 -140 -392q-132 -132 -355 -132q-107 0 -188 40t-137 112q-112 145 -112 380zM285 517q0 -102 19 -173q20 -70 54 -116q69 -94 191 -94q126 0 195 110q63 100 63 262q-1 271 -159 340 q-48 21 -97 21q-50 0 -95.5 -15t-83.5 -55t-62.5 -109.5t-24.5 -170.5z" />
|
||||
<glyph unicode="p" horiz-adv-x="1177" d="M7 926q0 47 23 54.5t57.5 14.5t78.5 13q94 13 150 13q55 0 64 -5q10 -4 14 -16q5 -12 5 -59v-17q137 78 219 92q30 6 85 6h9q62 -1 137 -36.5t130 -101.5q116 -140 116 -378q0 -248 -137 -388q-129 -132 -338 -132q-82 0 -170 45q-20 10 -30 14v-342h222q27 0 27 -61 q0 -48 -15 -64t-26 -16h-565q-27 0 -27 61q0 48 15 64t26 16q125 0 142 23q6 8 6 20v1101h-177q-30 1 -38 49q-2 14 -3 30zM420 195q69 -55 188 -55q190 0 256 182q26 72 26 181q0 108 -25 173.5t-63 103.5q-66 67 -160 67h-3q-86 0 -165 -53q-30 -20 -54 -48v-551z" />
|
||||
<glyph unicode="q" horiz-adv-x="1116" d="M83 512v3q0 240 149 379q136 127 349 127q105 0 238 -37l63 82q6 2 12 2h15q59 0 104 -36q13 -10 19 -23l-78 -246v-1061h164q26 0 26 -59q0 -50 -15 -66t-26 -16h-579q-27 0 -27 63q0 46 15 62t26 16h84q116 0 132 24q5 7 5 16v322q-67 -55 -193 -77q-40 -7 -111 -7 t-146 38t-125 108q-101 140 -101 386zM288 512q0 -105 23 -176.5t58 -116.5q66 -85 168 -85t222 100v568q-83 65 -188 65q-187 0 -257 -181q-26 -69 -26 -174z" />
|
||||
<glyph unicode="r" horiz-adv-x="901" d="M36 921q0 50 25.5 61t66.5 18q42 8 86 12q84 8 133 9h8q41 0 49 -5q10 -4 14 -14q5 -10 5 -43v-12l-1 -40q0 -12 -0.5 -24t-0.5 -22q117 107 235 147q38 12 79 13h2q39 0 70 -15q32 -16 51 -38q34 -40 34 -83q0 -44 -11 -69t-31 -43q-42 -39 -83 -39q-42 0 -64 11.5 t-39 29.5q-36 38 -36 85q-58 -27 -88 -62t-50 -65l-44 -68v-524h243q23 0 23 -61q0 -49 -14.5 -64.5t-26.5 -15.5h-582q-28 0 -28 63q1 46 27 71q8 7 35 7t55.5 2.5t44.5 7.5q28 9 28 33v659h-176q-39 0 -39 78z" />
|
||||
<glyph unicode="s" horiz-adv-x="926" d="M76 181q0 34 10 59q12 26 30 44q39 38 98 38q58 0 98 -39q40 -38 40 -86v-1q-1 -50 -5 -62h114q139 0 187 85q14 26 14 57t-14.5 53.5t-45.5 41.5q-47 29 -156.5 62.5t-166.5 58t-99 58.5q-86 72 -86 198q0 185 207 249q78 24 154 24q75 0 139 -10q66 -10 118 -34 q119 -55 119 -157v-5q0 -56 -39 -95q-38 -38 -98 -39q-94 0 -128 82q-10 25 -10 41t12 76h-99q-81 0 -120 -28q-71 -49 -71 -108q0 -78 140 -126l76 -26q193 -64 248 -109t80 -98t25 -121q0 -69 -27 -119q-26 -51 -74 -87q-103 -78 -268 -78q-146 0 -262 44q-86 32 -122 92 q-18 30 -18 65z" />
|
||||
<glyph unicode="t" horiz-adv-x="731" d="M27 847q0 110 13.5 132t29.5 22h10q123 0 148 23q10 8 11 20l43 221q12 55 130 55v-319h270q25 0 25 -59q-1 -58 -25 -86q-7 -9 -18 -9h-252v-590q0 -112 66 -112q75 0 106.5 11.5t43.5 11.5q11 0 22.5 -7.5t19.5 -19.5q17 -26 17 -54q0 -30 -19 -39q-129 -68 -246 -68 q-205 0 -205 277v590h-190z" />
|
||||
<glyph unicode="u" horiz-adv-x="1234" d="M21 923q0 50 20 55q168 43 307 43q44 0 46 -80v-530q0 -195 100 -233q30 -12 75 -12q44 0 84.5 10t72.5 24q30 15 54 32l43 32v583h-137q-41 0 -41 74q0 47 26.5 57.5t64.5 18.5q38 7 79 13q78 10 125 11h3q43 0 53 -11q12 -10 16 -28q6 -25 6 -88v-753h168q27 0 27 -65 q0 -70 -41 -76q-102 -16 -182 -16t-94 8t-24 22q-16 22 -38 82q-159 -116 -287 -116q-252 0 -324 202q-24 67 -24 156v509h-141q-37 0 -37 76z" />
|
||||
<glyph unicode="v" horiz-adv-x="1096" d="M4 920q0 49 14 65t25 16h434q25 0 25 -57q0 -52 -15 -68t-26 -16q-88 0 -88 -43l198 -549l242 592h-131q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h375q25 0 25 -57q0 -52 -24 -76q-8 -8 -24 -8q-17 0 -32 -2q-14 -2 -24 -8q-16 -9 -25 -33l-334 -817q-7 -18 -39 -19 t-48 -1q-56 0 -65 20l-335 860h-112q-26 0 -26 60z" />
|
||||
<glyph unicode="w" horiz-adv-x="1563" d="M8 921q0 48 15 64t24 16h434q25 0 25 -57q0 -52 -15 -68t-26 -16q-88 0 -88 -43l136 -601l249 690q9 19 50 19q44 0 52 -18l254 -705l159 658h-131q-26 0 -26 59q0 49 13.5 65.5t22.5 16.5h375q24 0 24 -70q0 -71 -40 -71q-63 0 -79 -24q-6 -8 -9 -19l-244 -817 q-7 -20 -68 -20q-72 0 -79 20l-235 587l-239 -587q-7 -17 -37.5 -18.5t-39.5 -1.5h-23q-14 0 -26 2q-30 4 -33 18l-241 860h-129q-25 0 -25 61z" />
|
||||
<glyph unicode="x" horiz-adv-x="1174" d="M35 61q0 47 26 73q7 7 38 7t67 17t53 38l246 324l-273 340h-122q-27 0 -27 58q0 50 14.5 66.5t24.5 16.5h437q23 0 23 -57q0 -53 -15.5 -68.5t-26.5 -15.5q-64 0 -64 -18q0 -7 7 -16l190 -238l203 272h-124q-26 0 -26 59q0 51 13.5 66.5t22.5 15.5h384q24 0 24 -58 q0 -51 -15 -67t-25 -16q-76 0 -110 -43l-265 -331l230 -289q41 -49 119 -55q16 -1 33 -1h16q26 0 26 -61q0 -48 -15 -64t-26 -16h-425q-27 0 -27 61q0 47 28 73q8 7 14 7h83l-221 274l-176 -244q-7 -10 -7 -17q0 -13 18 -13h57q26 0 26 -60q0 -49 -15 -65t-26 -16h-366 q-26 0 -26 61z" />
|
||||
<glyph unicode="y" horiz-adv-x="1098" d="M6 920q0 49 14 65t25 16h434q25 0 25 -57q0 -51 -15.5 -67.5t-25.5 -16.5q-88 0 -88 -43l203 -594l237 637h-131q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h375q25 0 25 -57q0 -52 -24 -76q-8 -8 -24 -8q-17 0 -32 -2q-14 -2 -24 -8q-16 -9 -25 -33l-422 -1077 q-32 -83 -104 -131.5t-177 -48.5q-140 0 -196 92q-20 34 -20 73q-1 2 -1 3q0 37 11 62q10 26 28 44q40 40 87 40h2q48 -1 74 -14q25 -14 41 -36q28 -41 29 -110q32 0 55.5 36t41 77t30 77.5t21 64.5t11.5 37l-332 854h-112q-26 0 -26 60z" />
|
||||
<glyph unicode="z" horiz-adv-x="1007" d="M75 736q0 3 4 23l44 242h800v-111l-569 -740h415l47 109q10 21 35 21t39 -3q12 -3 24 -9q26 -12 26 -30q0 -5 -1 -7l-72 -231h-778v110l569 741h-393l-30 -110q-11 -42 -85 -42q-75 0 -75 37z" />
|
||||
<glyph unicode="{" horiz-adv-x="667" d="M62 683q0 61 29 67q70 10 87 32q28 35 28 109v461q0 251 150 302q50 17 117 17h164q28 0 28 -69q0 -72 -28 -72h-79q-100 0 -132 -48q-25 -37 -25 -136v-445q0 -124 -97 -185q-34 -22 -83 -34q180 -52 180 -225v-309q0 -92 19 -118q35 -49 138 -49h79q28 0 28 -70 q0 -71 -28 -71h-164q-139 0 -201 66q-66 71 -66 244v321q0 76 -17 97q-27 33 -98 43q-29 4 -29 72z" />
|
||||
<glyph unicode="|" horiz-adv-x="516" d="M181 -455v2063q0 28 77 28t77 -28v-2063q0 -28 -77 -28t-77 28z" />
|
||||
<glyph unicode="}" horiz-adv-x="667" d="M2 -89q0 70 28 70h84q97 0 128 43q24 33 24 133v300q0 172 180 225q-180 45 -180 221v443q0 100 -20 130q-37 54 -137 54h-79q-28 0 -28 72q0 69 28 69h168q133 0 196 -71q66 -74 67 -248v-469q0 -68 17 -88q28 -35 98 -45q29 -6 29 -67q0 -42 -10.5 -56.5t-32.5 -17.5 t-44 -11q-24 -8 -36 -24q-21 -26 -21 -96v-328q0 -250 -150 -295q-50 -15 -117 -15h-164q-28 0 -28 71z" />
|
||||
<glyph unicode="~" horiz-adv-x="1218" d="M109 557q65 119 179 175q48 24 93 24q44 0 81 -11t78.5 -27t85.5 -35t84 -35q96 -38 131 -38t60 15.5t46 37t38 43t31 33.5q38 0 60 -21q38 -36 38 -71q-54 -121 -168 -180q-48 -25 -96 -25q-49 0 -90 10t-84 24q-44 14 -88 32l-84 32q-94 34 -129 35h-3q-34 0 -59 -14 q-27 -14 -48 -32t-36 -36.5t-26 -27.5q-37 1 -59 21q-35 34 -35 71z" />
|
||||
<glyph unicode="¡" horiz-adv-x="568" d="M144 886q0 45 11 70.5t31 43.5q42 40 100 40q90 0 123 -84q10 -26 10 -55q0 -30 -10 -55q-9 -26 -27 -45q-37 -40 -96 -40q-58 0 -100 40t-42 85zM150 -407l50 992q0 27 54 38q14 3 29 3q86 0 86 -44l47 -991q-49 -30 -140 -30q-92 0 -126 32z" />
|
||||
<glyph unicode="¢" horiz-adv-x="1002" d="M65 705q0 241 145 381q136 130 347 130q226 0 313 -98q33 -38 33 -81q0 -44 -10.5 -69t-28.5 -43q-40 -39 -98 -39t-98 39q-40 38 -40 75q0 1 1 1q0 38 9 74h-93q-104 0 -179 -79q-96 -101 -96 -291q0 -279 155 -353q48 -24 98 -24q1 0 2 1q51 0 92 11t80 28.5t75 39.5 l72 43q4 3 14 3q9 0 23 -12q13 -12 25 -28q26 -38 27 -62v-3q0 -22 -11 -31q-191 -143 -416 -143q-208 0 -326 145q-114 140 -115 385zM467 0v295h141v-295q-25 -27 -69 -27q-45 0 -72 27zM467 1171h141v232q-29 29 -70 29q-42 0 -71 -29v-232z" />
|
||||
<glyph unicode="£" horiz-adv-x="1164" d="M61 134q0 66 45 111t109 45q52 0 86 -20l46 -26q41 104 41 362h-232q-28 0 -38 51q-2 13 -2 25q-1 1 -1 3q0 10 3 22q2 13 7 25q12 28 31 28h232v433q0 167 118 257q98 75 237 75h4q165 0 239 -46q21 -14 21 -59q-1 -69 -41 -111q-12 -13 -24 -13t-42 14q-74 35 -162 35 h-3q-66 0 -97 -45q-39 -56 -39 -190v-350h263q26 0 36 -51q2 -13 3 -24q0 -46 -14.5 -62.5t-24.5 -16.5h-263q-4 -39 -7 -84.5t-12 -97.5q-21 -122 -81 -234q149 -56 251 -56q83 0 114 19q55 34 102 129q12 23 38 23t41 -4q15 -3 27 -11q29 -17 33 -43q-65 -210 -193 -253 q-42 -14 -85 -14q-44 0 -94 6q-51 4 -107 14q-122 21 -230 52q-13 -6 -33.5 -18t-44.5 -24q-61 -30 -98 -30t-65 11.5t-49 32.5q-45 45 -45 110z" />
|
||||
<glyph unicode="¤" horiz-adv-x="1184" d="M97 1028q1 59 47 102q44 41 100 41l116 -116q103 66 227 66q123 0 231 -73l122 125h3q54 0 98 -41q46 -43 46 -100l-125 -127q78 -121 78 -256q0 -136 -74 -254l123 -124q0 -53 -47 -99q-45 -44 -99 -44h-2l-121 122q-111 -75 -233 -75t-228 69l-113 -118q-57 0 -103 46 q-44 44 -44 95l116 117q-82 125 -82 267q0 141 80 261zM333 649q1 -118 71 -200q72 -84 187 -84q59 0 106.5 22.5t81.5 61.5q70 80 70 200q0 124 -70 204q-74 85 -189 85q-112 0 -186 -85q-70 -82 -71 -204z" />
|
||||
<glyph unicode="¥" horiz-adv-x="1275" d="M59 1424q0 49 14 65t25 16h470q25 0 25 -57q0 -52 -15 -68t-26 -16q-106 0 -106 -35q0 -4 6 -22l227 -525l239 582h-86q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h350q25 0 25 -57q0 -52 -24 -76q-9 -8 -37 -8q-71 0 -88 -43l-156 -382h146q26 0 36 -51q2 -13 3 -24v-4 q0 -9 -2 -21q-3 -14 -7 -26q-10 -28 -30 -28h-209l-89 -219h298q26 0 36 -50q2 -13 3 -24v-4q0 -10 -2 -22q-3 -14 -7 -26q-10 -28 -30 -28h-301v-271h189q26 0 26 -61q0 -48 -15 -64t-26 -16h-573q-25 0 -25 57v3q0 47 27 74q7 7 14 7h63q91 0 105 25q4 8 4 18v228h-330 q-28 0 -38 52q-2 13 -2 25q-1 1 -1 3q0 10 3 22q2 12 7 24q12 28 31 28h327l-95 219h-236q-28 0 -38 52q-2 13 -3 24q0 46 15 62t26 16h169l-184 425h-112q-26 0 -26 60z" />
|
||||
<glyph unicode="¦" horiz-adv-x="522" d="M184 -455v971h154v-971q0 -28 -77 -28t-77 28zM184 694v914q0 28 77 28t77 -28v-914h-154z" />
|
||||
<glyph unicode="§" horiz-adv-x="1148" d="M67 -95q0 66 45 111t109 45q65 0 109 -45q44 -46 44 -111q0 -30 -11.5 -54t-16.5 -38q65 -35 161 -35t154 20q57 19 99 53q88 73 89 183v1q0 118 -205 225l-269 136q-273 144 -273 377q0 90 38 179l21 49q-60 91 -60 196q0 104 41 175q42 72 110 119q134 92 345 92 q155 -1 291 -71q157 -80 157 -212v-2q-1 -64 -45 -110q-43 -44 -108 -44t-109 44q-45 45 -45 95t30 110q-59 36 -141 36q-83 0 -138 -14.5t-94 -42.5q-83 -60 -83 -164q0 -80 88 -144q42 -32 102 -62l136 -70q221 -110 311 -199q111 -109 111 -257h-1q0 -84 -59 -238 q60 -91 60 -190q0 -100 -38 -176q-38 -78 -106 -132q-143 -115 -361 -115h-4q-170 0 -315 71q-169 83 -169 209zM313 789q0 -36 21.5 -74.5t63.5 -74.5q72 -63 234 -147l211 -109q6 24 6 67t-28 84.5t-73.5 78t-104.5 68.5l-325 171q-5 -28 -5 -64z" />
|
||||
<glyph unicode="¨" horiz-adv-x="1065" d="M178 1327q0 95 80 129q24 10 54 10t56 -10q26 -12 44 -30q39 -39 39 -96v-6q0 -57 -39 -96q-38 -38 -84 -38q-76 0 -113 39t-37 98zM631 1327q0 95 80 129q25 10 55 10q58 0 98 -40q38 -38 39 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="©" horiz-adv-x="1686" d="M67 745v11q0 209 105 387q103 175 279 277q181 105 392 105t392 -105q177 -102 279 -277q105 -178 105 -387v-8q0 -209 -105 -387q-102 -173 -279 -276q-181 -105 -392 -105q-321 0 -549 225q-144 142 -200 341q-27 96 -27 199zM198 752q0 -137 49.5 -256t136.5 -207.5 t205 -139.5t254 -51q271 0 458 190t187 464q0 272 -187 463q-188 192 -458 192q-136 0 -254 -51.5t-205 -140.5t-136.5 -208t-49.5 -255zM365 753q0 241 145 382q136 132 347 132q226 -1 313 -99q33 -38 33 -81t-10.5 -68t-28.5 -43q-40 -39 -98 -39t-98 39q-39 37 -39 95 v17q0 6 2 15q-37 10 -82 10q-46 0 -94 -16.5t-89 -57.5q-96 -96 -96 -286q0 -279 155 -353q48 -24 98 -24q1 0 2 1q51 0 92 11t80 28.5t75 39.5l72 43q54 -15 76 -73q6 -18 6 -30q0 -18 -4 -30q-177 -143 -416 -143q-208 0 -326 145q-114 140 -115 385z" />
|
||||
<glyph unicode="ª" horiz-adv-x="915" d="M119 662q0 10 2 21q1 11 5 21q8 23 24 23h610q19 0 27 -41q2 -10 2 -20q0 -39 -11.5 -52.5t-18.5 -13.5h-609q-21 0 -29 42q-2 10 -2 20zM131 1024q0 65 19.5 106t51.5 69q67 58 157 58h182q0 97 -43 137.5t-124 40.5q-29 0 -48 -4q7 -16 7 -44t-24 -52.5t-61 -24.5 q-38 0 -62.5 24.5t-24.5 57.5t14 53t37 34.5t52 23.5q28 9 58 13q56 8 114 9h2q56 0 101 -20q45 -21 73 -55q52 -63 52 -167v-321h106q16 0 16 -28q0 -58 -26 -63q-40 -9 -156 -9q-21 0 -33 18t-24 53q-55 -44 -167 -67q-34 -7 -72 -7t-74 14q-36 15 -59 39q-44 47 -44 112z M260 1052q0 -23 7 -38.5t19 -23.5q20 -14 54 -14q2 -1 5 -1q31 0 57 7q28 6 55 16q52 18 84 39v123h-161q-50 0 -76 -23.5t-35 -42.5t-9 -42z" />
|
||||
<glyph unicode="«" horiz-adv-x="1186" d="M43 502q0 68 41 100l421 333q30 0 51 -22q37 -39 37 -73l-306 -305l306 -351q0 -34 -19 -56q-34 -38 -68 -38l-422 339q-41 33 -41 73zM542 513q0 55 40 88l421 334q32 0 53 -22q37 -39 37 -73l-307 -305l307 -351q0 -34 -20 -55q-36 -39 -69 -39l-423 339q-39 31 -39 84 z" />
|
||||
<glyph unicode="¬" horiz-adv-x="1119" d="M83 655q0 10 3 22q2 13 7 25q12 27 30 27h810q72 0 72 -84v-360q0 -27 -50 -37q-13 -2 -24 -2q-47 0 -63.5 14.5t-16.5 24.5v290h-727q-28 0 -38 52q-2 13 -2 25q-1 1 -1 3z" />
|
||||
<glyph unicode="­" horiz-adv-x="750" d="M159 604q0 11 3 23q2 15 7 29q12 33 31 33h447q25 0 35 -59q2 -14 3 -26q0 -52 -14.5 -71.5t-24.5 -19.5h-447q-27 0 -37 61q-2 14 -2 26q-1 2 -1 4z" />
|
||||
<glyph unicode="®" horiz-adv-x="1088" d="M68 980q0 197 139.5 336.5t337.5 139.5q196 0 335.5 -139.5t139.5 -336.5q0 -196 -140 -336q-138 -138 -335 -139q-199 1 -337 139q-140 140 -140 336zM176 981q0 -155 108 -267q107 -110 260 -110q135 0 237 89h-43q-42 0 -67 39l-127 200q-26 -2 -53 -2v-174h84 q10 -4 10 -30q0 -27 -15 -33h-220q-9 9 -9 24t5.5 26.5t10.5 12.5q26 0 31 4t5 13v416q0 6 -5 6h-42q-15 4 -15 31q0 26 10 32h228q87 0 138.5 -41.5t51.5 -113.5q0 -115 -114 -156l109 -168q19 -28 78 -33q81 104 81 235q-1 157 -109 267q-110 111 -260 111 q-151 0 -260 -111q-108 -110 -108 -267zM491 1001q85 0 111 11q50 22 50 90q0 90 -161 90v-191z" />
|
||||
<glyph unicode="¯" horiz-adv-x="1065" d="M192 1304q0 67 16 67h637q11 0 13 -17.5t2 -66.5q0 -50 -15 -50h-637q-16 0 -16 67z" />
|
||||
<glyph unicode="°" horiz-adv-x="855" d="M67 1140q0 154 103 259t256 105q160 0 262 -105q100 -104 100 -259q0 -157 -100 -256t-260 -99q-79 0 -144.5 26t-113.5 73q-103 101 -103 256zM227 1140q1 -138 121 -186q36 -14 80 -14q1 -1 2 -1q42 0 78 15q37 14 64 40q56 54 56 146q0 89 -56 147q-58 60 -146 60 q-84 0 -142 -60q-57 -59 -57 -147z" />
|
||||
<glyph unicode="±" horiz-adv-x="1093" d="M81 718q0 72 17 72h376v308q0 16 72 16t72 -16v-308h377q16 0 16 -72t-16 -72h-377v-338q0 -16 -72 -16t-72 16v338h-376q-17 0 -17 72zM85 76q0 46 15 62t26 16h842q26 0 36 -50q2 -13 3 -24v-4q0 -10 -2 -22q-3 -14 -7 -26q-10 -28 -30 -28h-842q-28 0 -38 52 q-2 13 -3 24z" />
|
||||
<glyph unicode="²" horiz-adv-x="808" d="M93 1310q0 48 22 88t62 68q82 58 219 59h4q211 0 274 -121q22 -39 22 -100v-2q-1 -63 -26.5 -111.5t-65 -85t-89 -67t-97.5 -64.5q-114 -80 -151 -181h328l28 78q17 13 46 13q28 0 44 -29l-31 -208h-569v43q1 194 199 354q126 101 162 151.5t36 94.5t-12 70 q-12 27 -32 44q-39 32 -90 32t-77 -9t-49 -32q32 -13 44 -61q4 -14 4 -26q0 -47 -29 -76t-72 -29q-44 0 -74 29.5t-30 77.5z" />
|
||||
<glyph unicode="³" horiz-adv-x="800" d="M89 843q0 50 31.5 78.5t64.5 28.5t51 -7.5t32 -21.5q30 -30 30 -76q0 -47 -46 -81q41 -41 130 -41h2q59 0 96 49q37 48 37 125v6q0 67 -21 97q-40 58 -126 67v54q67 34 90 60q44 51 44 125q0 54 -41 92q-40 37 -85 37h-2q-89 0 -129 -40q31 -15 45 -58q4 -12 4 -21 q0 -54 -29 -84t-74 -30t-74.5 30.5t-29.5 82.5q0 51 28.5 90t73.5 65q93 54 215 55q204 0 266 -127q18 -38 19 -80v-3q0 -41 -15 -73q-16 -32 -40 -58q-47 -50 -119 -76q99 -41 131 -69q71 -62 71 -159q0 -182 -188 -230q-58 -16 -120 -16q-2 0 -4 1q-64 0 -119 14 q-54 15 -98 41q-100 60 -101 153z" />
|
||||
<glyph unicode="´" horiz-adv-x="1065" d="M440 1296l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="µ" horiz-adv-x="1239" d="M164 -380v1381h195v-366q0 -365 95 -441q34 -28 87 -28t99.5 35t79.5 107q69 151 69 446v247h145q49 0 49 -40v-646q0 -105 17 -133.5t32.5 -34.5t34.5 -6h84q29 -9 29 -47q0 -82 -43 -94q-7 -1 -27 -3l-44 -5q-66 -6 -104 -6q-39 0 -67.5 12t-49.5 38q-46 58 -46 167 q-32 -100 -72 -140q-80 -83 -202 -83q-185 0 -244 159q14 -182 88 -504q-8 -32 -41 -53t-78 -21q-86 0 -86 59z" />
|
||||
<glyph unicode="¶" horiz-adv-x="1579" d="M59 1044q0 232 169.5 346.5t489.5 114.5h766q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-898q-25 0 -25 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v445h-152q-231 1 -367 111q-137 111 -137 304zM292 1089 q0 -88 34 -147t92 -95q110 -68 297 -68v572q-217 0 -288.5 -34.5t-103 -87t-31.5 -140.5zM926 141h19q116 0 132 23q6 8 6 20v1164q0 16 -13 16h-144v-1223z" />
|
||||
<glyph unicode="·" horiz-adv-x="522" d="M124 564q0 30 10 55q12 25 30 43q39 38 97 38q93 0 127 -81q10 -25 10 -55t-10 -55q-12 -25 -30 -43q-40 -38 -97 -38q-93 0 -127 81q-10 25 -10 55z" />
|
||||
<glyph unicode="¸" horiz-adv-x="1188" d="M409 -382q0 54 29 54q142 0 194 50q17 15 17 36v2q0 61 -136 61l-39 48l52 146h159l-36 -105q115 -20 155 -92q13 -22 13 -50v-4q0 -204 -368 -204q-20 0 -30 20q-10 18 -10 38z" />
|
||||
<glyph unicode="¹" horiz-adv-x="720" d="M76 1338q0 1 1 1q0 16 9 22l338 164h15q37 0 37 -12v-763h141q15 0 15 -51q0 -52 -21 -52h-481q-12 0 -12 35q0 68 24 68h86q63 0 63 25v508q0 35 -9 35q-10 0 -31 -9l-93 -39q-22 -9 -30 -9q-9 0 -17.5 9.5t-16.5 22.5q-18 29 -18 45z" />
|
||||
<glyph unicode="º" horiz-adv-x="913" d="M112 1187q0 162 112 255q100 83 253 83h3q145 0 230 -99q82 -95 82 -244q0 -166 -102 -258q-96 -87 -256 -87h-4q-78 0 -136 27q-60 26 -100 73q-82 96 -82 250zM125 662q0 10 2 21q1 11 5 21q8 23 24 23h610q19 0 27 -41q2 -10 2 -20q0 -39 -11.5 -52.5t-18.5 -13.5 h-609q-21 0 -29 42q-2 10 -2 20zM261 1186q0 -124 53 -185.5t140 -61.5q92 0 142 72q46 66 46 151q0 84 -14.5 129t-40.5 75q-50 57 -135 57h-3q-123 0 -170 -119q-18 -46 -18 -118z" />
|
||||
<glyph unicode="»" horiz-adv-x="1184" d="M93 185l306 305l-306 351v3q0 31 19 52q35 39 69 39l422 -340q40 -32 40 -72q0 -68 -41 -100l-420 -333q-31 0 -52 22q-37 39 -37 73zM592 185l306 305l-306 351q0 33 20 55q35 39 68 39l422 -340q41 -35 41 -74q0 -66 -42 -98l-420 -333q-32 0 -53 22q-36 39 -36 73z " />
|
||||
<glyph unicode="¼" horiz-adv-x="1770" d="M68 1338q0 1 1 1q0 16 9 22l338 164h15q37 0 37 -12v-763h141q15 0 15 -51q0 -52 -21 -52h-481q-12 0 -12 35q0 68 24 68h86q63 0 63 25v508q0 35 -9 35q-10 0 -31 -9l-93 -39q-22 -9 -30 -9q-9 0 -17.5 9.5t-16.5 22.5q-18 29 -18 45zM334 0l992 1505q20 32 96 32 q62 0 62 -32l-984 -1505q-22 -30 -103 -30q-63 0 -63 30zM986 280l318 600q69 0 119 -38q44 -34 44 -66l-330 -435h245v189q0 45 124 56q32 3 61 3v-248h130q17 0 17 -48q0 -35 -12 -50t-19 -15h-116v-125h105q17 0 17 -51q0 -52 -25 -52h-455q-16 0 -16 42q0 30 12 45.5 t18 15.5h83q76 0 76 25v100h-364q-26 12 -32 52z" />
|
||||
<glyph unicode="½" horiz-adv-x="1767" d="M60 1338q0 1 1 1q0 16 9 22l338 164h15q37 0 37 -12v-763h141q15 0 15 -51q0 -52 -21 -52h-481q-12 0 -12 35q0 68 24 68h86q63 0 63 25v508q0 35 -9 35q-10 0 -31 -9l-93 -39q-22 -9 -30 -9q-9 0 -17.5 9.5t-16.5 22.5q-18 29 -18 45zM326 0l992 1505q20 32 96 32 q62 0 62 -32l-984 -1505q-22 -30 -103 -30q-63 0 -63 30zM1076 663q0 48 22 88q22 41 62 69q82 58 219 58q213 0 277 -122q22 -40 22 -102t-25.5 -110.5t-65 -85t-89.5 -66.5q-48 -30 -96 -64q-114 -80 -152 -182h328l28 78q17 13 46 13q28 0 44 -29l-31 -208h-569v43 q0 193 198 353q126 101 162.5 152t36.5 95t-11.5 70.5t-31.5 43.5q-39 32 -90 32q-52 0 -78 -9t-49 -32q33 -12 45 -60q3 -11 3 -22v-5q0 -47 -29 -76t-72 -29q-44 0 -74 29.5t-30 77.5z" />
|
||||
<glyph unicode="¾" horiz-adv-x="1831" d="M83 843q0 50 31.5 78.5t64.5 28.5t51 -7.5t32 -21.5q30 -30 30 -76q0 -47 -46 -81q41 -41 130 -41h2q59 0 96 49q37 48 37 125v6q0 67 -21 97q-40 58 -126 67v54q67 34 90 60q44 51 44 125q0 54 -41 92q-40 37 -85 37h-2q-89 0 -129 -40q31 -15 45 -58q4 -12 4 -21 q0 -54 -29 -84t-74 -30t-74.5 30.5t-29.5 82.5q0 51 28.5 90t73.5 65q93 54 215 55q204 0 266 -127q18 -38 19 -80v-3q0 -41 -15 -73q-16 -32 -40 -58q-47 -50 -119 -76q99 -41 131 -69q71 -62 71 -159q0 -182 -188 -230q-58 -16 -120 -16q-2 0 -4 1q-64 0 -119 14 q-54 15 -98 41q-100 60 -101 153zM346 0l992 1505q20 32 96 32q62 0 62 -32l-984 -1505q-22 -30 -103 -30q-63 0 -63 30zM1048 280l318 600q69 0 119 -38q44 -34 44 -66l-330 -435h245v189q0 45 124 56q32 3 61 3v-248h130q17 0 17 -48q0 -35 -12 -50t-19 -15h-116v-125h105 q17 0 17 -51q0 -52 -25 -52h-455q-16 0 -16 42q0 30 12 45.5t18 15.5h83q76 0 76 25v100h-364q-26 12 -32 52z" />
|
||||
<glyph unicode="¿" horiz-adv-x="949" d="M83 -80q0 148 117 270q52 54 116 104l129 101v155q0 45 63 59q18 4 38 4q94 0 94 -63v-178q-55 -49 -115 -91q-60 -41 -110 -89q-115 -109 -115 -252q0 -102 63 -164q62 -60 166 -60h35q45 0 89 11q-23 41 -23 79t11 64t30 44q41 39 85 39t70 -11q26 -10 44 -28 q40 -40 40 -93q0 -54 -22 -90.5t-58 -64t-80 -47.5q-45 -21 -91 -33q-90 -24 -175 -24q-86 0 -164 29t-130 78q-106 99 -107 251zM405 865q0 44 11 69.5t30 43.5q41 40 85 40t69.5 -10.5t44 -29t29.5 -44t11 -55.5t-11 -55q-12 -26 -30 -45q-39 -40 -83 -40 q-45 0 -70.5 10.5t-44.5 29.5q-41 41 -41 86z" />
|
||||
<glyph unicode="À" horiz-adv-x="1424" d="M-12 57q0 52 24 76q8 8 36 8q74 0 97 57l509 1307q8 20 39 20q67 0 75 -20l533 -1364h117q26 0 26 -60q0 -50 -14.5 -65.5t-24.5 -15.5h-485q-25 0 -25 55q0 52 15 69t26 17q124 0 124 24q0 9 -8 25l-119 309h-507l-139 -358h172q26 0 26 -58q0 -52 -13.5 -67.5 t-22.5 -15.5h-436q-25 0 -25 57zM321 1833q0 109 90 147q25 11 54 11h5l273 -285q-1 -43 -21 -66q-36 -42 -77 -42zM485 653h389l-193 504z" />
|
||||
<glyph unicode="Á" horiz-adv-x="1424" d="M-12 57q0 52 24 76q8 8 36 8q74 0 97 57l509 1307q8 20 39 20q67 0 75 -20l533 -1364h117q26 0 26 -60q0 -50 -14.5 -65.5t-24.5 -15.5h-485q-25 0 -25 55q0 52 15 69t26 17q124 0 124 24q0 9 -8 25l-119 309h-507l-139 -358h172q26 0 26 -58q0 -52 -13.5 -67.5 t-22.5 -15.5h-436q-25 0 -25 57zM485 653h389l-193 504zM683 1706l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="Â" horiz-adv-x="1424" d="M-12 57q0 52 24 76q8 8 36 8q74 0 97 57l509 1307q8 20 39 20q67 0 75 -20l533 -1364h117q26 0 26 -60q0 -50 -14.5 -65.5t-24.5 -15.5h-485q-25 0 -25 55q0 52 15 69t26 17q124 0 124 24q0 9 -8 25l-119 309h-507l-139 -358h172q26 0 26 -58q0 -52 -13.5 -67.5 t-22.5 -15.5h-436q-25 0 -25 57zM381 1709l256 177q43 28 71 28q36 0 78 -28l256 -177q0 -63 -51 -91q-15 -8 -33 -9l-245 117l-248 -117q-34 1 -53 23q-31 38 -31 77zM485 653h389l-193 504z" />
|
||||
<glyph unicode="Ã" horiz-adv-x="1424" d="M-12 57q0 52 24 76q8 8 36 8q74 0 97 57l509 1307q8 20 39 20q67 0 75 -20l533 -1364h117q26 0 26 -60q0 -50 -14.5 -65.5t-24.5 -15.5h-485q-25 0 -25 55q0 52 15 69t26 17q124 0 124 24q0 9 -8 25l-119 309h-507l-139 -358h172q26 0 26 -58q0 -52 -13.5 -67.5 t-22.5 -15.5h-436q-25 0 -25 57zM288 1719q66 117 180 174q48 24 99 24t87.5 -22.5t71.5 -50t70.5 -50t69.5 -22.5q33 0 58 15.5t46 36.5t38 43t31 34q38 0 60 -21q38 -36 38 -71q-53 -121 -167 -180q-48 -25 -97 -25t-78.5 10t-55.5 24.5t-49.5 32t-45.5 31.5 q-54 34 -90 35h-3q-34 0 -59 -14q-27 -14 -48 -32t-36.5 -36.5t-25.5 -27.5q-40 1 -60 21q-34 34 -34 71zM485 653h389l-193 504z" />
|
||||
<glyph unicode="Ä" horiz-adv-x="1424" d="M-12 57q0 52 24 76q8 8 36 8q74 0 97 57l509 1307q8 20 39 20q67 0 75 -20l533 -1364h117q26 0 26 -60q0 -50 -14.5 -65.5t-24.5 -15.5h-485q-25 0 -25 55q0 52 15 69t26 17q124 0 124 24q0 9 -8 25l-119 309h-507l-139 -358h172q26 0 26 -58q0 -52 -13.5 -67.5 t-22.5 -15.5h-436q-25 0 -25 57zM355 1757v2q0 93 79 127q24 10 55 10q30 0 55 -10q26 -12 44 -30q40 -40 40 -99t-40 -99q-38 -38 -84 -38q-76 0 -112.5 39t-36.5 98zM485 653h389l-193 504zM808 1757q0 95 80 129q25 10 55 10q59 0 99 -40q38 -38 38 -99q0 -94 -82 -127 q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="Å" horiz-adv-x="1420" d="M-14 57q0 52 24 76q8 8 36 8q74 0 97 57l509 1307q8 20 39 20q67 0 75 -20l533 -1364h117q26 0 26 -60q0 -50 -14.5 -65.5t-24.5 -15.5h-485q-25 0 -25 55q0 52 15 69t26 17q124 0 124 24q0 9 -8 25l-119 309h-507l-139 -358h172q26 0 26 -58q0 -52 -13.5 -67.5 t-22.5 -15.5h-436q-25 0 -25 57zM483 653h389l-193 504zM488 1608q0 44 16 82q16 39 44 68q62 63 157 63t157 -63q60 -61 60 -150q0 -88 -60 -148q-62 -62 -157 -63q-95 1 -157 63q-60 58 -60 148zM627 1612q0 -35 23.5 -59.5t58.5 -24.5t58.5 24.5t23.5 59.5t-23.5 59.5 t-58.5 24.5t-58.5 -24.5t-23.5 -59.5z" />
|
||||
<glyph unicode="Æ" horiz-adv-x="1875" d="M-37 57q0 51 16 68t25 18q48 4 76 14.5t40 40.5l495 1271q14 36 56 36h1113v-291q0 -34 -70 -34q-71 0 -71 22q0 84 -22 108q-39 41 -142 41h-439l22 -566h278q46 0 54 22q13 32 13 129q0 23 60 23q52 0 67 -14t15 -23v-428q0 -41 -72 -41t-72 27v151h-337l18 -477h284 q143 0 191 17t77.5 47t43.5 85q4 20 43 20h6q13 0 31 -3q62 -9 63 -38v-8q-14 -102 -45.5 -177.5t-46.5 -96.5h-1020q-27 0 -27 59q0 51 24 75q8 8 32 8h3q5 -1 11 -1q22 0 45 2q29 2 45 7q29 9 29 34l-17 447h-391l-194 -490h112q26 0 26 -58q0 -52 -13.5 -67.5 t-22.5 -15.5h-387q-25 0 -25 57zM526 785h326l-23 565v1q0 13 -17 13q-57 0 -77 -51z" />
|
||||
<glyph unicode="Ç" horiz-adv-x="1277" d="M103 730v4q0 386 194 596q180 195 478 195h3q157 0 288 -76q145 -84 145 -208q-1 -64 -45 -110q-43 -44 -108 -44t-109 44q-45 45 -45 106q0 60 22 98q-59 36 -155 36t-175.5 -39t-137.5 -111q-122 -153 -122 -398q0 -507 249 -637q79 -42 161 -42q1 0 2 1q82 0 130.5 13 t87.5 31.5t69 38.5q58 40 73 40q14 0 28 -11t26 -27q27 -35 27 -61q0 -27 -18.5 -43.5t-56.5 -41.5q-40 -26 -96 -49q-135 -55 -276 -55q-142 0 -255 44.5t-199 137.5q-185 201 -185 568zM545 -382q0 54 29 54q142 0 194 50q17 15 17 36v2q0 61 -136 61l-39 48l52 146h159 l-36 -105q115 -20 155 -92q13 -22 13 -50v-4q0 -204 -368 -204q-20 0 -30 20q-10 18 -10 38z" />
|
||||
<glyph unicode="È" horiz-adv-x="1288" d="M73 1442q0 63 26 63h1100v-291q0 -34 -70 -34q-71 0 -71 22q0 84 -22 108q-39 41 -142 41h-393v-503h254q46 0 54 22q13 32 13 129q0 23 60 23q52 0 67 -14t15 -23v-428q0 -41 -72 -41t-72 27v151h-319v-540h530l76 149q10 19 38 19q27 0 42 -3t27 -8q27 -11 27 -30 q0 -5 -1 -7l-92 -274h-1020q-27 0 -27 59q1 51 25 75q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1166q0 14 -12 14h-164q-28 0 -38 52q-2 14 -3 26zM411 1833q0 109 90 147q25 11 54 11h5l273 -285q-1 -43 -21 -66q-36 -42 -77 -42z" />
|
||||
<glyph unicode="É" horiz-adv-x="1288" d="M73 1442q0 63 26 63h1100v-291q0 -34 -70 -34q-71 0 -71 22q0 84 -22 108q-39 41 -142 41h-393v-503h254q46 0 54 22q13 32 13 129q0 23 60 23q52 0 67 -14t15 -23v-428q0 -41 -72 -41t-72 27v151h-319v-540h530l76 149q10 19 38 19q27 0 42 -3t27 -8q27 -11 27 -30 q0 -5 -1 -7l-92 -274h-1020q-27 0 -27 59q1 51 25 75q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1166q0 14 -12 14h-164q-28 0 -38 52q-2 14 -3 26zM584 1706l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="Ê" horiz-adv-x="1288" d="M73 1442q0 63 26 63h1100v-291q0 -34 -70 -34q-71 0 -71 22q0 84 -22 108q-39 41 -142 41h-393v-503h254q46 0 54 22q13 32 13 129q0 23 60 23q52 0 67 -14t15 -23v-428q0 -41 -72 -41t-72 27v151h-319v-540h530l76 149q10 19 38 19q27 0 42 -3t27 -8q27 -11 27 -30 q0 -5 -1 -7l-92 -274h-1020q-27 0 -27 59q1 51 25 75q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1166q0 14 -12 14h-164q-28 0 -38 52q-2 14 -3 26zM366 1709l256 177q42 28 70 28q36 0 79 -28l256 -177q0 -63 -51 -91q-15 -8 -33 -9l-245 117l-248 -117 q-34 1 -53 23q-31 38 -31 77z" />
|
||||
<glyph unicode="Ë" horiz-adv-x="1288" d="M73 1442q0 63 26 63h1100v-291q0 -34 -70 -34q-71 0 -71 22q0 84 -22 108q-39 41 -142 41h-393v-503h254q46 0 54 22q13 32 13 129q0 23 60 23q52 0 67 -14t15 -23v-428q0 -41 -72 -41t-72 27v151h-319v-540h530l76 149q10 19 38 19q27 0 42 -3t27 -8q27 -11 27 -30 q0 -5 -1 -7l-92 -274h-1020q-27 0 -27 59q1 51 25 75q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q28 9 28 33v1166q0 14 -12 14h-164q-28 0 -38 52q-2 14 -3 26zM324 1757q0 95 80 129q24 10 54 10t56 -10q26 -12 44 -30q39 -39 39 -96v-6q0 -57 -39 -96q-38 -38 -84 -38 q-76 0 -113 39t-37 98zM777 1757q0 95 80 129q25 10 55 10q58 0 98 -40q38 -38 39 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="Ì" horiz-adv-x="791" d="M57 1833q0 109 90 147q25 11 54 11h5l273 -285q-1 -43 -21 -66q-36 -42 -77 -42zM74 1446q0 59 26 59h592q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-532q-23 0 -23 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7 q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28z" />
|
||||
<glyph unicode="Í" horiz-adv-x="791" d="M74 1446q0 59 26 59h592q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-532q-23 0 -23 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28zM313 1706l273 285h3 q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="Î" horiz-adv-x="791" d="M61 1709l256 177q43 28 71 28q36 0 78 -28l256 -177q0 -63 -51 -91q-15 -8 -33 -9l-245 117l-248 -117q-34 1 -53 23q-31 38 -31 77zM74 1446q0 59 26 59h592q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-532q-23 0 -23 57q0 49 28 77 q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28z" />
|
||||
<glyph unicode="Ï" horiz-adv-x="791" d="M35 1757v2q0 93 79 127q24 10 55 10q30 0 55 -10q26 -12 44 -30q40 -40 40 -99t-40 -99q-38 -38 -84 -38q-76 0 -112.5 39t-36.5 98zM74 1446q0 59 26 59h592q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-532q-23 0 -23 57q0 49 28 77 q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28zM488 1757q0 95 80 129q25 10 55 10q59 0 99 -40q38 -38 38 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="Ð" horiz-adv-x="1527" d="M83 1442q0 63 26 63h582q395 0 569 -190q162 -177 163 -557v-3q0 -380 -229 -579q-202 -175 -503 -176h-553q-27 0 -27 57q0 46 26 76q7 8 34 8q26 0 55 3q30 2 46 7q28 9 28 33v1166q0 14 -12 14h-164q-28 0 -38 52q-2 14 -3 26zM130 694v154h635v-154h-635zM511 154 h147q214 0 364 139q168 157 168 430q0 468 -292 589q-94 39 -215 39h-172v-1197z" />
|
||||
<glyph unicode="Ñ" horiz-adv-x="1667" d="M74 1446q0 59 26 59h348l793 -1160v1003q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28q0 59 26 59h534q25 0 25 -70q0 -71 -35 -71h-179v-1366q0 -18 -74 -18q-71 0 -82 18l-794 1129v-986h168q27 0 27 -61q0 -50 -15 -65t-27 -15h-473q-25 0 -25 57q0 49 28 77q8 8 31 8 h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28zM421 1719q65 117 179 174q48 24 100 24q51 0 87.5 -22.5t71.5 -50t70.5 -50t69.5 -22.5q33 0 58 15.5t46 36.5t38 43t31 34q38 0 60 -21q38 -36 38 -71q-54 -121 -168 -180 q-48 -25 -96 -25q-49 0 -78.5 10t-55.5 24.5t-50 31.5q-24 18 -46 32q-54 34 -89 35h-3q-34 0 -59 -14q-27 -14 -48 -32t-36.5 -36.5t-25.5 -27.5q-39 1 -59 21q-34 34 -35 71z" />
|
||||
<glyph unicode="Ò" horiz-adv-x="1501" d="M102 731q0 386 192 597q179 197 480 197q303 -1 465 -215q159 -210 159 -594q0 -366 -200 -562q-176 -174 -464 -174q-132 0 -246 44q-114 45 -200 137q-186 200 -186 570zM332 823q0 -505 249 -636q80 -42 172 -42q91 0 164 30q73 31 129 99q122 149 122 455 q0 265 -122 447q-124 184 -305 184q-175 0 -289 -145q-120 -151 -120 -392zM379 1833q0 109 90 147q25 11 54 11h5l273 -285q-1 -43 -21 -66q-36 -42 -77 -42z" />
|
||||
<glyph unicode="Ó" horiz-adv-x="1501" d="M102 731q0 386 192 597q179 197 480 197q303 -1 465 -215q159 -210 159 -594q0 -366 -200 -562q-176 -174 -464 -174q-132 0 -246 44q-114 45 -200 137q-186 200 -186 570zM332 823q0 -505 249 -636q80 -42 172 -42q91 0 164 30q73 31 129 99q122 149 122 455 q0 265 -122 447q-124 184 -305 184q-175 0 -289 -145q-120 -151 -120 -392zM676 1706l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="Ô" horiz-adv-x="1501" d="M102 731q0 386 192 597q179 197 480 197q303 -1 465 -215q159 -210 159 -594q0 -366 -200 -562q-176 -174 -464 -174q-132 0 -246 44q-114 45 -200 137q-186 200 -186 570zM332 823q0 -505 249 -636q80 -42 172 -42q91 0 164 30q73 31 129 99q122 149 122 455 q0 265 -122 447q-124 184 -305 184q-175 0 -289 -145q-120 -151 -120 -392zM425 1709l256 177q43 28 71 28q36 0 78 -28l256 -177q0 -63 -51 -91q-15 -8 -33 -9l-245 117l-248 -117q-34 1 -53 23q-31 38 -31 77z" />
|
||||
<glyph unicode="Õ" horiz-adv-x="1501" d="M102 731q0 386 192 597q179 197 480 197q303 -1 465 -215q159 -210 159 -594q0 -366 -200 -562q-176 -174 -464 -174q-132 0 -246 44q-114 45 -200 137q-186 200 -186 570zM327 1719q65 117 179 174q48 24 100 24q51 0 87.5 -22.5t71.5 -50t70.5 -50t69.5 -22.5 q33 0 58 15.5t46 36.5t38 43t31 34q38 0 60 -21q38 -36 38 -71q-54 -121 -168 -180q-48 -25 -96 -25q-49 0 -78.5 10t-55.5 24.5t-50 31.5q-24 18 -46 32q-54 34 -89 35h-3q-34 0 -59 -14q-27 -14 -48 -32t-36.5 -36.5t-25.5 -27.5q-39 1 -59 21q-34 34 -35 71zM332 823 q0 -505 249 -636q80 -42 172 -42q91 0 164 30q73 31 129 99q122 149 122 455q0 265 -122 447q-124 184 -305 184q-175 0 -289 -145q-120 -151 -120 -392z" />
|
||||
<glyph unicode="Ö" horiz-adv-x="1501" d="M102 731q0 386 192 597q179 197 480 197q303 -1 465 -215q159 -210 159 -594q0 -366 -200 -562q-176 -174 -464 -174q-132 0 -246 44q-114 45 -200 137q-186 200 -186 570zM332 823q0 -505 249 -636q80 -42 172 -42q91 0 164 30q73 31 129 99q122 149 122 455 q0 265 -122 447q-124 184 -305 184q-175 0 -289 -145q-120 -151 -120 -392zM386 1757q0 95 80 129q24 10 54 10t56 -10q26 -12 44 -30q39 -39 39 -96v-6q0 -57 -39 -96q-38 -38 -84 -38q-76 0 -113 39t-37 98zM839 1757q0 95 80 129q25 10 55 10q58 0 98 -40q38 -38 39 -99 q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="×" horiz-adv-x="1143" d="M85 285l375 368l-367 351q0 83 68 104q19 6 38 6l369 -352l375 366q106 -6 106 -106l-370 -365l379 -362q0 -51 -27 -81t-80 -30l-383 365l-377 -371q-38 0 -62 23q-44 41 -44 84z" />
|
||||
<glyph unicode="Ø" horiz-adv-x="1522" d="M63 -39l1225 1545q54 26 79 26t37.5 -1t23.5 -3q26 -6 26 -22l-1206 -1545q-72 -27 -97 -27h-39q-13 2 -24 4q-25 6 -25 23zM113 727v4q0 386 192 597q179 197 480 197q303 -1 465 -215q159 -210 159 -594v-4q0 -363 -199 -558q-178 -174 -466 -174q-132 0 -246 44.5 t-200 136.5q-185 199 -185 566zM343 823q0 -505 249 -636q80 -42 172 -42q91 0 164 30q73 31 129 99q122 149 122 455q-1 265 -123 447q-124 184 -304 184q-176 0 -290 -145q-119 -150 -119 -388v-4z" />
|
||||
<glyph unicode="Ù" horiz-adv-x="1545" d="M41 1444q0 61 26 61h572q25 0 25 -70q0 -71 -35 -71h-160v-786q0 -341 194 -411q61 -22 141 -22t142 25.5t102 78.5q78 103 78 326v773q0 16 -13 16h-144q-29 0 -39 54q-2 14 -2 28q0 59 26 59h516q26 0 26 -64q0 -48 -13.5 -62.5t-22.5 -14.5h-169v-809 q0 -575 -519 -575q-280 0 -402 152q-112 139 -112 437v779q0 16 -13 16h-163q-28 0 -38 54q-2 14 -3 26zM447 1833q0 109 90 147q25 11 54 11h5l273 -285q-1 -43 -21 -66q-36 -42 -77 -42z" />
|
||||
<glyph unicode="Ú" horiz-adv-x="1545" d="M41 1444q0 61 26 61h572q25 0 25 -70q0 -71 -35 -71h-160v-786q0 -341 194 -411q61 -22 141 -22t142 25.5t102 78.5q78 103 78 326v773q0 16 -13 16h-144q-29 0 -39 54q-2 14 -2 28q0 59 26 59h516q26 0 26 -64q0 -48 -13.5 -62.5t-22.5 -14.5h-169v-809 q0 -575 -519 -575q-280 0 -402 152q-112 139 -112 437v779q0 16 -13 16h-163q-28 0 -38 54q-2 14 -3 26zM758 1706l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="Û" horiz-adv-x="1545" d="M41 1444q0 61 26 61h572q25 0 25 -70q0 -71 -35 -71h-160v-786q0 -341 194 -411q61 -22 141 -22t142 25.5t102 78.5q78 103 78 326v773q0 16 -13 16h-144q-29 0 -39 54q-2 14 -2 28q0 59 26 59h516q26 0 26 -64q0 -48 -13.5 -62.5t-22.5 -14.5h-169v-809 q0 -575 -519 -575q-280 0 -402 152q-112 139 -112 437v779q0 16 -13 16h-163q-28 0 -38 54q-2 14 -3 26zM472 1709l256 177q42 28 70 28q36 0 79 -28l256 -177q0 -63 -51 -91q-15 -8 -33 -9l-245 117l-248 -117q-34 1 -53 23q-31 38 -31 77z" />
|
||||
<glyph unicode="Ü" horiz-adv-x="1545" d="M41 1444q0 61 26 61h572q25 0 25 -70q0 -71 -35 -71h-160v-786q0 -341 194 -411q61 -22 141 -22t142 25.5t102 78.5q78 103 78 326v773q0 16 -13 16h-144q-29 0 -39 54q-2 14 -2 28q0 59 26 59h516q26 0 26 -64q0 -48 -13.5 -62.5t-22.5 -14.5h-169v-809 q0 -575 -519 -575q-280 0 -402 152q-112 139 -112 437v779q0 16 -13 16h-163q-28 0 -38 54q-2 14 -3 26zM445 1757v2q0 93 79 127q24 10 55 10q30 0 55 -10q26 -12 44 -30q40 -40 40 -99t-40 -99q-38 -38 -84 -38q-76 0 -112.5 39t-36.5 98zM898 1757q0 95 80 129 q25 10 55 10q59 0 99 -40q38 -38 38 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="Ý" horiz-adv-x="1284" d="M-31 1424q0 49 14 65t25 16h493q25 0 25 -57q0 -52 -15 -68t-26 -16q-106 0 -106 -35q0 -10 6 -22l285 -572l316 629h-156q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h436q25 0 25 -57q0 -52 -24 -76q-9 -8 -37 -8q-66 0 -88 -43l-397 -762v-418h245q26 0 26 -61 q0 -48 -15 -64t-26 -16h-717q-25 0 -25 57v3q0 47 27 74q7 7 14 7h151q91 0 105 25q4 8 4 18v375l-437 805h-112q-26 0 -26 60zM622 1706l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="Þ" horiz-adv-x="1219" d="M74 1446q0 59 26 59h592q25 0 25 -70q0 -71 -35 -71h-180v-182h153q361 0 467 -218q35 -70 35 -164v-5q0 -461 -655 -461v-193h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-530q-25 0 -25 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164 q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28zM502 488q206 0 302 48q120 62 120 216q0 84 -34 138t-92 84q-101 54 -296 54v-540z" />
|
||||
<glyph unicode="ß" horiz-adv-x="1191" d="M102 44l45 181v857q0 211 111 347q125 154 356 154q274 0 372 -181q36 -66 36 -145t-20.5 -127t-51 -87.5t-66.5 -73t-66 -65.5q-72 -75 -72 -127q0 -53 17 -82t45 -51q28 -20 64 -38l74 -37q96 -48 130 -90q69 -82 69 -200q-1 -136 -93 -217q-94 -82 -247 -82 q-111 0 -219 44q-78 32 -114 92q-18 30 -18 65q0 34 10 59q12 26 30 44q39 38 98 38q58 0 98 -39q39 -37 39 -96v-3q0 -27 -4 -41q32 -9 81 -9q48 0 71 10.5t39 27.5q34 35 34 83t-17 80t-45 55t-64 40l-74 34q-94 43 -129 81q-70 75 -70 187q0 142 130 270 q77 76 103.5 132.5t26.5 113.5t-19 93q-20 35 -48 55q-48 32 -123 33h-2q-74 0 -125 -35q-53 -35 -87 -88q-65 -101 -65 -229v-991l-91 -100q-11 -6 -27 -6q-56 0 -104 40q-14 12 -18 24z" />
|
||||
<glyph unicode="à" horiz-adv-x="1045" d="M69 261v3q0 153 113 239q99 76 247 76h247q0 167 -27.5 215.5t-66 67t-102.5 18.5h-102q12 -26 12 -59t-10 -58q-12 -25 -30 -43q-38 -38 -97 -39q-93 0 -127 82q-10 25 -10 62q0 36 21 68t55.5 55t78 37t88.5 22q79 14 173 14q93 0 161.5 -30t108.5 -81q69 -89 69 -252 v-517h168q27 0 27 -59q0 -26 -10 -51.5t-31 -30.5q-56 -16 -160 -16q-105 0 -117 3.5t-22 12.5q-19 17 -38 69q-122 -89 -294 -89q-154 0 -242 82q-83 76 -83 199zM210 1423q0 109 90 147q25 11 54 11h5l273 -285q0 -43 -20 -66q-36 -42 -78 -42zM271 291q0 -118 98 -148 q29 -9 61 -9q126 0 246 100v195h-218q-80 0 -118 -27q-69 -48 -69 -111z" />
|
||||
<glyph unicode="á" horiz-adv-x="1045" d="M69 261v3q0 153 113 239q99 76 247 76h247q0 167 -27.5 215.5t-66 67t-102.5 18.5h-102q12 -26 12 -59t-10 -58q-12 -25 -30 -43q-38 -38 -97 -39q-93 0 -127 82q-10 25 -10 62q0 36 21 68t55.5 55t78 37t88.5 22q79 14 173 14q93 0 161.5 -30t108.5 -81q69 -89 69 -252 v-517h168q27 0 27 -59q0 -26 -10 -51.5t-31 -30.5q-56 -16 -160 -16q-105 0 -117 3.5t-22 12.5q-19 17 -38 69q-122 -89 -294 -89q-154 0 -242 82q-83 76 -83 199zM271 291q0 -118 98 -148q29 -9 61 -9q126 0 246 100v195h-218q-80 0 -118 -27q-69 -48 -69 -111zM423 1296 l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="â" horiz-adv-x="1045" d="M69 261v3q0 153 113 239q99 76 247 76h247q0 167 -27.5 215.5t-66 67t-102.5 18.5h-102q12 -26 12 -59t-10 -58q-12 -25 -30 -43q-38 -38 -97 -39q-93 0 -127 82q-10 25 -10 62q0 36 21 68t55.5 55t78 37t88.5 22q79 14 173 14q93 0 161.5 -30t108.5 -81q69 -89 69 -252 v-517h168q27 0 27 -59q0 -26 -10 -51.5t-31 -30.5q-56 -16 -160 -16q-105 0 -117 3.5t-22 12.5q-19 17 -38 69q-122 -89 -294 -89q-154 0 -242 82q-83 76 -83 199zM160 1300l256 177q42 28 70 28q36 0 79 -28l256 -177q0 -64 -51 -92q-15 -8 -33 -8l-245 117l-248 -117 q-34 0 -53 22q-31 38 -31 78zM271 291q0 -118 98 -148q29 -9 61 -9q126 0 246 100v195h-218q-80 0 -118 -27q-69 -48 -69 -111z" />
|
||||
<glyph unicode="ã" horiz-adv-x="1045" d="M57 1309q65 117 179 174q48 24 100 24q51 0 87.5 -22.5t71.5 -50t70.5 -50t69.5 -22.5q33 0 58 15.5t46 36.5t38 43t31 34q38 0 60 -21q38 -36 38 -71q-54 -121 -168 -180q-48 -25 -96 -25q-49 0 -78.5 10t-55.5 24.5t-50 31.5q-24 18 -46 32q-54 34 -89 35h-3 q-34 0 -59 -14q-27 -14 -48 -32t-36.5 -36.5t-25.5 -27.5q-39 1 -59 21q-34 34 -35 71zM69 261v3q0 153 113 239q99 76 247 76h247q0 167 -27.5 215.5t-66 67t-102.5 18.5h-102q12 -26 12 -59t-10 -58q-12 -25 -30 -43q-38 -38 -97 -39q-93 0 -127 82q-10 25 -10 62 q0 36 21 68t55.5 55t78 37t88.5 22q79 14 173 14q93 0 161.5 -30t108.5 -81q69 -89 69 -252v-517h168q27 0 27 -59q0 -26 -10 -51.5t-31 -30.5q-56 -16 -160 -16q-105 0 -117 3.5t-22 12.5q-19 17 -38 69q-122 -89 -294 -89q-154 0 -242 82q-83 76 -83 199zM271 291 q0 -118 98 -148q29 -9 61 -9q126 0 246 100v195h-218q-80 0 -118 -27q-69 -48 -69 -111z" />
|
||||
<glyph unicode="ä" horiz-adv-x="1045" d="M69 261v3q0 153 113 239q99 76 247 76h247q0 167 -27.5 215.5t-66 67t-102.5 18.5h-102q12 -26 12 -59t-10 -58q-12 -25 -30 -43q-38 -38 -97 -39q-93 0 -127 82q-10 25 -10 62q0 36 21 68t55.5 55t78 37t88.5 22q79 14 173 14q93 0 161.5 -30t108.5 -81q69 -89 69 -252 v-517h168q27 0 27 -59q0 -26 -10 -51.5t-31 -30.5q-56 -16 -160 -16q-105 0 -117 3.5t-22 12.5q-19 17 -38 69q-122 -89 -294 -89q-154 0 -242 82q-83 76 -83 199zM114 1327q0 95 80 129q24 10 54 10t56 -10q26 -12 44 -30q39 -39 39 -96v-6q0 -57 -39 -96q-38 -38 -84 -38 q-76 0 -113 39t-37 98zM271 291q0 -118 98 -148q29 -9 61 -9q126 0 246 100v195h-218q-80 0 -118 -27q-69 -48 -69 -111zM567 1327q0 95 80 129q25 10 55 10q58 0 98 -40q38 -38 39 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="å" horiz-adv-x="1045" d="M69 261v3q0 153 113 239q99 76 247 76h247q0 167 -27.5 215.5t-66 67t-102.5 18.5h-102q12 -26 12 -59t-10 -58q-12 -25 -30 -43q-38 -38 -97 -39q-93 0 -127 82q-10 25 -10 62q0 36 21 68t55.5 55t78 37t88.5 22q79 14 173 14q93 0 161.5 -30t108.5 -81q69 -89 69 -252 v-517h168q27 0 27 -59q0 -26 -10 -51.5t-31 -30.5q-56 -16 -160 -16q-105 0 -117 3.5t-22 12.5q-19 17 -38 69q-122 -89 -294 -89q-154 0 -242 82q-83 76 -83 199zM257 1331v3q0 44 15.5 82t43.5 67q62 63 158 63t158 -63q59 -60 59 -147v-6q0 -87 -59 -146 q-62 -62 -158 -62t-158 62q-59 59 -59 147zM271 291q0 -118 98 -148q29 -9 61 -9q126 0 246 100v195h-218q-80 0 -118 -27q-69 -48 -69 -111zM396 1337q0 -35 23.5 -59.5t58.5 -24.5t58.5 24.5t23.5 59.5t-23.5 59.5t-58.5 24.5t-58.5 -24.5t-23.5 -59.5z" />
|
||||
<glyph unicode="æ" horiz-adv-x="1590" d="M71 261v3q0 155 113 246q103 83 247 83h202q9 81 9 98q0 187 -160 187h-18q-12 0 -27.5 -1t-30.5 -2t-26 -4q12 -26 12 -54q0 -29 -10 -54q-12 -25 -30 -43q-38 -38 -97 -39q-93 0 -127 82q-10 25 -10 62q0 36 19 68t50 55t71 37q38 14 80 22q73 14 139 14t109 -11 q44 -10 78 -30q68 -38 102 -100q110 100 258 131q48 10 119 10t144 -31.5t123 -91.5q101 -121 101 -340q0 -46 -43 -80t-110 -34h-521q11 -155 81.5 -232.5t180.5 -77.5q104 0 234 78l70 41q5 2 9 4t14 2q9 0 22.5 -11.5t24.5 -28.5q25 -39 25 -64q0 -26 -10 -33 q-183 -142 -399 -142q-217 0 -333 132l-66 -43q-136 -89 -294 -89q-154 0 -242 82q-83 76 -83 199zM273 303q0 -53 13 -83q12 -28 34 -48q42 -37 98 -37q3 -1 6 -1q51 0 84 9q35 8 65 22q52 24 107 70q-34 82 -46 208h-168q-83 0 -138 -43.5t-55 -96.5zM835 594h472 q-1 210 -117 258q-36 14 -79 15h-3q-42 0 -89 -17q-47 -18 -87 -52q-89 -78 -97 -204z" />
|
||||
<glyph unicode="ç" horiz-adv-x="1004" d="M82 510q0 240 145 380q136 130 347 131q226 -1 313 -99q33 -38 33 -81t-10 -68q-12 -25 -30 -43q-40 -39 -97 -39t-97 39q-40 38 -40 76t9 74h-93q-104 0 -179 -79q-96 -101 -96 -291q0 -278 155 -352q49 -24 100 -24t92 11t80 29q40 17 76 39l71 43q4 3 14 3 q9 0 23 -11.5t26 -27.5q26 -38 26 -63t-11 -34q-191 -143 -416 -143q-209 0 -327 145q-114 140 -114 385zM330 -382q0 54 29 54q141 0 193 50q18 16 18 38q0 61 -136 61l-39 48l52 146h159l-36 -105q114 -20 154 -92q14 -24 14 -54q0 -204 -368 -204q-20 0 -30 20 q-10 18 -10 38z" />
|
||||
<glyph unicode="è" horiz-adv-x="1042" d="M81 514q0 124 41 220q40 94 108 158q138 128 341 129h3q186 0 287 -117q101 -116 101 -335q0 -47 -43 -81q-42 -33 -106 -33h-527q18 -234 163 -300q46 -21 97 -21t91 11.5t77 29t72 39.5q73 46 86 46q12 -1 26 -12q12 -12 24 -28q26 -38 27 -64v-2q0 -24 -11 -32 q-183 -142 -416 -142q-209 0 -326 146q-115 142 -115 388zM239 1423q0 109 90 147q25 11 54 11h5l273 -285q-1 -43 -21 -66q-36 -42 -77 -42zM286 605h471v4q0 198 -115 244q-36 14 -80 14t-92 -16q-48 -17 -88 -49q-89 -73 -96 -197z" />
|
||||
<glyph unicode="é" horiz-adv-x="1042" d="M81 514q0 124 41 220q40 94 108 158q138 128 341 129h3q186 0 287 -117q101 -116 101 -335q0 -47 -43 -81q-42 -33 -106 -33h-527q18 -234 163 -300q46 -21 97 -21t91 11.5t77 29t72 39.5q73 46 86 46q12 -1 26 -12q12 -12 24 -28q26 -38 27 -64v-2q0 -24 -11 -32 q-183 -142 -416 -142q-209 0 -326 146q-115 142 -115 388zM286 605h471v4q0 198 -115 244q-36 14 -80 14t-92 -16q-48 -17 -88 -49q-89 -73 -96 -197zM474 1296l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="ê" horiz-adv-x="1042" d="M81 514q0 124 41 220q40 94 108 158q138 128 341 129h3q186 0 287 -117q101 -116 101 -335q0 -47 -43 -81q-42 -33 -106 -33h-527q18 -234 163 -300q46 -21 97 -21t91 11.5t77 29t72 39.5q73 46 86 46q12 -1 26 -12q12 -12 24 -28q26 -38 27 -64v-2q0 -24 -11 -32 q-183 -142 -416 -142q-209 0 -326 146q-115 142 -115 388zM214 1300l256 177q42 28 70 28q36 0 79 -28l256 -177q0 -64 -51 -92q-15 -8 -33 -8l-245 117l-248 -117q-34 0 -53 22q-31 38 -31 78zM286 605h471v4q0 198 -115 244q-36 14 -80 14t-92 -16q-48 -17 -88 -49 q-89 -73 -96 -197z" />
|
||||
<glyph unicode="ë" horiz-adv-x="1042" d="M81 514q0 124 41 220q40 94 108 158q138 128 341 129h3q186 0 287 -117q101 -116 101 -335q0 -47 -43 -81q-42 -33 -106 -33h-527q18 -234 163 -300q46 -21 97 -21t91 11.5t77 29t72 39.5q73 46 86 46q12 -1 26 -12q12 -12 24 -28q26 -38 27 -64v-2q0 -24 -11 -32 q-183 -142 -416 -142q-209 0 -326 146q-115 142 -115 388zM206 1327q0 95 80 129q24 10 54 10t56 -10q26 -12 44 -30q39 -39 39 -96v-6q0 -57 -39 -96q-38 -38 -84 -38q-76 0 -113 39t-37 98zM286 605h471v4q0 198 -115 244q-36 14 -80 14t-92 -16q-48 -17 -88 -49 q-89 -73 -96 -197zM659 1327q0 95 80 129q25 10 55 10q58 0 98 -40q38 -38 39 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="ì" horiz-adv-x="662" d="M22 1423q0 109 90 147q25 11 54 11h5l273 -285q0 -43 -20 -66q-36 -42 -78 -42zM34 927q0 46 27 56.5t71 17.5t92 11q92 8 177 9h1q42 0 44 -85v-795h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q117 0 132 23q5 7 5 17v666h-176 q-29 1 -39 51q-2 14 -2 29z" />
|
||||
<glyph unicode="í" horiz-adv-x="662" d="M34 927q0 46 27 56.5t71 17.5t92 11q92 8 177 9h1q42 0 44 -85v-795h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q117 0 132 23q5 7 5 17v666h-176q-29 1 -39 51q-2 14 -2 29zM257 1296l273 285h3q62 0 103 -43q43 -44 43 -115 l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="î" horiz-adv-x="662" d="M-25 1300l256 177q43 28 71 28q36 0 78 -28l256 -177q0 -64 -51 -92q-15 -8 -33 -8l-245 117l-248 -117q-34 0 -53 22q-31 38 -31 78zM34 927q0 46 27 56.5t71 17.5t92 11q92 8 177 9h1q42 0 44 -85v-795h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61 q0 48 15 64t26 16h10q117 0 132 23q5 7 5 17v666h-176q-29 1 -39 51q-2 14 -2 29z" />
|
||||
<glyph unicode="ï" horiz-adv-x="662" d="M-44 1327q0 95 80 129q24 10 54 10t56 -10q26 -12 44 -30q39 -39 39 -96v-6q0 -57 -39 -96q-38 -38 -84 -38q-76 0 -113 39t-37 98zM34 927q0 46 27 56.5t71 17.5t92 11q92 8 177 9h1q42 0 44 -85v-795h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61 q0 48 15 64t26 16h10q117 0 132 23q5 7 5 17v666h-176q-29 1 -39 51q-2 14 -2 29zM409 1327q0 95 80 129q25 10 55 10q58 0 98 -40q38 -38 39 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="ð" horiz-adv-x="1113" d="M78 510q0 212 146 356q138 136 313 136q109 0 185 -49q-56 140 -214 279l-201 -163l-86 105l180 143q-96 69 -197 118q-25 12 -25 47q0 34 16 58q29 43 58 43q23 0 125 -57.5t161 -98.5l196 156q2 0 13 -15l69 -85l-170 -138q280 -237 343 -591q21 -118 21 -249t-37 -229 t-103 -164q-132 -132 -358 -132q-203 0 -321 152q-114 146 -114 378zM283 507q0 -273 155 -349q48 -24 112 -24q63 0 111.5 29.5t80.5 80.5q64 102 64 262q0 342 -270 342q-96 0 -168 -82q-84 -97 -85 -256v-3z" />
|
||||
<glyph unicode="ñ" horiz-adv-x="1290" d="M34 925q0 46 26.5 56.5t67.5 18.5t86 12q90 10 135 10h4q44 -1 53 -10q10 -10 14 -26q5 -17 5 -71v-19q151 84 275 115q40 10 102 10q61 0 123 -26.5t98 -76.5q64 -88 64 -280v-497h155q27 0 27 -61q0 -48 -15 -64t-26 -16h-455q-26 0 -26 61q0 48 15 64t26 16 q104 0 104 43v297q0 194 -22 254.5t-56.5 86t-93.5 25.5q-111 0 -274 -129v-577h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q115 0 131 23q6 8 6 20v663h-176q-31 1 -39 49q-2 14 -2 29zM229 1309q65 117 179 174q48 24 100 24 q51 0 87.5 -22.5t71.5 -50t70.5 -50t69.5 -22.5q33 0 58 15.5t46 36.5t38 43t31 34q38 0 60 -21q38 -36 38 -71q-54 -121 -168 -180q-48 -25 -96 -25q-49 0 -78.5 10t-55.5 24.5t-50 31.5q-24 18 -46 32q-54 34 -89 35h-3q-34 0 -59 -14q-27 -14 -48 -32t-36.5 -36.5 t-25.5 -27.5q-39 1 -59 21q-34 34 -35 71z" />
|
||||
<glyph unicode="ò" horiz-adv-x="1093" d="M80 512q0 246 152 384q138 125 348 125h3q196 0 315 -149q114 -142 114 -368q0 -252 -140 -392q-132 -132 -355 -132q-107 0 -188 40t-137 112q-112 145 -112 380zM244 1423q0 109 90 147q25 11 54 11h5l273 -285q0 -43 -20 -66q-36 -42 -78 -42zM285 517q0 -102 19 -173 q20 -70 54 -116q69 -94 191 -94q126 0 195 110q63 100 63 262q-1 271 -159 340q-48 21 -97 21q-50 0 -95.5 -15t-83.5 -55t-62.5 -109.5t-24.5 -170.5z" />
|
||||
<glyph unicode="ó" horiz-adv-x="1093" d="M80 512q0 246 152 384q138 125 348 125h3q196 0 315 -149q114 -142 114 -368q0 -252 -140 -392q-132 -132 -355 -132q-107 0 -188 40t-137 112q-112 145 -112 380zM285 517q0 -102 19 -173q20 -70 54 -116q69 -94 191 -94q126 0 195 110q63 100 63 262q-1 271 -159 340 q-48 21 -97 21q-50 0 -95.5 -15t-83.5 -55t-62.5 -109.5t-24.5 -170.5zM480 1296l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="ô" horiz-adv-x="1093" d="M80 512q0 246 152 384q138 125 348 125h3q196 0 315 -149q114 -142 114 -368q0 -252 -140 -392q-132 -132 -355 -132q-107 0 -188 40t-137 112q-112 145 -112 380zM247 1300l256 177q43 28 71 28q36 0 78 -28l256 -177q0 -64 -51 -92q-15 -8 -33 -8l-245 117l-248 -117 q-34 0 -53 22q-31 38 -31 78zM285 517q0 -102 19 -173q20 -70 54 -116q69 -94 191 -94q126 0 195 110q63 100 63 262q-1 271 -159 340q-48 21 -97 21q-50 0 -95.5 -15t-83.5 -55t-62.5 -109.5t-24.5 -170.5z" />
|
||||
<glyph unicode="õ" horiz-adv-x="1093" d="M80 512q0 246 152 384q138 125 348 125h3q196 0 315 -149q114 -142 114 -368q0 -252 -140 -392q-132 -132 -355 -132q-107 0 -188 40t-137 112q-112 145 -112 380zM146 1309q74 121 180 174q48 24 99 24t87.5 -22.5t72 -50t71 -50t69.5 -22.5q33 0 57.5 15.5t45.5 36.5 t38.5 43t31.5 34q38 0 60 -21q38 -36 38 -71q-54 -121 -168 -180q-48 -25 -97 -25t-78.5 10t-55.5 24.5t-49.5 32t-45.5 31.5q-54 34 -90 35h-3q-34 0 -59 -14q-27 -14 -48 -32t-36 -36.5t-26 -27.5q-37 1 -59 21q-35 34 -35 71zM285 517q0 -102 19 -173q20 -70 54 -116 q69 -94 191 -94q126 0 195 110q63 100 63 262q-1 271 -159 340q-48 21 -97 21q-50 0 -95.5 -15t-83.5 -55t-62.5 -109.5t-24.5 -170.5z" />
|
||||
<glyph unicode="ö" horiz-adv-x="1093" d="M80 512q0 246 152 384q138 125 348 125h3q196 0 315 -149q114 -142 114 -368q0 -252 -140 -392q-132 -132 -355 -132q-107 0 -188 40t-137 112q-112 145 -112 380zM181 1327v2q0 93 79 127q24 10 55 10q30 0 55 -10q26 -12 44 -30q40 -40 40 -99t-40 -99q-38 -38 -84 -38 q-76 0 -112.5 39t-36.5 98zM285 517q0 -102 19 -173q20 -70 54 -116q69 -94 191 -94q126 0 195 110q63 100 63 262q-1 271 -159 340q-48 21 -97 21q-50 0 -95.5 -15t-83.5 -55t-62.5 -109.5t-24.5 -170.5zM634 1327q0 95 80 129q25 10 55 10q59 0 99 -40q38 -38 38 -99 q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="÷" horiz-adv-x="1065" d="M71 651q0 10 3 22q2 13 7 25q12 27 30 27h843q26 0 36 -50q2 -13 3 -24q0 -47 -14.5 -63.5t-24.5 -16.5h-842q-28 0 -38 52q-2 13 -2 25q-1 1 -1 3zM395 324q0 59 38 99t83 40q44 0 69 -10.5t43 -29.5q38 -40 39 -99q0 -93 -82 -126q-25 -10 -54 -10q-30 0 -55 10t-43 28 q-38 38 -38 98zM395 957q0 45 10 70t28 43q38 38 83 38q44 0 69 -10t43 -28q38 -37 39 -82v-5q0 -42 -10 -66q-10 -25 -28.5 -43t-43.5 -28t-69 -10q-45 0 -83 37.5t-38 83.5z" />
|
||||
<glyph unicode="ø" horiz-adv-x="1095" d="M40 -39l145 192q-102 146 -102 359q1 247 153 385q138 125 347 125q120 0 215 -58l59 78q17 22 50 23.5t44 1.5q10 0 25 -1q16 0 30 -2q34 -6 34 -22l-133 -178q108 -143 108 -360q0 -247 -152 -392q-138 -132 -347 -132q-126 0 -221 64l-62 -83q-19 -27 -111 -27 q-82 0 -82 27zM288 510q0 -128 16 -199l398 527q-56 33 -127 33t-117 -16q-45 -17 -83 -57q-87 -93 -87 -288zM390 171q58 -37 143 -37t133.5 29.5t80.5 80.5q63 100 63 246t-20 217z" />
|
||||
<glyph unicode="ù" horiz-adv-x="1234" d="M21 923q0 50 20 55q168 43 307 43q44 0 46 -80v-530q0 -195 100 -233q30 -12 75 -12q44 0 84.5 10t72.5 24q30 15 54 32l43 32v583h-137q-41 0 -41 74q0 47 26.5 57.5t64.5 18.5q38 7 79 13q78 10 125 11h3q43 0 53 -11q12 -10 16 -28q6 -25 6 -88v-753h168q27 0 27 -65 q0 -70 -41 -76q-102 -16 -182 -16t-94 8t-24 22q-16 22 -38 82q-159 -116 -287 -116q-252 0 -324 202q-24 67 -24 156v509h-141q-37 0 -37 76zM293 1423q0 109 90 147q25 11 54 11h5l273 -285q-1 -43 -21 -66q-36 -42 -77 -42z" />
|
||||
<glyph unicode="ú" horiz-adv-x="1234" d="M21 923q0 50 20 55q168 43 307 43q44 0 46 -80v-530q0 -195 100 -233q30 -12 75 -12q44 0 84.5 10t72.5 24q30 15 54 32l43 32v583h-137q-41 0 -41 74q0 47 26.5 57.5t64.5 18.5q38 7 79 13q78 10 125 11h3q43 0 53 -11q12 -10 16 -28q6 -25 6 -88v-753h168q27 0 27 -65 q0 -70 -41 -76q-102 -16 -182 -16t-94 8t-24 22q-16 22 -38 82q-159 -116 -287 -116q-252 0 -324 202q-24 67 -24 156v509h-141q-37 0 -37 76zM528 1296l273 285h3q62 0 103 -43q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="û" horiz-adv-x="1234" d="M21 923q0 50 20 55q168 43 307 43q44 0 46 -80v-530q0 -195 100 -233q30 -12 75 -12q44 0 84.5 10t72.5 24q30 15 54 32l43 32v583h-137q-41 0 -41 74q0 47 26.5 57.5t64.5 18.5q38 7 79 13q78 10 125 11h3q43 0 53 -11q12 -10 16 -28q6 -25 6 -88v-753h168q27 0 27 -65 q0 -70 -41 -76q-102 -16 -182 -16t-94 8t-24 22q-16 22 -38 82q-159 -116 -287 -116q-252 0 -324 202q-24 67 -24 156v509h-141q-37 0 -37 76zM267 1300l256 177q43 28 71 28q36 0 78 -28l256 -177q0 -64 -51 -92q-15 -8 -33 -8l-245 117l-248 -117q-34 0 -53 22 q-31 38 -31 78z" />
|
||||
<glyph unicode="ü" horiz-adv-x="1234" d="M21 923q0 50 20 55q168 43 307 43q44 0 46 -80v-530q0 -195 100 -233q30 -12 75 -12q44 0 84.5 10t72.5 24q30 15 54 32l43 32v583h-137q-41 0 -41 74q0 47 26.5 57.5t64.5 18.5q38 7 79 13q78 10 125 11h3q43 0 53 -11q12 -10 16 -28q6 -25 6 -88v-753h168q27 0 27 -65 q0 -70 -41 -76q-102 -16 -182 -16t-94 8t-24 22q-16 22 -38 82q-159 -116 -287 -116q-252 0 -324 202q-24 67 -24 156v509h-141q-37 0 -37 76zM227 1327v2q0 93 79 127q24 10 55 10q30 0 55 -10q26 -12 44 -30q40 -40 40 -99t-40 -99q-38 -38 -84 -38q-76 0 -112.5 39 t-36.5 98zM680 1327q0 95 80 129q25 10 55 10q59 0 99 -40q38 -38 38 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="ý" horiz-adv-x="1099" d="M6 920q0 49 14 65t25 16h434q25 0 25 -57q0 -51 -15.5 -67.5t-25.5 -16.5q-88 0 -88 -43l203 -594l237 637h-131q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h375q25 0 25 -57q0 -52 -24 -76q-8 -8 -24 -8q-17 0 -32 -2q-14 -2 -24 -8q-16 -9 -25 -33l-422 -1077 q-32 -83 -104 -131.5t-177 -48.5q-140 0 -196 92q-20 34 -20 73q-1 2 -1 3q0 37 11 62q10 26 28 44q40 40 87 40h2q48 -1 74 -14q25 -14 41 -36q28 -41 29 -110q32 0 55.5 36t41 77t30 77.5t21 64.5t11.5 37l-332 854h-112q-26 0 -26 60zM557 1296l273 285h3q62 0 103 -43 q43 -44 43 -115l-323 -235q-42 0 -63 24q-36 41 -36 84z" />
|
||||
<glyph unicode="þ" horiz-adv-x="1093" d="M-77 1489q0 45 27 56t71 19q45 7 93 11q97 8 176 8q42 0 45 -85q1 -25 1 -52v-508q146 83 250 83t179 -35.5t130 -101.5q116 -140 116 -378q0 -248 -137 -388q-129 -132 -338 -132q-82 0 -170 45q-20 10 -30 14v-342h222q27 0 27 -61q0 -48 -15 -64t-26 -16h-565 q-27 0 -27 61q0 48 15 64t26 16q125 0 142 23q6 8 6 20v1663h-177q-28 1 -38 51q-2 14 -3 29zM336 195q69 -55 188 -55q190 0 256 182q26 72 26 181q0 108 -25 173.5t-63 103.5q-66 67 -160 67q-88 0 -168 -51q-30 -19 -54 -47v-554z" />
|
||||
<glyph unicode="ÿ" horiz-adv-x="1099" d="M6 920q0 49 14 65t25 16h434q25 0 25 -57q0 -51 -15.5 -67.5t-25.5 -16.5q-88 0 -88 -43l203 -594l237 637h-131q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h375q25 0 25 -57q0 -52 -24 -76q-8 -8 -24 -8q-17 0 -32 -2q-14 -2 -24 -8q-16 -9 -25 -33l-422 -1077 q-32 -83 -104 -131.5t-177 -48.5q-140 0 -196 92q-20 34 -20 73q-1 2 -1 3q0 37 11 62q10 26 28 44q40 40 87 40h2q48 -1 74 -14q25 -14 41 -36q28 -41 29 -110q32 0 55.5 36t41 77t30 77.5t21 64.5t11.5 37l-332 854h-112q-26 0 -26 60zM230 1327q0 95 80 129q24 10 54 10 t56 -10q26 -12 44 -30q39 -39 39 -96v-6q0 -57 -39 -96q-38 -38 -84 -38q-76 0 -113 39t-37 98zM683 1327q0 95 80 129q25 10 55 10q58 0 98 -40q38 -38 39 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55z" />
|
||||
<glyph unicode="Œ" horiz-adv-x="2042" d="M102 731q0 386 192 597q179 197 480 197q89 0 171 -20h1008v-291q0 -34 -70 -34q-71 0 -71 22q0 84 -22 108q-39 41 -142 41h-393v-503h254q46 0 54 22q13 32 13 129q0 23 60 23q52 0 67 -14t15 -23v-428q0 -41 -72 -41t-72 27v151h-319v-540h530l76 149q10 19 38 19 q27 0 42 -3t27 -8q27 -11 27 -30q0 -5 -1 -7l-92 -274h-992q-88 -20 -198 -20t-224 44q-114 45 -200 137q-186 200 -186 570zM332 823q0 -505 249 -636q80 -42 182 -42q192 0 281 76v1032q-105 107 -303 107q-175 0 -289 -145q-120 -151 -120 -392z" />
|
||||
<glyph unicode="œ" horiz-adv-x="1769" d="M80 512q0 246 152 384q138 125 351 125t333 -174q138 174 383 174h3q186 0 287 -117q101 -116 101 -335q0 -47 -43 -81q-42 -33 -106 -33h-527q18 -234 163 -300q46 -21 97 -21t91 11.5t77 29t72 39.5q73 46 86 46q12 -1 26 -12q12 -12 24 -28q26 -38 27 -64v-2 q0 -24 -11 -32q-183 -142 -412 -142t-349 170q-132 -170 -390 -170q-205 0 -323 152q-112 145 -112 380zM285 517q0 -102 19 -173q20 -70 54 -116q69 -94 191 -94q126 0 195 110q63 100 63 262q-1 271 -159 340q-48 21 -97 21q-50 0 -95.5 -15t-83.5 -55t-62.5 -109.5 t-24.5 -170.5zM1014 605h471v4q0 198 -115 244q-36 14 -80 14t-92 -16q-48 -17 -88 -49q-89 -73 -96 -197z" />
|
||||
<glyph unicode="Ÿ" horiz-adv-x="1284" d="M280 1784q0 95 80 129q24 10 54 10t56 -10q26 -12 44 -30q39 -39 39 -96v-6q0 -57 -39 -96q-38 -38 -84 -38q-76 0 -113 39t-37 98zM733 1784q0 95 80 129q25 10 55 10q58 0 98 -40q38 -38 39 -99q0 -94 -82 -127q-25 -10 -55 -10q-92 0 -125 82q-10 25 -10 55zM-31 1424 q0 49 14 65t25 16h493q25 0 25 -57q0 -52 -15 -68t-26 -16q-106 0 -106 -35q0 -10 6 -22l285 -572l316 629h-156q-26 0 -26 58q0 52 13.5 67.5t22.5 15.5h436q25 0 25 -57q0 -52 -24 -76q-9 -8 -37 -8q-66 0 -88 -43l-397 -762v-418h245q26 0 26 -61q0 -48 -15 -64t-26 -16 h-717q-25 0 -25 57v3q0 47 27 74q7 7 14 7h151q91 0 105 25q4 8 4 18v375l-437 805h-112q-26 0 -26 60z" />
|
||||
<glyph unicode="ˆ" horiz-adv-x="1045" d="M192 1300l256 177q42 28 70 28q36 0 79 -28l256 -177q0 -64 -51 -92q-15 -8 -33 -8l-245 117l-248 -117q-34 0 -53 22q-31 38 -31 78z" />
|
||||
<glyph unicode="˜" horiz-adv-x="1233" d="M192 1309q66 117 180 174q48 24 99 24t87.5 -22.5t71.5 -50t70.5 -50t69.5 -22.5q33 0 58 15.5t46 36.5t38 43t31 34q38 0 60 -21q38 -36 38 -71q-53 -121 -167 -180q-48 -25 -97 -25t-78.5 10t-55.5 24.5t-49.5 32t-45.5 31.5q-54 34 -90 35h-3q-34 0 -59 -14 q-27 -14 -48 -32t-36.5 -36.5t-25.5 -27.5q-40 1 -60 21q-34 34 -34 71z" />
|
||||
<glyph unicode=" " horiz-adv-x="995" />
|
||||
<glyph unicode=" " horiz-adv-x="1991" />
|
||||
<glyph unicode=" " horiz-adv-x="995" />
|
||||
<glyph unicode=" " horiz-adv-x="1991" />
|
||||
<glyph unicode=" " horiz-adv-x="663" />
|
||||
<glyph unicode=" " horiz-adv-x="497" />
|
||||
<glyph unicode=" " horiz-adv-x="331" />
|
||||
<glyph unicode=" " horiz-adv-x="331" />
|
||||
<glyph unicode=" " horiz-adv-x="248" />
|
||||
<glyph unicode=" " horiz-adv-x="398" />
|
||||
<glyph unicode=" " horiz-adv-x="110" />
|
||||
<glyph unicode="‐" horiz-adv-x="750" d="M112 600q0 12 2.5 27t7.5 29q12 33 31 33h447q26 0 36 -59q2 -14 2 -26q0 -52 -14.5 -71.5t-24.5 -19.5h-447q-28 0 -38 61q-2 14 -2 26z" />
|
||||
<glyph unicode="‑" horiz-adv-x="750" d="M112 600q0 12 2.5 27t7.5 29q12 33 31 33h447q26 0 36 -59q2 -14 2 -26q0 -52 -14.5 -71.5t-24.5 -19.5h-447q-28 0 -38 61q-2 14 -2 26z" />
|
||||
<glyph unicode="‒" horiz-adv-x="750" d="M112 600q0 12 2.5 27t7.5 29q12 33 31 33h447q26 0 36 -59q2 -14 2 -26q0 -52 -14.5 -71.5t-24.5 -19.5h-447q-28 0 -38 61q-2 14 -2 26z" />
|
||||
<glyph unicode="–" horiz-adv-x="1103" d="M113 615q0 10 3 22q2 13 7 25q12 27 30 27h798q27 0 37 -50q2 -13 2 -24q0 -45 -14.5 -62.5t-24.5 -17.5h-797q-28 0 -38 52q-2 13 -2 25q-1 1 -1 3z" />
|
||||
<glyph unicode="—" horiz-adv-x="1979" d="M113 614q0 10 3 22q2 13 7 25q12 28 31 28h1673q27 0 37 -51q2 -13 2 -24q0 -48 -14.5 -63.5t-24.5 -15.5h-1673q-28 0 -38 51q-2 13 -2 25q-1 1 -1 3z" />
|
||||
<glyph unicode="‘" horiz-adv-x="443" d="M66 1200q0 176 265 383q29 0 44.5 -16t15.5 -43q-106 -119 -106 -195q74 -39 74 -129q-1 -60 -43 -100q-41 -40 -85 -40q-1 0 -1 1q-45 0 -72 11q-28 12 -48 30q-44 40 -44 98z" />
|
||||
<glyph unicode="’" horiz-adv-x="447" d="M80 1120q106 119 106 195q-74 39 -74 129q0 60 42 100q41 40 86 40h1q45 -1 72 -12q27 -12 47 -30q44 -40 45 -98q0 -176 -265 -383q-29 0 -44.5 16t-15.5 43z" />
|
||||
<glyph unicode="‚" horiz-adv-x="505" d="M74 -211q106 119 106 195q-74 39 -74 129q0 59 42 99t87 40t72 -11t47 -29q44 -40 45 -99q0 -176 -265 -383q-29 0 -44.5 16t-15.5 43z" />
|
||||
<glyph unicode="“" horiz-adv-x="842" d="M66 1200q0 176 265 383q29 0 44.5 -16t15.5 -43q-106 -119 -106 -195q74 -39 74 -129q-1 -60 -43 -100q-41 -40 -85 -40q-1 0 -1 1q-45 0 -72 11q-28 12 -48 30q-44 40 -44 98zM465 1200q0 176 265 383q29 0 44.5 -16t15.5 -43q-106 -119 -106 -195q74 -39 74 -129 q0 -60 -42 -100q-41 -40 -86 -40l-1 1q-45 0 -72 11q-27 12 -47 30q-44 40 -45 98z" />
|
||||
<glyph unicode="”" horiz-adv-x="845" d="M80 1120q106 119 106 195q-74 39 -74 129q0 60 42 100q41 40 86 40h1q45 -1 72 -12q27 -12 47 -30q44 -40 45 -98q0 -176 -265 -383q-29 0 -44.5 16t-15.5 43zM479 1120q106 119 106 195q-74 39 -74 129q1 60 43 100q41 40 85 40h2q44 -1 71 -12q28 -12 48 -30 q44 -40 44 -98q0 -176 -265 -383q-29 0 -44.5 16t-15.5 43z" />
|
||||
<glyph unicode="„" horiz-adv-x="904" d="M74 -211q106 119 106 195q-74 39 -74 129q0 59 42 99t87 40t72 -11t47 -29q44 -40 45 -99q0 -176 -265 -383q-29 0 -44.5 16t-15.5 43zM473 -211q106 119 106 195q-74 39 -74 129q1 59 43 99t87 40q44 0 71 -11q28 -11 48 -29q44 -40 44 -99q0 -176 -265 -383 q-29 0 -44.5 16t-15.5 43z" />
|
||||
<glyph unicode="•" horiz-adv-x="713" d="M100 770q0 112 73 186q72 74 181 74q110 0 185 -74t75 -186q0 -110 -75.5 -183t-184.5 -73q-54 0 -100.5 19.5t-80.5 53.5q-73 73 -73 183z" />
|
||||
<glyph unicode="…" horiz-adv-x="1461" d="M1080 115q0 95 84 129q26 10 55 10t54 -10q25 -12 43 -30q39 -40 39 -99q0 -92 -82 -125q-25 -10 -54 -10q-30 0 -55.5 10t-43.5 28q-40 38 -40 97zM593 115q0 95 84 129q26 10 55 10t54 -10q25 -12 43 -30q39 -40 39 -99q0 -92 -82 -125q-25 -10 -54 -10q-30 0 -55.5 10 t-43.5 28q-40 38 -40 97zM106 115q0 95 84 129q26 10 55 10t54 -10q25 -12 43 -30q39 -40 39 -99q0 -92 -82 -125q-25 -10 -54 -10q-30 0 -55.5 10t-43.5 28q-40 38 -40 97z" />
|
||||
<glyph unicode=" " horiz-adv-x="398" />
|
||||
<glyph unicode="‹" horiz-adv-x="686" d="M43 502q0 69 40 100l421 333q31 0 52 -22q37 -39 37 -73l-306 -305l306 -351q0 -34 -20 -55q-36 -39 -68 -39l-422 339q-40 33 -40 73z" />
|
||||
<glyph unicode="›" horiz-adv-x="686" d="M93 185l305 305l-305 351q0 34 19 56q34 38 68 38l422 -340q41 -33 41 -72q0 -66 -42 -100l-420 -333q-30 0 -51 22q-37 39 -37 73z" />
|
||||
<glyph unicode=" " horiz-adv-x="497" />
|
||||
<glyph unicode="€" d="M27 642q0 10 3 22q2 12 7 24q12 28 31 28h133v18q0 58 3 112h-88q-28 0 -38 52q-2 13 -3 24q0 46 15 62t26 16h103q80 525 516 525q157 0 283 -76q140 -85 141 -208q-1 -64 -45 -110q-43 -44 -108 -44t-109 44q-45 45 -45 106q0 60 22 98q-59 36 -159 36 q-101 0 -169 -94.5t-96 -276.5h307q27 0 37 -51q2 -13 2 -24t-2 -25q-4 -14 -8 -26q-10 -28 -29 -28h-321q-2 -22 -2 -44v-86h278q26 0 36 -50q2 -13 3 -24v-4q0 -10 -2 -22q-3 -14 -7 -26q-10 -28 -30 -28h-268q35 -300 186 -387q52 -30 104 -30q51 0 86 7t69 19 q62 22 95.5 41t45.5 19q11 0 23.5 -9.5t22.5 -23.5q24 -31 24 -57q0 -27 -18.5 -43.5t-49.5 -37.5q-32 -21 -74 -39q-97 -41 -222 -41t-217 50q-91 49 -155 131q-118 152 -152 401h-144q-28 0 -38 52q-2 13 -2 25q-1 1 -1 3z" />
|
||||
<glyph unicode="™" horiz-adv-x="3244" d="M1349 1446q0 59 26 59h298q28 0 41 -29l549 -1156l481 1165q9 20 26 20h375q25 0 25 -70q0 -71 -35 -71h-180v-1223h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-530q-25 0 -25 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v935l-449 -1119 q-12 -12 -40 -12q-54 0 -75 12l-460 1023v-882h167q26 0 26 -61q0 -48 -15 -64t-26 -16h-472q-25 0 -25 57q0 49 28 77q8 8 31 8h4q4 -1 8 -1q23 0 47 3q29 2 45 7q28 9 28 33v1164q0 16 -13 16h-163q-29 0 -39 54q-2 14 -2 28zM18 1228v4l38 273h1161l38 -273v-4 q0 -36 -55 -48q-12 -3 -25 -3h-6q-39 0 -48 26l-44 148h-335v-1210h168q27 0 27 -67q0 -43 -15.5 -58.5t-25.5 -15.5h-531q-24 0 -24 57q0 51 27 77q8 8 32 8h3q4 -1 9 -1q23 0 47 3q29 2 45 7q27 8 27 33v1167h-335l-44 -148q-9 -26 -50 -26q-50 1 -76 31q-8 10 -8 20z" />
|
||||
<glyph unicode="" horiz-adv-x="1000" d="M0 1000h1000v-1000h-1000v1000z" />
|
||||
<glyph unicode="fi" horiz-adv-x="1454" d="M826 927q0 46 27 56.5t71 17.5t92 11q92 8 177 9h1q42 0 44 -85v-795h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q117 0 132 23q5 7 5 17v666h-176q-29 1 -39 51q-2 14 -2 29zM982 1409q0 95 83 129q25 10 54 10q58 0 97.5 -39.5 t39.5 -99.5q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55zM64 847q0 110 13.5 132t29.5 22h10q116 0 132 23q6 8 6 20v126q0 288 179 379q66 34 135 34t107 -7t68 -26q70 -43 70 -133q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55v32h-1 q-81 0 -87 -169q-2 -48 -2 -96v-183h269q25 0 25 -59q0 -58 -24 -86q-7 -9 -19 -9h-251v-706h226q27 0 27 -61q0 -48 -15 -64t-26 -16h-569q-27 0 -27 61q0 48 15 64t26 16h10q116 0 132 23q6 8 6 20v663h-191z" />
|
||||
<glyph unicode="fl" horiz-adv-x="1413" d="M785 1489q0 46 27 56.5t71 17.5q45 7 93 11q92 8 176 9q42 0 44 -85q0 -25 1 -52v-1305h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q116 0 131 23q6 8 6 20v1225h-176q-28 1 -38 51q-2 14 -3 29zM64 847q0 110 13.5 132t29.5 22h10 q116 0 132 23q6 8 6 20v126q0 288 179 379q66 34 135 34t107 -7t68 -26q70 -43 70 -133q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55v32h-1q-81 0 -87 -169q-2 -48 -2 -96v-183h269q25 0 25 -59q0 -58 -24 -86q-7 -9 -19 -9h-251v-706h226q27 0 27 -61 q0 -48 -15 -64t-26 -16h-569q-27 0 -27 61q0 48 15 64t26 16h10q116 0 132 23q6 8 6 20v663h-191z" />
|
||||
<glyph unicode="ffi" horiz-adv-x="2246" d="M1618 927q0 46 27 56.5t71 17.5t92 11q92 8 177 9h1q42 0 44 -85v-795h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q117 0 132 23q5 7 5 17v666h-176q-29 1 -39 51q-2 14 -2 29zM1774 1409q0 95 83 129q25 10 54 10q58 0 97.5 -39.5 t39.5 -99.5q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55zM856 847q0 110 13.5 132t29.5 22h10q116 0 132 23q6 8 6 20v126q0 288 179 379q66 34 135 34t107 -7t68 -26q70 -43 70 -133q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55v32h-1 q-81 0 -87 -169q-2 -48 -2 -96v-183h269q25 0 25 -59q0 -58 -24 -86q-7 -9 -19 -9h-251v-706h226q27 0 27 -61q0 -48 -15 -64t-26 -16h-569q-27 0 -27 61q0 48 15 64t26 16h10q116 0 132 23q6 8 6 20v663h-191zM64 847q0 110 13.5 132t29.5 22h10q116 0 132 23q6 8 6 20v126 q0 288 179 379q66 34 135 34t107 -7t68 -26q70 -43 70 -133q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55v32h-1q-81 0 -87 -169q-2 -48 -2 -96v-183h269q25 0 25 -59q0 -58 -24 -86q-7 -9 -19 -9h-251v-706h226q27 0 27 -61q0 -48 -15 -64t-26 -16h-569 q-27 0 -27 61q0 48 15 64t26 16h10q116 0 132 23q6 8 6 20v663h-191z" />
|
||||
<glyph unicode="ffl" horiz-adv-x="2205" d="M1577 1489q0 46 27 56.5t71 17.5q45 7 93 11q92 8 176 9q42 0 44 -85q0 -25 1 -52v-1305h168q26 0 26 -61q0 -48 -15 -64t-26 -16h-510q-26 0 -26 61q0 48 15 64t26 16h10q116 0 131 23q6 8 6 20v1225h-176q-28 1 -38 51q-2 14 -3 29zM856 847q0 110 13.5 132t29.5 22h10 q116 0 132 23q6 8 6 20v126q0 288 179 379q66 34 135 34t107 -7t68 -26q70 -43 70 -133q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82q-10 25 -10 55v32h-1q-81 0 -87 -169q-2 -48 -2 -96v-183h269q25 0 25 -59q0 -58 -24 -86q-7 -9 -19 -9h-251v-706h226q27 0 27 -61 q0 -48 -15 -64t-26 -16h-569q-27 0 -27 61q0 48 15 64t26 16h10q116 0 132 23q6 8 6 20v663h-191zM64 847q0 110 13.5 132t29.5 22h10q116 0 132 23q6 8 6 20v126q0 288 179 379q66 34 135 34t107 -7t68 -26q70 -43 70 -133q0 -59 -40 -99q-38 -38 -97 -38q-93 0 -127 82 q-10 25 -10 55v32h-1q-81 0 -87 -169q-2 -48 -2 -96v-183h269q25 0 25 -59q0 -58 -24 -86q-7 -9 -19 -9h-251v-706h226q27 0 27 -61q0 -48 -15 -64t-26 -16h-569q-27 0 -27 61q0 48 15 64t26 16h10q116 0 132 23q6 8 6 20v663h-191z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 95 KiB |
@@ -0,0 +1,247 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
This is a custom SVG webfont generated by Font Squirrel.
|
||||
Copyright : Copyright c 2011 Pablo Impallari wwwimpallaricomimpallarigmailcomCopyright c 2011 Igino Marini wwwikerncommailiginomarinicomCopyright c 2011 Brenda Gallo gbrenda1987gmailcomwith Reserved Font Name Quattrocento Sans
|
||||
Designer : Pablo Impallari
|
||||
Foundry : Pablo Impallari Igino Marini Brenda Gallo
|
||||
Foundry URL : wwwimpallaricom
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="QuattrocentoSansBold" horiz-adv-x="1103" >
|
||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
||||
<missing-glyph horiz-adv-x="501" />
|
||||
<glyph unicode=" " horiz-adv-x="501" />
|
||||
<glyph unicode="	" horiz-adv-x="501" />
|
||||
<glyph unicode=" " horiz-adv-x="501" />
|
||||
<glyph unicode="!" horiz-adv-x="552" d="M127 121q0 57 43 99t102 42t104.5 -42t45.5 -101t-46 -101.5t-106 -42.5q-59 0 -101 43.5t-42 102.5zM137 1397h281l-53 -1028h-179z" />
|
||||
<glyph unicode=""" horiz-adv-x="770" d="M102 1499h248l-49 -442h-156zM424 1499h248l-49 -442h-156z" />
|
||||
<glyph unicode="#" horiz-adv-x="1263" d="M74 424l35 170h198l39 182h-209l33 168h213l84 395h213l-84 -395h176l84 395h213l-84 -395h207l-33 -168h-211l-39 -182h221l-34 -170h-222l-90 -424h-213l91 424h-177l-90 -424h-213l90 424h-198zM520 594h176l39 182h-176z" />
|
||||
<glyph unicode="$" horiz-adv-x="1060" d="M74 88l59 211q66 -51 146.5 -85t181.5 -42v428q-59 20 -120.5 48t-113 73t-84 114.5t-32.5 172.5q0 88 26.5 152.5t73.5 105.5t110.5 63.5t139.5 28.5v178h164v-180q84 -8 158.5 -27.5t129.5 -44.5l-55 -217q-49 33 -111.5 55.5t-121.5 34.5v-356q68 -27 132 -60.5 t115.5 -83t82 -119t30.5 -167.5q0 -92 -28.5 -161t-78 -115t-115 -73.5t-138.5 -37.5v-181h-164v174q-117 6 -216 38t-171 73zM328 1024q0 -59 35.5 -95t97.5 -65v297q-61 -10 -97 -44t-36 -93zM625 186q70 18 102.5 60.5t32.5 99.5q0 70 -41 115t-94 74v-349z" />
|
||||
<glyph unicode="%" horiz-adv-x="1716" d="M74 977q0 80 21.5 150.5t63.5 123t101 82t135 29.5t135.5 -31t101.5 -82t63.5 -119.5t21.5 -144.5q0 -74 -21.5 -143.5t-63.5 -122.5t-103.5 -85t-141.5 -32q-78 0 -136 30t-98 81t-59.5 119.5t-19.5 144.5zM250 989q0 -127 37 -190.5t102 -63.5q41 0 69.5 19.5t47 53.5 t28 78t9.5 95q0 111 -37 179.5t-115 68.5t-109.5 -68t-31.5 -172zM289 -49l948 1464h184l-948 -1464h-184zM1001 365q0 80 21.5 150.5t63.5 122.5t101.5 82t135.5 30t135.5 -31t101.5 -82t63.5 -119.5t21.5 -144.5q0 -74 -21.5 -143.5t-63.5 -123t-103.5 -85t-141.5 -31.5 q-78 0 -136.5 29.5t-98.5 81t-59.5 120t-19.5 144.5zM1178 377q0 -127 36.5 -190.5t102.5 -63.5q41 0 69.5 19.5t47 53t27.5 77.5t9 96q0 111 -36.5 179t-114.5 68t-109.5 -67.5t-31.5 -171.5z" />
|
||||
<glyph unicode="&" horiz-adv-x="1443" d="M109 360q0 55 17 113.5t51 112t86 98.5t120 74q-59 70 -92 139.5t-33 159.5q0 76 23.5 132t65.5 95t97.5 58.5t116.5 19.5q70 0 146.5 -23.5t146.5 -66.5l-57 -197q-18 16 -45 33.5t-56.5 31t-60.5 22.5t-57 9q-49 0 -83 -32.5t-34 -98.5t37 -118t90 -107l352 -364 q2 10 3 22t1 25q0 47 -15.5 101t-54.5 110l-100 -7v127l594 76v-157l-295 -23q66 -115 66 -244q0 -100 -41 -194l278 -287h-254l-129 133q-72 -72 -176 -115t-239 -43q-115 0 -203 32t-147.5 86t-89 123.5t-29.5 143.5zM346 389q0 -111 70.5 -164t179.5 -53q82 0 147.5 27.5 t110.5 74.5l-348 355q-39 -10 -68.5 -35t-50 -56.5t-31 -70.5t-10.5 -78z" />
|
||||
<glyph unicode="'" horiz-adv-x="448" d="M102 1499h248l-49 -442h-156z" />
|
||||
<glyph unicode="(" horiz-adv-x="669" d="M84 670q0 262 108.5 495.5t305.5 413.5l139 -51q-78 -92 -135.5 -187.5t-94 -200t-54 -221t-17.5 -251.5q0 -80 9 -178.5t40 -209t90.5 -229.5t159.5 -239l-137 -52q-197 176 -305.5 412t-108.5 498z" />
|
||||
<glyph unicode=")" horiz-adv-x="669" d="M33 1528l139 51q197 -180 305.5 -413.5t108.5 -495.5t-108.5 -497.5t-305.5 -412.5l-137 52q100 121 159.5 239.5t90 229t40 209t9.5 178.5q0 135 -17.5 251.5t-54.5 221t-94 200t-135 187.5z" />
|
||||
<glyph unicode="*" horiz-adv-x="901" d="M106 1024l244 78l-244 78l107 182l188 -178l-55 254h209l-55 -254l188 178l107 -182l-246 -78l246 -78l-107 -182l-190 176l57 -252h-209l55 252l-188 -176z" />
|
||||
<glyph unicode="+" horiz-adv-x="997" d="M94 406v167h309v301h189v-301h311v-167h-311v-322h-189v322h-309z" />
|
||||
<glyph unicode="," horiz-adv-x="534" d="M104 -242l93 232h-52v280h244v-311l-211 -252z" />
|
||||
<glyph unicode="-" horiz-adv-x="958" d="M133 406v167h692v-167h-692z" />
|
||||
<glyph unicode="." horiz-adv-x="522" d="M115 121q0 29 11 55.5t31.5 48t46 33.5t56.5 12q29 0 55.5 -12t48 -33.5t34 -48t12.5 -55.5q0 -31 -12.5 -56.5t-34 -46t-48 -32t-55.5 -11.5q-59 0 -102 43.5t-43 102.5z" />
|
||||
<glyph unicode="/" horiz-adv-x="923" d="M59 -117l570 1555h235l-569 -1555h-236z" />
|
||||
<glyph unicode="0" horiz-adv-x="1300" d="M106 659q0 145 37 273.5t106.5 223.5t171 150.5t230.5 55.5q131 0 232.5 -56.5t171 -150.5t105.5 -218t36 -261t-37 -263t-107.5 -223.5t-175 -156t-239.5 -58.5q-133 0 -232.5 55.5t-165 149.5t-99.5 218t-34 261zM358 674q0 -248 75 -375t212 -127q78 0 134.5 38 t93 105.5t55 159.5t18.5 199q0 109 -18.5 199t-56 155.5t-95 101t-133.5 35.5t-130 -35.5t-88 -100t-50.5 -155.5t-16.5 -200z" />
|
||||
<glyph unicode="1" horiz-adv-x="681" d="M55 1126l447 226v-1352h-236v995l-166 -73z" />
|
||||
<glyph unicode="2" horiz-adv-x="1032" d="M96 0v205q80 109 181.5 214t190.5 205.5t150.5 197t61.5 188.5q0 88 -57.5 124.5t-149.5 36.5q-88 0 -173 -27.5t-150 -64.5l-48 176q39 20 89.5 40t104.5 35.5t109.5 23.5t108.5 8q86 0 160 -23.5t126 -67.5t81.5 -106.5t29.5 -138.5q0 -104 -52 -207.5t-131 -207 t-173 -205t-176 -201.5h547v-205h-830z" />
|
||||
<glyph unicode="3" horiz-adv-x="1083" d="M61 115l58 186q72 -59 160 -94t188 -35q129 0 195.5 60.5t66.5 177.5q0 104 -60.5 164.5t-201.5 60.5h-55v178h63q90 0 139.5 57.5t49.5 151.5q0 84 -51.5 118t-123.5 34q-39 0 -80.5 -8.5t-80.5 -24t-73 -35t-58 -41.5l-54 188q78 47 179.5 78t201.5 31q86 0 158 -24.5 t124 -68.5t80.5 -105.5t28.5 -135.5q0 -109 -55 -177.5t-139 -115.5q123 -41 191.5 -123t68.5 -215q0 -86 -30.5 -162.5t-94 -134t-158 -91.5t-219.5 -34q-254 1 -418 140z" />
|
||||
<glyph unicode="4" horiz-adv-x="1101" d="M53 389v184l572 779h245v-779h142v-184h-142v-389h-235v389h-582zM285 573h350v496z" />
|
||||
<glyph unicode="5" horiz-adv-x="1087" d="M76 113l59 194q31 -29 71 -52.5t86 -40.5t94 -27.5t95 -10.5q51 0 99.5 13.5t84 42t57 74.5t21.5 112q0 49 -12 90t-40.5 69.5t-77 45t-121.5 16.5q-63 0 -139.5 -12.5t-143.5 -38.5l-59 30l79 744h695v-215h-504l-31 -324q43 12 90 17.5t86 5.5q94 0 172 -27.5 t135.5 -81t89 -130.5t31.5 -175q0 -94 -30.5 -177t-93 -145.5t-157 -98.5t-220.5 -36q-125 0 -230.5 36t-185.5 102z" />
|
||||
<glyph unicode="6" d="M115 614q0 139 23.5 273.5t82 239t155.5 169t242 64.5q37 0 82 -5t91.5 -17.5t89.5 -33t73 -51.5l-51 -180q-68 51 -143.5 71.5t-132.5 20.5q-86 0 -143.5 -37.5t-91.5 -99t-47 -137.5t-13 -152v-29q0 -13 2 -30l6 -2q35 74 107.5 108.5t170.5 34.5q117 0 193 -43 t121 -106.5t62.5 -136t17.5 -134.5q0 -74 -23.5 -149.5t-76 -137t-136.5 -100.5t-203 -39q-127 0 -214 46.5t-141 130.5t-78.5 201.5t-24.5 260.5zM377 395q0 -106 53 -169.5t145 -63.5t143.5 65.5t51.5 182.5q0 43 -8 84t-29.5 72.5t-57.5 50t-89 18.5q-104 0 -156.5 -68 t-52.5 -172z" />
|
||||
<glyph unicode="7" horiz-adv-x="935" d="M76 1147v215h829v-215q-88 -96 -176 -234.5t-157.5 -288t-112.5 -293t-43 -249.5v-43q0 -20 2 -39h-260q-2 18 -2 40v40q0 121 48 265t123.5 288.5t167 279t177.5 234.5h-596z" />
|
||||
<glyph unicode="8" horiz-adv-x="1114" d="M104 381q0 135 66 229.5t182 128.5v9q-72 27 -126 100.5t-54 185.5q0 147 100.5 237.5t284.5 90.5q180 0 282.5 -87t102.5 -235q0 -109 -52 -183.5t-128 -106.5v-9q119 -27 183.5 -123t64.5 -233q0 -86 -27 -160.5t-83 -130t-142 -87.5t-203 -32q-123 0 -209 34 t-139 90.5t-78 130t-25 151.5zM336 379q0 -111 60.5 -168t158.5 -57t158.5 57t60.5 168q0 47 -12 94t-39 84t-69 60.5t-99 23.5q-59 0 -100 -23.5t-68 -61.5t-39 -85t-12 -92zM397 1010q0 -86 43 -135.5t115 -49.5t115 49.5t43 133.5q0 80 -40 126t-118 46q-76 0 -117 -44 t-41 -126z" />
|
||||
<glyph unicode="9" d="M92 934q0 74 23.5 149.5t76 137t135.5 100.5t203 39q127 0 214 -46t141.5 -130t79 -202t24.5 -261q0 -139 -23.5 -273.5t-82 -239t-155.5 -169t-243 -64.5q-37 0 -82 5.5t-91 17.5t-89 32.5t-73 51.5l51 180q68 -51 143.5 -71.5t132.5 -20.5q86 0 142.5 38t90 99.5 t48 137t14.5 151.5v30q0 13 -2 29l-6 2q-35 -74 -107.5 -108.5t-171.5 -34.5q-117 0 -192.5 43t-120.5 106.5t-62.5 136.5t-17.5 134zM334 926q0 -43 8 -84t29.5 -73t57.5 -50.5t89 -18.5q104 0 156.5 68t52.5 172q0 106 -53 170t-146 64q-92 0 -143 -65.5t-51 -182.5z" />
|
||||
<glyph unicode=":" horiz-adv-x="561" d="M133 121q0 29 11.5 55.5t32 48t46 33.5t56.5 12q29 0 55 -12t47.5 -33.5t34 -48t12.5 -55.5q0 -31 -12.5 -56.5t-34 -46t-48 -32t-54.5 -11.5q-59 0 -102.5 43.5t-43.5 102.5zM133 782q0 29 11.5 55.5t32 48t46 34t56.5 12.5q29 0 55 -12.5t47.5 -34t34 -48t12.5 -55.5 q0 -31 -12.5 -56.5t-34 -46t-48 -31.5t-54.5 -11q-59 0 -102.5 43t-43.5 102z" />
|
||||
<glyph unicode=";" horiz-adv-x="571" d="M123 -242l92 232h-51v280h244v-311l-211 -252zM141 782q0 29 11.5 55.5t32 48t46 34t56.5 12.5q29 0 55.5 -12.5t48 -34t33.5 -48t12 -55.5q0 -31 -12 -56.5t-33.5 -46t-48.5 -31.5t-55 -11q-59 0 -102.5 43t-43.5 102z" />
|
||||
<glyph unicode="<" horiz-adv-x="813" d="M80 426v133l584 397l36 -190l-403 -268v-11l405 -272l-36 -192z" />
|
||||
<glyph unicode="=" horiz-adv-x="974" d="M141 250v168h693v-168h-693zM141 561v168h693v-168h-693z" />
|
||||
<glyph unicode=">" horiz-adv-x="813" d="M111 215l405 272v11l-403 268l37 190l583 -397v-133l-586 -403z" />
|
||||
<glyph unicode="?" horiz-adv-x="837" d="M74 1298q57 43 142 75t177 32q76 0 139.5 -24.5t109.5 -67.5t71.5 -102.5t25.5 -129.5q0 -92 -40 -165.5t-88 -150.5t-89 -170t-41 -224h-213q0 139 39 237.5t85 173t85 139t39 136.5q0 82 -49 114.5t-111 32.5q-66 0 -129 -28.5t-100 -73.5zM233 121q0 57 43 99t103 42 q59 0 104 -42t45 -101t-46 -101.5t-105 -42.5t-101.5 43.5t-42.5 102.5z" />
|
||||
<glyph unicode="@" horiz-adv-x="1476" d="M102 369q0 117 42 249t130 244.5t223.5 186t323.5 73.5q145 0 251 -45t174.5 -116.5t101 -161.5t32.5 -178q0 -94 -32.5 -179.5t-89 -150t-131 -102t-156.5 -37.5q-88 0 -123 42t-35 107q-35 -70 -94.5 -110.5t-112.5 -40.5q-31 0 -62.5 15t-56 46t-41 77t-16.5 107 q0 92 36 166t91 126t124 81t136 29q27 0 58.5 -5.5t62.5 -14.5t56.5 -24.5t41.5 -35.5l-63 -291q-4 -20 -6 -42t-2 -38t6 -32.5t35 -16.5q35 0 65.5 26.5t53 70.5t36 99.5t13.5 112.5q0 66 -19.5 130.5t-62.5 114.5t-111 82t-162 32q-125 0 -219 -53.5t-157.5 -138.5 t-96.5 -191.5t-33 -212.5q0 -111 33 -190t90.5 -129t132 -73.5t160.5 -23.5q80 0 150.5 17.5t127 43t98.5 54t64 49.5v-164q-20 -18 -64 -46t-105.5 -53.5t-138.5 -43t-161 -17.5q-121 0 -229.5 41t-190 116t-130 181.5t-48.5 237.5zM631 391q0 -84 45 -84q18 0 39.5 15.5 t42 43t37 63.5t22.5 79l25 147q-18 8 -41 9q-41 0 -72 -28t-53.5 -69t-33.5 -89t-11 -87z" />
|
||||
<glyph unicode="A" horiz-adv-x="1286" d="M4 0l524 1352h203l578 -1352h-256l-154 393h-510l-139 -393h-246zM455 578h370l-194 497z" />
|
||||
<glyph unicode="B" horiz-adv-x="1167" d="M180 0v1352q23 2 64 3t88 3t94 3t84 1q217 0 332.5 -89t115.5 -263q0 -82 -33.5 -148.5t-105.5 -113.5q123 -41 192.5 -129.5t69.5 -223.5q0 -86 -30.5 -161.5t-94 -133t-157.5 -91.5t-221 -34q-113 0 -219.5 7.5t-178.5 17.5zM416 176q37 -4 76 -4h79q125 0 195 61.5 t70 178.5q0 104 -63.5 164.5t-205.5 60.5q-39 0 -77.5 -1t-73.5 -3v-457zM416 809q25 -2 50 -2h52q90 0 141.5 60.5t51.5 158.5q0 61 -42 102t-120 41q-41 0 -73 -3t-60 -7v-350z" />
|
||||
<glyph unicode="C" horiz-adv-x="1286" d="M102 662q0 145 43 272t128 222t211 150.5t294 55.5q111 0 221.5 -23.5t190.5 -64.5l-60 -213q-66 45 -156.5 72.5t-207.5 27.5q-111 0 -189.5 -34.5t-128 -98t-73 -153t-23.5 -197.5q0 -248 105.5 -375t304.5 -127q123 0 224 37t167 90l61 -203q-82 -49 -197.5 -87 t-260.5 -38q-168 0 -291 55.5t-204 149.5t-120 218.5t-39 263.5z" />
|
||||
<glyph unicode="D" horiz-adv-x="1447" d="M180 0v1352q27 2 84.5 4t121 3t121.5 2t91 1q199 0 327 -41t212 -113q109 -94 157.5 -239.5t48.5 -321.5q0 -133 -33.5 -255t-120.5 -214t-239.5 -146.5t-390.5 -54.5q-86 0 -184.5 6.5t-194.5 16.5zM416 180q57 -4 110.5 -6t89.5 -2q248 0 362 119t114 387 q0 121 -24 212t-81 152.5t-153.5 92t-239.5 30.5h-77q-48 0 -101 -2v-983z" />
|
||||
<glyph unicode="E" horiz-adv-x="1083" d="M180 0v1352h783v-205h-547v-328h409v-205h-409v-409h588v-205h-824z" />
|
||||
<glyph unicode="F" horiz-adv-x="997" d="M180 0v1352h772v-205h-536v-328h387v-205h-387v-614h-236z" />
|
||||
<glyph unicode="G" horiz-adv-x="1345" d="M102 662q0 145 43 272t128 222t212 150.5t297 55.5q115 0 227.5 -23.5t200.5 -64.5l-65 -213q-70 41 -162 70.5t-209 29.5t-197.5 -33.5t-130 -97t-72 -153t-22.5 -201.5q0 -500 424 -500q76 0 121 12.5t96 28.5v340h236v-444q-92 -61 -211 -99.5t-260 -38.5 q-170 0 -293 55.5t-204 149.5t-120 218.5t-39 263.5z" />
|
||||
<glyph unicode="H" horiz-adv-x="1478" d="M180 0v1352h236v-553h647v553h235v-1352h-235v594h-647v-594h-236z" />
|
||||
<glyph unicode="I" horiz-adv-x="595" d="M180 0v1352h236v-1352h-236z" />
|
||||
<glyph unicode="J" horiz-adv-x="593" d="M-27 -141q72 0 114 32.5t62.5 83t25.5 113t5 121.5v1143h236v-1145q0 -109 -23.5 -204t-73 -167t-124 -113.5t-177.5 -41.5z" />
|
||||
<glyph unicode="K" horiz-adv-x="1247" d="M180 0v1352h236v-590q117 111 209 215q86 98 155.5 191.5t120.5 183.5h258q-90 -123 -172 -225.5t-180 -213.5q-37 -41 -76 -84t-80 -86l604 -743h-272l-481 592l-86 -80v-512h-236z" />
|
||||
<glyph unicode="L" horiz-adv-x="1017" d="M180 0v1352h236v-1147h563v-205h-799z" />
|
||||
<glyph unicode="M" horiz-adv-x="1806" d="M180 0v1352h269l460 -1033l449 1033h268v-1352h-233v891l-389 -891h-189l-399 891v-891h-236z" />
|
||||
<glyph unicode="N" horiz-adv-x="1478" d="M180 0v1352h289l594 -994v994h235v-1352h-288l-594 991v-991h-236z" />
|
||||
<glyph unicode="O" horiz-adv-x="1519" d="M100 659q0 145 44 273.5t128 223.5t207 150.5t281 55.5q160 0 282.5 -55.5t206.5 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -284.5 55.5t-200.5 149.5t-120 218t-40 261zM352 680q0 -250 102.5 -377t295.5 -127q113 0 191.5 38 t129.5 104.5t74.5 156.5t23.5 193q0 111 -24.5 200.5t-75.5 155.5t-130 101.5t-185 35.5q-109 0 -185.5 -35.5t-125 -99t-70 -152t-21.5 -194.5z" />
|
||||
<glyph unicode="P" horiz-adv-x="1087" d="M180 0v1352q31 2 71 4t84 3l88 2q44 1 83 1q115 0 209 -27.5t161.5 -83t104.5 -136.5t37 -187q0 -86 -28.5 -162t-86 -133.5t-146.5 -91t-208 -33.5h-69q-34 0 -64 2v-510h-236zM416 707q29 -2 60 -2h67q111 0 167 61t56 178q0 98 -50 159.5t-177 61.5h-64q-31 0 -59 -2 v-456z" />
|
||||
<glyph unicode="Q" horiz-adv-x="1525" d="M104 659q0 145 44.5 273.5t128 223.5t206.5 150.5t281 55.5q160 0 282.5 -55.5t206.5 -150.5t127 -220t43 -262q0 -131 -40 -254t-119.5 -219.5t-198.5 -156.5t-277 -67q74 -8 141.5 -32.5t134 -50t135.5 -46t147 -20.5q45 0 94 9t104 32l-53 -201q-37 -14 -73 -19 t-70 -5q-86 0 -165 27.5t-156 59t-151.5 59.5t-150.5 28q-45 0 -112.5 -16.5t-131.5 -63.5l-41 147q55 43 120 65.5t124 26.5q-145 10 -255 69.5t-181.5 152t-107.5 211t-36 249.5zM356 674q0 -246 102.5 -372t299.5 -126q111 0 189.5 39t128.5 105.5t74 157.5t24 196 q0 106 -25 196.5t-76 155t-130 100t-187 35.5q-109 0 -184.5 -35.5t-124 -100t-70 -153.5t-21.5 -198z" />
|
||||
<glyph unicode="R" horiz-adv-x="1241" d="M180 0v1352q33 2 75 4t85 3t81 2t60 1q262 0 399.5 -99.5t137.5 -289.5q0 -121 -59.5 -217.5t-198.5 -143.5l495 -612h-272l-471 578h-46q-24 0 -50 2v-580h-236zM416 774h127q111 0 168 55.5t57 157.5q0 92 -56.5 135t-209.5 43h-39q-23 0 -47 -2v-389z" />
|
||||
<glyph unicode="S" horiz-adv-x="1110" d="M86 88l61 221q78 -59 173.5 -98t218.5 -39q131 0 190 46t59 124q0 59 -28.5 101t-71.5 72t-91 48.5t-85 30.5q-66 20 -133.5 49t-124.5 75t-93 115.5t-36 174.5q0 98 34 165.5t92 109.5t137 60.5t171 18.5q113 0 218.5 -22.5t176.5 -55.5l-55 -217q-37 25 -80 43 t-89 30.5t-92 19.5t-87 7q-92 0 -145.5 -34.5t-53.5 -106.5q0 -43 19.5 -73.5t54.5 -53t83 -42t107 -40.5q74 -27 147 -60.5t131 -83.5t95 -124t37 -178q0 -111 -40 -186.5t-107.5 -122t-155.5 -67t-182 -20.5q-135 0 -253 33t-202 80z" />
|
||||
<glyph unicode="T" d="M43 1147v205h1018v-205h-391v-1147h-236v1147h-391z" />
|
||||
<glyph unicode="U" horiz-adv-x="1443" d="M166 475v877h235v-828q0 -186 86 -267t240 -81t241 81t87 267v828h225v-877q0 -100 -33 -190t-101.5 -159t-176 -109t-254.5 -40t-252 40t-171.5 109t-96 159t-29.5 190z" />
|
||||
<glyph unicode="V" horiz-adv-x="1298" d="M-25 1352h256l431 -1065l389 1065h245l-540 -1352h-187z" />
|
||||
<glyph unicode="W" horiz-adv-x="2134" d="M2 1352h256l346 -1049l348 1049h232l346 -1049l346 1049h256l-502 -1352h-194l-369 1028l-367 -1028h-194z" />
|
||||
<glyph unicode="X" horiz-adv-x="1306" d="M23 0l499 696l-469 656h264l342 -529l338 529h258l-471 -658l498 -694h-264l-371 547l-366 -547h-258z" />
|
||||
<glyph unicode="Y" horiz-adv-x="1155" d="M-25 1352h265l346 -613l332 613h260l-482 -797v-555h-235v547z" />
|
||||
<glyph unicode="Z" horiz-adv-x="1134" d="M88 0v205l672 942h-641v205h897v-205l-672 -942h703v-205h-959z" />
|
||||
<glyph unicode="[" horiz-adv-x="575" d="M158 -195v1729h327v-148h-112v-1433h112v-148h-327z" />
|
||||
<glyph unicode="\" horiz-adv-x="921" d="M59 1438h232l569 -1555h-231z" />
|
||||
<glyph unicode="]" horiz-adv-x="575" d="M90 -47h113v1433h-113v148h328v-1729h-328v148z" />
|
||||
<glyph unicode="^" horiz-adv-x="712" d="M117 1161l6 15l225 202h17l225 -202l6 -15l-33 -59l-14 -6l-193 84l-192 -84l-14 6z" />
|
||||
<glyph unicode="_" horiz-adv-x="964" d="M39 0h887v-168h-887v168z" />
|
||||
<glyph unicode="`" horiz-adv-x="448" d="M0 1292q0 35 16.5 71t44.5 36q8 0 21 -6l369 -207l6 -15l-31 -73l-16 -6l-383 141q-14 4 -20.5 20t-6.5 39z" />
|
||||
<glyph unicode="a" horiz-adv-x="1026" d="M70 248q0 84 35.5 150.5t103 112.5t162 70.5t211.5 24.5h88v31q0 80 -52 117q-53 37 -165 37q-152 0 -271 -68l-43 170q137 80 332 80q205 0 311 -84q49 -39 81 -100.5t32 -147.5v-641h-180l-17 129h-8q-55 -70 -150.5 -112t-193.5 -42q-129 0 -202.5 75t-73.5 198z M309 281q0 -123 125 -123q66 0 131.5 31.5t104.5 84.5v187h-39q-168 0 -245 -43t-77 -137z" />
|
||||
<glyph unicode="b" horiz-adv-x="1175" d="M141 0v1516h224v-668q47 59 124.5 92t176.5 33q106 0 186 -41t133 -108.5t79 -156.5t26 -186q0 -109 -31 -201t-87.5 -159.5t-136 -106.5t-176.5 -39q-111 0 -183.5 45.5t-129.5 108.5h-8l-16 -129h-181zM365 274q23 -31 55.5 -54t68 -39.5t72.5 -26t70 -9.5q59 0 103 29 t74 75t44 106.5t14 121.5q0 63 -15 121.5t-47 104t-80 71t-112 25.5q-59 0 -122.5 -28t-124.5 -103v-394z" />
|
||||
<glyph unicode="c" horiz-adv-x="1001" d="M86 479q0 98 27.5 187.5t87 158t151.5 108.5t221 40q98 0 192.5 -22.5t152.5 -59.5l-50 -182q-23 16 -56.5 32.5t-72.5 28.5t-81 19.5t-78 7.5q-70 0 -118 -26t-78 -67.5t-43 -97t-13 -114.5q0 -70 16 -130.5t49 -105.5t83 -71.5t116 -26.5q74 0 156.5 29.5t138.5 82.5 l41 -192q-57 -37 -156.5 -70t-212.5 -33q-119 0 -208 41t-147.5 110t-88 160t-29.5 193z" />
|
||||
<glyph unicode="d" horiz-adv-x="1175" d="M86 481q0 96 25.5 185.5t79 157t132 108.5t187.5 41q98 0 176 -33t125 -92v668h223v-1516h-180l-16 129h-9q-57 -63 -129.5 -108.5t-183.5 -45.5q-96 0 -176 39t-136.5 106.5t-87 159.5t-30.5 201zM309 477q0 -61 14.5 -121.5t43 -106.5t73.5 -75t105 -29q33 0 69.5 9.5 t72.5 26t68.5 40t55.5 53.5v394q-61 76 -124.5 103.5t-123.5 27.5q-66 0 -113 -25.5t-78.5 -71t-47 -104t-15.5 -121.5z" />
|
||||
<glyph unicode="e" horiz-adv-x="1034" d="M84 471q0 100 31.5 191.5t93 161t153 109.5t207.5 40q180 0 278.5 -91t98.5 -257q0 -23 -3 -48.5t-8 -50t-12.5 -44t-15.5 -31.5h-596q4 -61 22.5 -115.5t53.5 -94.5t85 -63.5t118 -23.5q76 0 161 28.5t144 71.5l37 -168q-27 -16 -66 -35.5t-88 -36t-105.5 -28 t-117.5 -11.5q-115 0 -203 40t-147.5 109t-90 159t-30.5 188zM330 610h391q2 6 3 14.5t1 20.5q0 66 -45 109t-117 43q-86 0 -146 -50.5t-87 -136.5z" />
|
||||
<glyph unicode="f" horiz-adv-x="634" d="M70 805v117l116 18q0 117 7.5 199t19.5 138t27.5 91t31.5 57q41 53 107.5 77t146.5 24q10 0 33 -1t50.5 -5t57 -13.5t54.5 -23.5l-51 -174q-20 12 -67.5 33.5t-92.5 21.5q-27 0 -45.5 -12.5t-30.5 -45t-17 -88t-5 -141.5v-135h180v-137h-180v-805h-226v805h-116z" />
|
||||
<glyph unicode="g" horiz-adv-x="1019" d="M53 -233q0 41 14.5 80.5t40 73.5t59.5 60.5t73 38.5v9q-47 20 -65.5 55t-18.5 68q0 43 28.5 79.5t81.5 57.5v8q-92 39 -133 121t-41 178q0 80 26.5 149.5t77 119.5t121 79t160.5 29q53 0 105.5 -10.5t91.5 -30.5q86 2 156.5 13t136.5 30l18 -14l-22 -156l-11 -10l-145 16 l-2 -6q70 -88 69 -207q0 -72 -25.5 -134.5t-74.5 -108.5t-121.5 -73.5t-165.5 -27.5q-23 0 -36 1t-25 1q-35 -12 -53.5 -31.5t-18.5 -40.5q0 -23 22.5 -39t69.5 -22l199 -25q68 -8 126 -28.5t102.5 -55t69 -84t24.5 -112.5t-27 -123t-84 -105t-144 -71.5t-210 -26.5 q-109 0 -192 21.5t-140 58.5t-87 87.5t-30 107.5zM254 -209q0 -66 64.5 -98.5t187.5 -32.5q121 0 192.5 34t71.5 109q0 74 -80 105t-268 47q-70 -12 -119 -58.5t-49 -105.5zM305 610q0 -37 11.5 -72.5t34 -63.5t56 -45t78.5 -17q84 0 127 54t43 132q0 37 -10 75t-32.5 68.5 t-56.5 50t-79 19.5q-43 0 -75.5 -17.5t-54 -46t-32 -64.5t-10.5 -73z" />
|
||||
<glyph unicode="h" horiz-adv-x="1130" d="M141 0v1516h226v-713q57 90 134 130t181 40q61 0 118.5 -17.5t101.5 -56.5t69.5 -102.5t25.5 -155.5v-641h-225v623q0 84 -37 126t-100 42q-39 0 -81 -12.5t-79 -37t-65.5 -59.5t-42.5 -78v-604h-226z" />
|
||||
<glyph unicode="i" horiz-adv-x="507" d="M109 1245q0 29 11 55.5t31.5 48t46 34t56.5 12.5q29 0 55.5 -12.5t48 -34t33.5 -48t12 -55.5q0 -31 -12 -56.5t-33.5 -46t-48 -31.5t-55.5 -11q-59 0 -102 43t-43 102zM141 0v942h226v-942h-226z" />
|
||||
<glyph unicode="j" horiz-adv-x="507" d="M-78 -385q6 -4 18.5 -5t24.5 -1q61 0 96 38t53.5 96t22.5 126t4 127v946h226v-948q0 -104 -24 -198.5t-69 -167t-111.5 -114.5t-154.5 -42q-16 0 -29.5 1t-19.5 5zM109 1245q0 29 11 55.5t31.5 48t46 34t56.5 12.5q59 0 104 -46t45 -106q0 -59 -46 -101t-105 -42t-101 43 t-42 102z" />
|
||||
<glyph unicode="k" horiz-adv-x="1009" d="M141 0v1516h226v-875l313 301h252l-336 -332l401 -610h-245l-306 463l-79 -80v-383h-226z" />
|
||||
<glyph unicode="l" horiz-adv-x="532" d="M154 0v1516h225v-1516h-225z" />
|
||||
<glyph unicode="m" horiz-adv-x="1710" d="M141 0v942h176l11 -139h8q41 86 130 128t189 42q96 0 175 -38t118 -130q41 84 129 126t189 42q66 0 124 -17.5t102 -56.5t69.5 -102.5t25.5 -155.5v-641h-225v623q0 168 -133 168q-33 0 -71 -12.5t-73.5 -36t-65.5 -58.5t-42 -80v-604h-225v623q0 168 -134 168 q-33 0 -70.5 -12.5t-73.5 -36t-65.5 -58.5t-41.5 -80v-604h-226z" />
|
||||
<glyph unicode="n" horiz-adv-x="1120" d="M141 0v942h176l11 -139h8q43 86 134 128t196 42q68 0 127 -17.5t105 -56.5t72.5 -102.5t26.5 -155.5v-641h-225v623q0 168 -143 168q-35 0 -75 -12.5t-77 -36t-66.5 -58.5t-43.5 -80v-604h-226z" />
|
||||
<glyph unicode="o" horiz-adv-x="1124" d="M86 475q0 100 28.5 190.5t87 159t148.5 108.5t211 40q125 0 215 -42t148.5 -112.5t86 -162t27.5 -191.5t-27.5 -189.5t-86 -156t-147.5 -105.5t-210 -39q-125 0 -215 41t-149.5 110t-88 159t-28.5 190zM328 481q0 -66 13 -126t43 -107t75 -75t106 -28q59 0 103.5 26 t73 70t42 101t13.5 121q0 66 -14.5 126t-44 106t-75 74t-108.5 28q-59 0 -102 -26t-71 -69t-41 -100.5t-13 -120.5z" />
|
||||
<glyph unicode="p" horiz-adv-x="1177" d="M141 -532v1474h181l16 -129h8q27 33 63.5 62.5t79.5 51t88.5 34t88.5 12.5q111 0 190.5 -42t131.5 -111.5t77 -161t25 -189.5q0 -100 -26 -190.5t-79 -158t-133 -106.5t-190 -39q-92 0 -171 27t-126 86v-620h-224zM365 268q61 -76 125.5 -95t117.5 -19q68 0 116 24.5 t80 66.5t47 98t15 122q0 61 -13 121.5t-43 107.5t-75 77t-106 30q-31 0 -68 -9.5t-72.5 -26.5t-68.5 -42t-55 -55v-400z" />
|
||||
<glyph unicode="q" horiz-adv-x="1177" d="M88 469q0 98 24.5 189.5t77 161t132 111.5t190.5 42q43 0 88 -12.5t88 -34t80 -51t63 -62.5h9l16 129h180v-1474h-223v620q-47 -59 -126 -86t-171 -27q-111 0 -190.5 39t-133 106.5t-79 158t-25.5 190.5zM311 465q0 -66 15.5 -123t47.5 -100t80 -67.5t115 -24.5 q53 0 118 24.5t126 93.5v400q-23 31 -55.5 55.5t-68.5 41.5t-72.5 26.5t-67.5 9.5q-61 0 -106.5 -30t-75 -77t-43 -107.5t-13.5 -121.5z" />
|
||||
<glyph unicode="r" horiz-adv-x="765" d="M141 0v942h176l11 -197h8q20 43 42.5 84t51.5 73t67 51.5t89 19.5q82 0 153 -53l-59 -183q-20 16 -63.5 26.5t-73.5 10.5q-41 0 -67.5 -19.5t-47 -51t-35 -72.5t-26.5 -84v-547h-226z" />
|
||||
<glyph unicode="s" horiz-adv-x="886" d="M88 78l53 194q70 -68 157 -100.5t161 -32.5q78 0 118.5 34t40.5 93q0 35 -20 58.5t-82 40.5l-197 49q-70 16 -113.5 47t-69 68.5t-35 78.5t-9.5 78q0 137 96.5 212t249.5 75q80 0 172 -21.5t156 -62.5l-59 -184q-41 33 -115 66.5t-164 33.5q-68 0 -105.5 -25.5 t-37.5 -72.5q0 -31 21.5 -56.5t90.5 -42.5l146 -33q86 -18 138 -53t82 -75.5t40 -84t10 -79.5q0 -66 -26.5 -122.5t-75.5 -97t-119 -64.5t-156 -24q-109 0 -201 32t-147 71z" />
|
||||
<glyph unicode="t" horiz-adv-x="679" d="M68 805v123l133 20l37 279h172v-285h180v-137h-180v-541q0 -61 12 -82.5t47 -21.5q27 0 53.5 10t77.5 39l37 -162q-39 -33 -109.5 -52.5t-140.5 -19.5q-61 0 -101 16.5t-62.5 48.5t-31 77t-8.5 100v588h-116z" />
|
||||
<glyph unicode="u" d="M133 301v641h225v-612q0 -84 44 -128t114 -44q72 0 131.5 48t87.5 138v598h228v-942h-177l-12 131h-8q-23 -47 -57.5 -76.5t-76.5 -47t-87 -25t-88 -7.5q-68 0 -126.5 16.5t-102.5 54.5t-69.5 100.5t-25.5 154.5z" />
|
||||
<glyph unicode="v" horiz-adv-x="1073" d="M20 942h236l285 -756l297 756h221l-389 -942h-273z" />
|
||||
<glyph unicode="w" horiz-adv-x="1683" d="M27 942h235l246 -723l223 723h225l224 -723l245 723h232l-342 -942h-268l-203 655l-203 -655h-272z" />
|
||||
<glyph unicode="x" horiz-adv-x="1040" d="M29 0l362 481l-342 461h256l221 -317l211 317h256l-344 -457l365 -485h-256l-240 344l-233 -344h-256z" />
|
||||
<glyph unicode="y" horiz-adv-x="1062" d="M-14 942h235l328 -670l262 670h217l-389 -950q-29 -72 -79 -161t-118.5 -168t-154.5 -133t-187 -54q-16 0 -24 1t-19 5l-39 176q6 -2 14.5 -4t35.5 -2q39 0 76.5 8t76.5 33q74 47 128 131t106 207z" />
|
||||
<glyph unicode="z" horiz-adv-x="856" d="M86 0v182l430 578h-410v182h644v-182l-443 -578h463v-182h-684z" />
|
||||
<glyph unicode="{" horiz-adv-x="598" d="M61 618v103q55 2 85 28.5t43.5 61.5t16.5 73t3 64q0 43 -1 90t-1 90t-1 78t-1 58q0 66 10 120t42 91.5t89 59t154 21.5l4 -104q-49 -6 -60.5 -49t-11.5 -90q0 -25 1 -66t1 -84t1 -83t1 -60q0 -147 -44 -235.5t-148 -114.5q104 -27 148 -115t44 -236q0 -23 -1 -61.5 t-1 -81.5t-1 -83t-1 -64q0 -49 11.5 -92t60.5 -50l-4 -104q-96 0 -153.5 21.5t-89.5 59.5t-42 92t-10 122q0 20 1 58t1 80t1 85t1 76q0 37 -3 78t-17.5 76.5t-44.5 60t-83 26.5z" />
|
||||
<glyph unicode="|" horiz-adv-x="524" d="M158 -233v1806h209v-1806h-209z" />
|
||||
<glyph unicode="}" horiz-adv-x="598" d="M94 -113q49 6 60.5 49.5t11.5 90.5q0 25 -1 65.5t-1 83.5t-1 82t-1 61q0 147 44 235.5t148 115.5q-104 27 -148 114.5t-44 235.5q0 20 1 60t1 83t1 83t1 65q0 49 -11.5 92t-60.5 49l4 104q94 0 152.5 -21.5t90.5 -59t42 -92t10 -121.5q0 -23 -1 -60t-1 -79t-1 -85t-1 -75 q0 -37 3 -78t17.5 -77t44 -60.5t83.5 -26.5v-103q-55 -4 -85 -29.5t-43.5 -60t-16.5 -72.5t-3 -65q0 -43 1 -90t1 -90t1 -79t1 -56q0 -66 -10 -120t-42 -93t-90 -59.5t-153 -20.5z" />
|
||||
<glyph unicode="~" horiz-adv-x="970" d="M131 414q0 16 11.5 48t35 62.5t60 54t88.5 23.5q18 0 61 -3t94 -6t104.5 -6t94.5 -3q39 0 75 7t62 40l25 -41q0 -10 -10.5 -40t-32 -63.5t-57 -59.5t-87.5 -26q-16 0 -67 3.5t-111.5 6.5t-117 6t-85.5 3q-47 0 -71.5 -10.5t-44.5 -34.5z" />
|
||||
<glyph unicode="¡" horiz-adv-x="522" d="M115 831q0 59 46 101.5t105 42.5t101.5 -43t42.5 -103q0 -57 -43 -99t-103 -42q-59 0 -104 42t-45 101zM119 -446l53 1028h178l49 -1028h-280z" />
|
||||
<glyph unicode="¢" horiz-adv-x="1015" d="M84 449q0 84 23.5 161.5t72.5 139t126 103.5t183 54v275h189v-279q72 -10 134 -28.5t103 -45.5l-53 -190q-29 27 -78 48.5t-106 33.5v-559q59 14 112.5 41.5t94.5 64.5l41 -190q-41 -29 -105.5 -53.5t-142.5 -36.5v-269h-189v261q-102 10 -177.5 52t-127 104.5t-76 143.5 t-24.5 169zM303 455q0 -98 50 -178t136 -111v557q-92 -27 -139 -103.5t-47 -164.5z" />
|
||||
<glyph unicode="£" horiz-adv-x="1193" d="M66 74q156 59 225 169.5t69 237.5v31h-190v168h182q-10 90 -24.5 169t-14.5 148q0 98 36 168t94.5 114t129 63.5t142.5 19.5q92 0 183 -28.5t144 -71.5l-45 -187q-41 41 -119.5 71t-154.5 30q-49 0 -81 -13.5t-50.5 -37t-25.5 -55.5t-7 -71q0 -63 12.5 -145t20.5 -174 h250v-168h-246q-4 -86 -36 -179t-99 -171l4 -6q57 -4 112.5 -17.5t113 -29t114.5 -27.5t119 -12q98 0 190 39l-49 -201q-51 -27 -86 -34t-70 -7q-82 0 -158.5 21.5t-150.5 46t-144.5 46t-140.5 21.5q-43 0 -95 -13.5t-109 -60.5z" />
|
||||
<glyph unicode="¤" horiz-adv-x="1212" d="M98 856l113 113l149 -146q61 41 120 60.5t124 19.5q68 0 126 -19.5t116 -60.5l149 146l113 -111l-145 -149q41 -59 60 -118t19 -124q0 -66 -18 -122t-59 -116l149 -147l-115 -113l-151 146q-113 -82 -240 -82q-63 0 -120.5 19.5t-122.5 62.5l-150 -146l-111 113l146 147 q-80 104 -80 242q0 63 18.5 120.5t63.5 117.5zM334 469q0 -57 21.5 -107.5t58.5 -87t87 -58t107 -21.5t106.5 21.5t86.5 58t57.5 87t20.5 107.5t-20.5 107.5t-57.5 87t-87 58t-108 21.5q-55 0 -105 -21.5t-87 -58t-58.5 -87t-21.5 -107.5z" />
|
||||
<glyph unicode="¥" horiz-adv-x="1325" d="M63 1352h265l346 -613l332 613h260l-334 -553h155v-168h-258l-45 -76v-33h303v-168h-303v-354h-235v354h-320v168h320v25l-51 84h-269v168h168z" />
|
||||
<glyph unicode="¦" horiz-adv-x="528" d="M160 -233v794h209v-794h-209zM160 778v795h209v-795h-209z" />
|
||||
<glyph unicode="§" horiz-adv-x="888" d="M88 760q0 76 35 147.5t94 114.5q-23 61 -22 127q0 78 27.5 135t71.5 94t96 55.5t102 18.5q68 0 140.5 -27.5t119.5 -66.5l-68 -158q-39 29 -82 45.5t-78 16.5q-53 0 -82.5 -38t-29.5 -98q0 -59 28.5 -105t71.5 -86t94 -77t94 -80t72 -95t29 -122q0 -78 -36 -148.5 t-93 -115.5q23 -57 22 -125q0 -78 -27.5 -135t-71.5 -94t-96.5 -55.5t-101.5 -18.5q-68 0 -140.5 27.5t-119.5 66.5l68 158q39 -29 82 -45.5t78 -16.5q53 0 82.5 38t29.5 98q0 59 -28.5 105t-71.5 86t-94.5 77t-94.5 80t-71.5 95t-28.5 122zM270 813q0 -63 34 -112.5 t83 -93.5t106.5 -89t104.5 -100q20 45 20 90q0 61 -33.5 110.5t-83.5 94.5t-107.5 90t-104.5 100q-19 -41 -19 -90z" />
|
||||
<glyph unicode="¨" horiz-adv-x="450" d="M0 1266q0 47 35 83.5t82 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-82 35t-35 82zM279 1266q0 47 34.5 83.5t81.5 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-81.5 35t-34.5 82z" />
|
||||
<glyph unicode="©" horiz-adv-x="1456" d="M106 725q0 127 48.5 238.5t133.5 195.5t197.5 132t241.5 48t242.5 -48t197.5 -132t133.5 -195.5t49.5 -238.5q0 -129 -49.5 -242.5t-134.5 -196.5t-200.5 -131.5t-248.5 -48.5q-125 0 -236.5 49.5t-194.5 133.5t-131.5 196.5t-48.5 239.5zM231 729q0 -109 37 -202 t102.5 -161.5t152.5 -108.5t190 -40q109 0 201 39t159.5 106.5t106.5 159.5t39 201q0 104 -38 196.5t-103.5 161t-154.5 108.5t-192 40q-106 0 -197.5 -39t-159 -106.5t-105.5 -159t-38 -195.5zM381 729q0 70 19.5 132.5t60.5 109.5t105.5 75.5t154.5 28.5q68 0 134.5 -15.5 t107.5 -41.5l-33 -144q-29 18 -90.5 34t-114.5 16q-49 0 -83 -17.5t-55.5 -45t-30.5 -62.5t-9 -72q0 -82 46 -144.5t138 -62.5q57 0 115.5 22.5t97.5 51.5l25 -145q-41 -27 -111 -49.5t-147 -22.5q-84 0 -145.5 28.5t-102.5 76.5t-61.5 111.5t-20.5 135.5z" />
|
||||
<glyph unicode="ª" horiz-adv-x="747" d="M104 903q0 102 82 158.5t226 56.5h51v19q0 25 -6 42t-25 31q-35 27 -94 27q-53 0 -92 -18.5t-74 -42.5l-27 112q80 59 203 60q53 0 102.5 -11.5t86.5 -40.5q39 -31 57 -76.5t18 -93.5v-370h-120l-9 75h-8q-33 -41 -89 -66.5t-116 -25.5q-80 0 -123 46t-43 118zM248 922 q0 -72 74 -72q41 0 79.5 19.5t61.5 50.5v112h-23q-102 0 -147 -26.5t-45 -83.5z" />
|
||||
<glyph unicode="«" horiz-adv-x="1087" d="M88 489v11l274 360h230l-297 -362v-11l297 -362h-232zM485 489v11l275 360h229l-297 -362v-11l297 -362h-231z" />
|
||||
<glyph unicode="¬" horiz-adv-x="1277" d="M141 561v168h983v-489h-190v321h-793z" />
|
||||
<glyph unicode="­" horiz-adv-x="954" d="M133 406v167h688v-167h-688z" />
|
||||
<glyph unicode="®" horiz-adv-x="1456" d="M106 725q0 127 48.5 238.5t133.5 195.5t197.5 132t241.5 48t242.5 -48t197.5 -132t133.5 -195.5t49.5 -238.5q0 -129 -49.5 -242.5t-134.5 -196.5t-200.5 -131.5t-248.5 -48.5q-125 0 -236.5 49.5t-194.5 133.5t-131.5 196.5t-48.5 239.5zM231 729q0 -109 37 -202 t102.5 -161.5t152.5 -108.5t190 -40q109 0 201 39t159.5 106.5t106.5 159.5t39 201q0 104 -38 196.5t-103.5 161t-154.5 108.5t-192 40q-106 0 -197.5 -39t-159 -106.5t-105.5 -159t-38 -195.5zM506 412v671q16 2 41 3l49 3q25 1 46 1h34q86 0 140 -17.5t85 -47.5t43 -70 t12 -87q0 -55 -28.5 -103t-81.5 -77l153 -276h-145l-127 243h-84v-243h-137zM643 754h59q57 0 89 37.5t32 89.5q0 47 -31.5 78.5t-115.5 31.5h-33v-237z" />
|
||||
<glyph unicode="°" horiz-adv-x="757" d="M98 1079q0 55 18.5 104.5t53.5 85.5t87 57.5t120 21.5q70 0 123 -21.5t89 -58.5t53 -87.5t17 -105.5q0 -53 -16 -100t-51 -82t-88 -55.5t-127 -20.5t-127 21.5t-87 57.5t-49.5 83t-15.5 100zM242 1085q0 -55 33.5 -99t101.5 -44q72 0 101.5 41t29.5 96q0 53 -29.5 95.5 t-101.5 42.5t-103.5 -40.5t-31.5 -91.5z" />
|
||||
<glyph unicode="±" horiz-adv-x="948" d="M145 84v168h658v-168h-658zM147 582v168h238v182h188v-182h228v-168h-228v-207h-188v207h-238z" />
|
||||
<glyph unicode="²" horiz-adv-x="772" d="M119 612v127q49 55 113.5 105.5t121 98.5t95 97.5t38.5 106.5q0 12 -3 28.5t-12 31t-26.5 23.5t-44.5 9q-53 0 -112.5 -36t-104.5 -93l-34 131q66 59 131 90t137 31q104 0 160.5 -55.5t56.5 -141.5q0 -59 -26.5 -112.5t-73 -104.5t-106.5 -102t-128 -107h334v-127h-516z " />
|
||||
<glyph unicode="³" horiz-adv-x="696" d="M98 680l25 123q43 -35 80 -56.5t98 -21.5q78 0 114 34t36 93q0 53 -36 83t-136 30h-25v110h31q66 0 97.5 25.5t31.5 70.5q0 29 -16.5 48.5t-67.5 19.5q-53 0 -93 -18.5t-67 -40.5l-23 120q47 29 88 45.5t99 16.5q104 0 162.5 -51t58.5 -131q0 -55 -26.5 -91t-69.5 -63 q63 -23 99 -67t36 -117q0 -47 -16.5 -90t-51 -77t-89 -53.5t-128.5 -19.5q-76 0 -120 20.5t-91 57.5z" />
|
||||
<glyph unicode="´" horiz-adv-x="448" d="M0 1171l6 15l369 207q12 6 20 6q29 0 45.5 -36t16.5 -71q0 -23 -6.5 -39t-20.5 -20l-383 -141l-16 6z" />
|
||||
<glyph unicode="µ" horiz-adv-x="1173" d="M63 -227q37 70 66 132t48.5 125.5t30.5 129t11 141.5v641h225v-612q0 -84 44 -128t114 -44q72 0 131.5 49t87.5 139v596h228v-942h-177l-12 131h-8q-23 -47 -57.5 -76.5t-75.5 -47t-86 -25t-88 -7.5q-86 0 -154 25l-4 -16q-10 -43 -21.5 -80t-24.5 -73t-28.5 -74 t-36.5 -81z" />
|
||||
<glyph unicode="¶" horiz-adv-x="1140" d="M68 928q0 106 34.5 187t99 136.5t156 83t201.5 27.5q78 0 188.5 -3t208.5 -7v-1528h-174v1341h-90v-1341h-184v684h-43q-94 0 -168 33.5t-125 91t-77.5 133.5t-26.5 162z" />
|
||||
<glyph unicode="·" horiz-adv-x="546" d="M127 498q0 29 11.5 55.5t31.5 48t46 33.5t56 12q29 0 55.5 -12t48 -33.5t34 -48.5t12.5 -55q0 -31 -12.5 -56.5t-34 -46t-48 -32t-55.5 -11.5q-59 0 -102 43.5t-43 102.5z" />
|
||||
<glyph unicode="¸" horiz-adv-x="413" d="M0 -395l57 98h15q23 -10 58.5 -17.5t70.5 -7.5t62.5 13.5t27.5 48.5q0 37 -25.5 50t-60.5 13q-25 0 -50.5 -4t-48.5 -10l-38 53l104 158h111l-52 -84q31 8 60 8q72 0 117 -48t45 -120q0 -41 -19.5 -76.5t-53.5 -64.5t-81 -45t-102 -16q-53 0 -103.5 11t-91.5 27z" />
|
||||
<glyph unicode="¹" horiz-adv-x="516" d="M72 1206l297 156v-750h-154v545l-117 -57z" />
|
||||
<glyph unicode="º" horiz-adv-x="802" d="M96 1051q0 63 20.5 121.5t60.5 101.5t95.5 68.5t126.5 25.5q74 0 131.5 -26.5t96.5 -71.5t59.5 -103.5t20.5 -122.5q0 -59 -18.5 -115.5t-57.5 -99.5t-96.5 -68.5t-133.5 -25.5q-78 0 -135 26.5t-95 71t-56.5 102t-18.5 116.5zM262 1053q0 -72 34 -122t105 -50 q74 0 106 46t32 117q0 72 -35 122.5t-109 50.5q-76 0 -104.5 -47t-28.5 -117z" />
|
||||
<glyph unicode="»" horiz-adv-x="1087" d="M98 125l297 362v11l-297 362h230l274 -360v-11l-272 -364h-232zM496 125l297 362v11l-297 362h229l274 -360v-11l-272 -364h-231z" />
|
||||
<glyph unicode="¼" horiz-adv-x="1583" d="M70 1206l297 156v-750h-154v545l-117 -57zM180 -49l948 1464h185l-948 -1464h-185zM922 186v127l301 437h211v-437h69v-127h-69v-186h-140v186h-372zM1069 313h225v316z" />
|
||||
<glyph unicode="½" horiz-adv-x="1595" d="M70 1206l297 156v-750h-154v545l-117 -57zM184 -49l949 1464h184l-948 -1464h-185zM987 0v127q49 55 113.5 105.5t121 98.5t95.5 97t39 107q0 12 -3 28.5t-12.5 30.5t-27 23.5t-43.5 9.5q-53 0 -112.5 -36t-104.5 -93l-35 131q66 59 131 90t137 31q104 0 160.5 -55.5 t56.5 -141.5q0 -59 -26.5 -112.5t-72.5 -104.5t-106.5 -102.5t-128.5 -106.5h334v-127h-516z" />
|
||||
<glyph unicode="¾" horiz-adv-x="1585" d="M74 680l24 123q43 -35 80 -56.5t98 -21.5q78 0 114 34t36 93q0 53 -36 83t-136 30h-25v110h31q66 0 97.5 25.5t31.5 70.5q0 29 -16.5 48.5t-67.5 19.5q-53 0 -93 -18.5t-67 -40.5l-22 120q47 29 88 45.5t98 16.5q104 0 162.5 -51t58.5 -131q0 -55 -26.5 -91t-69.5 -63 q63 -23 99 -67t36 -117q0 -47 -16 -90t-51 -77t-89.5 -53.5t-127.5 -19.5q-76 0 -120 20.5t-91 57.5zM225 -49l949 1464h184l-948 -1464h-185zM926 186v127l301 437h211v-437h69v-127h-69v-186h-140v186h-372zM1073 313h225v316z" />
|
||||
<glyph unicode="¿" horiz-adv-x="821" d="M88 -131q0 92 40 166t88 150.5t89 170t41 224.5h213q0 -139 -39 -237.5t-85 -173.5t-85 -139.5t-39 -135.5q0 -82 49.5 -115t110.5 -33q66 0 129.5 28.5t99.5 73.5l54 -196q-57 -43 -142.5 -75t-177.5 -32q-76 0 -139.5 24.5t-109.5 68t-71.5 102.5t-25.5 129zM299 831 q0 59 46 101.5t106 42.5q59 0 101 -43t42 -103q0 -57 -43 -99t-102 -42t-104.5 42t-45.5 101z" />
|
||||
<glyph unicode="À" horiz-adv-x="1286" d="M4 2l524 1352h203l578 -1352h-256l-154 393h-510l-139 -393h-246zM420 1630q0 35 16.5 71t44.5 36q8 0 21 -6l368 -207l7 -15l-31 -73l-17 -6l-383 141q-14 4 -20 20t-6 39zM455 580h370l-194 497z" />
|
||||
<glyph unicode="Á" horiz-adv-x="1286" d="M4 0l524 1352h203l578 -1352h-256l-154 393h-510l-139 -393h-246zM414 1511l6 15l368 207q12 6 21 6q29 0 45 -36t16 -71q0 -23 -6 -39t-20 -20l-383 -141l-17 6zM455 578h370l-194 497z" />
|
||||
<glyph unicode="Â" horiz-adv-x="1286" d="M4 0l524 1352h203l578 -1352h-256l-154 393h-510l-139 -393h-246zM414 1507l6 15l225 202h17l225 -202l6 -15l-33 -59l-14 -6l-193 84l-192 -84l-15 6zM455 578h370l-194 497z" />
|
||||
<glyph unicode="Ã" horiz-adv-x="1286" d="M4 0l524 1352h203l578 -1352h-256l-154 393h-510l-139 -393h-246zM332 1511q12 37 25.5 71t36 59.5t55 41t83.5 15.5q59 0 130 -14.5t126 -14.5q37 0 76 11.5t80 41.5l25 -47q-6 -33 -19.5 -66.5t-35 -60t-53.5 -44t-77 -17.5q-25 0 -56.5 4t-68 10t-74.5 10.5t-73 4.5 q-47 0 -86 -11.5t-68 -40.5zM455 578h370l-194 497z" />
|
||||
<glyph unicode="Ä" horiz-adv-x="1286" d="M4 0l524 1352h203l578 -1352h-256l-154 393h-510l-139 -393h-246zM393 1604q0 47 35 83.5t82 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-82 35t-35 82zM455 578h370l-194 497zM672 1604q0 47 34.5 83.5t81.5 36.5t84 -36.5t37 -83.5t-36.5 -82t-84.5 -35q-47 0 -81.5 35 t-34.5 82z" />
|
||||
<glyph unicode="Å" horiz-adv-x="1300" d="M4 0l518 1300q-39 23 -61.5 61t-22.5 83q0 72 54.5 125t144.5 53t143.5 -55.5t53.5 -126.5q0 -45 -23 -81t-57 -59l571 -1300h-264l-154 414h-510l-139 -414h-254zM463 598h371l-195 477zM559 1446q0 -35 23.5 -60.5t56.5 -25.5q31 0 51.5 24.5t20.5 55.5 q0 33 -21.5 56.5t-54.5 23.5q-35 0 -55.5 -21.5t-20.5 -52.5z" />
|
||||
<glyph unicode="Æ" horiz-adv-x="1550" d="M-29 0l721 1352h735v-209h-413v-322h276v-209h-276v-403h454v-209h-677v389h-363l-207 -389h-250zM537 594h254v479z" />
|
||||
<glyph unicode="Ç" horiz-adv-x="1288" d="M104 662q0 145 43 272t128 222t211 150.5t294 55.5q111 0 221.5 -23.5t190.5 -64.5l-59 -213q-66 45 -157 72.5t-208 27.5q-111 0 -189.5 -34.5t-128 -98t-73 -153t-23.5 -197.5q0 -248 105.5 -375t304.5 -127q123 0 224.5 37t166.5 90l62 -203q-78 -47 -183.5 -82.5 t-236.5 -40.5l-37 -61q31 8 59 8q72 0 117 -48t45 -120q0 -41 -19.5 -76.5t-53.5 -64.5t-81 -45t-102 -16q-53 0 -103.5 11t-91.5 27l-2 13l58 98h14q23 -10 58.5 -17.5t70.5 -7.5t62.5 13.5t27.5 48.5q0 37 -25.5 50t-60.5 13q-25 0 -50.5 -4t-47.5 -10l-39 53l90 138 q-150 12 -259.5 70.5t-181 150.5t-106.5 211t-35 250z" />
|
||||
<glyph unicode="È" horiz-adv-x="1083" d="M180 0v1352h783v-205h-547v-328h409v-205h-409v-409h588v-205h-824zM356 1630q0 35 16.5 71t45.5 36q8 0 20 -6l369 -207l6 -15l-31 -73l-16 -6l-383 141q-14 4 -20.5 20t-6.5 39z" />
|
||||
<glyph unicode="É" horiz-adv-x="1083" d="M180 0v1352h783v-205h-547v-328h409v-205h-409v-409h588v-205h-824zM381 1509l6 15l369 207q12 6 20 6q29 0 45.5 -36t16.5 -71q0 -23 -6.5 -39t-20.5 -20l-383 -141l-16 6z" />
|
||||
<glyph unicode="Ê" horiz-adv-x="1083" d="M180 0v1352h783v-205h-547v-328h409v-205h-409v-409h588v-205h-824zM367 1507l6 15l225 202h16l226 -202l6 -15l-33 -59l-14 -6l-193 84l-192 -84l-15 6z" />
|
||||
<glyph unicode="Ë" horiz-adv-x="1083" d="M180 0v1352h783v-205h-547v-328h409v-205h-409v-409h588v-205h-824zM330 1606q0 47 34.5 83.5t81.5 36.5t84 -36.5t37 -83.5t-36.5 -82t-84.5 -35q-47 0 -81.5 35t-34.5 82zM608 1606q0 47 35 83.5t82 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-82 35t-35 82z" />
|
||||
<glyph unicode="Ì" horiz-adv-x="595" d="M45 1630q0 35 16.5 71t44.5 36q8 0 21 -6l369 -207l6 -15l-31 -73l-16 -6l-383 141q-14 4 -20.5 20t-6.5 39zM180 0v1352h236v-1352h-236z" />
|
||||
<glyph unicode="Í" horiz-adv-x="595" d="M94 1509l6 15l369 207q12 6 20 6q29 0 45.5 -36t16.5 -71q0 -23 -6 -39t-21 -20l-383 -141l-16 6zM180 0v1352h236v-1352h-236z" />
|
||||
<glyph unicode="Î" horiz-adv-x="595" d="M53 1507l6 15l226 202h16l225 -202l6 -15l-32 -59l-15 -6l-192 84l-193 -84l-14 6zM180 0v1352h236v-1352h-236z" />
|
||||
<glyph unicode="Ï" horiz-adv-x="595" d="M43 1604q0 47 35 83.5t82 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-82 35t-35 82zM180 0v1352h236v-1352h-236zM322 1604q0 47 34.5 83.5t81.5 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-81.5 35t-34.5 82z" />
|
||||
<glyph unicode="Ð" horiz-adv-x="1462" d="M41 637v151h152v564q27 2 84 4t120.5 3t122 2t90.5 1q199 0 327 -41t212 -113q109 -94 158 -239.5t49 -321.5q0 -133 -34 -255t-121 -214t-239.5 -146.5t-390.5 -54.5q-86 0 -184 6.5t-194 16.5v637h-152zM428 180q57 -4 110.5 -6t90.5 -2q248 0 361.5 119t113.5 387 q0 121 -23.5 212t-81 152.5t-153.5 92t-240 30.5h-77q-48 0 -101 -2v-375h303v-151h-303v-457z" />
|
||||
<glyph unicode="Ñ" horiz-adv-x="1478" d="M180 0v1352h289l594 -994v994h235v-1352h-288l-594 991v-991h-236zM387 1511q12 37 25.5 71t36 59.5t55.5 41t84 15.5q59 0 129.5 -14.5t126.5 -14.5q37 0 75.5 11.5t79.5 41.5l25 -47q-6 -33 -19.5 -66.5t-35 -60t-53 -44t-76.5 -17.5q-25 0 -56.5 4t-68.5 10t-75 10.5 t-73 4.5q-47 0 -86 -11.5t-67 -40.5z" />
|
||||
<glyph unicode="Ò" horiz-adv-x="1519" d="M100 659q0 145 44 273.5t128 223.5t207 150.5t281 55.5q160 0 282.5 -55.5t206.5 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -284.5 55.5t-200.5 149.5t-120 218t-40 261zM352 680q0 -250 102.5 -377t295.5 -127q113 0 191.5 38 t129.5 104.5t74.5 156.5t23.5 193q0 111 -24.5 200.5t-75.5 155.5t-130 101.5t-185 35.5q-109 0 -185.5 -35.5t-125 -99t-70 -152t-21.5 -194.5zM471 1630q0 35 16.5 71t44.5 36q8 0 21 -6l369 -207l6 -15l-31 -73l-16 -6l-383 141q-14 4 -20.5 20t-6.5 39z" />
|
||||
<glyph unicode="Ó" horiz-adv-x="1519" d="M100 659q0 145 44 273.5t128 223.5t207 150.5t281 55.5q160 0 282.5 -55.5t206.5 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -284.5 55.5t-200.5 149.5t-120 218t-40 261zM352 680q0 -250 102.5 -377t295.5 -127q113 0 191.5 38 t129.5 104.5t74.5 156.5t23.5 193q0 111 -24.5 200.5t-75.5 155.5t-130 101.5t-185 35.5q-109 0 -185.5 -35.5t-125 -99t-70 -152t-21.5 -194.5zM610 1509l6 15l369 207q12 6 21 6q29 0 45 -36t16 -71q0 -23 -6 -39t-21 -20l-383 -141l-16 6z" />
|
||||
<glyph unicode="Ô" horiz-adv-x="1519" d="M100 659q0 145 44 273.5t128 223.5t207 150.5t281 55.5q160 0 282.5 -55.5t206.5 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -284.5 55.5t-200.5 149.5t-120 218t-40 261zM352 680q0 -250 102.5 -377t295.5 -127q113 0 191.5 38 t129.5 104.5t74.5 156.5t23.5 193q0 111 -24.5 200.5t-75.5 155.5t-130 101.5t-185 35.5q-109 0 -185.5 -35.5t-125 -99t-70 -152t-21.5 -194.5zM541 1507l6 15l225 202h16l226 -202l6 -15l-33 -59l-14 -6l-193 84l-192 -84l-15 6z" />
|
||||
<glyph unicode="Õ" horiz-adv-x="1519" d="M100 659q0 145 44 273.5t128 223.5t207 150.5t281 55.5q160 0 282.5 -55.5t206.5 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -284.5 55.5t-200.5 149.5t-120 218t-40 261zM352 680q0 -250 102.5 -377t295.5 -127q113 0 191.5 38 t129.5 104.5t74.5 156.5t23.5 193q0 111 -24.5 200.5t-75.5 155.5t-130 101.5t-185 35.5q-109 0 -185.5 -35.5t-125 -99t-70 -152t-21.5 -194.5zM442 1511q12 37 25.5 71t36 59.5t55.5 41t84 15.5q59 0 130 -14.5t126 -14.5q37 0 76 11.5t80 41.5l24 -47q-6 -33 -19 -66.5 t-34.5 -60t-53.5 -44t-77 -17.5q-25 0 -56.5 4t-68.5 10t-75 10.5t-72 4.5q-47 0 -86 -11.5t-68 -40.5z" />
|
||||
<glyph unicode="Ö" horiz-adv-x="1519" d="M100 659q0 145 44 273.5t128 223.5t207 150.5t281 55.5q160 0 282.5 -55.5t206.5 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -284.5 55.5t-200.5 149.5t-120 218t-40 261zM352 680q0 -250 102.5 -377t295.5 -127q113 0 191.5 38 t129.5 104.5t74.5 156.5t23.5 193q0 111 -24.5 200.5t-75.5 155.5t-130 101.5t-185 35.5q-109 0 -185.5 -35.5t-125 -99t-70 -152t-21.5 -194.5zM504 1604q0 47 34.5 83.5t82.5 36.5q47 0 83.5 -36.5t36.5 -83.5t-36.5 -82t-83.5 -35t-82 35t-35 82zM782 1604q0 47 35 83.5 t82 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-82 35t-35 82z" />
|
||||
<glyph unicode="×" horiz-adv-x="933" d="M129 258l231 231l-231 230l107 106l231 -229l233 233l107 -106l-234 -234l234 -235l-105 -104l-235 233l-231 -231z" />
|
||||
<glyph unicode="Ø" horiz-adv-x="1521" d="M72 41l155 184q-63 90 -94 201t-31 233q0 145 44 273.5t128 223.5t207 150.5t281 55.5q104 0 192 -24.5t160 -67.5l137 162l166 -127l-147 -172q76 -94 113.5 -212t37.5 -247q0 -135 -42 -261t-127 -223.5t-211 -156t-293 -58.5q-113 0 -206 27t-165 76l-150 -176z M354 680q0 -156 39 -260l582 688q-90 53 -219 53q-109 0 -185.5 -35.5t-125 -99t-70 -152t-21.5 -194.5zM518 244q92 -68 234 -68q113 0 191.5 38t129.5 104.5t74.5 156.5t23.5 193q0 166 -55 282z" />
|
||||
<glyph unicode="Ù" horiz-adv-x="1443" d="M166 475v877h235v-828q0 -186 86 -267t240 -81t241 81t87 267v828h225v-877q0 -100 -33 -190t-101.5 -159t-176 -109t-254.5 -40t-252 40t-171.5 109t-96 159t-29.5 190zM467 1630q0 35 16.5 71t44.5 36q8 0 21 -6l369 -207l6 -15l-31 -73l-16 -6l-383 141 q-14 4 -20.5 20t-6.5 39z" />
|
||||
<glyph unicode="Ú" horiz-adv-x="1443" d="M166 475v877h235v-828q0 -186 86 -267t240 -81t241 81t87 267v828h225v-877q0 -100 -33 -190t-101.5 -159t-176 -109t-254.5 -40t-252 40t-171.5 109t-96 159t-29.5 190zM526 1509l6 15l369 207q12 6 21 6q29 0 45 -36t16 -71q0 -23 -6 -39t-21 -20l-383 -141l-16 6z" />
|
||||
<glyph unicode="Û" horiz-adv-x="1443" d="M166 475v877h235v-828q0 -186 86 -267t240 -81t241 81t87 267v828h225v-877q0 -100 -33 -190t-101.5 -159t-176 -109t-254.5 -40t-252 40t-171.5 109t-96 159t-29.5 190zM475 1507l6 15l226 202h16l225 -202l6 -15l-32 -59l-15 -6l-192 84l-193 -84l-14 6z" />
|
||||
<glyph unicode="Ü" horiz-adv-x="1443" d="M166 475v877h235v-828q0 -186 86 -267t240 -81t241 81t87 267v828h225v-877q0 -100 -33 -190t-101.5 -159t-176 -109t-254.5 -40t-252 40t-171.5 109t-96 159t-29.5 190zM489 1604q0 47 35 83.5t82 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-82 35t-35 82zM768 1604 q0 47 35 83.5t82 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-82 35t-35 82z" />
|
||||
<glyph unicode="Ý" horiz-adv-x="1155" d="M-25 1352h265l346 -613l332 613h260l-482 -797v-555h-235v547zM432 1509l6 15l369 207q12 6 20 6q29 0 45.5 -36t16.5 -71q0 -23 -6 -39t-21 -20l-383 -141l-16 6z" />
|
||||
<glyph unicode="Þ" horiz-adv-x="1089" d="M180 0v1352h236v-226h90q115 0 209 -27.5t161.5 -82.5t104.5 -136t37 -188q0 -86 -28.5 -161.5t-86 -133t-146.5 -91.5t-208 -34h-69q-34 0 -64 2v-274h-236zM416 471q29 -2 60 -2h67q111 0 167 61.5t56 178.5q0 98 -50 159.5t-177 61.5h-64q-31 0 -59 -2v-457z" />
|
||||
<glyph unicode="ß" horiz-adv-x="1132" d="M141 0v995q0 115 26 209t77 162t128 104.5t179 36.5q76 0 137.5 -23.5t104.5 -61.5t66.5 -88t23.5 -103q0 -70 -33 -128.5t-72 -110.5t-71.5 -100t-32.5 -93q0 -43 29.5 -75t74.5 -62.5t98.5 -63.5t98.5 -77t74.5 -101.5t29.5 -136.5q0 -92 -33.5 -157t-83 -104.5 t-106.5 -58t-106 -18.5q-74 0 -136.5 27.5t-103.5 62.5l59 215q35 -59 84 -98t111 -39q41 0 71.5 36.5t30.5 110.5q0 72 -28.5 121t-71.5 85t-94 65.5t-94 63.5t-72 78t-29 111q0 72 30 127.5t65.5 104.5t65.5 98t30 107q0 49 -32 84.5t-93 35.5q-66 0 -104 -28.5 t-59.5 -76.5t-27.5 -110.5t-6 -130.5v-995h-205z" />
|
||||
<glyph unicode="à" horiz-adv-x="1026" d="M70 248q0 84 35.5 150.5t103 112.5t162 70.5t211.5 24.5h88v31q0 80 -52 117q-53 37 -165 37q-152 0 -271 -68l-43 170q137 80 332 80q205 0 311 -84q49 -39 81 -100.5t32 -147.5v-641h-180l-17 129h-8q-55 -70 -150.5 -112t-193.5 -42q-129 0 -202.5 75t-73.5 198z M215 1288q0 35 16.5 71t44.5 36q8 0 21 -6l369 -207l6 -15l-31 -73l-16 -7l-383 142q-14 4 -20.5 20t-6.5 39zM309 281q0 -123 125 -123q66 0 131.5 31.5t104.5 84.5v187h-39q-168 0 -245 -43t-77 -137z" />
|
||||
<glyph unicode="á" horiz-adv-x="1026" d="M70 248q0 84 35.5 150.5t103 112.5t162 70.5t211.5 24.5h88v31q0 80 -52 117q-53 37 -165 37q-152 0 -271 -68l-43 170q137 80 332 80q205 0 311 -84q49 -39 81 -100.5t32 -147.5v-641h-180l-17 129h-8q-55 -70 -150.5 -112t-193.5 -42q-129 0 -202.5 75t-73.5 198z M309 281q0 -123 125 -123q66 0 131.5 31.5t104.5 84.5v187h-39q-168 0 -245 -43t-77 -137zM367 1169l6 15l368 207q12 6 21 6q29 0 45 -36t16 -71q0 -23 -6 -39t-20 -20l-383 -141l-17 6z" />
|
||||
<glyph unicode="â" horiz-adv-x="1026" d="M70 248q0 84 35.5 150.5t103 112.5t162 70.5t211.5 24.5h88v31q0 80 -52 117q-53 37 -165 37q-152 0 -271 -68l-43 170q137 80 332 80q205 0 311 -84q49 -39 81 -100.5t32 -147.5v-641h-180l-17 129h-8q-55 -70 -150.5 -112t-193.5 -42q-129 0 -202.5 75t-73.5 198z M256 1161l6 15l225 202h17l225 -202l6 -15l-33 -59l-14 -6l-192 84l-193 -84l-14 6zM309 281q0 -123 125 -123q66 0 131.5 31.5t104.5 84.5v187h-39q-168 0 -245 -43t-77 -137z" />
|
||||
<glyph unicode="ã" horiz-adv-x="1026" d="M70 248q0 84 35.5 150.5t103 112.5t162 70.5t211.5 24.5h88v31q0 80 -52 117q-53 37 -165 37q-152 0 -271 -68l-43 170q137 80 332 80q205 0 311 -84q49 -39 81 -100.5t32 -147.5v-641h-180l-17 129h-8q-55 -70 -150.5 -112t-193.5 -42q-129 0 -202.5 75t-73.5 198z M193 1184q12 37 25 70.5t35.5 59t55.5 41t84 15.5q59 0 130 -14.5t126 -14.5q37 0 76 11.5t80 42.5l24 -47q-6 -33 -19 -67t-34.5 -60.5t-53.5 -44t-77 -17.5q-25 0 -56.5 4t-68.5 10.5t-74.5 10.5t-72.5 4q-47 0 -86 -11.5t-68 -39.5zM309 281q0 -123 125 -123 q66 0 131.5 31.5t104.5 84.5v187h-39q-168 0 -245 -43t-77 -137z" />
|
||||
<glyph unicode="ä" horiz-adv-x="1026" d="M70 248q0 84 35.5 150.5t103 112.5t162 70.5t211.5 24.5h88v31q0 80 -52 117q-53 37 -165 37q-152 0 -271 -68l-43 170q137 80 332 80q205 0 311 -84q49 -39 81 -100.5t32 -147.5v-641h-180l-17 129h-8q-55 -70 -150.5 -112t-193.5 -42q-129 0 -202.5 75t-73.5 198z M258 1253q0 47 35 84t82 37t84 -37t37 -84t-37 -81.5t-84 -34.5t-82 34.5t-35 81.5zM309 281q0 -123 125 -123q66 0 131.5 31.5t104.5 84.5v187h-39q-168 0 -245 -43t-77 -137zM537 1253q0 47 34.5 84t81.5 37t84 -37t37 -84t-37 -81.5t-84 -34.5t-81.5 34.5t-34.5 81.5z " />
|
||||
<glyph unicode="å" horiz-adv-x="1026" d="M70 248q0 84 35.5 150.5t103 112.5t162 70.5t211.5 24.5h88v31q0 80 -52 117q-53 37 -165 37q-152 0 -271 -68l-43 170q137 80 332 80q205 0 311 -84q49 -39 81 -100.5t32 -147.5v-641h-180l-17 129h-8q-55 -70 -150.5 -112t-193.5 -42q-129 0 -202.5 75t-73.5 198z M309 281q0 -123 125 -123q66 0 131.5 31.5t104.5 84.5v187h-39q-168 0 -245 -43t-77 -137zM336 1249q0 66 50 118t138 52q45 0 80 -15t59.5 -40t38 -55.5t13.5 -63.5q0 -61 -48.5 -112.5t-140.5 -51.5q-49 0 -84.5 15.5t-59.5 39t-35 53t-11 60.5zM453 1251 q0 -29 20.5 -54.5t52.5 -25.5q33 0 51.5 24t18.5 50q0 29 -19.5 56.5t-54.5 27.5t-52 -24.5t-17 -53.5z" />
|
||||
<glyph unicode="æ" horiz-adv-x="1642" d="M70 248q0 117 55 187.5t135 108.5t169 50t155 12h86v19q0 55 -16.5 84.5t-47.5 50.5q-27 16 -56.5 23.5t-76.5 7.5q-90 0 -157.5 -18.5t-133.5 -49.5l-43 170q147 80 346 80q45 0 93.5 -6t94.5 -21.5t87 -41t71 -64.5q61 61 148.5 97t198.5 36q180 0 278 -91t98 -257 q0 -23 -3 -48.5t-8 -50t-12 -44t-15 -31.5h-596q4 -61 22.5 -115.5t53 -94.5t84.5 -63.5t118 -23.5q76 0 161 28.5t144 71.5l37 -168q-27 -16 -65.5 -35.5t-88 -36t-105.5 -28t-118 -11.5q-127 0 -220 48.5t-152 128.5q-86 -98 -200 -137.5t-237 -39.5q-72 0 -125 20.5 t-88 57.5t-53 87.5t-18 107.5zM309 266q0 -53 34 -80.5t91 -27.5q59 0 127 29.5t109 86.5v191h-15q-59 0 -120.5 -6t-111.5 -26.5t-82 -59.5t-32 -107zM938 610h391q2 10 2 19v18q0 74 -48 112t-112 38q-92 0 -150 -52.5t-83 -134.5z" />
|
||||
<glyph unicode="ç" horiz-adv-x="1003" d="M88 479q0 98 27.5 187.5t87 158t151.5 108.5t221 40q98 0 192.5 -22.5t152.5 -59.5l-50 -182q-23 16 -56.5 32.5t-72.5 28.5t-81 19.5t-78 7.5q-70 0 -118 -26t-78 -67.5t-43 -97t-13 -114.5q0 -70 16 -130.5t49 -105.5t83 -71.5t116 -26.5q74 0 157 29.5t138 82.5 l41 -192q-53 -35 -139 -64.5t-187 -36.5l-37 -61q31 8 60 8q72 0 116.5 -48t44.5 -120q0 -41 -19 -76.5t-53 -64.5t-81 -45t-103 -16q-53 0 -103 11t-91 27l-2 13l57 98h15q23 -10 58.5 -17.5t70.5 -7.5t62.5 13.5t27.5 48.5q0 37 -26 50t-60 13q-25 0 -50.5 -4t-48.5 -10 l-39 53l91 138q-102 12 -178 56t-127.5 110.5t-76 152.5t-24.5 180z" />
|
||||
<glyph unicode="è" horiz-adv-x="1034" d="M84 471q0 100 31.5 191.5t93 161t153 109.5t207.5 40q180 0 278.5 -91t98.5 -257q0 -23 -3 -48.5t-8 -50t-12.5 -44t-15.5 -31.5h-596q4 -61 22.5 -115.5t53.5 -94.5t85 -63.5t118 -23.5q76 0 161 28.5t144 71.5l37 -168q-27 -16 -66 -35.5t-88 -36t-105.5 -28 t-117.5 -11.5q-115 0 -203 40t-147.5 109t-90 159t-30.5 188zM266 1288q0 35 16.5 71t45.5 36q8 0 20 -6l369 -207l6 -15l-31 -73l-16 -7l-383 142q-14 4 -20.5 20t-6.5 39zM330 610h391q2 10 2 19v18q0 74 -48 112t-112 38q-92 0 -150 -52.5t-83 -134.5z" />
|
||||
<glyph unicode="é" horiz-adv-x="1034" d="M84 471q0 100 31.5 191.5t93 161t153 109.5t207.5 40q180 0 278.5 -91t98.5 -257q0 -23 -3 -48.5t-8 -50t-12.5 -44t-15.5 -31.5h-596q4 -61 22.5 -115.5t53.5 -94.5t85 -63.5t118 -23.5q76 0 161 28.5t144 71.5l37 -168q-27 -16 -66 -35.5t-88 -36t-105.5 -28 t-117.5 -11.5q-115 0 -203 40t-147.5 109t-90 159t-30.5 188zM330 610h391q2 10 2 19v18q0 74 -48 112t-112 38q-92 0 -150 -52.5t-83 -134.5zM379 1169l6 15l369 207q12 6 20 6q29 0 45.5 -37t16.5 -70q0 -23 -6.5 -39t-20.5 -20l-383 -141l-16 6z" />
|
||||
<glyph unicode="ê" horiz-adv-x="1034" d="M84 471q0 100 31.5 191.5t93 161t153 109.5t207.5 40q180 0 278.5 -91t98.5 -257q0 -23 -3 -48.5t-8 -50t-12.5 -44t-15.5 -31.5h-596q4 -61 22.5 -115.5t53.5 -94.5t85 -63.5t118 -23.5q76 0 161 28.5t144 71.5l37 -168q-27 -16 -66 -35.5t-88 -36t-105.5 -28 t-117.5 -11.5q-115 0 -203 40t-147.5 109t-90 159t-30.5 188zM303 1161l6 15l226 202h16l225 -202l6 -15l-32 -59l-15 -6l-192 84l-193 -84l-14 6zM330 610h391q2 10 2 19v18q0 74 -48 112t-112 38q-92 0 -150 -52.5t-83 -134.5z" />
|
||||
<glyph unicode="ë" horiz-adv-x="1034" d="M84 471q0 100 31.5 191.5t93 161t153 109.5t207.5 40q180 0 278.5 -91t98.5 -257q0 -23 -3 -48.5t-8 -50t-12.5 -44t-15.5 -31.5h-596q4 -61 22.5 -115.5t53.5 -94.5t85 -63.5t118 -23.5q76 0 161 28.5t144 71.5l37 -168q-27 -16 -66 -35.5t-88 -36t-105.5 -28 t-117.5 -11.5q-115 0 -203 40t-147.5 109t-90 159t-30.5 188zM283 1253q0 47 34.5 84t81.5 37t84 -37t37 -84t-37 -81.5t-84 -34.5t-81.5 34.5t-34.5 81.5zM330 610h391q2 10 2 19v18q0 74 -48 112t-112 38q-92 0 -150 -52.5t-83 -134.5zM561 1253q0 47 35 84t82 37t84 -37 t37 -84t-37 -81.5t-84 -34.5t-82 34.5t-35 81.5z" />
|
||||
<glyph unicode="ì" horiz-adv-x="507" d="M-49 1288q0 35 16.5 71t44.5 36q8 0 21 -6l368 -207l7 -15l-31 -73l-17 -7l-383 142q-14 4 -20 20t-6 39zM141 0v942h226v-942h-226z" />
|
||||
<glyph unicode="í" horiz-adv-x="507" d="M49 1169l6 15l369 207q12 6 20 6q29 0 45.5 -36t16.5 -71q0 -23 -6 -39t-21 -20l-383 -141l-16 6zM141 0v942h226v-942h-226z" />
|
||||
<glyph unicode="î" horiz-adv-x="507" d="M8 1161l6 15l226 202h16l225 -202l6 -15l-32 -59l-15 -6l-192 84l-193 -84l-14 6zM141 0v942h226v-942h-226z" />
|
||||
<glyph unicode="ï" horiz-adv-x="507" d="M-6 1253q0 47 34.5 84t82.5 37q47 0 83.5 -37t36.5 -84t-36.5 -81.5t-83.5 -34.5t-82 34.5t-35 81.5zM141 0v942h226v-942h-226zM272 1253q0 47 35 84t82 37t84 -37t37 -84t-37 -81.5t-84 -34.5t-82 34.5t-35 81.5z" />
|
||||
<glyph unicode="ð" horiz-adv-x="1146" d="M86 475q0 100 28.5 190.5t86 159t141.5 108.5t193 40q104 0 173.5 -36t106.5 -97l6 2q-10 72 -44 156.5t-85 170.5l-237 -59l-43 133l198 51q-53 72 -113.5 129.5t-119.5 92.5h301q37 -35 72.5 -77t68.5 -89l252 67l43 -139l-217 -55q68 -129 110 -288t42 -341 q0 -125 -24 -236.5t-79 -196.5t-147 -135.5t-232 -50.5q-131 0 -222 43t-148.5 114t-84 161t-26.5 182zM328 481q0 -66 13 -126t43 -107t75 -75t106 -28q59 0 103.5 26t73 70t42 101t13.5 121q0 66 -14.5 126t-44 106t-75 74t-108.5 28q-59 0 -102 -26t-71 -69t-41 -100.5 t-13 -120.5z" />
|
||||
<glyph unicode="ñ" horiz-adv-x="1120" d="M141 0v942h176l11 -139h8q43 86 134 128t196 42q68 0 127 -17.5t105 -56.5t72.5 -102.5t26.5 -155.5v-641h-225v623q0 168 -143 168q-35 0 -75 -12.5t-77 -36t-66.5 -58.5t-43.5 -80v-604h-226zM233 1184q12 37 25.5 70.5t36 59t55.5 41t84 15.5q59 0 130 -14.5 t126 -14.5q37 0 76 11.5t80 42.5l24 -47q-6 -33 -19 -67t-34.5 -60.5t-53.5 -44t-77 -17.5q-25 0 -56.5 4t-68.5 10.5t-74.5 10.5t-72.5 4q-47 0 -86 -11.5t-68 -39.5z" />
|
||||
<glyph unicode="ò" horiz-adv-x="1124" d="M86 475q0 100 28.5 190.5t87 159t148.5 108.5t211 40q125 0 215 -42t148.5 -112.5t86 -162t27.5 -191.5t-27.5 -189.5t-86 -156t-147.5 -105.5t-210 -39q-125 0 -215 41t-149.5 110t-88 159t-28.5 190zM264 1288q0 35 16.5 71t45.5 36q8 0 20 -6l369 -207l6 -15l-31 -73 l-16 -7l-383 142q-14 4 -20.5 20t-6.5 39zM328 481q0 -66 13 -126t43 -107t75 -75t106 -28q59 0 103.5 26t73 70t42 101t13.5 121q0 66 -14.5 126t-44 106t-75 74t-108.5 28q-59 0 -102 -26t-71 -69t-41 -100.5t-13 -120.5z" />
|
||||
<glyph unicode="ó" horiz-adv-x="1124" d="M86 475q0 100 28.5 190.5t87 159t148.5 108.5t211 40q125 0 215 -42t148.5 -112.5t86 -162t27.5 -191.5t-27.5 -189.5t-86 -156t-147.5 -105.5t-210 -39q-125 0 -215 41t-149.5 110t-88 159t-28.5 190zM328 481q0 -66 13 -126t43 -107t75 -75t106 -28q59 0 103.5 26 t73 70t42 101t13.5 121q0 66 -14.5 126t-44 106t-75 74t-108.5 28q-59 0 -102 -26t-71 -69t-41 -100.5t-13 -120.5zM393 1169l6 15l369 207q12 6 20 6q29 0 45.5 -36t16.5 -71q0 -23 -6 -39t-21 -20l-383 -141l-16 6z" />
|
||||
<glyph unicode="ô" horiz-adv-x="1124" d="M86 475q0 100 28.5 190.5t87 159t148.5 108.5t211 40q125 0 215 -42t148.5 -112.5t86 -162t27.5 -191.5t-27.5 -189.5t-86 -156t-147.5 -105.5t-210 -39q-125 0 -215 41t-149.5 110t-88 159t-28.5 190zM328 481q0 -66 13 -126t43 -107t75 -75t106 -28q59 0 103.5 26 t73 70t42 101t13.5 121q0 66 -14.5 126t-44 106t-75 74t-108.5 28q-59 0 -102 -26t-71 -69t-41 -100.5t-13 -120.5zM340 1161l6 15l225 202h17l225 -202l6 -15l-33 -59l-14 -6l-192 84l-193 -84l-14 6z" />
|
||||
<glyph unicode="õ" horiz-adv-x="1124" d="M86 475q0 100 28.5 190.5t87 159t148.5 108.5t211 40q125 0 215 -42t148.5 -112.5t86 -162t27.5 -191.5t-27.5 -189.5t-86 -156t-147.5 -105.5t-210 -39q-125 0 -215 41t-149.5 110t-88 159t-28.5 190zM223 1184q12 37 25.5 70.5t36 59t55.5 41t84 15.5q59 0 130 -14.5 t126 -14.5q37 0 76 11.5t80 42.5l24 -47q-6 -33 -19.5 -67t-35 -60.5t-53 -44t-76.5 -17.5q-25 0 -56.5 4t-68.5 10.5t-75 10.5t-73 4q-47 0 -85.5 -11.5t-67.5 -39.5zM328 481q0 -66 13 -126t43 -107t75 -75t106 -28q59 0 103.5 26t73 70t42 101t13.5 121q0 66 -14.5 126 t-44 106t-75 74t-108.5 28q-59 0 -102 -26t-71 -69t-41 -100.5t-13 -120.5z" />
|
||||
<glyph unicode="ö" horiz-adv-x="1124" d="M86 475q0 100 28.5 190.5t87 159t148.5 108.5t211 40q125 0 215 -42t148.5 -112.5t86 -162t27.5 -191.5t-27.5 -189.5t-86 -156t-147.5 -105.5t-210 -39q-125 0 -215 41t-149.5 110t-88 159t-28.5 190zM307 1253q0 47 35 84t82 37t84 -37t37 -84t-37 -81.5t-84 -34.5 t-82 34.5t-35 81.5zM328 481q0 -66 13 -126t43 -107t75 -75t106 -28q59 0 103.5 26t73 70t42 101t13.5 121q0 66 -14.5 126t-44 106t-75 74t-108.5 28q-59 0 -102 -26t-71 -69t-41 -100.5t-13 -120.5zM586 1253q0 47 34.5 84t81.5 37t84 -37t37 -84t-36.5 -81.5t-84.5 -34.5 q-47 0 -81.5 34.5t-34.5 81.5z" />
|
||||
<glyph unicode="÷" horiz-adv-x="1050" d="M102 406v167h848v-167h-848zM401 131q0 29 11.5 55.5t32 48t46 34t56.5 12.5q29 0 55.5 -12.5t48 -34t33.5 -48t12 -55.5q0 -31 -12 -56.5t-33.5 -46t-48.5 -31.5t-55 -11q-59 0 -102.5 43t-43.5 102zM401 844q0 29 11.5 55.5t32 48t46 33.5t56.5 12q29 0 55.5 -12 t48 -33.5t33.5 -48.5t12 -55q0 -31 -12 -56.5t-33.5 -46t-48.5 -32t-55 -11.5q-59 0 -102.5 43.5t-43.5 102.5z" />
|
||||
<glyph unicode="ø" horiz-adv-x="1126" d="M66 25l112 129q-47 66 -69.5 147.5t-22.5 173.5q0 100 28.5 190.5t87 159t148.5 108.5t211 40q84 0 151.5 -19.5t121.5 -54.5l104 119l121 -90l-117 -133q49 -70 72.5 -154t23.5 -176q0 -100 -27.5 -189.5t-86 -156t-147.5 -105.5t-210 -39q-86 0 -154.5 19.5 t-121.5 54.5l-111 -127zM328 481q0 -88 20 -155l361 407q-29 29 -68 46.5t-86 17.5q-59 0 -102 -26t-71 -69t-41 -100.5t-13 -120.5zM412 211q59 -66 153 -66q59 0 103.5 26t73 70t42 101t13.5 121q0 86 -25 160z" />
|
||||
<glyph unicode="ù" d="M133 301v641h225v-612q0 -84 44 -128t114 -44q72 0 131.5 48t87.5 138v598h228v-942h-177l-12 131h-8q-23 -47 -57.5 -76.5t-76.5 -47t-87 -25t-88 -7.5q-68 0 -126.5 16.5t-102.5 54.5t-69.5 100.5t-25.5 154.5zM252 1288q0 35 16.5 71t44.5 36q8 0 21 -6l368 -207 l7 -15l-31 -73l-16 -7l-383 142q-14 4 -20.5 20t-6.5 39z" />
|
||||
<glyph unicode="ú" d="M133 301v641h225v-612q0 -84 44 -128t114 -44q72 0 131.5 48t87.5 138v598h228v-942h-177l-12 131h-8q-23 -47 -57.5 -76.5t-76.5 -47t-87 -25t-88 -7.5q-68 0 -126.5 16.5t-102.5 54.5t-69.5 100.5t-25.5 154.5zM328 1169l6 15l368 207q12 6 21 6q29 0 45 -36t16 -71 q0 -23 -6 -39t-20 -20l-383 -141l-17 6z" />
|
||||
<glyph unicode="û" d="M133 301v641h225v-612q0 -84 44 -128t114 -44q72 0 131.5 48t87.5 138v598h228v-942h-177l-12 131h-8q-23 -47 -57.5 -76.5t-76.5 -47t-87 -25t-88 -7.5q-68 0 -126.5 16.5t-102.5 54.5t-69.5 100.5t-25.5 154.5zM299 1161l6 15l225 202h17l225 -202l6 -15l-33 -59 l-14 -6l-192 84l-193 -84l-14 6z" />
|
||||
<glyph unicode="ü" d="M133 301v641h225v-612q0 -84 44 -128t114 -44q72 0 131.5 48t87.5 138v598h228v-942h-177l-12 131h-8q-23 -47 -57.5 -76.5t-76.5 -47t-87 -25t-88 -7.5q-68 0 -126.5 16.5t-102.5 54.5t-69.5 100.5t-25.5 154.5zM281 1253q0 47 34.5 84t81.5 37t84 -37t37 -84t-37 -81.5 t-84 -34.5t-81.5 34.5t-34.5 81.5zM559 1253q0 47 35 84t82 37t84 -37t37 -84t-37 -81.5t-84 -34.5t-82 34.5t-35 81.5z" />
|
||||
<glyph unicode="ý" horiz-adv-x="1062" d="M-14 942h235l328 -670l262 670h217l-389 -950q-29 -72 -79 -161t-118.5 -168t-154.5 -133t-187 -54q-16 0 -24 1t-19 5l-39 176q6 -2 14.5 -4t35.5 -2q39 0 76.5 8t76.5 33q74 47 128 131t106 207zM383 1169l6 15l369 207q12 6 20 6q29 0 45.5 -36t16.5 -71 q0 -23 -6.5 -39t-20.5 -20l-383 -141l-16 6z" />
|
||||
<glyph unicode="þ" horiz-adv-x="1177" d="M141 -532v2048h217v-682h9q25 29 59.5 54t74.5 43.5t83 30t82 11.5q111 0 190.5 -42t131.5 -111.5t77 -161t25 -189.5q0 -100 -26 -190.5t-79 -158t-133 -106.5t-190 -39q-92 0 -171 27t-126 86v-620h-224zM365 268q61 -76 125.5 -95t117.5 -19q68 0 116 24.5t80 66.5 t47 98t15 122q0 61 -13 121.5t-43 107.5t-75 77t-106 30q-31 0 -68 -9.5t-72.5 -26.5t-68.5 -42t-55 -55v-400z" />
|
||||
<glyph unicode="ÿ" horiz-adv-x="1062" d="M-14 942h235l328 -670l262 670h217l-389 -950q-29 -72 -79 -161t-118.5 -168t-154.5 -133t-187 -54q-16 0 -24 1t-19 5l-39 176q6 -2 14.5 -4t35.5 -2q39 0 76.5 8t76.5 33q74 47 128 131t106 207zM250 1253q0 47 34.5 84t82.5 37q47 0 83.5 -37t36.5 -84t-36.5 -81.5 t-83.5 -34.5t-82 34.5t-35 81.5zM528 1253q0 47 35 84t82 37t84 -37t37 -84t-37 -81.5t-84 -34.5t-82 34.5t-35 81.5z" />
|
||||
<glyph unicode="Œ" horiz-adv-x="1730" d="M100 659q0 145 44 273.5t128 223.5t207 150.5t281 55.5q39 0 75.5 -3t71.5 -7h703v-205h-508v-328h371v-205h-371v-409h549v-205h-709q-90 -25 -197 -25q-164 0 -284.5 55.5t-200.5 149.5t-120 218t-40 261zM352 680q0 -252 102.5 -380t295.5 -128q63 0 116 18v957 q-53 18 -112 18q-109 0 -185.5 -35.5t-125 -100t-70 -154t-21.5 -195.5z" />
|
||||
<glyph unicode="œ" horiz-adv-x="1728" d="M86 475q0 100 28.5 190.5t87 159t148.5 108.5t211 40q119 0 208 -43t142 -137q121 180 353 180q180 0 278 -91t98 -257q0 -23 -3 -48.5t-8 -50t-12 -44t-15 -31.5h-596q4 -61 22.5 -115.5t53 -94.5t85 -63.5t117.5 -23.5q76 0 161 28.5t144 71.5l37 -168 q-27 -16 -65.5 -35.5t-88 -36t-105.5 -28t-118 -11.5q-109 0 -195.5 41t-140.5 131q-53 -94 -141 -133t-205 -39q-125 0 -215 41t-149.5 110t-88 159t-28.5 190zM328 481q0 -66 13 -126t43 -107t75 -75t106 -28q59 0 103.5 26t73 70t42 101t13.5 121q0 66 -14.5 126t-44 106 t-75 74t-108.5 28q-59 0 -102 -26t-71 -69t-41 -100.5t-13 -120.5zM1024 610h391q2 10 2 19v18q0 74 -48 112t-112 38q-92 0 -150 -52.5t-83 -134.5z" />
|
||||
<glyph unicode="Ÿ" horiz-adv-x="1155" d="M-25 1352h265l346 -613l332 613h260l-482 -797v-555h-235v547zM328 1604q0 47 34.5 83.5t81.5 36.5t84 -36.5t37 -83.5t-36.5 -82t-84.5 -35q-47 0 -81.5 35t-34.5 82zM606 1604q0 47 35 83.5t82 36.5t84 -36.5t37 -83.5t-37 -82t-84 -35t-82 35t-35 82z" />
|
||||
<glyph unicode="ˆ" horiz-adv-x="479" d="M0 1161l6 15l225 202h17l225 -202l6 -15l-33 -59l-14 -6l-192 84l-193 -84l-14 6z" />
|
||||
<glyph unicode="˜" horiz-adv-x="636" d="M0 1163q12 37 26.5 71t36 59.5t54.5 41t84 15.5q59 0 129.5 -14.5t126.5 -14.5q37 0 75.5 11t79.5 42l25 -47q-6 -33 -19.5 -66.5t-35 -60t-53 -44t-76.5 -17.5q-25 0 -56.5 4t-68.5 10t-75 10t-73 4q-47 0 -86 -11t-67 -40z" />
|
||||
<glyph unicode=" " horiz-adv-x="868" />
|
||||
<glyph unicode=" " horiz-adv-x="1738" />
|
||||
<glyph unicode=" " horiz-adv-x="868" />
|
||||
<glyph unicode=" " horiz-adv-x="1738" />
|
||||
<glyph unicode=" " horiz-adv-x="579" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode=" " horiz-adv-x="288" />
|
||||
<glyph unicode=" " horiz-adv-x="288" />
|
||||
<glyph unicode=" " horiz-adv-x="217" />
|
||||
<glyph unicode=" " horiz-adv-x="346" />
|
||||
<glyph unicode=" " horiz-adv-x="96" />
|
||||
<glyph unicode="‐" horiz-adv-x="958" d="M133 406v167h692v-167h-692z" />
|
||||
<glyph unicode="‑" horiz-adv-x="958" d="M133 406v167h692v-167h-692z" />
|
||||
<glyph unicode="‒" horiz-adv-x="958" d="M133 406v167h692v-167h-692z" />
|
||||
<glyph unicode="–" horiz-adv-x="1114" d="M133 406v167h848v-167h-848z" />
|
||||
<glyph unicode="—" horiz-adv-x="1581" d="M133 406v167h1315v-167h-1315z" />
|
||||
<glyph unicode="‘" horiz-adv-x="516" d="M135 942v311l211 252l74 -51l-92 -231h51v-281h-244z" />
|
||||
<glyph unicode="’" horiz-adv-x="477" d="M106 993l93 232h-52v280h244v-311l-211 -252z" />
|
||||
<glyph unicode="‚" horiz-adv-x="534" d="M104 -242l93 232h-52v280h244v-311l-211 -252z" />
|
||||
<glyph unicode="“" horiz-adv-x="841" d="M135 942v311l211 252l74 -51l-92 -231h51v-281h-244zM461 942v311l211 252l73 -51l-92 -231h52v-281h-244z" />
|
||||
<glyph unicode="”" horiz-adv-x="802" d="M106 993l93 232h-52v280h244v-311l-211 -252zM432 993l92 232h-51v280h244v-311l-211 -252z" />
|
||||
<glyph unicode="„" horiz-adv-x="860" d="M104 -242l93 232h-52v280h244v-311l-211 -252zM430 -242l92 232h-51v280h244v-311l-211 -252z" />
|
||||
<glyph unicode="•" horiz-adv-x="659" d="M182 498q0 29 11.5 55.5t32 48t46 33.5t56.5 12q29 0 55.5 -12t48 -33.5t33.5 -48.5t12 -55q0 -31 -12 -56.5t-33.5 -46t-48.5 -32t-55 -11.5q-59 0 -102.5 43.5t-43.5 102.5z" />
|
||||
<glyph unicode="…" horiz-adv-x="1298" d="M115 121q0 29 11 55.5t31.5 48t46 33.5t56.5 12q29 0 55.5 -12t48 -33.5t34 -48t12.5 -55.5q0 -31 -12.5 -56.5t-34 -46t-48 -32t-55.5 -11.5q-59 0 -102 43.5t-43 102.5zM504 121q0 29 11 55.5t31.5 48t46 33.5t56.5 12q29 0 55.5 -12t48 -33.5t34 -48t12.5 -55.5 q0 -31 -12.5 -56.5t-34 -46t-48 -32t-55.5 -11.5q-59 0 -102 43.5t-43 102.5zM891 121q0 29 11 55.5t31.5 48t46.5 33.5t56 12q29 0 55.5 -12t48 -33.5t34 -48t12.5 -55.5q0 -31 -12.5 -56.5t-34 -46t-48 -32t-55.5 -11.5q-59 0 -102 43.5t-43 102.5z" />
|
||||
<glyph unicode=" " horiz-adv-x="346" />
|
||||
<glyph unicode="‹" horiz-adv-x="690" d="M88 489v11l274 360h230l-297 -362v-11l297 -362h-232z" />
|
||||
<glyph unicode="›" horiz-adv-x="690" d="M98 125l297 362v11l-297 362h230l274 -360v-11l-272 -364h-232z" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode="€" horiz-adv-x="1261" d="M86 461v168h156v33v37q0 19 2 38h-158v168h184q25 100 71 184.5t113.5 144.5t155.5 94t197 34q92 0 188.5 -23.5t161.5 -64.5l-65 -227q-51 49 -125 81.5t-170 32.5q-123 0 -189.5 -68.5t-95.5 -187.5h432v-168h-452v-108h452v-168h-434q59 -285 274 -285q104 0 193.5 37 t142.5 94l62 -207q-72 -49 -171.5 -87t-226.5 -38q-113 0 -200.5 37t-153 102.5t-107.5 153.5t-63 193h-174z" />
|
||||
<glyph unicode="™" horiz-adv-x="1458" d="M133 1206v131h442v-131h-151v-450h-139v450h-152zM643 756v581h184l146 -411l143 411h182v-581h-139v336l-123 -336h-133l-121 338v-338h-139z" />
|
||||
<glyph unicode="" horiz-adv-x="940" d="M0 940h940v-940h-940v940z" />
|
||||
<glyph unicode="fi" horiz-adv-x="1075" d="M70 805v117l116 18q0 117 7.5 199t19.5 138t27.5 91t31.5 57q41 53 107.5 77t146.5 24q25 0 61 -3t79 -14.5t92 -32t98 -53.5l-92 -166q-55 35 -114.5 71t-139.5 36q-27 0 -45.5 -12.5t-30.5 -45t-17 -88t-5 -141.5v-135h180v-137h-180v-805h-226v805h-116zM711 0v942 h225v-942h-225z" />
|
||||
<glyph unicode="fl" horiz-adv-x="1097" d="M70 805v117l116 18q0 117 7.5 199t19.5 138t27.5 91t31.5 57q41 53 107.5 77t146.5 24q47 0 139.5 -12.5t190.5 -47.5l88 50v-1516h-225v1319q-47 16 -97.5 30.5t-111.5 14.5q-27 0 -45.5 -12.5t-30.5 -45t-17 -88t-5 -141.5v-135h180v-137h-180v-805h-226v805h-116z" />
|
||||
<glyph unicode="ffi" horiz-adv-x="1777" d="M1379 1245q0 29 11 55.5t31.5 48t46 34t56.5 12.5q29 0 55.5 -12.5t48 -34t33.5 -48t12 -55.5q0 -31 -12 -56.5t-33.5 -46t-48 -31.5t-55.5 -11q-59 0 -102 43t-43 102zM1411 0v942h226v-942h-226zM705 805v117l116 18q0 117 7.5 199t19.5 138t27.5 91t31.5 57 q41 53 107.5 77t146.5 24q10 0 33 -1t50.5 -5t57 -13.5t54.5 -23.5l-51 -174q-20 12 -67.5 33.5t-92.5 21.5q-27 0 -45.5 -12.5t-30.5 -45t-17 -88t-5 -141.5v-135h180v-137h-180v-805h-226v805h-116zM70 805v117l116 18q0 117 7.5 199t19.5 138t27.5 91t31.5 57 q41 53 107.5 77t146.5 24q10 0 33 -1t50.5 -5t57 -13.5t54.5 -23.5l-51 -174q-20 12 -67.5 33.5t-92.5 21.5q-27 0 -45.5 -12.5t-30.5 -45t-17 -88t-5 -141.5v-135h180v-137h-180v-805h-226v805h-116z" />
|
||||
<glyph unicode="ffl" horiz-adv-x="1802" d="M1424 0v1516h225v-1516h-225zM705 805v117l116 18q0 117 7.5 199t19.5 138t27.5 91t31.5 57q41 53 107.5 77t146.5 24q10 0 33 -1t50.5 -5t57 -13.5t54.5 -23.5l-51 -174q-20 12 -67.5 33.5t-92.5 21.5q-27 0 -45.5 -12.5t-30.5 -45t-17 -88t-5 -141.5v-135h180v-137 h-180v-805h-226v805h-116zM70 805v117l116 18q0 117 7.5 199t19.5 138t27.5 91t31.5 57q41 53 107.5 77t146.5 24q10 0 33 -1t50.5 -5t57 -13.5t54.5 -23.5l-51 -174q-20 12 -67.5 33.5t-92.5 21.5q-27 0 -45.5 -12.5t-30.5 -45t-17 -88t-5 -141.5v-135h180v-137h-180v-805 h-226v805h-116z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 66 KiB |
@@ -0,0 +1,248 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
This is a custom SVG webfont generated by Font Squirrel.
|
||||
Copyright : Copyright c 2011 Pablo Impallari wwwimpallaricomimpallarigmailcomCopyright c 2011 Igino Marini wwwikerncommailiginomarinicomCopyright c 2011 Brenda Gallo gbrenda1987gmailcomwith Reserved Font Name Quattrocento Sans
|
||||
Designer : Pablo Impallari
|
||||
Foundry : Pablo Impallari Igino Marini Brenda Gallo
|
||||
Foundry URL : wwwimpallaricom
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="QuattrocentoSansBoldItalic" horiz-adv-x="1179" >
|
||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
||||
<missing-glyph horiz-adv-x="501" />
|
||||
<glyph unicode=" " horiz-adv-x="501" />
|
||||
<glyph unicode="	" horiz-adv-x="501" />
|
||||
<glyph unicode=" " horiz-adv-x="501" />
|
||||
<glyph unicode="!" horiz-adv-x="555" d="M33 96q0 33 15 62.5t40 53.5t56.5 37t66.5 13q53 0 88 -36t35 -85q0 -33 -17.5 -62.5t-44 -53t-59.5 -37t-66 -13.5q-51 0 -82.5 36t-31.5 85zM147 369l170 1028h281l-272 -1028h-179z" />
|
||||
<glyph unicode=""" horiz-adv-x="768" d="M246 1057l51 442h248l-144 -442h-155zM567 1057l51 442h248l-143 -442h-156z" />
|
||||
<glyph unicode="#" horiz-adv-x="1269" d="M49 424l72 170h198l78 182h-209l68 168h213l168 395h213l-168 -395h176l168 395h213l-168 -395h207l-68 -168h-211l-77 -182h221l-72 -170h-221l-180 -424h-213l180 424h-176l-180 -424h-213l180 424h-199zM532 594h177l77 182h-176z" />
|
||||
<glyph unicode="$" horiz-adv-x="1073" d="M-20 88l104 211q53 -51 127 -85t172 -42l92 428q-47 16 -95 41t-88 61.5t-65.5 91t-25.5 132.5q0 111 33.5 188.5t93 129.5t138.5 80t171 34l37 178h164l-39 -180q84 -8 154.5 -27.5t119.5 -44.5l-100 -217q-43 33 -100.5 56.5t-116.5 33.5l-76 -354q53 -23 104.5 -52.5 t91 -70.5t63.5 -96.5t24 -130.5q0 -115 -38 -198t-100.5 -140.5t-145.5 -89t-173 -41.5l-37 -181h-164l37 174q-115 6 -207 38t-155 73zM428 997q0 -47 27.5 -77.5t74.5 -55.5l64 297q-74 -12 -120 -52t-46 -112zM549 184q90 23 133 75t43 120q0 53 -29.5 92t-70.5 64z" />
|
||||
<glyph unicode="%" horiz-adv-x="1726" d="M156 887q0 94 31.5 180t87 151.5t131 104.5t165.5 39q63 0 110.5 -23.5t79.5 -63.5t47 -93.5t15 -112.5q0 -86 -30.5 -170t-87 -149.5t-134 -106.5t-170.5 -41q-63 0 -109 22.5t-77 60.5t-45 90.5t-14 111.5zM166 -49l1259 1464h185l-1260 -1464h-184zM332 893 q0 -158 100 -158q55 0 96 31t68 79t40 106.5t13 113.5q0 72 -26.5 118t-83.5 46q-66 0 -106 -38t-62.5 -91t-30.5 -110.5t-8 -96.5zM954 274q0 94 32 180.5t87 152t131 104.5t166 39q63 0 110.5 -24t79 -63.5t47 -93t15.5 -112.5q0 -86 -30.5 -170t-87 -149.5t-134.5 -106.5 t-170 -41q-63 0 -109.5 22.5t-77 60.5t-45 90t-14.5 111zM1130 281q0 -158 101 -158q55 0 96 30.5t67.5 79t40 106.5t13.5 114q0 72 -26.5 117.5t-84.5 45.5q-66 0 -105.5 -37.5t-62 -91t-31 -110.5t-8.5 -96z" />
|
||||
<glyph unicode="&" horiz-adv-x="1435" d="M57 299q0 61 24.5 129t72 129t116 114.5t154.5 88.5q-70 109 -70 229q0 90 32 160t84 117t119.5 71.5t141.5 24.5q70 0 141.5 -23.5t133.5 -66.5l-101 -197q-14 16 -37.5 33.5t-50 31t-55.5 22.5t-55 9q-59 0 -104.5 -43t-45.5 -122q0 -53 24.5 -98.5t59.5 -92.5 l279 -369q18 51 18 111q0 35 -8 74t-25 78l-102 -7l28 127l609 76l-33 -157l-299 -23q25 -78 25 -162q0 -152 -89 -282l213 -281h-256l-98 127q-88 -70 -201.5 -111t-248.5 -41q-100 0 -175 27t-124.5 72t-73 103.5t-23.5 121.5zM303 344q0 -86 58.5 -129t150.5 -43 q84 0 154.5 25.5t128.5 72.5l-275 359q-49 -12 -90 -41t-68.5 -69t-43 -86t-15.5 -89z" />
|
||||
<glyph unicode="'" horiz-adv-x="446" d="M246 1057l51 442h248l-144 -442h-155z" />
|
||||
<glyph unicode="(" horiz-adv-x="667" d="M84 467q0 162 45 314.5t128 292.5t199.5 267t260.5 238l129 -51q-166 -156 -268.5 -302.5t-159 -284.5t-74.5 -269t-18 -256q0 -59 7 -134t25.5 -156t48 -162t72.5 -152l-147 -52q-123 135 -185.5 322.5t-62.5 384.5z" />
|
||||
<glyph unicode=")" horiz-adv-x="667" d="M-129 -188q125 121 222 243.5t164 258t100.5 288t33.5 334.5q0 166 -40 317.5t-118 274.5l150 51q59 -68 105.5 -149.5t78 -174t48 -189.5t16.5 -196q0 -160 -45 -313.5t-128 -293.5t-200 -267t-260 -236z" />
|
||||
<glyph unicode="*" horiz-adv-x="899" d="M201 1024l260 78l-228 78l146 182l149 -178v254h209l-108 -254l225 178l68 -182l-263 -78l230 -78l-146 -182l-149 176v-252h-209l109 252l-226 -176z" />
|
||||
<glyph unicode="+" horiz-adv-x="989" d="M57 406l35 167h309l66 301h188l-65 -301h311l-35 -167h-311l-68 -322h-188l68 322h-310z" />
|
||||
<glyph unicode="," horiz-adv-x="532" d="M-63 -242l141 232h-51l59 280h244l-66 -311l-264 -252z" />
|
||||
<glyph unicode="-" horiz-adv-x="960" d="M102 406l35 167h692l-34 -167h-693z" />
|
||||
<glyph unicode="." horiz-adv-x="516" d="M20 96q0 33 15.5 63.5t41 55.5t57.5 40t67 15q51 0 86 -38.5t35 -90.5q0 -33 -16.5 -62.5t-43 -53t-59.5 -37t-66 -13.5q-53 0 -85 35t-32 86z" />
|
||||
<glyph unicode="/" horiz-adv-x="956" d="M-70 -117l899 1555h236l-899 -1555h-236z" />
|
||||
<glyph unicode="0" horiz-adv-x="1312" d="M111 485q0 170 53 328t148.5 279.5t227.5 195.5t287 74q106 0 185.5 -42t131.5 -113.5t78.5 -167t26.5 -201.5q0 -158 -53 -311.5t-149.5 -276.5t-230.5 -199t-296 -76q-104 0 -182 40t-128 110t-74.5 163t-24.5 197zM362 489q0 -154 52.5 -235.5t154.5 -81.5 q106 0 187.5 61.5t135.5 157.5t81.5 215t27.5 234q0 143 -54 234t-169 91q-117 0 -195.5 -67.5t-127.5 -169t-71 -219.5t-22 -220z" />
|
||||
<glyph unicode="1" horiz-adv-x="684" d="M150 0l210 995l-182 -73v204l494 226l-287 -1352h-235z" />
|
||||
<glyph unicode="2" horiz-adv-x="1030" d="M-23 0l43 205q74 78 159 152.5t169 146t162 141.5t138.5 137.5t96 132t35.5 127.5q0 70 -49 99.5t-127 29.5q-88 0 -180 -27.5t-164 -64.5l-10 176q43 20 97 40t111.5 35.5t115 23.5t110.5 8q154 0 244 -76t90 -201q0 -76 -32 -149.5t-86 -147t-126 -146.5t-151.5 -145.5 t-161.5 -146.5t-158 -145h547l-43 -205h-830z" />
|
||||
<glyph unicode="3" horiz-adv-x="1085" d="M-33 115l96 186q59 -59 140.5 -94t181.5 -35q158 0 239 79t81 212q0 80 -51.5 126t-170.5 46h-55l37 178h63q55 0 99.5 19.5t75 53.5t47 77t16.5 92q0 66 -42 92.5t-103 26.5q-39 0 -83 -8.5t-86 -24t-80 -35t-67 -41.5l-14 188q88 47 195.5 78t207.5 31q154 0 242 -76 t88 -201q0 -66 -20.5 -118t-56.5 -95t-85 -76.5t-104 -60.5q94 -35 146 -101.5t52 -166.5q0 -94 -39.5 -183t-115.5 -158t-188.5 -110t-256.5 -41q-254 1 -389 140z" />
|
||||
<glyph unicode="4" horiz-adv-x="1101" d="M18 389l39 184l738 779h245l-166 -779h142l-39 -184h-141l-82 -389h-236l82 389h-582zM289 573h350l106 496z" />
|
||||
<glyph unicode="5" horiz-adv-x="1093" d="M-16 113l100 194q25 -29 59.5 -52.5t76.5 -40.5t89 -27.5t94 -10.5q61 0 120 16.5t103 53.5t71.5 93t27.5 136q0 72 -47 118t-166 46q-63 0 -142 -12.5t-153 -38.5l-51 30l237 744h695l-47 -215h-504l-98 -324q45 12 93 17.5t87 5.5q162 0 257 -86t95 -242 q0 -104 -40 -202.5t-116.5 -173t-191.5 -121t-262 -46.5q-125 0 -223 36t-164 102z" />
|
||||
<glyph unicode="6" horiz-adv-x="1116" d="M104 401q0 78 13.5 179.5t45.5 208t84 209t129 183.5t181.5 130t241.5 49q37 0 81 -5t87 -17.5t81.5 -33t63.5 -51.5l-90 -180q-57 51 -128 71.5t-128 20.5q-86 0 -151.5 -37.5t-112.5 -99t-77 -137.5t-46 -152q-4 -16 -6 -29.5t-4 -29.5l6 -2q49 74 130 108.5t179 34.5 q92 0 153.5 -31.5t97.5 -79.5t50 -106.5t14 -114.5q0 -82 -31.5 -173t-98 -166.5t-169 -125t-241.5 -49.5q-96 0 -163 31t-110 87.5t-62.5 134t-19.5 173.5zM344 338q0 -80 40 -128t116 -48q57 0 105 23.5t82 65.5t52.5 99.5t18.5 124.5q0 66 -33 113t-115 47 q-63 0 -112 -24.5t-83 -65.5t-52.5 -94.5t-18.5 -112.5z" />
|
||||
<glyph unicode="7" horiz-adv-x="940" d="M37 0q4 18 7 39.5t7 40.5q16 80 58.5 172t101.5 188.5t131 193.5t148.5 189t154.5 174t150 150h-596l45 215h829l-45 -215q-72 -63 -149.5 -147.5t-151.5 -179.5t-142.5 -195.5t-123.5 -197.5t-94 -185t-54 -160l-16 -82h-260z" />
|
||||
<glyph unicode="8" horiz-adv-x="1118" d="M57 299q0 162 91.5 279.5t244.5 160.5l2 9q-55 23 -92 80t-37 143q0 84 33 155.5t93.5 124t145.5 82t191 29.5q156 0 241 -71.5t85 -190.5q0 -63 -20.5 -118.5t-55.5 -100.5t-80 -79t-94 -52l-2 -9q92 -23 137 -95.5t45 -176.5q0 -96 -33.5 -185t-103.5 -158t-173.5 -110 t-242.5 -41q-102 0 -174 27t-116 71t-64.5 102t-20.5 124zM293 328q0 -86 47 -130t131 -44q117 0 195.5 75.5t78.5 210.5q0 39 -9 75t-30.5 63.5t-54.5 45t-78 17.5q-70 0 -122 -30.5t-87.5 -78t-53 -101.5t-17.5 -103zM489 965q0 -63 33 -101.5t92 -38.5q43 0 80 17.5 t63.5 47.5t42 70.5t15.5 90.5q0 59 -31.5 94t-95.5 35q-92 0 -145.5 -58.5t-53.5 -156.5z" />
|
||||
<glyph unicode="9" horiz-adv-x="1116" d="M49 82l90 180q57 -51 128 -71.5t128 -20.5q96 0 165 46t115 116.5t73.5 156.5t44.5 166l-7 2q-49 -74 -130 -108.5t-179 -34.5q-92 0 -153.5 32t-97.5 80t-50 106.5t-14 113.5q0 82 31.5 173t98 167t169 125t241.5 49q94 0 162 -31t111 -87t62.5 -135t19.5 -173 q0 -78 -13.5 -179.5t-45 -208t-84 -208.5t-130 -183t-182 -130.5t-240.5 -49.5q-37 0 -80.5 5.5t-86.5 17.5t-82 32.5t-64 51.5zM403 844q0 -61 32 -102.5t114 -41.5q63 0 112.5 25t84 65.5t53 94t18.5 112.5q0 80 -40 128.5t-118 48.5q-61 0 -109 -31t-80 -78t-49.5 -105.5 t-17.5 -115.5z" />
|
||||
<glyph unicode=":" horiz-adv-x="563" d="M37 96q0 33 15.5 63.5t41 55.5t57 40t66.5 15q51 0 86 -38.5t35 -90.5q0 -33 -16.5 -62.5t-43 -53t-59.5 -37t-65 -13.5q-53 0 -85 35t-32 86zM178 758q0 33 15.5 63.5t41 55t57.5 40t66 15.5q51 0 86 -39t35 -90q0 -33 -17.5 -62.5t-44 -53t-59 -37t-63.5 -13.5 q-53 0 -85 35t-32 86z" />
|
||||
<glyph unicode=";" horiz-adv-x="573" d="M-47 -242l141 232h-51l59 280h244l-65 -311l-265 -252zM186 758q0 33 15.5 63.5t41 55t57.5 40t67 15.5q51 0 85.5 -39t34.5 -90q0 -33 -17 -62.5t-44 -53t-59.5 -37t-63.5 -13.5q-53 0 -85 35t-32 86z" />
|
||||
<glyph unicode="<" horiz-adv-x="808" d="M51 426l29 133l663 397v-190l-460 -268l-2 -11l348 -272l-78 -192z" />
|
||||
<glyph unicode="=" horiz-adv-x="976" d="M76 250l35 168h692l-35 -168h-692zM141 561l37 168h692l-36 -168h-693z" />
|
||||
<glyph unicode=">" horiz-adv-x="811" d="M35 23v192l463 272l2 11l-346 268l77 190l500 -397l-29 -133z" />
|
||||
<glyph unicode="?" horiz-adv-x="843" d="M137 96q0 33 15.5 62.5t41 53.5t57.5 37t64 13q53 0 88 -36t35 -85q0 -33 -17.5 -62.5t-44 -53t-59 -37t-65.5 -13.5q-51 0 -83 36t-32 85zM227 371q20 100 59.5 178t83.5 140.5t90 112.5t83 97t60.5 92t23.5 99q0 63 -40 88.5t-93 25.5q-66 0 -135.5 -28.5t-116.5 -73.5 l-11 196q66 43 158 75t184 32q131 0 208 -75t77 -191q0 -72 -24.5 -130.5t-64.5 -110.5t-88 -105.5t-94 -115t-86 -136t-61 -170.5h-213z" />
|
||||
<glyph unicode="@" horiz-adv-x="1478" d="M49 262q0 80 26.5 175t79 191.5t129 185.5t176 157.5t220.5 109.5t262 41q125 0 213 -35.5t144.5 -95t82 -134.5t25.5 -150q0 -109 -46 -208.5t-121 -177t-168 -123.5t-187 -46q-59 0 -95 27.5t-36 80.5q0 18 6 41q-49 -70 -118 -110.5t-122 -40.5q-51 0 -91 46t-40 138 q0 102 47 187t118 146.5t155 95.5t159 34q27 0 57.5 -5.5t59.5 -14.5t52.5 -24.5t33.5 -35.5l-125 -291q-12 -29 -20 -57.5t-8 -38.5q0 -12 6 -22.5t28 -10.5q41 0 84 36t79 91t58.5 123.5t22.5 134.5q0 55 -15.5 105.5t-50 90.5t-90 63.5t-133.5 23.5q-145 0 -264 -67 t-204 -169t-132 -224t-47 -235q0 -84 25.5 -143t71.5 -98t108.5 -57.5t136.5 -18.5q80 0 154.5 17.5t136 43t109 54t75.5 49.5l-35 -164q-25 -18 -74.5 -46t-117.5 -53.5t-147.5 -43t-163.5 -17.5q-104 0 -194.5 33t-156 94.5t-102.5 148.5t-37 193zM592 358q0 -51 33 -51 q18 0 42.5 15.5t50 43t49.5 63.5t40 79l55 147q-16 8 -37 9q-47 0 -89 -34t-73.5 -81t-51 -99.5t-19.5 -91.5z" />
|
||||
<glyph unicode="A" horiz-adv-x="1292" d="M-106 0l811 1352h202l291 -1352h-256l-72 393h-510l-221 -393h-245zM465 578h373l-90 497z" />
|
||||
<glyph unicode="B" horiz-adv-x="1169" d="M61 0l287 1352q25 2 66 3t88 3t94 3t84 1q188 0 286.5 -71.5t98.5 -209.5q0 -104 -51 -190t-156 -143q94 -35 146.5 -106t52.5 -175q0 -94 -40 -183t-117 -158t-189.5 -110t-257.5 -41q-113 0 -216.5 7.5t-175.5 17.5zM334 176q35 -4 75 -4h80q147 0 234.5 77t87.5 212 q0 80 -53 128t-174 48q-39 0 -78 -1t-76 -3zM467 809q25 -2 51 -2h53q53 0 98.5 20.5t77 54t49 79t17.5 92.5q0 51 -35 83.5t-100 32.5q-41 0 -74 -3t-61 -7z" />
|
||||
<glyph unicode="C" horiz-adv-x="1290" d="M109 508q0 166 57 320.5t166.5 272.5t266.5 189.5t355 71.5q111 0 216.5 -23.5t177.5 -64.5l-105 -213q-55 45 -141 72.5t-203 27.5q-147 0 -249.5 -53t-166 -141t-92.5 -202t-29 -233q0 -174 82 -265t242 -91q123 0 231.5 37t186.5 90l18 -203q-92 -49 -216 -87 t-269 -38q-139 0 -238.5 42t-164 115t-95 170t-30.5 206z" />
|
||||
<glyph unicode="D" horiz-adv-x="1458" d="M61 0l287 1352q29 2 86.5 4t120.5 3t121.5 2t91.5 1q197 0 317.5 -41t188.5 -113q59 -63 87 -165.5t28 -213.5q0 -203 -59.5 -360.5t-178.5 -267t-298 -167t-417 -57.5q-86 0 -183.5 6.5t-191.5 16.5zM334 180q57 -4 110.5 -6t90.5 -2q180 0 296.5 48t185 135t95.5 207 t27 263q0 166 -94.5 253t-321.5 87h-77q-48 0 -103 -2z" />
|
||||
<glyph unicode="E" horiz-adv-x="1081" d="M61 0l287 1352h782l-43 -205h-548l-70 -328h412l-43 -205h-412l-86 -409h588l-43 -205h-824z" />
|
||||
<glyph unicode="F" horiz-adv-x="1003" d="M61 0l287 1352h772l-43 -205h-538l-70 -328h389l-43 -205h-389l-129 -614h-236z" />
|
||||
<glyph unicode="G" horiz-adv-x="1351" d="M109 508q0 166 57 320.5t165.5 272.5t266.5 189.5t360 71.5q115 0 222.5 -23.5t187.5 -64.5l-111 -213q-61 41 -147 70.5t-203 29.5q-170 0 -276.5 -58.5t-167 -150.5t-82 -204.5t-21.5 -221.5q0 -350 340 -350q76 0 124 12.5t102 28.5l71 340h236l-94 -444 q-104 -61 -231.5 -99.5t-268.5 -38.5q-139 0 -239.5 42t-165 115t-95 169t-30.5 207z" />
|
||||
<glyph unicode="H" horiz-adv-x="1478" d="M61 0l287 1352h236l-119 -553h647l119 553h235l-286 -1352h-236l125 594h-647l-125 -594h-236z" />
|
||||
<glyph unicode="I" horiz-adv-x="595" d="M61 0l287 1352h236l-287 -1352h-236z" />
|
||||
<glyph unicode="J" horiz-adv-x="595" d="M-174 -141q72 0 120 32.5t79.5 83t50 113t30.5 121.5l244 1143h236l-244 -1145q-23 -109 -67 -204t-108.5 -167t-147 -113.5t-185.5 -41.5z" />
|
||||
<glyph unicode="K" horiz-adv-x="1239" d="M61 0l287 1352h236l-125 -590q68 53 132 107.5t122 107.5q106 98 196 191.5t160 183.5h258q-115 -123 -219 -225.5t-225 -213.5q-45 -41 -93.5 -84t-99.5 -86l447 -743h-273l-356 592q-27 -23 -52.5 -42.5t-49.5 -37.5l-109 -512h-236z" />
|
||||
<glyph unicode="L" horiz-adv-x="1007" d="M61 0l287 1352h236l-244 -1147h563l-43 -205h-799z" />
|
||||
<glyph unicode="M" horiz-adv-x="1806" d="M61 0l287 1352h268l242 -1033l668 1033h268l-287 -1352h-233l188 891l-577 -891h-189l-211 891l-188 -891h-236z" />
|
||||
<glyph unicode="N" horiz-adv-x="1478" d="M61 0l287 1352h289l383 -994l211 994h235l-286 -1352h-289l-383 991l-211 -991h-236z" />
|
||||
<glyph unicode="O" horiz-adv-x="1531" d="M109 510q0 168 59 321.5t168.5 271.5t262.5 188.5t339 70.5q135 0 234.5 -43t166 -118t99 -174t32.5 -212q0 -154 -57 -303.5t-166.5 -269t-265.5 -193.5t-352 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM354 514q0 -152 83 -245t249 -93q135 0 237.5 57.5 t170 148.5t101.5 204.5t34 228.5q0 76 -20.5 139.5t-63.5 109.5t-108.5 71.5t-157.5 25.5q-141 0 -240.5 -58.5t-162 -151.5t-92.5 -208.5t-30 -228.5z" />
|
||||
<glyph unicode="P" horiz-adv-x="1091" d="M61 0l287 1352q31 2 72 4t85 3l88 2q44 1 83 1q201 0 316.5 -89t115.5 -259q0 -98 -37 -189.5t-108.5 -162t-178 -112.5t-245.5 -42h-69q-34 0 -64 2l-109 -510h-236zM446 707q29 -2 61 -2h66q141 0 212 82.5t71 213.5q0 72 -43 118t-145 46h-64q-31 0 -61 -2z" />
|
||||
<glyph unicode="Q" horiz-adv-x="1536" d="M111 510q0 168 59 321.5t169 271.5t262.5 188.5t338.5 70.5q135 0 234.5 -43t166 -118t99.5 -174t33 -212q0 -150 -55.5 -296t-159 -264t-252 -193.5t-336.5 -84.5q72 -8 134 -32.5t123.5 -50t126 -46t142.5 -20.5q92 0 207 41l-96 -201q-41 -14 -78 -19t-72 -5 q-86 0 -158.5 27.5t-142.5 59t-138.5 59.5t-144.5 28q-45 0 -116.5 -16.5t-145.5 -63.5l-8 147q66 45 137.5 66.5t130.5 25.5q-121 8 -206.5 54.5t-143 118t-84 164t-26.5 196.5zM354 514q0 -152 83 -245t249 -93q135 0 237.5 57.5t170 148.5t101.5 204.5t34 228.5 q0 76 -20.5 139.5t-63.5 109.5t-108.5 71.5t-157.5 25.5q-141 0 -240.5 -58.5t-162 -151.5t-92.5 -208.5t-30 -228.5z" />
|
||||
<glyph unicode="R" horiz-adv-x="1228" d="M61 0l287 1352q33 2 76 4t86 3t81 2t60 1q229 0 347 -81t118 -234q0 -68 -19.5 -134.5t-60.5 -125t-107.5 -105.5t-158.5 -74l367 -608h-273l-348 578h-46q-24 0 -50 2l-123 -580h-236zM461 774h127q135 0 206.5 72t71.5 184q0 68 -53 101.5t-182 33.5h-39q-23 0 -49 -2z " />
|
||||
<glyph unicode="S" horiz-adv-x="1120" d="M-8 88l108 221q66 -59 153 -98t210 -39q152 0 221.5 57.5t69.5 145.5q0 49 -23.5 86t-58.5 62.5t-75 42t-71 28.5q-53 18 -107 43t-100.5 62.5t-75 93t-28.5 137.5q0 117 41 199.5t111.5 134t166 75t201.5 23.5q113 0 214.5 -22.5t164.5 -55.5l-100 -217 q-63 47 -154.5 73.5t-173.5 26.5q-104 0 -167.5 -41t-63.5 -127q0 -35 16 -61.5t46 -47t71 -37.5t90 -36q59 -23 117.5 -52.5t104.5 -71.5t75 -101.5t29 -140.5q0 -131 -50.5 -222.5t-132.5 -147.5t-186.5 -81t-212.5 -25q-135 0 -245.5 33t-184.5 80z" />
|
||||
<glyph unicode="T" horiz-adv-x="1095" d="M166 1147l43 205h1018l-43 -205h-391l-244 -1147h-236l244 1147h-391z" />
|
||||
<glyph unicode="U" horiz-adv-x="1443" d="M133 346q0 66 14 129l187 877h235l-176 -828q-8 -33 -11 -62.5t-3 -55.5q0 -123 69.5 -176.5t196.5 -53.5q154 0 257.5 81t144.5 267l176 828h225l-186 -877q-23 -100 -74 -190t-135 -159t-200 -109t-263 -40q-123 0 -210 29t-142.5 78t-80 116.5t-24.5 145.5z" />
|
||||
<glyph unicode="V" horiz-adv-x="1304" d="M141 1352h256l205 -1065l615 1065h245l-827 -1352h-186z" />
|
||||
<glyph unicode="W" horiz-adv-x="2138" d="M162 1352h256l125 -1049l569 1049h231l125 -1049l568 1049h256l-789 -1352h-194l-150 1028l-586 -1028h-194z" />
|
||||
<glyph unicode="X" horiz-adv-x="1304" d="M-96 0l647 696l-330 656h264l230 -529l450 529h258l-610 -658l350 -694h-264l-254 547l-483 -547h-258z" />
|
||||
<glyph unicode="Y" horiz-adv-x="1150" d="M137 1352h264l215 -613l463 613h260l-651 -797l-117 -555h-235l115 547z" />
|
||||
<glyph unicode="Z" horiz-adv-x="1132" d="M-31 0l43 205l873 942h-641l43 205h897l-43 -205l-873 -942h703l-43 -205h-959z" />
|
||||
<glyph unicode="[" horiz-adv-x="577" d="M0 -195l367 1729h327l-30 -148h-113l-305 -1433h112l-30 -148h-328z" />
|
||||
<glyph unicode="\" horiz-adv-x="919" d="M246 1438h231l240 -1555h-232z" />
|
||||
<glyph unicode="]" horiz-adv-x="577" d="M-70 -195l31 148h113l305 1433h-113l31 148h328l-367 -1729h-328z" />
|
||||
<glyph unicode="^" horiz-adv-x="712" d="M365 1161l8 15l270 202h16l181 -202l4 -15l-45 -59l-17 -6l-174 84l-211 -84l-12 6z" />
|
||||
<glyph unicode="_" horiz-adv-x="948" d="M-106 -168l34 168h887l-35 -168h-886z" />
|
||||
<glyph unicode="`" horiz-adv-x="448" d="M272 1272q0 18 7.5 40.5t19.5 42t27.5 32t31.5 12.5q8 0 21 -6l323 -207l5 -15l-48 -73l-16 -6l-354 141q-17 6 -17 39z" />
|
||||
<glyph unicode="a" d="M57 367q0 111 37 219t106.5 194t171 139.5t230.5 53.5q98 0 177 -33t114 -92h8l43 94h176l-200 -942h-181l11 129h-9q-72 -63 -153.5 -108.5t-192.5 -45.5q-80 0 -143.5 30t-106.5 82t-65.5 124t-22.5 156zM283 389q0 -47 10 -91t31.5 -78t55.5 -54.5t81 -20.5 q33 0 71.5 9.5t78.5 26t77 40t66 53.5l84 394q-47 76 -104.5 103.5t-117.5 27.5q-80 0 -141 -36t-104 -94.5t-65.5 -131t-22.5 -148.5z" />
|
||||
<glyph unicode="b" horiz-adv-x="1177" d="M23 0l321 1516h223l-141 -668q59 59 144 92t184 33q88 0 150.5 -31t103.5 -83t60 -119.5t19 -143.5q0 -127 -43 -239.5t-117.5 -197.5t-176 -134.5t-215.5 -49.5q-111 0 -173.5 45.5t-107.5 108.5h-8l-43 -129h-180zM303 274q16 -31 44 -54t59.5 -39.5t67.5 -26t69 -9.5 q74 0 132 39t99 99.5t63.5 133t22.5 142.5q0 98 -47 169t-149 71q-59 0 -129 -28t-148 -103z" />
|
||||
<glyph unicode="c" horiz-adv-x="1001" d="M57 369q0 111 37 219t113 193t190.5 138.5t268.5 53.5q98 0 187 -22.5t138 -59.5l-88 -182q-39 35 -116.5 61.5t-153.5 26.5q-90 0 -152.5 -37t-101.5 -94.5t-56.5 -127t-17.5 -132.5q0 -104 49 -176t156 -72q74 0 163 29.5t156 82.5v-192q-66 -37 -172 -70t-219 -33 q-98 0 -169.5 31t-119 85t-70 126t-22.5 152z" />
|
||||
<glyph unicode="d" horiz-adv-x="1177" d="M57 367q0 111 37 219t106.5 194t171 139.5t230.5 53.5q98 0 169 -33t106 -92l141 668h223l-321 -1516h-181l11 129h-9q-72 -63 -153.5 -108.5t-192.5 -45.5q-80 0 -143.5 30t-106.5 82t-65.5 124t-22.5 156zM283 389q0 -47 10 -91t31.5 -78t55.5 -54.5t81 -20.5 q33 0 71.5 9.5t78.5 26t77 40t66 53.5l84 394q-47 76 -104.5 103.5t-117.5 27.5q-80 0 -141 -36t-104 -94.5t-65.5 -131t-22.5 -148.5z" />
|
||||
<glyph unicode="e" horiz-adv-x="1034" d="M53 369q0 115 43 223t123 193t191.5 136.5t248.5 51.5q154 0 234 -71t80 -200q0 -39 -8.5 -77.5t-21.5 -72.5t-28.5 -60.5t-27.5 -40.5h-600q-2 -12 -2 -25v-25q0 -51 13 -96t40 -78.5t69 -53t99 -19.5q76 0 166 28.5t162 71.5v-168q-31 -16 -75 -35.5t-96.5 -36 t-110.5 -28t-120 -11.5q-96 0 -166.5 32t-118 85t-71 125t-23.5 152zM334 610h399q6 14 11.5 29.5t5.5 32.5q0 55 -37 90t-99 35q-90 0 -163.5 -50.5t-116.5 -136.5z" />
|
||||
<glyph unicode="f" horiz-adv-x="634" d="M-47 -535l285 1340h-117l24 117l121 18q25 117 49.5 199t49 138t47 91t43.5 57q51 53 122.5 77t151.5 24q10 0 32.5 -1t49.5 -5t54.5 -13.5t49.5 -23.5l-88 -174q-16 12 -59 33.5t-88 21.5q-27 0 -48.5 -12.5t-40 -45t-35.5 -88t-36 -141.5l-28 -135h180l-29 -137h-180 l-285 -1340h-225z" />
|
||||
<glyph unicode="g" horiz-adv-x="1173" d="M-12 -410l35 172q88 -53 191 -83.5t198 -30.5q66 0 113.5 18.5t82.5 61.5t60.5 115.5t48.5 181.5l20 104q-68 -63 -151.5 -108.5t-192.5 -45.5q-82 0 -145.5 30t-106.5 82t-65.5 124t-22.5 156q0 111 37 219t106.5 194t171 139.5t228.5 53.5q98 0 178 -33t115 -92h8 l43 94l170 2l-207 -983q-27 -129 -68.5 -219t-105 -147.5t-149.5 -84t-199 -26.5q-53 0 -100.5 6t-93.5 18.5t-95 32.5t-104 49zM279 391q0 -49 10 -93t31.5 -78t55.5 -54.5t83 -20.5q31 0 68.5 8.5t77.5 26t77 41t68 53.5l84 394q-47 76 -105.5 103.5t-118.5 27.5 q-78 0 -139 -36t-104 -93.5t-65.5 -130t-22.5 -148.5z" />
|
||||
<glyph unicode="h" horiz-adv-x="1128" d="M23 0l321 1516h225l-151 -713q78 90 163 130t189 40q53 0 100.5 -12.5t82 -39t55 -70.5t20.5 -108q0 -47 -12 -102l-137 -641h-226l133 623q6 31 7 55q0 55 -29 84t-80 29q-39 0 -83 -12.5t-86 -37t-79 -59.5t-59 -78l-129 -604h-225z" />
|
||||
<glyph unicode="i" horiz-adv-x="505" d="M20 0l201 942h225l-200 -942h-226zM250 1221q0 33 15.5 63.5t41 55t57 40t66.5 15.5q51 0 86 -39t35 -90q0 -33 -17.5 -62.5t-44 -53.5t-59.5 -37t-63 -13q-53 0 -85 35t-32 86z" />
|
||||
<glyph unicode="j" horiz-adv-x="503" d="M-281 -385q12 -6 41 -6q61 0 105.5 38t74 96t49 126t31.5 127l201 946h223l-200 -948q-23 -104 -66 -198.5t-103.5 -167t-136 -114.5t-163.5 -42q-16 0 -29.5 1t-17.5 5zM250 1221q0 33 15.5 63.5t41 55t57 40t66.5 15.5q51 0 85 -39t34 -90q0 -33 -16.5 -62.5t-43 -53.5 t-59.5 -37t-65 -13q-51 0 -83 36t-32 85z" />
|
||||
<glyph unicode="k" horiz-adv-x="1005" d="M23 0l321 1516h225l-186 -877l379 303h252l-408 -334l273 -608h-246l-207 463l-96 -80l-82 -383h-225z" />
|
||||
<glyph unicode="l" horiz-adv-x="530" d="M35 0l321 1516h226l-322 -1516h-225z" />
|
||||
<glyph unicode="m" horiz-adv-x="1716" d="M20 0l201 942h176l-20 -139h8q59 86 157.5 128t198.5 42q96 0 167 -37t91 -129q59 84 156.5 125t196.5 41q55 0 103 -12.5t84 -39t56.5 -70.5t20.5 -108q0 -47 -12 -102l-138 -641h-225l133 623q6 33 6 59q0 109 -104 109q-33 0 -74 -12.5t-82 -36t-76.5 -58.5t-56.5 -80 v8l-131 -612h-225l133 623q6 33 6 59q0 109 -104 109q-33 0 -74 -12.5t-82 -36t-77 -58.5t-58 -80l-129 -604h-226z" />
|
||||
<glyph unicode="n" horiz-adv-x="1126" d="M20 0l201 942h176l-20 -139h8q61 86 161.5 128t205.5 42q57 0 107 -12.5t87 -40t58.5 -71.5t21.5 -108q0 -45 -12 -100l-137 -641h-226l133 623q6 31 7 55q0 113 -115 113q-35 0 -77 -12.5t-84 -36t-80 -58.5t-60 -80l-129 -604h-226z" />
|
||||
<glyph unicode="o" horiz-adv-x="1130" d="M55 365q0 113 39 222t114 195t186.5 138.5t256.5 52.5q102 0 175 -32t120 -86t68.5 -125t21.5 -150q0 -115 -37.5 -223.5t-111.5 -193.5t-184.5 -136.5t-258.5 -51.5q-102 0 -175.5 31t-121 84t-70 124t-22.5 151zM301 385q0 -47 10.5 -91t32 -77t55 -52.5t80.5 -19.5 q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5q0 49 -10.5 93t-33 77t-56.5 52.5t-83 19.5q-76 0 -133 -37t-96 -95.5t-58.5 -132t-19.5 -147.5z" />
|
||||
<glyph unicode="p" d="M-92 -532l313 1474h180l-10 -129h8q33 33 76 62.5t91 51t95.5 34t90.5 12.5q88 0 151.5 -31t104.5 -82t59 -120.5t18 -145.5q0 -117 -35.5 -227.5t-104 -197.5t-171 -140.5t-237.5 -53.5q-92 0 -166 27t-109 86l-131 -620h-223zM301 268q47 -76 106.5 -95t112.5 -19 q84 0 146.5 33.5t104.5 90t63.5 129t21.5 148.5q0 47 -9 92t-30.5 79t-55.5 54.5t-83 20.5q-31 0 -69 -9.5t-77.5 -26.5t-77.5 -42t-67 -55z" />
|
||||
<glyph unicode="q" d="M55 348q0 111 35 221.5t103.5 200.5t171 146.5t237.5 56.5q43 0 85 -12.5t81 -34t70.5 -51t50.5 -62.5h8l43 129h180l-313 -1474h-223l131 620q-59 -59 -143.5 -86t-176.5 -27q-90 0 -153.5 29t-105.5 80t-61.5 118.5t-19.5 145.5zM283 383q0 -49 11 -91t35.5 -74 t63.5 -50t92 -18t123 24.5t146 93.5l86 400q-16 31 -44 55.5t-61 41.5t-67.5 26.5t-65.5 9.5q-76 0 -135 -40t-100 -101.5t-62.5 -135t-21.5 -141.5z" />
|
||||
<glyph unicode="r" horiz-adv-x="765" d="M20 0l201 942h176l-32 -197h8q31 43 62.5 84t66.5 73t77 51.5t93 19.5q82 0 141 -53l-96 -183q-16 16 -58.5 26.5t-72.5 10.5q-41 0 -72 -19.5t-57.5 -51t-49 -72.5t-45.5 -84l-116 -547h-226z" />
|
||||
<glyph unicode="s" horiz-adv-x="888" d="M-12 78l94 194q55 -68 135 -100.5t154 -32.5q92 0 141 41t49 107q0 27 -18.5 46t-67.5 32l-184 49q-51 14 -85 37.5t-54.5 53.5t-28.5 62.5t-8 63.5q0 80 31.5 143.5t87 107.5t131 67.5t163.5 23.5q39 0 83 -5t85 -16.5t78 -27t64 -35.5l-99 -184q-33 33 -100.5 66.5 t-157.5 33.5q-78 0 -122 -31t-44 -84q0 -25 19.5 -46t77.5 -36l137 -33q63 -16 105 -42.5t66.5 -59.5t34 -68.5t9.5 -68.5q0 -76 -34 -141.5t-93 -114.5t-142 -77t-182 -28q-109 0 -193.5 32t-131.5 71z" />
|
||||
<glyph unicode="t" horiz-adv-x="673" d="M96 111q0 23 4 50t11 56l125 588h-117l24 123l138 20l96 279h172l-60 -285h181l-29 -137h-182l-115 -541q-8 -33 -8 -59q0 -27 11 -36t36 -9q27 0 55.5 10t87.5 39v-162q-47 -33 -121.5 -52.5t-144.5 -19.5q-92 0 -128 35t-36 101z" />
|
||||
<glyph unicode="u" horiz-adv-x="1099" d="M63 197q0 45 13 104l137 641h225l-131 -612q-6 -29 -6 -49q0 -59 34 -91t93 -32q72 0 141.5 48t116.5 138l127 598h227l-200 -942h-176l16 131h-8q-33 -47 -74 -76.5t-86 -47t-92 -25t-90 -7.5q-57 0 -105.5 11.5t-84.5 37t-56.5 69t-20.5 104.5z" />
|
||||
<glyph unicode="v" horiz-adv-x="1069" d="M92 942h236l125 -756l456 756h221l-589 -942h-273z" />
|
||||
<glyph unicode="w" horiz-adv-x="1681" d="M100 942h236l92 -723l377 723h225l68 -723l401 723h232l-543 -942h-268l-64 655l-342 -655h-272z" />
|
||||
<glyph unicode="x" horiz-adv-x="1036" d="M-92 0l465 481l-244 461h256l154 -317l278 317h256l-442 -457l262 -485h-256l-166 344l-307 -344h-256z" />
|
||||
<glyph unicode="y" horiz-adv-x="1060" d="M-172 -342q6 -2 13 -4t34 -2q135 0 245.5 99t223.5 280l-276 911h235l186 -670l404 670h219l-592 -950q-43 -72 -112.5 -161t-154.5 -168t-183.5 -133t-198.5 -54q-16 0 -24.5 1t-18.5 5v176z" />
|
||||
<glyph unicode="z" horiz-adv-x="854" d="M-33 0l39 182l553 578h-409l38 182h643l-38 -182l-566 -578h463l-39 -182h-684z" />
|
||||
<glyph unicode="{" horiz-adv-x="593" d="M72 618l22 103q55 2 90 28.5t56.5 61.5t32 73t16.5 64q8 43 18 90t18.5 90t15.5 78t11 58q14 66 36 120t61.5 91.5t101 59t158.5 21.5l-17 -104q-51 -6 -71.5 -49t-30.5 -90q-6 -25 -13.5 -66t-15.5 -84t-16 -83t-13 -60q-31 -147 -94 -235.5t-174 -114.5 q72 -18 104.5 -79t32.5 -153q0 -53 -14 -122.5t-32.5 -137t-33 -125t-14.5 -84.5q0 -29 11.5 -53.5t39.5 -28.5l-26 -104q-72 0 -119 14.5t-75.5 40t-41 61t-12.5 81.5q0 47 15.5 115.5t34 139t33.5 135t15 101.5q0 25 -5 50.5t-17.5 47t-33.5 34.5t-54 15z" />
|
||||
<glyph unicode="|" horiz-adv-x="524" d="M-10 -233l383 1806h209l-383 -1806h-209z" />
|
||||
<glyph unicode="}" horiz-adv-x="593" d="M-68 -217l19 104q51 6 70.5 49.5t29.5 90.5q6 25 14.5 65.5t16.5 83.5t16 82t13 61q31 147 93 235.5t173 115.5q-72 18 -103.5 78.5t-31.5 152.5q0 53 14 123t31.5 137.5t32 123.5t14.5 85t-10.5 53.5t-40.5 28.5l26 104q72 0 119 -14t75.5 -39.5t41 -61.5t12.5 -81 q0 -47 -15.5 -115.5t-34 -139.5t-33.5 -135.5t-15 -101.5q0 -25 5 -50t17.5 -46.5t34 -35t53.5 -15.5l-20 -103q-55 -4 -91 -29.5t-57.5 -60t-32 -72.5t-16.5 -65q-10 -43 -19 -90t-17.5 -90t-15.5 -79l-11 -56q-14 -66 -36 -120t-61.5 -93t-102.5 -59.5t-157 -20.5z" />
|
||||
<glyph unicode="~" horiz-adv-x="970" d="M100 414q2 16 20.5 48t49.5 62.5t73 54t93 23.5q18 0 60 -3t93.5 -6t103.5 -6t93 -3q39 0 76 7t72 40l14 -41q-2 -10 -17.5 -40t-45 -63.5t-70.5 -59.5t-92 -26q-16 0 -66.5 3.5t-110 6.5t-116 6t-84.5 3q-47 0 -75 -10.5t-52 -34.5z" />
|
||||
<glyph unicode="¡" horiz-adv-x="524" d="M-94 -446l272 1028h178l-170 -1028h-280zM170 809q0 33 17.5 62.5t44 53t59.5 37t65 13.5q51 0 83 -36t32 -85q0 -33 -15.5 -62.5t-41 -53t-57 -37t-64.5 -13.5q-53 0 -88 36t-35 85z" />
|
||||
<glyph unicode="¢" horiz-adv-x="1019" d="M53 350q0 96 32 190.5t95.5 171t160.5 130t228 65.5l60 275h188l-59 -279q70 -10 128 -28.5t93 -45.5l-94 -190q-23 27 -68 48.5t-98 33.5l-119 -559q61 14 121.5 41.5t107.5 64.5v-190q-47 -29 -116.5 -53.5t-149.5 -36.5l-57 -269h-189l56 261q-84 8 -143.5 40.5 t-99.5 83t-58.5 112.5t-18.5 134zM279 395q0 -78 33.5 -138t99.5 -89l118 557q-57 -14 -104 -48t-80 -79t-50 -98.5t-17 -104.5z" />
|
||||
<glyph unicode="£" horiz-adv-x="1193" d="M-35 74q168 59 261 168.5t120 238.5l6 31h-190l37 168h182q10 90 11 169t18 148q20 98 71 168t118 114t142.5 63.5t147.5 19.5q92 0 177 -28.5t128 -71.5l-84 -187q-16 20 -43 39t-61.5 32t-73.5 21.5t-76 8.5q-96 0 -140 -50.5t-61 -126.5q-14 -63 -18 -145t-16 -174 h249l-36 -168h-246q-20 -86 -71.5 -179t-137.5 -171l4 -6q55 -4 108.5 -17.5t106.5 -29t108.5 -27.5t116.5 -12q96 0 199 39l-92 -201q-57 -27 -93 -34t-71 -7q-82 0 -153.5 21.5t-140.5 46t-135.5 46t-135.5 21.5q-43 0 -99.5 -13.5t-121.5 -60.5z" />
|
||||
<glyph unicode="¤" horiz-adv-x="1210" d="M2 82l176 147q-20 35 -29.5 80t-9.5 88q0 70 27 142.5t117 169.5l-123 147l137 113l119 -146q72 41 133 60.5t127 19.5q133 0 225 -80l180 146l90 -111l-178 -149q39 -84 39 -172q0 -70 -27.5 -142.5t-111.5 -165.5l119 -147l-140 -113l-120 146q-129 -82 -256 -82 q-63 0 -117.5 19.5t-110.5 62.5l-180 -146zM307 420q0 -96 61.5 -160.5t161.5 -64.5q63 0 124 25.5t108 69.5t74.5 103.5t27.5 124.5q0 94 -59.5 159.5t-159.5 65.5q-63 0 -123.5 -25.5t-108.5 -69.5t-77 -102t-29 -126z" />
|
||||
<glyph unicode="¥" horiz-adv-x="1331" d="M180 354l35 168h320l6 25l-33 84h-268l34 168h168l-215 553h265l215 -613l462 613h261l-453 -553h156l-35 -168h-258l-62 -76l-8 -33h303l-35 -168h-303l-76 -354h-235l76 354h-320z" />
|
||||
<glyph unicode="¦" horiz-adv-x="532" d="M-6 -233l168 794h209l-168 -794h-209zM209 778l168 795h209l-168 -795h-209z" />
|
||||
<glyph unicode="§" horiz-adv-x="888" d="M10 -37l101 158q33 -29 72.5 -45.5t74.5 -16.5q33 0 60.5 15.5t46 41t28.5 57.5t10 65q0 47 -20.5 84.5t-51 71.5t-67.5 68t-67.5 70.5t-51 80.5t-20.5 100q0 43 15.5 88t41 87t60 77.5t75.5 60.5q-6 27 -6 61q0 92 37 161t92.5 114t120 67.5t121.5 22.5 q68 0 133.5 -27.5t106.5 -66.5l-103 -158q-33 29 -71.5 45.5t-73.5 16.5q-66 0 -107 -49.5t-41 -120.5q0 -74 44 -127.5t96.5 -104.5t96.5 -110.5t44 -141.5q0 -45 -15.5 -90t-42 -86t-61.5 -77t-74 -60q6 -29 7 -62q0 -92 -37 -160.5t-92.5 -113.5t-121 -67.5t-120.5 -22.5 q-68 0 -133.5 27.5t-106.5 66.5zM319 780q0 -55 27 -99t65 -87t81 -87t75 -95q18 29 31.5 61.5t13.5 67.5q0 53 -26.5 98t-65.5 87t-81 86t-74 95q-20 -27 -33 -59.5t-13 -67.5z" />
|
||||
<glyph unicode="¨" horiz-adv-x="450" d="M266 1247q0 27 12.5 51.5t33 44t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13.5 -50.5t-35 -42t-47 -29.5t-52.5 -11q-41 0 -67.5 28.5t-26.5 69.5zM545 1247q0 27 12 51.5t32.5 44t47.5 31.5t53 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13 -50.5t-34.5 -42 t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="©" horiz-adv-x="1460" d="M131 621q0 143 64.5 274t172 229.5t245 156.5t282.5 58q113 0 206 -39.5t159.5 -108.5t103.5 -162t37 -200q0 -147 -65.5 -278t-173 -230.5t-248 -157t-289.5 -57.5q-109 0 -200 40t-156.5 110t-101.5 164.5t-36 200.5zM258 633q0 -88 27.5 -164t78 -132t122 -88 t157.5 -32q123 0 236.5 47t199.5 129t137.5 190.5t51.5 231.5q0 86 -28 162t-79 132t-123.5 88t-160.5 32q-121 0 -233 -47t-198 -129t-137 -189.5t-51 -230.5zM410 651q0 78 25.5 154t77.5 136t132 97t189 37q68 0 131 -15.5t98 -41.5l-64 -144q-25 18 -83 34t-111 16 q-59 0 -101 -22.5t-70 -58.5t-41 -79t-13 -82q0 -66 34.5 -114t110.5 -48q57 0 120.5 22.5t108.5 51.5l-6 -145q-47 -27 -120.5 -49.5t-151.5 -22.5q-70 0 -120 21.5t-83 59.5t-48 88t-15 105z" />
|
||||
<glyph unicode="ª" horiz-adv-x="745" d="M170 868q0 117 97.5 183.5t260.5 66.5h52l4 19q2 8 3 14t1 14q0 35 -32 53.5t-77 18.5q-53 0 -95 -18.5t-83 -42.5l-4 112q94 59 215 60q96 0 160.5 -39t64.5 -133q0 -25 -6 -50l-78 -370h-123l9 75h-9q-41 -41 -103 -66.5t-122 -25.5q-66 0 -100.5 36t-34.5 93zM319 903 q0 -53 62 -53q41 0 84 19.5t72 50.5l24 112h-22q-121 0 -170.5 -33t-49.5 -96z" />
|
||||
<glyph unicode="«" horiz-adv-x="1081" d="M70 489l2 11l350 360h229l-372 -362l-3 -11l220 -362h-232zM467 489l2 11l350 360h230l-373 -362l-2 -11l219 -362h-231z" />
|
||||
<glyph unicode="¬" horiz-adv-x="1271" d="M135 561l35 168h983l-102 -489h-191l68 321h-793z" />
|
||||
<glyph unicode="­" horiz-adv-x="956" d="M102 406l35 167h688l-34 -167h-689z" />
|
||||
<glyph unicode="®" horiz-adv-x="1460" d="M131 621q0 143 64.5 274t172 229.5t245 156.5t282.5 58q113 0 206 -39.5t159.5 -108.5t103.5 -162t37 -200q0 -147 -65.5 -278t-173 -230.5t-248 -157t-289.5 -57.5q-109 0 -200 40t-156.5 110t-101.5 164.5t-36 200.5zM258 633q0 -88 27.5 -164t78 -132t122 -88 t157.5 -32q123 0 236.5 47t199.5 129t137.5 190.5t51.5 231.5q0 86 -28 162t-79 132t-123.5 88t-160.5 32q-121 0 -233 -47t-198 -129t-137 -189.5t-51 -230.5zM477 412l144 671q16 2 40.5 3t50 2.5t47.5 1.5h34q70 0 115.5 -12.5t73.5 -35t39 -53.5t11 -67 q0 -76 -43 -137.5t-115 -96.5l97 -276h-146l-73 243h-86l-52 -243h-137zM686 754h62q66 0 107.5 47t41.5 102q0 37 -27.5 62.5t-99.5 25.5h-33z" />
|
||||
<glyph unicode="¯" horiz-adv-x="1705" />
|
||||
<glyph unicode="°" horiz-adv-x="755" d="M197 1024q0 63 23.5 121.5t68.5 103.5t108.5 72t141.5 27q121 0 177 -62.5t56 -155.5q0 -59 -21.5 -115.5t-64.5 -100.5t-107.5 -70.5t-152.5 -26.5q-61 0 -105.5 16.5t-72 45t-39.5 65.5t-12 80zM344 1057q0 -47 25.5 -81t83.5 -34q43 0 74.5 15.5t52 39t29.5 54t9 61.5 q0 41 -24.5 73t-81.5 32q-43 0 -74.5 -14.5t-52 -37t-31 -51t-10.5 -57.5z" />
|
||||
<glyph unicode="±" horiz-adv-x="946" d="M47 84l35 168h657l-34 -168h-658zM156 582l34 168h238l39 182h188l-39 -182h228l-35 -168h-227l-45 -207h-189l45 207h-237z" />
|
||||
<glyph unicode="²" horiz-adv-x="768" d="M127 612l27 127q66 59 145.5 111.5t149 103t116.5 102.5t47 113q0 23 -14 46.5t-55 23.5q-53 0 -120 -36t-124 -93l-8 131q80 59 151.5 90t143.5 31q88 0 134 -45t46 -115q0 -61 -32 -116.5t-89 -110.5t-136 -112.5t-173 -123.5h334l-27 -127h-516z" />
|
||||
<glyph unicode="³" horiz-adv-x="694" d="M121 680l51 123q35 -35 67.5 -56.5t94.5 -21.5q94 0 137 43t43 109q0 41 -32.5 64.5t-119.5 23.5h-24l22 110h31q76 0 114 32t38 81q0 23 -15.5 37t-56.5 14q-53 0 -97 -18.5t-75 -40.5l2 120q53 29 98 45.5t103 16.5q90 0 138 -42t48 -108q0 -68 -37 -110.5t-96 -75.5 q47 -16 74.5 -53t27.5 -90q0 -51 -21.5 -101.5t-63.5 -90.5t-106.5 -64.5t-150.5 -24.5q-76 0 -115.5 20.5t-78.5 57.5z" />
|
||||
<glyph unicode="´" horiz-adv-x="448" d="M250 1171l10 15l412 207q12 6 22 6q23 0 32 -25.5t9 -54.5t-11 -54.5t-32 -31.5l-413 -141l-15 6z" />
|
||||
<glyph unicode="µ" horiz-adv-x="1175" d="M-102 -227q51 70 93 132t75.5 125.5t58.5 129t41 141.5l137 641h225l-131 -612q-6 -29 -6 -49q0 -59 34 -91t93 -32q72 0 142.5 49t117.5 139l125 596h227l-198 -942h-176l14 131h-8q-33 -47 -74 -76.5t-86 -47t-91 -25t-89 -7.5q-86 0 -148 25l-8 -16q-20 -43 -39.5 -80 t-40 -73t-44 -74t-52.5 -81z" />
|
||||
<glyph unicode="¶" horiz-adv-x="1150" d="M141 842q0 123 44 219t124 162.5t189.5 102.5t238.5 36q78 0 187.5 -3t208.5 -7l-326 -1528h-174l285 1341h-91l-284 -1341h-185l146 684h-43q-80 0 -139.5 26.5t-99.5 71.5t-60.5 105.5t-20.5 130.5z" />
|
||||
<glyph unicode="·" horiz-adv-x="540" d="M106 473q0 33 15.5 63.5t41 55t58.5 40t66 15.5q51 0 86 -39t35 -90q0 -33 -16.5 -62.5t-43 -53t-59.5 -37t-64 -13.5q-53 0 -86 35t-33 86z" />
|
||||
<glyph unicode="¸" horiz-adv-x="413" d="M-84 -395l78 98h14q23 -10 56.5 -17.5t68.5 -7.5q41 0 73 15.5t32 58.5q0 29 -22.5 40t-51.5 11q-25 0 -52.5 -4t-50.5 -10l-26 53l137 158h111l-68 -84q31 8 59 8q61 0 96.5 -38t35.5 -97q0 -47 -25 -89t-67 -75t-96 -52t-116 -19q-53 0 -100 11t-86 27v13z" />
|
||||
<glyph unicode="¹" horiz-adv-x="509" d="M203 1206l329 156l-159 -750h-154l117 545l-129 -57z" />
|
||||
<glyph unicode="º" horiz-adv-x="802" d="M188 985q0 74 29 143.5t79 123t119.5 85t151.5 31.5q61 0 108.5 -20.5t78 -56.5t46 -83t15.5 -98q0 -70 -25.5 -136.5t-74.5 -119.5t-120 -86t-161 -33q-66 0 -112 20.5t-75.5 55.5t-44 80t-14.5 94zM356 1008q0 -53 27 -90t84 -37q49 0 83 18.5t55.5 48t30.5 66.5t9 73 q0 53 -27.5 91.5t-87.5 38.5q-53 0 -86.5 -21.5t-53 -52.5t-27 -67.5t-7.5 -67.5z" />
|
||||
<glyph unicode="»" horiz-adv-x="1081" d="M2 125l375 362l2 11l-221 362h229l199 -360l-2 -11l-351 -364h-231zM399 125l375 362l2 11l-221 362h229l199 -360l-2 -11l-350 -364h-232z" />
|
||||
<glyph unicode="¼" horiz-adv-x="1583" d="M51 -49l1260 1464h184l-1259 -1464h-185zM207 1206l330 156l-160 -750h-154l117 545l-129 -57zM842 186l26 127l394 437h211l-93 -437h70l-27 -127h-69l-39 -186h-139l38 186h-372zM1016 313h225l68 316z" />
|
||||
<glyph unicode="½" horiz-adv-x="1593" d="M55 -49l1260 1464h184l-1259 -1464h-185zM207 1206l330 156l-160 -750h-154l117 545l-129 -57zM868 0l27 127q66 59 145.5 111.5t149.5 102.5t117 102.5t47 113.5q0 23 -14.5 46.5t-55.5 23.5q-53 0 -119.5 -36t-124.5 -93l-8 131q80 59 151.5 90t143.5 31 q88 0 134 -45.5t46 -114.5q0 -61 -31.5 -116.5t-89 -111t-136.5 -112.5t-173 -123h334l-27 -127h-516z" />
|
||||
<glyph unicode="¾" horiz-adv-x="1583" d="M94 -49l1260 1464h184l-1259 -1464h-185zM98 680l52 123q35 -35 67.5 -56.5t93.5 -21.5q94 0 137.5 43t43.5 109q0 41 -33 64.5t-119 23.5h-25l23 110h31q76 0 113.5 32t37.5 81q0 23 -15.5 37t-55.5 14q-53 0 -97.5 -18.5t-75.5 -40.5l3 120q53 29 98 45.5t102 16.5 q90 0 138.5 -42t48.5 -108q0 -68 -37 -110.5t-97 -75.5q47 -16 75 -53t28 -90q0 -51 -21.5 -101.5t-63.5 -90.5t-106.5 -64.5t-150.5 -24.5q-76 0 -116 20.5t-79 57.5zM844 186l26 127l394 437h211l-93 -437h70l-27 -127h-69l-39 -186h-139l39 186h-373zM1018 313h225 l68 316z" />
|
||||
<glyph unicode="¿" horiz-adv-x="831" d="M-59 -188q0 72 24.5 130t64.5 110t88 105.5t94 115t85 136t61 171.5h213q-20 -100 -59 -178t-83 -140.5t-90 -113t-83 -97.5t-60.5 -92t-23.5 -98q0 -63 40 -89t93 -26q66 0 135.5 28.5t116.5 73.5l10 -196q-66 -43 -158 -75t-184 -32q-131 0 -207.5 75t-76.5 192z M360 809q0 33 17.5 62.5t44.5 53t59.5 37t65.5 13.5q51 0 83 -36t32 -85q0 -33 -15.5 -62.5t-41 -53t-57.5 -37t-65 -13.5q-53 0 -88 36t-35 85z" />
|
||||
<glyph unicode="À" horiz-adv-x="1292" d="M-104 2l811 1352h202l291 -1352h-256l-70 393h-509l-224 -393h-245zM469 580h371l-88 497zM655 1610q0 18 7.5 40.5t19.5 42t27.5 32t31.5 12.5q8 0 19 -6l325 -207l2 -15l-45 -73l-16 -6l-354 141q-17 6 -17 39z" />
|
||||
<glyph unicode="Á" horiz-adv-x="1292" d="M-106 0l811 1352h202l291 -1352h-256l-70 393h-510l-223 -393h-245zM467 578h371l-88 497zM625 1511l8 15l414 207q12 6 20 6q23 0 33 -25.5t10 -54.5t-11.5 -54.5t-31.5 -31.5l-414 -141l-14 6z" />
|
||||
<glyph unicode="Â" horiz-adv-x="1292" d="M-106 0l811 1352h202l291 -1352h-256l-70 393h-510l-223 -393h-245zM467 578h371l-88 497zM623 1507l10 15l268 202h17l182 -202l2 -15l-45 -59l-15 -6l-176 84l-209 -84l-14 6z" />
|
||||
<glyph unicode="Ã" horiz-adv-x="1292" d="M-106 0l811 1352h202l291 -1352h-256l-70 393h-510l-223 -393h-245zM467 578h371l-88 497zM543 1511q18 37 39.5 71t49 59.5t63.5 41t87 15.5q59 0 127 -14.5t123 -14.5q37 0 79 11.5t89 41.5l14 -47q-12 -33 -32.5 -66.5t-48 -60t-63.5 -44t-81 -17.5q-25 0 -55.5 4 t-66.5 10t-72.5 10.5t-71.5 4.5q-47 0 -88 -11.5t-76 -40.5z" />
|
||||
<glyph unicode="Ä" horiz-adv-x="1292" d="M-106 0l811 1352h202l291 -1352h-256l-70 393h-510l-223 -393h-245zM467 578h371l-88 497zM621 1585q0 27 12 51.5t32.5 44t47 31.5t53.5 12q41 0 69.5 -31.5t28.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48.5 -29.5t-53 -11q-41 0 -67.5 28.5t-26.5 69.5zM899 1585 q0 27 12.5 51.5t33 44t47 31.5t52.5 12q41 0 70 -31.5t29 -72.5q0 -27 -14.5 -50.5t-36 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="Å" horiz-adv-x="1304" d="M-109 0l795 1300q-29 16 -43 48t-14 67q0 39 18.5 77t51 66.5t76.5 46t93 17.5q78 0 120 -46t42 -108q0 -53 -32.5 -97t-79.5 -71l294 -1300h-264l-65 414h-510l-228 -414h-254zM477 598h371l-92 477zM752 1432q0 -29 17 -50.5t46 -21.5q35 0 62.5 29.5t27.5 64.5 q0 29 -15.5 47.5t-43.5 18.5q-41 0 -67.5 -26.5t-26.5 -61.5z" />
|
||||
<glyph unicode="Æ" horiz-adv-x="1556" d="M-139 0l1007 1352h736l-43 -209h-416l-68 -322h277l-43 -209h-279l-86 -403h457l-45 -209h-678l82 389h-363l-288 -389h-250zM551 594h254l102 479z" />
|
||||
<glyph unicode="Ç" horiz-adv-x="1292" d="M111 508q0 166 57 320.5t166.5 272.5t266.5 189.5t355 71.5q111 0 216.5 -23.5t177.5 -64.5l-105 -213q-55 45 -141 72.5t-203 27.5q-147 0 -249.5 -53t-166 -141t-92 -202t-28.5 -233q0 -174 81.5 -265t241.5 -91q123 0 231.5 37t186.5 90l18 -203q-86 -47 -199.5 -82.5 t-248.5 -40.5l-47 -61q16 4 32.5 6t28.5 2q59 0 94 -38t35 -97q0 -47 -24.5 -89t-66.5 -75t-96 -52t-116 -19q-53 0 -100 11t-86 27v13l80 98h14q20 -10 54 -17.5t69 -7.5q41 0 72.5 15.5t31.5 58.5q0 29 -21.5 40t-51.5 11q-25 0 -51.5 -4t-49.5 -10l-28 53l118 138 q-119 10 -205 56t-142 116.5t-82.5 162t-26.5 193.5z" />
|
||||
<glyph unicode="È" horiz-adv-x="1081" d="M61 0l287 1352h782l-43 -205h-548l-70 -328h412l-43 -205h-412l-86 -409h588l-43 -205h-824zM582 1610q0 18 7 40.5t19.5 42t27.5 32t32 12.5q8 0 20 -6l324 -207l4 -15l-47 -73l-17 -6l-354 141q-16 6 -16 39z" />
|
||||
<glyph unicode="É" horiz-adv-x="1081" d="M61 0l287 1352h782l-43 -205h-548l-70 -328h412l-43 -205h-412l-86 -409h588l-43 -205h-824zM584 1509l8 15l414 207q12 6 20 6q23 0 33 -25.5t10 -54.5t-11 -54.5t-32 -31.5l-414 -141l-14 6z" />
|
||||
<glyph unicode="Ê" horiz-adv-x="1081" d="M61 0l287 1352h782l-43 -205h-548l-70 -328h412l-43 -205h-412l-86 -409h588l-43 -205h-824zM567 1507l11 15l268 202h16l182 -202l3 -15l-46 -59l-14 -6l-176 84l-209 -84l-14 6z" />
|
||||
<glyph unicode="Ë" horiz-adv-x="1081" d="M61 0l287 1352h782l-43 -205h-548l-70 -328h412l-43 -205h-412l-86 -409h588l-43 -205h-824zM549 1587q0 27 13 51.5t33.5 44t46.5 31.5t52 12q41 0 70 -31.5t29 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5t-51.5 -11q-43 0 -69.5 28.5t-26.5 69.5zM827 1587 q0 27 13.5 51.5t34 44t46 31.5t52.5 12q41 0 69.5 -31.5t28.5 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5t-50.5 -11q-43 0 -70 28.5t-27 69.5z" />
|
||||
<glyph unicode="Ì" horiz-adv-x="595" d="M61 0l287 1352h236l-287 -1352h-236zM270 1610q0 18 7.5 40.5t19.5 42t27.5 32t31.5 12.5q8 0 21 -6l323 -207l5 -15l-48 -73l-16 -6l-354 141q-17 6 -17 39z" />
|
||||
<glyph unicode="Í" horiz-adv-x="595" d="M61 0l287 1352h236l-287 -1352h-236zM297 1509l8 15l414 207q12 6 20 6q23 0 33 -25.5t10 -54.5t-11 -54.5t-32 -31.5l-413 -141l-15 6z" />
|
||||
<glyph unicode="Î" horiz-adv-x="595" d="M61 0l287 1352h236l-287 -1352h-236zM254 1507l10 15l268 202h17l182 -202l2 -15l-45 -59l-14 -6l-176 84l-209 -84l-15 6z" />
|
||||
<glyph unicode="Ï" horiz-adv-x="595" d="M61 0l287 1352h236l-287 -1352h-236zM262 1585q0 27 12.5 51.5t33 44t47 31.5t53.5 12q41 0 69.5 -31.5t28.5 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5t-53.5 -11q-41 0 -67.5 28.5t-26.5 69.5zM541 1585q0 27 12 51.5t32.5 44t47 31.5t53.5 12q41 0 69.5 -31.5 t28.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48 -29.5t-53.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="Ð" horiz-adv-x="1468" d="M57 637l33 151h152l118 564q29 2 86.5 4t121 3t122 2t90.5 1q197 0 318 -41t188 -113q59 -63 86 -165.5t27 -213.5q0 -203 -59.5 -360.5t-178.5 -267t-297 -167t-415 -57.5q-86 0 -184.5 6.5t-190.5 16.5l135 637h-152zM348 180q55 -4 108.5 -6t90.5 -2q180 0 297 48 t185.5 135t95 207t26.5 263q0 166 -94 253t-322 87h-77q-48 0 -101 -2l-80 -375h303l-32 -151h-304z" />
|
||||
<glyph unicode="Ñ" horiz-adv-x="1478" d="M61 0l287 1352h289l383 -994l211 994h235l-286 -1352h-289l-383 991l-211 -991h-236zM590 1511q18 37 39.5 71t49.5 59.5t63.5 41t86.5 15.5q59 0 127 -14.5t123 -14.5q37 0 79 11.5t89 41.5l15 -47q-12 -33 -33 -66.5t-48.5 -60t-63.5 -44t-81 -17.5q-25 0 -55.5 4 t-66 10t-72.5 10.5t-72 4.5q-47 0 -88 -11.5t-76 -40.5z" />
|
||||
<glyph unicode="Ò" horiz-adv-x="1531" d="M109 510q0 168 59 321.5t168.5 271.5t262.5 188.5t339 70.5q135 0 234.5 -43t166 -118t99 -174t32.5 -212q0 -154 -57 -303.5t-166.5 -269t-265.5 -193.5t-352 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM354 514q0 -152 83 -245t249 -93q135 0 237.5 57.5 t170 148.5t101.5 204.5t34 228.5q0 76 -20.5 139.5t-63.5 109.5t-108.5 71.5t-157.5 25.5q-141 0 -240.5 -58.5t-162 -151.5t-92.5 -208.5t-30 -228.5zM702 1610q0 18 8.5 40.5t20.5 42t27.5 32t32.5 12.5q8 0 18 -6l326 -207l2 -15l-47 -73l-17 -6l-354 141q-17 6 -17 39z " />
|
||||
<glyph unicode="Ó" horiz-adv-x="1531" d="M109 510q0 168 59 321.5t168.5 271.5t262.5 188.5t339 70.5q135 0 234.5 -43t166 -118t99 -174t32.5 -212q0 -154 -57 -303.5t-166.5 -269t-265.5 -193.5t-352 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM354 514q0 -152 83 -245t249 -93q135 0 237.5 57.5 t170 148.5t101.5 204.5t34 228.5q0 76 -20.5 139.5t-63.5 109.5t-108.5 71.5t-157.5 25.5q-141 0 -240.5 -58.5t-162 -151.5t-92.5 -208.5t-30 -228.5zM819 1509l10 15l412 207q12 6 23 6q23 0 32 -25.5t9 -54.5t-10.5 -54.5t-30.5 -31.5l-414 -141l-16 6z" />
|
||||
<glyph unicode="Ô" horiz-adv-x="1531" d="M109 510q0 168 59 321.5t168.5 271.5t262.5 188.5t339 70.5q135 0 234.5 -43t166 -118t99 -174t32.5 -212q0 -154 -57 -303.5t-166.5 -269t-265.5 -193.5t-352 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM354 514q0 -152 83 -245t249 -93q135 0 237.5 57.5 t170 148.5t101.5 204.5t34 228.5q0 76 -20.5 139.5t-63.5 109.5t-108.5 71.5t-157.5 25.5q-141 0 -240.5 -58.5t-162 -151.5t-92.5 -208.5t-30 -228.5zM750 1507l8 15l268 202h16l183 -202l4 -15l-45 -59l-17 -6l-174 84l-211 -84l-12 6z" />
|
||||
<glyph unicode="Õ" horiz-adv-x="1531" d="M109 510q0 168 59 321.5t168.5 271.5t262.5 188.5t339 70.5q135 0 234.5 -43t166 -118t99 -174t32.5 -212q0 -154 -57 -303.5t-166.5 -269t-265.5 -193.5t-352 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM354 514q0 -152 83 -245t249 -93q135 0 237.5 57.5 t170 148.5t101.5 204.5t34 228.5q0 76 -20.5 139.5t-63.5 109.5t-108.5 71.5t-157.5 25.5q-141 0 -240.5 -58.5t-162 -151.5t-92.5 -208.5t-30 -228.5zM651 1511q20 37 41 71t48.5 59.5t64.5 41t88 15.5q59 0 126.5 -14.5t123.5 -14.5q37 0 78 11.5t88 41.5l14 -47 q-12 -33 -32.5 -66.5t-48.5 -60t-62.5 -44t-79.5 -17.5q-25 0 -55.5 4t-66.5 10t-73 10.5t-71 4.5q-47 0 -89.5 -11.5t-76.5 -40.5z" />
|
||||
<glyph unicode="Ö" horiz-adv-x="1531" d="M109 510q0 168 59 321.5t168.5 271.5t262.5 188.5t339 70.5q135 0 234.5 -43t166 -118t99 -174t32.5 -212q0 -154 -57 -303.5t-166.5 -269t-265.5 -193.5t-352 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM354 514q0 -152 83 -245t249 -93q135 0 237.5 57.5 t170 148.5t101.5 204.5t34 228.5q0 76 -20.5 139.5t-63.5 109.5t-108.5 71.5t-157.5 25.5q-141 0 -240.5 -58.5t-162 -151.5t-92.5 -208.5t-30 -228.5zM731 1585q0 27 12.5 51.5t33 44t46 31.5t51.5 12q41 0 70 -31.5t29 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5 t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5zM1010 1585q0 27 12 51.5t32.5 44t46 31.5t52.5 12q41 0 69.5 -31.5t28.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48.5 -29.5t-51 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="×" horiz-adv-x="929" d="M61 258l281 231l-182 230l129 106l182 -229l283 233l84 -106l-283 -234l184 -235l-127 -104l-186 233l-281 -231z" />
|
||||
<glyph unicode="Ø" horiz-adv-x="1533" d="M-31 41l201 188q-31 61 -45 132t-14 149q0 168 59 321.5t169 271.5t262.5 188.5t338.5 70.5q102 0 183 -25.5t145 -70.5l176 166l139 -127l-188 -179q78 -137 78 -311q0 -154 -57.5 -303.5t-167 -269t-265.5 -193.5t-352 -74q-111 0 -196 28t-148 79l-191 -180zM354 514 q0 -29 2 -53.5t9 -46.5l731 690q-82 57 -217 57q-141 0 -240.5 -58.5t-162 -151.5t-92.5 -208.5t-30 -228.5zM461 246q86 -70 225 -70q135 0 237.5 57.5t170 148.5t101.5 204.5t34 228.5q0 78 -21 137z" />
|
||||
<glyph unicode="Ù" horiz-adv-x="1443" d="M133 346q0 66 14 129l187 877h235l-176 -828q-8 -33 -11 -62.5t-3 -55.5q0 -123 69.5 -176.5t196.5 -53.5q154 0 257.5 81t144.5 267l176 828h225l-186 -877q-23 -100 -74 -190t-135 -159t-200 -109t-263 -40q-123 0 -210 29t-142.5 78t-80 116.5t-24.5 145.5zM690 1610 q0 18 8.5 40.5t20.5 42t27.5 32t31.5 12.5q8 0 19 -6l325 -207l2 -15l-45 -73l-18 -6l-352 141q-19 6 -19 39z" />
|
||||
<glyph unicode="Ú" horiz-adv-x="1443" d="M133 346q0 66 14 129l187 877h235l-176 -828q-8 -33 -11 -62.5t-3 -55.5q0 -123 69.5 -176.5t196.5 -53.5q154 0 257.5 81t144.5 267l176 828h225l-186 -877q-23 -100 -74 -190t-135 -159t-200 -109t-263 -40q-123 0 -210 29t-142.5 78t-80 116.5t-24.5 145.5zM727 1509 l10 15l412 207q12 6 22 6q23 0 32 -25.5t9 -54.5t-10 -54.5t-31 -31.5l-413 -141l-15 6z" />
|
||||
<glyph unicode="Û" horiz-adv-x="1443" d="M133 346q0 66 14 129l187 877h235l-176 -828q-8 -33 -11 -62.5t-3 -55.5q0 -123 69.5 -176.5t196.5 -53.5q154 0 257.5 81t144.5 267l176 828h225l-186 -877q-23 -100 -74 -190t-135 -159t-200 -109t-263 -40q-123 0 -210 29t-142.5 78t-80 116.5t-24.5 145.5zM676 1507 l8 15l270 202h17l180 -202l4 -15l-45 -59l-16 -6l-174 84l-211 -84l-13 6z" />
|
||||
<glyph unicode="Ü" horiz-adv-x="1443" d="M133 346q0 66 14 129l187 877h235l-176 -828q-8 -33 -11 -62.5t-3 -55.5q0 -123 69.5 -176.5t196.5 -53.5q154 0 257.5 81t144.5 267l176 828h225l-186 -877q-23 -100 -74 -190t-135 -159t-200 -109t-263 -40q-123 0 -210 29t-142.5 78t-80 116.5t-24.5 145.5zM709 1585 q0 27 12 51.5t32.5 44t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48.5 -29.5t-51 -11q-41 0 -67.5 28.5t-26.5 69.5zM987 1585q0 27 12.5 51.5t33 44t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5 t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="Ý" horiz-adv-x="1150" d="M137 1352h264l215 -613l463 613h260l-651 -797l-117 -555h-235l115 547zM627 1509l10 15l412 207q12 6 22 6q23 0 33 -25.5t10 -54.5t-11 -54.5t-32 -31.5l-414 -141l-14 6z" />
|
||||
<glyph unicode="Þ" horiz-adv-x="1091" d="M61 0l287 1352h236l-47 -226h90q201 0 316.5 -89t115.5 -259q0 -98 -37 -189t-108.5 -162t-178 -113t-248.5 -42h-68q-34 0 -65 2l-57 -274h-236zM397 471q29 -2 61 -2h66q141 0 211 83t70 214q0 72 -41 118t-146 46h-63q-31 0 -61 -2z" />
|
||||
<glyph unicode="ß" horiz-adv-x="1132" d="M23 0l210 995q25 115 71 209t111.5 162t149.5 104.5t187 36.5q68 0 119 -19.5t86.5 -51t54 -74.5t18.5 -90q0 -55 -22.5 -103.5t-57.5 -90.5t-73.5 -81t-73.5 -74.5t-57.5 -70.5t-22.5 -70t22.5 -63.5t56.5 -57t73.5 -58.5t73.5 -66.5t56.5 -85t22.5 -111.5 q0 -106 -43 -181t-106.5 -123t-134 -69.5t-126.5 -21.5q-74 0 -130 27.5t-89 62.5l105 215q23 -59 63.5 -98t102.5 -39q51 0 95 50t44 144q0 55 -21.5 95t-53.5 72t-69.5 58.5t-69.5 56t-53.5 66.5t-21.5 88q0 88 45 151.5t100.5 119t100.5 110t45 121.5q0 41 -24.5 68.5 t-77.5 27.5q-66 0 -110 -28.5t-74.5 -76.5t-51 -110.5t-35.5 -130.5l-211 -995h-204z" />
|
||||
<glyph unicode="à" d="M57 367q0 111 37 219t106.5 194t171 139.5t230.5 53.5q98 0 177 -33t114 -92h8l43 94h176l-200 -942h-181l11 129h-9q-72 -63 -153.5 -108.5t-192.5 -45.5q-80 0 -143.5 30t-106.5 82t-65.5 124t-22.5 156zM283 389q0 -47 10 -91t31.5 -78t55.5 -54.5t81 -20.5 q33 0 71.5 9.5t78.5 26t77 40t66 53.5l84 394q-47 76 -104.5 103.5t-117.5 27.5q-80 0 -141 -36t-104 -94.5t-65.5 -131t-22.5 -148.5zM485 1268q0 18 8.5 40.5t20.5 42t27.5 32t31.5 12.5q8 0 19 -6l326 -207l2 -15l-46 -73l-18 -7l-352 142q-19 6 -19 39z" />
|
||||
<glyph unicode="á" d="M57 367q0 111 37 219t106.5 194t171 139.5t230.5 53.5q98 0 177 -33t114 -92h8l43 94h176l-200 -942h-181l11 129h-9q-72 -63 -153.5 -108.5t-192.5 -45.5q-80 0 -143.5 30t-106.5 82t-65.5 124t-22.5 156zM283 389q0 -47 10 -91t31.5 -78t55.5 -54.5t81 -20.5 q33 0 71.5 9.5t78.5 26t77 40t66 53.5l84 394q-47 76 -104.5 103.5t-117.5 27.5q-80 0 -141 -36t-104 -94.5t-65.5 -131t-22.5 -148.5zM614 1169l11 15l411 207q12 6 23 6q23 0 33 -25.5t10 -54.5t-11.5 -54.5t-31.5 -31.5l-414 -141l-14 6z" />
|
||||
<glyph unicode="â" d="M57 367q0 111 37 219t106.5 194t171 139.5t230.5 53.5q98 0 177 -33t114 -92h8l43 94h176l-200 -942h-181l11 129h-9q-72 -63 -153.5 -108.5t-192.5 -45.5q-80 0 -143.5 30t-106.5 82t-65.5 124t-22.5 156zM283 389q0 -47 10 -91t31.5 -78t55.5 -54.5t81 -20.5 q33 0 71.5 9.5t78.5 26t77 40t66 53.5l84 394q-47 76 -104.5 103.5t-117.5 27.5q-80 0 -141 -36t-104 -94.5t-65.5 -131t-22.5 -148.5zM504 1161l8 15l268 202h17l182 -202l4 -15l-47 -59l-14 -6l-174 84l-211 -84l-15 6z" />
|
||||
<glyph unicode="ã" d="M57 367q0 111 37 219t106.5 194t171 139.5t230.5 53.5q98 0 177 -33t114 -92h8l43 94h176l-200 -942h-181l11 129h-9q-72 -63 -153.5 -108.5t-192.5 -45.5q-80 0 -143.5 30t-106.5 82t-65.5 124t-22.5 156zM283 389q0 -47 10 -91t31.5 -78t55.5 -54.5t81 -20.5 q33 0 71.5 9.5t78.5 26t77 40t66 53.5l84 394q-47 76 -104.5 103.5t-117.5 27.5q-80 0 -141 -36t-104 -94.5t-65.5 -131t-22.5 -148.5zM444 1184q18 37 40 70.5t49.5 59t63.5 41t87 15.5q59 0 127 -14.5t123 -14.5q37 0 79 11.5t89 42.5l14 -47q-12 -33 -32.5 -67t-48 -60.5 t-63.5 -44t-81 -17.5q-25 0 -55.5 4t-66.5 10.5t-73 10.5t-71 4q-47 0 -88 -11.5t-76 -39.5z" />
|
||||
<glyph unicode="ä" d="M57 367q0 111 37 219t106.5 194t171 139.5t230.5 53.5q98 0 177 -33t114 -92h8l43 94h176l-200 -942h-181l11 129h-9q-72 -63 -153.5 -108.5t-192.5 -45.5q-80 0 -143.5 30t-106.5 82t-65.5 124t-22.5 156zM283 389q0 -47 10 -91t31.5 -78t55.5 -54.5t81 -20.5 q33 0 71.5 9.5t78.5 26t77 40t66 53.5l84 394q-47 76 -104.5 103.5t-117.5 27.5q-80 0 -141 -36t-104 -94.5t-65.5 -131t-22.5 -148.5zM522 1235q0 27 12.5 51.5t33 44t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5t-51.5 -11 q-41 0 -67.5 28.5t-26.5 69.5zM801 1235q0 27 12 51.5t32.5 44t47.5 31.5t53 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="å" d="M57 367q0 111 37 219t106.5 194t171 139.5t230.5 53.5q98 0 177 -33t114 -92h8l43 94h176l-200 -942h-181l11 129h-9q-72 -63 -153.5 -108.5t-192.5 -45.5q-80 0 -143.5 30t-106.5 82t-65.5 124t-22.5 156zM283 389q0 -47 10 -91t31.5 -78t55.5 -54.5t81 -20.5 q33 0 71.5 9.5t78.5 26t77 40t66 53.5l84 394q-47 76 -104.5 103.5t-117.5 27.5q-80 0 -141 -36t-104 -94.5t-65.5 -131t-22.5 -148.5zM598 1223q0 37 17.5 71.5t47 62t71.5 45t91 17.5q78 0 118 -45t40 -102q0 -35 -16.5 -69t-46 -61.5t-71.5 -44t-93 -16.5 q-84 0 -121 44.5t-37 97.5zM717 1237q0 -25 15.5 -45.5t43.5 -20.5q35 0 60.5 29t25.5 60q0 27 -14 48t-43 21q-39 0 -63.5 -30.5t-24.5 -61.5z" />
|
||||
<glyph unicode="æ" horiz-adv-x="1642" d="M-2 190q0 90 30.5 156t81 112t115 75.5t131 45t129 21.5t111.5 6h86l4 19q6 27 6 51q0 115 -168 115q-90 0 -161.5 -18.5t-143.5 -49.5l-6 170q162 80 362 80q45 0 92.5 -6t90.5 -21.5t77.5 -41t57.5 -64.5q76 61 170 97t205 36q154 0 233.5 -71t79.5 -200 q0 -39 -8 -77.5t-20.5 -72.5t-28 -60.5t-29.5 -40.5h-596q-6 -35 -6 -68q0 -98 52 -163.5t169 -65.5q76 0 166 28.5t162 71.5v-168q-31 -16 -75 -35.5t-96 -36t-110.5 -28t-120.5 -11.5q-127 0 -209.5 48.5t-123.5 128.5q-109 -98 -231 -137.5t-245 -39.5q-119 0 -176 61.5 t-57 153.5zM246 244q0 -41 27.5 -63.5t76.5 -22.5q29 0 64 7t69.5 22.5t68.5 37t60 49.5l39 191h-14q-68 0 -136.5 -7t-126 -29.5t-93 -66.5t-35.5 -118zM950 610h344q43 0 49 2q4 10 8.5 22.5t4.5 41.5q0 59 -38 90t-93 31q-92 0 -162 -52.5t-113 -134.5z" />
|
||||
<glyph unicode="ç" horiz-adv-x="1001" d="M57 369q0 111 37 219t113 193t190.5 138.5t268.5 53.5q98 0 187 -22.5t138 -59.5l-88 -182q-39 35 -116.5 61.5t-153.5 26.5q-90 0 -152.5 -37t-101.5 -94.5t-56.5 -127t-17.5 -132.5q0 -104 49 -176t156 -72q74 0 163 29.5t156 82.5v-192q-59 -35 -152 -64.5t-196 -36.5 l-49 -61q16 4 32.5 6t29.5 2q59 0 94 -38t35 -97q0 -47 -25 -89t-65.5 -75t-96 -52t-117.5 -19q-53 0 -100 11t-86 27l2 13l78 98h14q20 -10 54 -17.5t69 -7.5q41 0 73 15.5t32 58.5q0 29 -21.5 40t-52.5 11q-25 0 -51.5 -4t-48.5 -10l-29 53l121 138q-82 10 -141.5 43.5 t-98.5 86t-57.5 119t-18.5 140.5z" />
|
||||
<glyph unicode="è" horiz-adv-x="1034" d="M53 369q0 115 43 223t123 193t191.5 136.5t248.5 51.5q154 0 234 -71t80 -200q0 -39 -8.5 -77.5t-21.5 -72.5t-28.5 -60.5t-27.5 -40.5h-600q-2 -12 -2 -25v-25q0 -51 13 -96t40 -78.5t69 -53t99 -19.5q76 0 166 28.5t162 71.5v-168q-31 -16 -75 -35.5t-96.5 -36 t-110.5 -28t-120 -11.5q-96 0 -166.5 32t-118 85t-71 125t-23.5 152zM334 610h399q4 10 9.5 22.5t5.5 43.5q0 59 -39 90t-95 31q-96 0 -167.5 -53.5t-112.5 -133.5zM420 1268q0 18 7 40.5t19.5 42t29 32t32.5 12.5q6 0 18 -6l324 -207l4 -15l-47 -73l-16 -7l-355 142 q-16 6 -16 39z" />
|
||||
<glyph unicode="é" horiz-adv-x="1034" d="M53 369q0 115 43 223t123 193t191.5 136.5t248.5 51.5q154 0 234 -71t80 -200q0 -39 -8.5 -77.5t-21.5 -72.5t-28.5 -60.5t-27.5 -40.5h-600q-2 -12 -2 -25v-25q0 -51 13 -96t40 -78.5t69 -53t99 -19.5q76 0 166 28.5t162 71.5v-168q-31 -16 -75 -35.5t-96.5 -36 t-110.5 -28t-120 -11.5q-96 0 -166.5 32t-118 85t-71 125t-23.5 152zM334 610h399q4 10 9.5 22.5t5.5 43.5q0 59 -39 90t-95 31q-96 0 -167.5 -53.5t-112.5 -133.5zM510 1169l10 15l412 207q12 6 22 6q23 0 33 -25.5t10 -54.5t-11 -54.5t-32 -31.5l-413 -141l-15 6z" />
|
||||
<glyph unicode="ê" horiz-adv-x="1034" d="M53 369q0 115 43 223t123 193t191.5 136.5t248.5 51.5q154 0 234 -71t80 -200q0 -39 -8.5 -77.5t-21.5 -72.5t-28.5 -60.5t-27.5 -40.5h-600q-2 -12 -2 -25v-25q0 -51 13 -96t40 -78.5t69 -53t99 -19.5q76 0 166 28.5t162 71.5v-168q-31 -16 -75 -35.5t-96.5 -36 t-110.5 -28t-120 -11.5q-96 0 -166.5 32t-118 85t-71 125t-23.5 152zM334 610h399q4 10 9.5 22.5t5.5 43.5q0 59 -39 90t-95 31q-96 0 -167.5 -53.5t-112.5 -133.5zM432 1161l10 15l269 202h16l182 -202l2 -15l-45 -59l-16 -6l-174 84l-211 -84l-12 6z" />
|
||||
<glyph unicode="ë" horiz-adv-x="1034" d="M53 369q0 115 43 223t123 193t191.5 136.5t248.5 51.5q154 0 234 -71t80 -200q0 -39 -8.5 -77.5t-21.5 -72.5t-28.5 -60.5t-27.5 -40.5h-600q-2 -12 -2 -25v-25q0 -51 13 -96t40 -78.5t69 -53t99 -19.5q76 0 166 28.5t162 71.5v-168q-31 -16 -75 -35.5t-96.5 -36 t-110.5 -28t-120 -11.5q-96 0 -166.5 32t-118 85t-71 125t-23.5 152zM334 610h399q4 10 9.5 22.5t5.5 43.5q0 59 -39 90t-95 31q-96 0 -167.5 -53.5t-112.5 -133.5zM430 1235q0 27 12.5 51.5t33 44t46 31.5t51.5 12q41 0 70 -31.5t29 -72.5q0 -27 -13.5 -50.5t-35 -42 t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5zM709 1235q0 27 12 51.5t32.5 44t46 31.5t52.5 12q41 0 69.5 -31.5t28.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48.5 -29.5t-51 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="ì" horiz-adv-x="505" d="M20 0l201 942h225l-200 -942h-226zM100 1268q0 18 8.5 40.5t20.5 42t27.5 32t31.5 12.5q8 0 19 -6l325 -207l3 -15l-46 -73l-18 -7l-352 142q-19 6 -19 39z" />
|
||||
<glyph unicode="í" horiz-adv-x="505" d="M20 0l201 942h225l-200 -942h-226zM176 1169l10 15l412 207q12 6 23 6q23 0 33 -25.5t10 -54.5t-11.5 -54.5t-31.5 -31.5l-414 -141l-14 6z" />
|
||||
<glyph unicode="î" horiz-adv-x="505" d="M20 0l201 942h225l-200 -942h-226zM135 1161l8 15l269 202h16l182 -202l4 -15l-47 -59l-14 -6l-176 84l-209 -84l-14 6z" />
|
||||
<glyph unicode="ï" horiz-adv-x="505" d="M20 0l201 942h225l-200 -942h-226zM137 1235q0 27 12.5 51.5t33 44t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5zM416 1235q0 27 12 51.5t32.5 44t47.5 31.5t53 12q41 0 68.5 -31.5 t27.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="ð" horiz-adv-x="1171" d="M55 365q0 117 41 226t115 194t179.5 136.5t234.5 51.5q104 0 166.5 -36t85.5 -97l6 2q0 10 1 18t1 19q0 66 -15.5 140.5t-44.5 149.5l-252 -59l-14 133l211 51q-39 72 -87 129.5t-101 92.5h301q57 -68 104 -166l268 67l15 -139l-236 -57q27 -86 41.5 -183.5t14.5 -201.5 q0 -84 -10.5 -180.5t-38 -191.5t-73.5 -184.5t-118 -157t-172 -107.5t-234 -40q-106 0 -181 33t-121 87.5t-66.5 124t-20.5 145.5zM299 385q0 -47 10 -91t31.5 -77t56.5 -52.5t82 -19.5q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5q0 49 -10.5 93t-33 77t-56.5 52.5 t-83 19.5q-76 0 -134 -37t-97 -95.5t-58.5 -132t-19.5 -147.5z" />
|
||||
<glyph unicode="ñ" horiz-adv-x="1126" d="M20 0l201 942h176l-20 -139h8q61 86 161.5 128t205.5 42q57 0 107 -12.5t87 -40t58.5 -71.5t21.5 -108q0 -45 -12 -100l-137 -641h-226l133 623q6 31 7 55q0 113 -115 113q-35 0 -77 -12.5t-84 -36t-80 -58.5t-60 -80l-129 -604h-226zM365 1184q18 37 39.5 70.5t49 59 t63.5 41t87 15.5q59 0 127 -14.5t123 -14.5q37 0 78 11.5t90 42.5l14 -47q-12 -33 -32.5 -67t-48 -60.5t-63.5 -44t-81 -17.5q-25 0 -55.5 4t-66.5 10.5t-72.5 10.5t-71.5 4q-47 0 -88 -11.5t-76 -39.5z" />
|
||||
<glyph unicode="ò" horiz-adv-x="1130" d="M55 365q0 113 39 222t114 195t186.5 138.5t256.5 52.5q102 0 175 -32t120 -86t68.5 -125t21.5 -150q0 -115 -37.5 -223.5t-111.5 -193.5t-184.5 -136.5t-258.5 -51.5q-102 0 -175.5 31t-121 84t-70 124t-22.5 151zM301 385q0 -47 10.5 -91t32 -77t55 -52.5t80.5 -19.5 q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5q0 49 -10.5 93t-33 77t-56.5 52.5t-83 19.5q-76 0 -133 -37t-96 -95.5t-58.5 -132t-19.5 -147.5zM418 1268q0 18 8 40.5t20.5 42t27.5 32t32 12.5q8 0 18 -6l326 -207l2 -15l-47 -73l-17 -7l-354 142q-16 6 -16 39z" />
|
||||
<glyph unicode="ó" horiz-adv-x="1130" d="M55 365q0 113 39 222t114 195t186.5 138.5t256.5 52.5q102 0 175 -32t120 -86t68.5 -125t21.5 -150q0 -115 -37.5 -223.5t-111.5 -193.5t-184.5 -136.5t-258.5 -51.5q-102 0 -175.5 31t-121 84t-70 124t-22.5 151zM301 385q0 -47 10.5 -91t32 -77t55 -52.5t80.5 -19.5 q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5q0 49 -10.5 93t-33 77t-56.5 52.5t-83 19.5q-76 0 -133 -37t-96 -95.5t-58.5 -132t-19.5 -147.5zM524 1169l11 15l411 207q12 6 23 6q23 0 33 -25.5t10 -54.5t-11.5 -54.5t-31.5 -31.5l-414 -141l-14 6z" />
|
||||
<glyph unicode="ô" horiz-adv-x="1130" d="M55 365q0 113 39 222t114 195t186.5 138.5t256.5 52.5q102 0 175 -32t120 -86t68.5 -125t21.5 -150q0 -115 -37.5 -223.5t-111.5 -193.5t-184.5 -136.5t-258.5 -51.5q-102 0 -175.5 31t-121 84t-70 124t-22.5 151zM301 385q0 -47 10.5 -91t32 -77t55 -52.5t80.5 -19.5 q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5q0 49 -10.5 93t-33 77t-56.5 52.5t-83 19.5q-76 0 -133 -37t-96 -95.5t-58.5 -132t-19.5 -147.5zM469 1161l10 15l269 202h16l182 -202l2 -15l-45 -59l-14 -6l-176 84l-209 -84l-15 6z" />
|
||||
<glyph unicode="õ" horiz-adv-x="1130" d="M55 365q0 113 39 222t114 195t186.5 138.5t256.5 52.5q102 0 175 -32t120 -86t68.5 -125t21.5 -150q0 -115 -37.5 -223.5t-111.5 -193.5t-184.5 -136.5t-258.5 -51.5q-102 0 -175.5 31t-121 84t-70 124t-22.5 151zM301 385q0 -47 10.5 -91t32 -77t55 -52.5t80.5 -19.5 q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5q0 49 -10.5 93t-33 77t-56.5 52.5t-83 19.5q-76 0 -133 -37t-96 -95.5t-58.5 -132t-19.5 -147.5zM358 1184q18 37 40 70.5t49.5 59t63.5 41t87 15.5q59 0 127 -14.5t123 -14.5q37 0 78 11.5t90 42.5l14 -47q-12 -33 -32.5 -67 t-48 -60.5t-63.5 -44t-81 -17.5q-25 0 -55.5 4t-66.5 10.5t-73 10.5t-71 4q-47 0 -88 -11.5t-76 -39.5z" />
|
||||
<glyph unicode="ö" horiz-adv-x="1130" d="M55 365q0 113 39 222t114 195t186.5 138.5t256.5 52.5q102 0 175 -32t120 -86t68.5 -125t21.5 -150q0 -115 -37.5 -223.5t-111.5 -193.5t-184.5 -136.5t-258.5 -51.5q-102 0 -175.5 31t-121 84t-70 124t-22.5 151zM301 385q0 -47 10.5 -91t32 -77t55 -52.5t80.5 -19.5 q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5q0 49 -10.5 93t-33 77t-56.5 52.5t-83 19.5q-76 0 -133 -37t-96 -95.5t-58.5 -132t-19.5 -147.5zM455 1235q0 27 12 51.5t32.5 44t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48.5 -29.5t-51 -11 q-41 0 -67.5 28.5t-26.5 69.5zM733 1235q0 27 12.5 51.5t33 44t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="÷" horiz-adv-x="1042" d="M66 406l34 167h848l-35 -167h-847zM303 106q0 33 15.5 64t41 55.5t57.5 40t66 15.5q51 0 86 -39t35 -90q0 -33 -17.5 -63t-44 -53.5t-59 -36.5t-63.5 -13q-53 0 -85 34.5t-32 85.5zM455 819q0 33 15 63.5t41 55.5t57.5 40t66.5 15q51 0 86 -39t35 -90q0 -33 -16.5 -62.5 t-43 -53t-59.5 -37t-66 -13.5q-53 0 -84.5 35t-31.5 86z" />
|
||||
<glyph unicode="ø" horiz-adv-x="1130" d="M-45 25l145 133q-45 90 -45 207q0 113 39 222t114 195t186.5 138.5t256.5 52.5q82 0 144.5 -21.5t107.5 -56.5l135 123l103 -90l-152 -140q25 -47 36 -99t11 -109q0 -115 -37.5 -223.5t-111.5 -193.5t-184.5 -136.5t-256.5 -51.5q-84 0 -147 20.5t-111 55.5l-141 -129z M301 354q0 -14 4 -28l440 405q-23 29 -56.5 47.5t-80.5 18.5q-76 0 -133 -37t-96 -95.5t-58.5 -132t-19.5 -147.5v-31zM344 215q23 -33 56.5 -51.5t80.5 -18.5q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5q0 33 -7 68z" />
|
||||
<glyph unicode="ù" horiz-adv-x="1099" d="M63 197q0 45 13 104l137 641h225l-131 -612q-4 -10 -4 -22v-21q0 -53 29.5 -91t95.5 -38q72 0 141.5 48t116.5 138l127 598h227l-200 -942h-176l16 131h-8q-33 -47 -74 -76.5t-86 -47t-92 -25t-90 -7.5q-57 0 -105.5 11.5t-84.5 37t-56.5 69t-20.5 104.5zM401 1268 q0 18 7.5 40.5t19.5 42t27.5 32t31.5 12.5q8 0 21 -6l323 -207l5 -15l-48 -73l-16 -7l-354 142q-17 6 -17 39z" />
|
||||
<glyph unicode="ú" horiz-adv-x="1099" d="M63 197q0 45 13 104l137 641h225l-131 -612q-4 -10 -4 -22v-21q0 -53 29.5 -91t95.5 -38q72 0 141.5 48t116.5 138l127 598h227l-200 -942h-176l16 131h-8q-33 -47 -74 -76.5t-86 -47t-92 -25t-90 -7.5q-57 0 -105.5 11.5t-84.5 37t-56.5 69t-20.5 104.5zM455 1169l8 15 l414 207q12 6 20 6q23 0 33 -25.5t10 -54.5t-11 -54.5t-32 -31.5l-414 -141l-14 6z" />
|
||||
<glyph unicode="û" horiz-adv-x="1099" d="M63 199q0 43 13 102l137 641h225l-131 -612q-4 -10 -4 -22v-21q0 -53 29.5 -91t95.5 -38q72 0 141.5 48t116.5 138l127 598h227l-200 -942h-176l16 131h-8q-33 -47 -74 -76.5t-86 -47t-92 -25t-90 -7.5q-57 0 -105.5 11.5t-84.5 38t-56.5 70t-20.5 104.5zM424 1161l8 15 l270 202h17l180 -202l4 -15l-45 -59l-16 -6l-174 84l-211 -84l-13 6z" />
|
||||
<glyph unicode="ü" horiz-adv-x="1099" d="M63 199q0 43 13 102l137 641h225l-131 -612q-6 -29 -6 -51q0 -59 34 -90t93 -31q72 0 141.5 48t116.5 138l127 598h227l-200 -942h-176l16 131h-8q-33 -47 -74 -76.5t-86 -47t-92 -25t-90 -7.5q-57 0 -105.5 11.5t-84.5 38t-56.5 70t-20.5 104.5zM422 1235q0 27 12 51.5 t32.5 44t47.5 31.5t53 12q41 0 70 -31.5t29 -72.5q0 -27 -14.5 -50.5t-36 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5zM700 1235q0 27 12.5 51.5t33 44t47 31.5t53.5 12q41 0 69.5 -31.5t28.5 -72.5q0 -27 -13 -50.5t-35 -42t-48.5 -29.5t-52.5 -11 q-41 0 -68 28.5t-27 69.5z" />
|
||||
<glyph unicode="ý" horiz-adv-x="1060" d="M-172 -342q6 -2 13 -4t34 -2q39 0 80 8t84 33q84 47 155.5 131t149.5 207l-276 911h235l186 -670l404 670h219l-592 -950q-43 -72 -112.5 -161t-154.5 -168t-183.5 -133t-198.5 -54q-16 0 -24.5 1t-18.5 5v176zM514 1169l8 15l414 207q12 6 20 6q23 0 33 -25.5t10 -54.5 t-11 -54.5t-32 -31.5l-413 -141l-15 6z" />
|
||||
<glyph unicode="þ" d="M-92 -532l436 2048h217l-145 -682h8q31 29 71 54t84 43.5t89 30t84 11.5q88 0 151.5 -31t104.5 -82t59 -120.5t18 -145.5q0 -117 -35.5 -227.5t-104 -197.5t-171 -140.5t-237.5 -53.5q-92 0 -166 27t-109 86l-131 -620h-223zM301 268q47 -76 106.5 -95t112.5 -19 q84 0 146.5 33.5t104.5 90t63.5 129t21.5 148.5q0 47 -9 92t-30.5 79t-55.5 54.5t-83 20.5q-31 0 -69 -9.5t-77.5 -26.5t-77.5 -42t-67 -55z" />
|
||||
<glyph unicode="ÿ" horiz-adv-x="1060" d="M-172 -342q6 -2 13 -4t34 -2q39 0 80 8t84 33q84 47 155.5 131t149.5 207l-276 911h235l186 -670l404 670h219l-592 -950q-43 -72 -112.5 -161t-154.5 -168t-183.5 -133t-198.5 -54q-16 0 -24.5 1t-18.5 5v176zM395 1235q0 27 12.5 51.5t33 44t47 31.5t53.5 12 q41 0 69.5 -31.5t28.5 -72.5q0 -27 -14.5 -50.5t-36 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5zM674 1235q0 27 12 51.5t32.5 44t47.5 31.5t53 12q41 0 70 -31.5t29 -72.5q0 -27 -14.5 -50.5t-36 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="Œ" horiz-adv-x="1736" d="M109 510q0 168 59 321.5t168.5 271.5t262.5 188.5t339 70.5q39 0 75 -3t70 -7h703l-45 -205h-508l-70 -328h371l-43 -205h-371l-86 -409h549l-45 -205h-709q-92 -25 -200 -25q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM362 528q0 -174 79 -265t233 -91q66 0 121 18 l202 957q-47 18 -108 18q-147 0 -247.5 -56t-163 -147.5t-89.5 -205t-27 -228.5z" />
|
||||
<glyph unicode="œ" horiz-adv-x="1728" d="M55 365q0 113 39 222t114 195t186.5 138.5t256.5 52.5q119 0 199 -43t113 -137q160 180 391 180q154 0 233.5 -71t79.5 -200q0 -39 -8 -77.5t-20.5 -72.5t-28 -60.5t-29.5 -40.5h-596q-6 -35 -6 -68q0 -98 52 -163.5t169 -65.5q76 0 166 28.5t162 71.5v-168 q-31 -16 -75 -35.5t-96 -36t-110.5 -28t-120.5 -11.5q-109 0 -186.5 41t-112.5 131q-72 -94 -169 -133t-214 -39q-102 0 -175.5 31t-121 84t-70 124t-22.5 151zM301 385q0 -47 10.5 -91t32 -77t55 -52.5t80.5 -19.5q76 0 134.5 37t97.5 95.5t59.5 131t20.5 146.5 q0 49 -10.5 93t-33 77t-56.5 52.5t-83 19.5q-76 0 -133 -37t-96 -95.5t-58.5 -132t-19.5 -147.5zM1036 610h344q43 0 50 2q4 10 8 22.5t4 41.5q0 59 -38 90t-93 31q-92 0 -162 -52.5t-113 -134.5z" />
|
||||
<glyph unicode="Ÿ" horiz-adv-x="1150" d="M137 1352h264l215 -613l463 613h260l-651 -797l-117 -555h-235l115 547zM541 1585q0 27 12 51.5t32.5 44t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13 -50.5t-34.5 -42t-48.5 -29.5t-51 -11q-41 0 -67.5 28.5t-26.5 69.5zM819 1585q0 27 12.5 51.5t33 44 t47 31.5t53.5 12q41 0 68.5 -31.5t27.5 -72.5q0 -27 -13.5 -50.5t-35 -42t-48 -29.5t-51.5 -11q-41 0 -67.5 28.5t-26.5 69.5z" />
|
||||
<glyph unicode="ˆ" horiz-adv-x="479" d="M248 1161l8 15l270 202h17l180 -202l4 -15l-45 -59l-16 -6l-174 84l-211 -84l-13 6z" />
|
||||
<glyph unicode="˜" horiz-adv-x="636" d="M248 1163q18 37 39.5 71t49.5 59.5t64.5 41t85.5 15.5q59 0 127 -14.5t123 -14.5q37 0 79 11t89 42l15 -47q-12 -33 -33 -66.5t-48.5 -60t-63.5 -44t-81 -17.5q-25 0 -56.5 4t-66 10t-71.5 10t-72 4q-47 0 -88 -11t-76 -40z" />
|
||||
<glyph unicode=" " horiz-adv-x="868" />
|
||||
<glyph unicode=" " horiz-adv-x="1738" />
|
||||
<glyph unicode=" " horiz-adv-x="868" />
|
||||
<glyph unicode=" " horiz-adv-x="1738" />
|
||||
<glyph unicode=" " horiz-adv-x="579" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode=" " horiz-adv-x="288" />
|
||||
<glyph unicode=" " horiz-adv-x="288" />
|
||||
<glyph unicode=" " horiz-adv-x="217" />
|
||||
<glyph unicode=" " horiz-adv-x="346" />
|
||||
<glyph unicode=" " horiz-adv-x="96" />
|
||||
<glyph unicode="‐" horiz-adv-x="960" d="M102 406l35 167h692l-34 -167h-693z" />
|
||||
<glyph unicode="‑" horiz-adv-x="960" d="M102 406l35 167h692l-34 -167h-693z" />
|
||||
<glyph unicode="‒" horiz-adv-x="960" d="M102 406l35 167h692l-34 -167h-693z" />
|
||||
<glyph unicode="–" horiz-adv-x="1116" d="M102 406l35 167h848l-35 -167h-848z" />
|
||||
<glyph unicode="—" horiz-adv-x="1583" d="M102 406l35 167h1315l-35 -167h-1315z" />
|
||||
<glyph unicode="‘" horiz-adv-x="514" d="M213 942l66 311l264 252l63 -51l-141 -231h51l-59 -281h-244z" />
|
||||
<glyph unicode="’" horiz-adv-x="479" d="M195 993l141 232h-51l59 280h244l-66 -311l-264 -252z" />
|
||||
<glyph unicode="‚" horiz-adv-x="532" d="M-63 -242l141 232h-51l59 280h244l-66 -311l-264 -252z" />
|
||||
<glyph unicode="“" horiz-adv-x="839" d="M213 942l66 311l264 252l63 -51l-141 -231h51l-59 -281h-244zM539 942l65 311l264 252l64 -51l-141 -231h51l-60 -281h-243z" />
|
||||
<glyph unicode="”" horiz-adv-x="804" d="M195 993l141 232h-51l59 280h244l-66 -311l-264 -252zM520 993l142 232h-52l60 280h243l-65 -311l-264 -252z" />
|
||||
<glyph unicode="„" horiz-adv-x="858" d="M-63 -242l141 232h-51l59 280h244l-66 -311l-264 -252zM262 -242l141 232h-51l60 280h243l-65 -311l-264 -252z" />
|
||||
<glyph unicode="•" horiz-adv-x="663" d="M168 473q0 33 15.5 63.5t41 55t58 40t65.5 15.5q51 0 86 -39t35 -90q0 -33 -16.5 -62.5t-43 -53t-59.5 -37t-63 -13.5q-53 0 -86 35t-33 86z" />
|
||||
<glyph unicode="…" horiz-adv-x="1292" d="M20 96q0 33 15.5 63.5t41 55.5t57.5 40t67 15q51 0 86 -38.5t35 -90.5q0 -33 -16.5 -62.5t-43 -53t-59.5 -37t-66 -13.5q-53 0 -85 35t-32 86zM410 96q0 33 15 63.5t41 55.5t58.5 40t65.5 15q51 0 86 -38.5t35 -90.5q0 -33 -16.5 -62.5t-43 -53t-59.5 -37t-66 -13.5 q-53 0 -84.5 35t-31.5 86zM797 96q0 33 15 63.5t41 55.5t58.5 40t65.5 15q51 0 86 -38.5t35 -90.5q0 -33 -17.5 -62.5t-44 -53t-59.5 -37t-64 -13.5q-53 0 -84.5 35t-31.5 86z" />
|
||||
<glyph unicode=" " horiz-adv-x="346" />
|
||||
<glyph unicode="‹" horiz-adv-x="684" d="M70 489l2 11l350 360h229l-372 -362l-3 -11l220 -362h-232z" />
|
||||
<glyph unicode="›" horiz-adv-x="684" d="M2 125l375 362l2 11l-221 362h229l199 -360l-2 -11l-351 -364h-231z" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode="€" horiz-adv-x="1257" d="M61 461l35 168h150q6 57 20 108h-145l35 168h168q45 98 109.5 182t147.5 144.5t181 95.5t213 35q92 0 182 -23.5t148 -64.5l-113 -227q-41 49 -107.5 81.5t-162.5 32.5q-74 0 -131.5 -20.5t-101.5 -56t-75.5 -82t-54.5 -97.5h455l-35 -168h-471q-6 -29 -10 -56.5 t-6 -51.5h462l-34 -168h-435q6 -139 60.5 -212t152.5 -73q104 0 201.5 37t163.5 94l18 -207q-84 -49 -190.5 -87t-233.5 -38q-109 0 -186.5 38t-129.5 104.5t-77.5 154.5t-27.5 189h-175z" />
|
||||
<glyph unicode="™" horiz-adv-x="1449" d="M260 1206l29 131h442l-29 -131h-151l-96 -450h-140l97 450h-152zM674 756l125 581h184l57 -411l232 411h182l-125 -581h-139l72 336l-195 -336h-133l-49 338l-72 -338h-139z" />
|
||||
<glyph unicode="" horiz-adv-x="940" d="M0 940h940v-940h-940v940z" />
|
||||
<glyph unicode="fi" horiz-adv-x="1073" d="M-47 -532l285 1337h-117l24 117l121 18q25 117 49.5 199t49 138t47 91t43.5 57q51 53 122.5 77t151.5 24q25 0 59.5 -3t75.5 -14.5t86 -32t88 -53.5l-127 -166l-49 37q-25 18 -51.5 33.5t-59 26t-71.5 10.5q-27 0 -48.5 -12.5t-40 -45t-35.5 -88t-36 -141.5l-28 -135h180 l-29 -137h-180l-285 -1337h-225zM590 0l201 942h225l-201 -942h-225z" />
|
||||
<glyph unicode="fl" horiz-adv-x="1093" d="M-47 -532l285 1337h-117l24 117l121 18q25 117 49.5 199t49 138t47 91t43.5 57q51 53 122.5 77t151.5 24q47 0 136 -12.5t182 -47.5l98 50l-322 -1516h-225l281 1319q-41 16 -89.5 30.5t-109.5 14.5q-27 0 -48.5 -12.5t-40 -45t-35.5 -88t-36 -141.5l-28 -135h180 l-29 -137h-180l-285 -1337h-225z" />
|
||||
<glyph unicode="ffi" horiz-adv-x="1775" d="M1290 0l201 942h225l-200 -942h-226zM1520 1221q0 33 15.5 63.5t41 55t57 40t66.5 15.5q51 0 86 -39t35 -90q0 -33 -17.5 -62.5t-44 -53.5t-59.5 -37t-63 -13q-53 0 -85 35t-32 86zM588 -535l285 1340h-117l24 117l121 18q25 117 49.5 199t49 138t47 91t43.5 57 q51 53 122.5 77t151.5 24q10 0 32.5 -1t49.5 -5t54.5 -13.5t49.5 -23.5l-88 -174q-16 12 -59 33.5t-88 21.5q-27 0 -48.5 -12.5t-40 -45t-35.5 -88t-36 -141.5l-28 -135h180l-29 -137h-180l-285 -1340h-225zM-47 -535l285 1340h-117l24 117l121 18q25 117 49.5 199t49 138 t47 91t43.5 57q51 53 122.5 77t151.5 24q10 0 32.5 -1t49.5 -5t54.5 -13.5t49.5 -23.5l-88 -174q-16 12 -59 33.5t-88 21.5q-27 0 -48.5 -12.5t-40 -45t-35.5 -88t-36 -141.5l-28 -135h180l-29 -137h-180l-285 -1340h-225z" />
|
||||
<glyph unicode="ffl" horiz-adv-x="1800" d="M1305 0l321 1516h226l-322 -1516h-225zM588 -535l285 1340h-117l24 117l121 18q25 117 49.5 199t49 138t47 91t43.5 57q51 53 122.5 77t151.5 24q10 0 32.5 -1t49.5 -5t54.5 -13.5t49.5 -23.5l-88 -174q-16 12 -59 33.5t-88 21.5q-27 0 -48.5 -12.5t-40 -45t-35.5 -88 t-36 -141.5l-28 -135h180l-29 -137h-180l-285 -1340h-225zM-47 -535l285 1340h-117l24 117l121 18q25 117 49.5 199t49 138t47 91t43.5 57q51 53 122.5 77t151.5 24q10 0 32.5 -1t49.5 -5t54.5 -13.5t49.5 -23.5l-88 -174q-16 12 -59 33.5t-88 21.5q-27 0 -48.5 -12.5 t-40 -45t-35.5 -88t-36 -141.5l-28 -135h180l-29 -137h-180l-285 -1340h-225z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 70 KiB |
@@ -0,0 +1,247 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
This is a custom SVG webfont generated by Font Squirrel.
|
||||
Copyright : Copyright c 2011 Pablo Impallari wwwimpallaricomimpallarigmailcomCopyright c 2011 Igino Marini wwwikerncommailiginomarinicomCopyright c 2011 Brenda Gallo gbrenda1987gmailcomwith Reserved Font Name Quattrocento Sans
|
||||
Designer : Pablo Impallari
|
||||
Foundry : Pablo Impallari Igino Marini Brenda Gallo
|
||||
Foundry URL : wwwimpallaricom
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="QuattrocentoSansItalic" horiz-adv-x="1177" >
|
||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
||||
<missing-glyph horiz-adv-x="501" />
|
||||
<glyph unicode=" " horiz-adv-x="501" />
|
||||
<glyph unicode="	" horiz-adv-x="501" />
|
||||
<glyph unicode=" " horiz-adv-x="501" />
|
||||
<glyph unicode="!" horiz-adv-x="530" d="M63 55q0 43 38 79t83 36q33 0 54.5 -24.5t21.5 -59.5q0 -23 -11 -42t-27.5 -33.5t-37 -24t-41.5 -9.5q-35 0 -57.5 22.5t-22.5 55.5zM162 307l182 1090h199l-285 -1090h-96z" />
|
||||
<glyph unicode=""" horiz-adv-x="681" d="M264 1057l51 442h166l-143 -442h-74zM545 1057l51 442h166l-144 -442h-73z" />
|
||||
<glyph unicode="#" horiz-adv-x="1261" d="M57 455l43 108h242l102 244h-249l43 106h251l183 426h131l-182 -426h258l182 426h131l-182 -426h250l-43 -106h-252l-103 -244h260l-43 -108h-264l-192 -455h-131l192 455h-258l-193 -455h-131l193 455h-238zM473 563h258l103 244h-259z" />
|
||||
<glyph unicode="$" horiz-adv-x="1087" d="M-10 88l76 150q31 -25 62.5 -47.5t70.5 -40t87 -27.5t111 -12l113 530q-68 25 -123 53.5t-94 65.5t-60.5 84t-21.5 108q0 98 35 172t96 124t143 78t177 34l38 176h123l-39 -176q90 -6 166 -26.5t129 -49.5l-75 -158q-41 45 -110 68t-138 29l-94 -449q57 -23 113 -49.5 t99.5 -65t70 -92t26.5 -129.5q0 -113 -40 -195.5t-106.5 -138t-152.5 -86t-180 -38.5l-37 -177h-123l37 174q-119 4 -215 36t-164 75zM367 991q0 -63 44 -100t136 -74l86 408q-123 -10 -194.5 -69t-71.5 -165zM520 115q154 18 218.5 91t64.5 169q0 43 -14.5 75.5t-39 59.5 t-57.5 48.5t-69 37.5z" />
|
||||
<glyph unicode="%" horiz-adv-x="1683" d="M160 883q0 94 29.5 180t83 152.5t125 106.5t157.5 40q57 0 101 -22.5t74 -61.5t44 -92t14 -113q0 -86 -29.5 -170t-82.5 -151.5t-128 -108.5t-163 -41q-57 0 -100 21.5t-71 60.5t-41 89.5t-13 109.5zM170 -49l1260 1464h133l-1260 -1464h-133zM274 885q0 -190 134 -191 q70 0 120 35t82.5 89t49 122t16.5 133q0 88 -35 142.5t-109 54.5q-76 0 -126 -39t-78.5 -96.5t-41 -125t-12.5 -124.5zM946 266q0 94 30 180t83 153t124.5 106.5t157.5 39.5q57 0 101.5 -22.5t74 -61t44 -92t14.5 -112.5q0 -86 -29.5 -170t-83 -151.5t-128 -108.5 t-163.5 -41q-57 0 -100 21.5t-70.5 60t-41 89t-13.5 109.5zM1061 268q0 -190 133 -190q70 0 120 34.5t83 89t49 122t16 133.5q0 88 -34.5 142t-108.5 54q-76 0 -126 -39t-79 -96t-41 -125t-12 -125z" />
|
||||
<glyph unicode="&" horiz-adv-x="1427" d="M76 299q0 61 24.5 129t71.5 129t115.5 114.5t154.5 88.5q-70 109 -69 229q0 90 31.5 160t84 117t120 71.5t141.5 24.5q70 0 138 -23.5t128 -66.5l-74 -146q-35 45 -95.5 74t-121.5 29q-41 0 -79 -13.5t-66.5 -42t-46 -72.5t-17.5 -106q0 -100 62 -180l366 -489 q74 109 74 229q0 39 -8.5 79t-22.5 77l-104 -9l20 97l531 75l-27 -126l-281 -25q12 -37 18.5 -79t6.5 -81q0 -90 -34 -177t-95 -161l170 -225h-172l-98 127q-88 -70 -201 -111t-246 -41q-102 0 -177 27t-124 71t-73.5 102t-24.5 124zM238 332q0 -106 77.5 -163.5 t206.5 -57.5q98 0 180 29.5t148 82.5l-338 441q-59 -18 -109.5 -51t-87 -77t-57 -96.5t-20.5 -107.5z" />
|
||||
<glyph unicode="'" horiz-adv-x="401" d="M264 1057l51 442h166l-143 -442h-74z" />
|
||||
<glyph unicode="(" horiz-adv-x="636" d="M102 467q0 162 45.5 314.5t128 292.5t199.5 267t260 238l74 -27q-104 -94 -201.5 -196.5t-171.5 -235.5t-119 -309t-45 -418q0 -59 7.5 -135t26 -157t49 -161.5t75.5 -152.5l-80 -27q-123 135 -185.5 322.5t-62.5 384.5z" />
|
||||
<glyph unicode=")" horiz-adv-x="634" d="M-123 -213q133 125 233.5 252t167 267t100.5 300t34 350q0 166 -39 320t-123 276l84 27q59 -68 105 -149.5t77 -174t47.5 -189.5t16.5 -196q0 -160 -45.5 -313.5t-128 -293.5t-199.5 -267t-260 -236z" />
|
||||
<glyph unicode="*" horiz-adv-x="897" d="M211 991l274 109l-227 110l92 119l185 -166l28 275h135l-90 -275l256 166l43 -119l-276 -110l229 -109l-90 -117l-188 162l-27 -270h-133l86 270l-256 -162z" />
|
||||
<glyph unicode="+" horiz-adv-x="1009" d="M74 436l22 107h350l70 331h107l-70 -331h352l-22 -107h-353l-75 -352h-107l76 352h-350z" />
|
||||
<glyph unicode="," horiz-adv-x="491" d="M-12 -160l112 150h-51l39 184h162l-47 -215l-183 -158z" />
|
||||
<glyph unicode="-" horiz-adv-x="995" d="M125 436l22 107h693l-23 -107h-692z" />
|
||||
<glyph unicode="." horiz-adv-x="475" d="M45 55q0 43 37 79t82 36q35 0 56.5 -24.5t21.5 -59.5q0 -23 -11.5 -42t-28 -33.5t-38 -24t-41.5 -9.5q-35 0 -56.5 22.5t-21.5 55.5z" />
|
||||
<glyph unicode="/" horiz-adv-x="878" d="M-63 -117l899 1555h153l-899 -1555h-153z" />
|
||||
<glyph unicode="0" horiz-adv-x="1341" d="M125 485q0 170 53 328t148.5 279.5t227.5 195.5t288 74q106 0 185 -42t131 -112.5t79 -166t27 -201.5q0 -158 -53.5 -312.5t-149.5 -277.5t-230.5 -199t-295.5 -76q-104 0 -182.5 40t-128.5 110t-74.5 163t-24.5 197zM295 487q0 -184 69.5 -280t202.5 -96t232.5 65.5 t166 170t99.5 235.5t33 262q0 86 -17.5 155.5t-53.5 120.5t-91 79t-129 28q-141 0 -239.5 -68.5t-159 -176.5t-87 -239t-26.5 -256z" />
|
||||
<glyph unicode="1" horiz-adv-x="643" d="M166 1126l442 226l-286 -1352h-154l229 1077l-217 -94z" />
|
||||
<glyph unicode="2" horiz-adv-x="1038" d="M-23 0l31 143q84 86 179.5 167t188.5 159t179 153.5t150.5 150.5t103.5 148.5t39 149.5q0 63 -44 109.5t-153 46.5q-45 0 -97 -7.5t-103.5 -21.5t-98.5 -32.5t-80 -39.5l-8 136q88 43 204 71.5t216 28.5q158 0 247 -76t89 -199q0 -82 -38 -160.5t-101.5 -156.5 t-147.5 -155.5t-177 -155.5t-189.5 -157t-184.5 -159h656l-31 -143h-830z" />
|
||||
<glyph unicode="3" horiz-adv-x="1095" d="M-23 102l70 138q59 -59 140 -94t186 -35q199 0 305 96t106 258q0 92 -69.5 146.5t-229.5 54.5h-55l27 116h63q74 0 134.5 21.5t103.5 60.5t66.5 92.5t23.5 118.5q0 68 -42 110t-142 42q-47 0 -96.5 -8.5t-95.5 -21.5t-87 -31.5t-72 -39.5l-8 136q39 20 87 38.5t98.5 33 t99.5 21.5t90 7q158 0 248 -71.5t90 -207.5q0 -61 -21.5 -114.5t-58.5 -96.5t-84 -77.5t-98 -59.5q92 -35 144 -101.5t52 -168.5q0 -94 -39 -182t-115.5 -157t-189 -110t-258.5 -41q-119 0 -213 34t-160 93z" />
|
||||
<glyph unicode="4" horiz-adv-x="1040" d="M37 430l31 143l737 779h164l-166 -779h141l-31 -143h-141l-92 -430h-154l92 430h-581zM242 573h407l117 555z" />
|
||||
<glyph unicode="5" horiz-adv-x="1110" d="M2 102l74 144q63 -59 139 -97t191 -38q186 0 294.5 96t108.5 266q0 88 -61.5 142.5t-212.5 54.5q-72 0 -151 -12.5t-151 -39.5l-53 31l228 713h694l-31 -143h-565l-146 -437q66 14 137.5 23.5t131.5 9.5q160 0 257 -81t97 -230q0 -98 -40 -193.5t-117.5 -169t-190.5 -120 t-260 -46.5q-119 0 -213 34t-160 93z" />
|
||||
<glyph unicode="6" horiz-adv-x="1144" d="M121 399q0 72 12 172.5t43 207t82 211t129 186t184.5 133t247.5 51.5q33 0 75 -4t85 -15.5t81 -31t62 -47.5l-63 -136q-57 57 -131 79t-135 22q-111 0 -197 -52.5t-146.5 -133t-95.5 -179t-43 -190.5q72 88 173.5 118.5t199.5 30.5q100 0 164.5 -31.5t102.5 -79.5 t52.5 -105.5t14.5 -108.5q0 -84 -33 -176.5t-99.5 -169t-168 -126t-238.5 -49.5q-96 0 -163.5 31t-110.5 86t-63.5 133t-20.5 174zM276 328q0 -104 58.5 -166t171.5 -62q76 0 140.5 28t111.5 79t72.5 120.5t25.5 155.5q0 43 -11 81t-36 68t-64.5 47t-97.5 17 q-94 0 -163.5 -30.5t-115.5 -82t-69 -117.5t-23 -138z" />
|
||||
<glyph unicode="7" horiz-adv-x="937" d="M41 0q4 18 7 39.5t7 40.5q18 86 64.5 184t111 200.5t144.5 206t165 201t171 186.5t166 161h-660l31 143h829l-30 -143q-125 -102 -258.5 -249t-248 -306.5t-197.5 -313t-107 -268.5l-17 -82h-178z" />
|
||||
<glyph unicode="8" horiz-adv-x="1146" d="M72 299q0 162 91 279.5t245 160.5l2 9q-55 23 -92 80t-37 143q0 84 32.5 155.5t93 124t145.5 82t191 29.5q156 0 241 -71.5t85 -190.5q0 -63 -20.5 -118.5t-55.5 -100.5t-80 -79t-94 -52l-2 -9q92 -23 137 -95.5t45 -176.5q0 -96 -33.5 -185t-103 -158t-173 -110 t-243.5 -41q-102 0 -173.5 27t-115.5 71t-64.5 102t-20.5 124zM238 307q0 -98 59 -152.5t176 -54.5q168 0 260 92.5t92 247.5q0 45 -12 87t-40 74t-72 51.5t-105 19.5q-94 0 -161.5 -34t-111.5 -87t-64.5 -118t-20.5 -126zM444 973q0 -78 44 -128t133 -50q63 0 114 22.5 t87 60t55.5 89t19.5 108.5q0 66 -41 112t-141 46q-76 0 -127 -21.5t-83 -58.5t-46.5 -84t-14.5 -96z" />
|
||||
<glyph unicode="9" horiz-adv-x="1146" d="M70 74l63 135q57 -57 131 -78.5t135 -21.5q106 0 186.5 44t137.5 114.5t93 159.5t54 177q4 16 6.5 29.5t4.5 30.5l-7 2q-33 -45 -75.5 -74t-92 -46.5t-99.5 -24.5t-99 -7q-100 0 -164.5 32t-102.5 80t-52.5 105t-14.5 109q0 84 33 176t99.5 169t166.5 126t238 49 q193 0 276.5 -116t83.5 -308q0 -72 -12 -172t-43 -206.5t-82 -211t-129 -186.5t-184.5 -133.5t-247.5 -51.5q-33 0 -75 4.5t-85 15.5t-80.5 30.5t-62.5 48.5zM336 836q0 -84 46 -140.5t163 -56.5q94 0 162.5 30.5t114.5 82t68.5 118t22.5 138.5q0 104 -57 165.5t-170 61.5 q-78 0 -142.5 -34t-110.5 -89t-71.5 -127.5t-25.5 -148.5z" />
|
||||
<glyph unicode=":" horiz-adv-x="499" d="M47 55q0 43 36 79t83 36q35 0 56.5 -24.5t21.5 -59.5q0 -23 -11.5 -42t-28 -33.5t-38 -24t-41.5 -9.5q-35 0 -56.5 22.5t-21.5 55.5zM211 819q0 43 36 78t81 35q35 0 57.5 -23.5t22.5 -58.5q0 -45 -39 -78t-82 -33q-35 0 -55.5 22.5t-20.5 57.5z" />
|
||||
<glyph unicode=";" horiz-adv-x="518" d="M-2 -160l113 150h-52l39 184h162l-47 -215l-182 -158zM223 819q0 43 36 78t81 35q35 0 57.5 -23.5t22.5 -58.5q0 -45 -39 -78t-82 -33q-35 0 -55.5 22.5t-20.5 57.5z" />
|
||||
<glyph unicode="<" horiz-adv-x="841" d="M68 487l2 11l667 397l11 -129l-461 -268l-2 -11l348 -272l-66 -131z" />
|
||||
<glyph unicode="=" horiz-adv-x="1005" d="M96 281l23 106h692l-23 -106h-692zM162 592l22 106h693l-23 -106h-692z" />
|
||||
<glyph unicode=">" horiz-adv-x="837" d="M61 215l463 272l2 11l-346 268l66 129l497 -397l-2 -11l-671 -403z" />
|
||||
<glyph unicode="?" horiz-adv-x="854" d="M178 57q0 47 36 80t81 33q35 0 57.5 -23.5t22.5 -58.5q0 -23 -11.5 -42t-29 -34.5t-39 -25t-41.5 -9.5q-35 0 -55.5 23.5t-20.5 56.5zM242 1305q66 43 153.5 71.5t165.5 28.5q141 0 218 -74t77 -192q0 -74 -28.5 -136.5t-73.5 -120t-99.5 -115.5t-106.5 -126t-96 -148.5 t-67 -183.5h-131q25 113 66.5 197t92 150.5t102.5 120.5t94 105.5t69 106.5t27 125q0 66 -42 112t-133 46q-33 0 -70.5 -8.5t-75.5 -21.5t-73 -32.5t-61 -40.5z" />
|
||||
<glyph unicode="@" horiz-adv-x="1486" d="M63 262q0 80 27 175t79 191.5t129 185.5t176 157.5t221 109.5t263 41q123 0 210 -35.5t143.5 -94t82 -133.5t25.5 -154q0 -104 -42 -204t-114.5 -177.5t-169 -124.5t-202.5 -47q-74 0 -99.5 23.5t-25.5 62.5q0 16 2 31.5t6 31.5q-49 -70 -110.5 -110.5t-114.5 -40.5 q-51 0 -90 46t-39 136q0 102 47 188t118.5 147.5t156.5 95.5t163 34q49 0 104.5 -16.5t82.5 -51.5q-57 -137 -88 -212t-45.5 -109.5t-17.5 -40.5l-3 -7q-12 -29 -18.5 -48t-6.5 -38q0 -39 50 -38q63 0 122.5 41.5t105.5 107.5t73.5 146.5t27.5 158.5q0 63 -19.5 123.5 t-62.5 108t-110.5 76t-163.5 28.5q-111 0 -210 -32.5t-181 -90t-147.5 -133.5t-111.5 -161t-69.5 -174t-23.5 -173q0 -96 31.5 -166.5t86 -116t128 -67t157.5 -21.5t159.5 17.5t138 43t110 54.5t73.5 49l-20 -102q-25 -18 -75 -46t-116.5 -53.5t-146.5 -43t-164 -17.5 q-106 0 -196.5 33t-156 94.5t-102.5 148.5t-37 193zM551 317q0 -80 45 -79q27 0 61.5 21.5t68.5 55t63.5 74.5t46.5 80l102 248q-10 12 -49 12q-78 0 -140.5 -46t-106.5 -110.5t-67.5 -135.5t-23.5 -120z" />
|
||||
<glyph unicode="A" horiz-adv-x="1316" d="M-102 0l827 1352h186l308 -1352h-175l-102 455h-604l-277 -455h-163zM424 598h485l-129 582z" />
|
||||
<glyph unicode="B" horiz-adv-x="1148" d="M86 0l287 1352q70 4 156.5 7t160.5 3q158 0 249 -71.5t91 -207.5q0 -106 -51 -192t-156 -143q94 -35 146.5 -106t52.5 -175q0 -94 -40 -183t-117 -158t-189.5 -110t-257.5 -41q-100 0 -183 7.5t-149 17.5zM264 117q76 -6 176 -6q199 0 305.5 96t106.5 258 q0 92 -68.5 146.5t-228.5 54.5q-45 0 -90 -1t-86 -3zM406 784q29 -2 60 -2h64q76 0 136.5 21.5t103.5 60.5t66.5 92.5t23.5 118.5q0 68 -42 110t-144 42q-45 0 -90 -1t-86 -3z" />
|
||||
<glyph unicode="C" horiz-adv-x="1316" d="M123 508q0 166 57.5 320.5t167 272.5t266 189.5t355.5 71.5q111 0 216 -23.5t177 -64.5l-76 -148q-55 43 -145 72t-213 29q-188 0 -311 -63.5t-195 -166t-100.5 -229.5t-28.5 -252q0 -199 98 -302t295 -103q129 0 245 36.5t193 90.5l13 -138q-92 -49 -216 -87t-270 -38 q-139 0 -238.5 42t-164 115t-95 170t-30.5 206z" />
|
||||
<glyph unicode="D" horiz-adv-x="1449" d="M86 0l287 1352q100 4 219 7t229 3q145 0 257 -41t179 -113q59 -66 87 -168t28 -211q0 -162 -53 -315.5t-157.5 -273t-258 -192.5t-354.5 -73q-145 0 -258 7.5t-205 17.5zM266 123q125 -12 305 -12q160 0 279 53t197.5 149.5t117.5 229.5t39 293q0 88 -21.5 159.5 t-69.5 122.5t-124 80t-184 29q-82 0 -162 -1t-145 -5z" />
|
||||
<glyph unicode="E" horiz-adv-x="1069" d="M86 0l287 1352h741l-31 -144h-587l-88 -420h450l-31 -143h-450l-107 -502h629l-31 -143h-782z" />
|
||||
<glyph unicode="F" horiz-adv-x="991" d="M86 0l287 1352h731l-31 -144h-577l-88 -420h428l-31 -143h-428l-137 -645h-154z" />
|
||||
<glyph unicode="G" horiz-adv-x="1380" d="M123 508q0 166 57.5 320.5t167 272.5t266 189.5t355.5 71.5q119 0 226.5 -23.5t186.5 -64.5l-75 -148q-55 43 -152.5 72t-226.5 29q-188 0 -311 -63.5t-195 -166t-100.5 -229.5t-28.5 -252q0 -199 98 -302t295 -103q90 0 173 18t155 47l80 381h153l-94 -444 q-104 -61 -230 -99.5t-272 -38.5q-139 0 -238.5 42t-164 115t-95 170t-30.5 206z" />
|
||||
<glyph unicode="H" horiz-adv-x="1443" d="M86 0l287 1352h153l-125 -584h729l125 584h154l-287 -1352h-153l131 625h-729l-131 -625h-154z" />
|
||||
<glyph unicode="I" horiz-adv-x="561" d="M86 0l287 1352h153l-286 -1352h-154z" />
|
||||
<glyph unicode="J" horiz-adv-x="559" d="M-190 -207q80 0 135 39t91 99.5t57.5 134t35.5 143.5l244 1143h153l-243 -1145q-23 -109 -65 -204t-101.5 -167t-135 -113.5t-167.5 -41.5z" />
|
||||
<glyph unicode="K" horiz-adv-x="1220" d="M86 0l287 1352h153l-135 -639q66 39 120 77.5t126 96.5q123 98 251 220t238 245h177q-127 -143 -300.5 -303t-375.5 -326l473 -723h-191l-415 627l-142 -92l-112 -535h-154z" />
|
||||
<glyph unicode="L" horiz-adv-x="985" d="M86 0l287 1352h153l-256 -1209h604l-30 -143h-758z" />
|
||||
<glyph unicode="M" horiz-adv-x="1728" d="M86 0l287 1352h207l213 -1159l704 1159h197l-287 -1352h-154l217 1022l-630 -1022h-185l-198 1024l-217 -1024h-154z" />
|
||||
<glyph unicode="N" horiz-adv-x="1443" d="M86 0l287 1352h186l461 -1108l235 1108h154l-287 -1352h-186l-463 1106l-233 -1106h-154z" />
|
||||
<glyph unicode="O" horiz-adv-x="1560" d="M123 510q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q135 0 234.5 -43t166 -118t99.5 -174t33 -212q0 -154 -57.5 -303.5t-167 -269t-265 -193.5t-352.5 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM283 504q0 -184 105.5 -288.5t303.5 -104.5 q160 0 280 63.5t198.5 164.5t117.5 230t39 260q0 88 -25.5 161t-78 125t-133 82t-191.5 30q-164 0 -280.5 -63.5t-191.5 -166t-109.5 -232.5t-34.5 -261z" />
|
||||
<glyph unicode="P" horiz-adv-x="1089" d="M86 0l287 1352h8q68 4 147.5 7t151.5 3q193 0 302.5 -89t109.5 -255q0 -98 -37 -190.5t-109 -163t-178 -113.5t-246 -43q-98 0 -174 6l-108 -514h-154zM377 649q74 -6 168 -6q188 0 283.5 101.5t95.5 269.5q0 96 -59.5 154.5t-200.5 58.5q-43 0 -85 -1t-81 -3z" />
|
||||
<glyph unicode="Q" horiz-adv-x="1564" d="M125 510q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q135 0 234.5 -43t166 -118t99.5 -174t33 -212q0 -150 -55.5 -296t-158 -264t-252 -193.5t-335.5 -84.5q70 -8 133.5 -33.5t128 -52t131 -48t144.5 -21.5q80 0 182 39l-68 -131q-41 -20 -82 -26.5t-75 -6.5 q-86 0 -162 28.5t-145.5 62.5t-136 62.5t-134.5 28.5q-49 0 -122.5 -18.5t-147.5 -65.5l-8 96q66 41 133 61.5t131 24.5q-121 8 -208 54.5t-143.5 118t-84 164t-27.5 196.5zM283 504q0 -184 105.5 -288.5t303.5 -104.5q160 0 280 63.5t198.5 164.5t117.5 230t39 260 q0 88 -25.5 161t-78 125t-133 82t-191.5 30q-164 0 -280.5 -63.5t-191.5 -166t-109.5 -232.5t-34.5 -261z" />
|
||||
<glyph unicode="R" horiz-adv-x="1208" d="M86 0l287 1352h8q68 4 147.5 7t151.5 3q195 0 307.5 -82t112.5 -236q0 -74 -24.5 -145.5t-74 -130.5t-123 -104.5t-169.5 -67.5l391 -596h-191l-383 578q-90 0 -164 6l-122 -584h-154zM391 717q37 -4 79 -4h89q184 0 277.5 90t93.5 237q0 82 -60.5 134.5t-205.5 52.5 q-43 0 -85 -1t-81 -3z" />
|
||||
<glyph unicode="S" horiz-adv-x="1138" d="M6 88l76 150q33 -27 66.5 -50.5t75.5 -40t95.5 -26.5t124.5 -10q109 0 183.5 20.5t122 56t69 83.5t21.5 102q0 57 -27 98t-70 71.5t-96 52t-104 40.5q-72 25 -130.5 54.5t-99.5 66.5t-63.5 85t-22.5 111q0 106 41 184t112 128.5t165 74t200 23.5q111 0 209.5 -22.5 t161.5 -55.5l-76 -158q-27 29 -66.5 48.5t-84.5 31t-92 16.5t-88 5q-150 0 -238 -58.5t-88 -177.5q0 -41 18.5 -69.5t54.5 -52t91 -45t129 -48.5q61 -23 121.5 -49.5t106.5 -66t75 -94t29 -132.5q0 -123 -50.5 -210t-131.5 -142t-185 -81t-213 -26q-133 0 -240.5 33 t-181.5 80z" />
|
||||
<glyph unicode="T" horiz-adv-x="1085" d="M172 1208l31 144h1018l-31 -144h-432l-256 -1208h-154l256 1208h-432z" />
|
||||
<glyph unicode="U" horiz-adv-x="1411" d="M152 317q0 61 16 138l190 897h154l-176 -828q-18 -84 -19 -147q0 -141 78 -203.5t219 -62.5q172 0 291 96t166 317l176 828h144l-191 -897q-23 -100 -72 -187.5t-125.5 -152t-181 -101.5t-235.5 -37q-119 0 -201 26t-134 71t-75.5 107t-23.5 136z" />
|
||||
<glyph unicode="V" horiz-adv-x="1320" d="M150 1352h174l264 -1180l719 1180h163l-823 -1352h-194z" />
|
||||
<glyph unicode="W" horiz-adv-x="2215" d="M162 1352h174l209 -1157l641 1157h174l176 -1153l655 1153h164l-768 -1352h-194l-172 1118l-619 -1118h-194z" />
|
||||
<glyph unicode="X" horiz-adv-x="1323" d="M-86 0l684 698l-367 654h183l307 -547l536 547h177l-650 -662l390 -690h-183l-327 584l-574 -584h-176z" />
|
||||
<glyph unicode="Y" horiz-adv-x="1157" d="M139 1352h183l290 -650l551 650h178l-692 -797l-117 -555h-153l115 547z" />
|
||||
<glyph unicode="Z" horiz-adv-x="1130" d="M-31 0l31 143l979 1065h-723l31 144h897l-31 -144l-979 -1065h784l-30 -143h-959z" />
|
||||
<glyph unicode="[" horiz-adv-x="583" d="M25 -195l366 1729h328l-19 -86h-194l-330 -1557h195l-19 -86h-327z" />
|
||||
<glyph unicode="\" horiz-adv-x="864" d="M258 1438h150l239 -1555h-149z" />
|
||||
<glyph unicode="]" horiz-adv-x="583" d="M-88 -195l18 86h195l330 1557h-195l19 86h327l-366 -1729h-328z" />
|
||||
<glyph unicode="^" horiz-adv-x="712" d="M365 1161l8 15l270 202h16l181 -202l4 -15l-21 -39l-16 -6l-186 125l-240 -125l-12 6z" />
|
||||
<glyph unicode="_" horiz-adv-x="985" d="M-76 -106l23 106h887l-23 -106h-887z" />
|
||||
<glyph unicode="`" horiz-adv-x="448" d="M279 1293v12q0 35 23.5 60.5t64.5 27.5l327 -207l2 -15l-20 -41l-17 -6l-378 158q-2 4 -2 11z" />
|
||||
<glyph unicode="a" d="M66 350q0 117 37.5 228.5t110.5 198.5t176.5 141.5t234.5 54.5q137 0 212.5 -59.5t84.5 -147.5l65 176h113l-199 -942h-113l21 168h-8q-66 -76 -172.5 -134.5t-237.5 -58.5q-84 0 -145.5 30t-101.5 81t-59 119.5t-19 144.5zM217 362q0 -51 11.5 -99t37 -85t66.5 -59.5 t100 -22.5q98 0 205.5 53.5t185.5 153.5l64 301q-12 117 -85 182.5t-181 65.5q-86 0 -161 -39t-128 -104.5t-84 -156t-31 -190.5z" />
|
||||
<glyph unicode="b" d="M39 0l321 1516h144l-160 -750q47 88 149.5 147.5t235.5 59.5q88 0 153.5 -31t107.5 -83t62.5 -122.5t20.5 -150.5q0 -111 -36 -220.5t-104.5 -195.5t-167.5 -140.5t-226 -54.5q-131 0 -212 58.5t-116 134.5h-8l-51 -168h-113zM246 303q39 -98 122 -152.5t181 -54.5 q100 0 169.5 46t115 117t66 152t20.5 152q0 129 -60.5 209t-177.5 80q-109 0 -209 -65.5t-162 -182.5z" />
|
||||
<glyph unicode="c" horiz-adv-x="1024" d="M70 369q0 111 36.5 219t112.5 193t190.5 138.5t268.5 53.5q98 0 187 -22.5t139 -59.5l-62 -121q-39 35 -121 62.5t-170 27.5q-109 0 -188.5 -41t-131.5 -107.5t-78 -148.5t-26 -164q0 -63 16.5 -119.5t50.5 -99.5t85 -67.5t123 -24.5q82 0 176 35t164 88v-133 q-66 -37 -172.5 -70t-218.5 -33q-98 0 -170 31t-119 85t-69.5 126t-22.5 152z" />
|
||||
<glyph unicode="d" horiz-adv-x="1179" d="M68 350q0 117 37.5 228.5t110.5 198.5t176.5 141.5t234.5 54.5q137 0 212.5 -59.5t84.5 -147.5l157 750h144l-322 -1516h-112l20 168h-8q-66 -76 -172.5 -134.5t-237.5 -58.5q-84 0 -145.5 30t-101.5 81t-59 119.5t-19 144.5zM219 362q0 -51 11.5 -99t37 -85t66.5 -59.5 t100 -22.5q98 0 206 53.5t185 153.5l64 301q-12 117 -85 182.5t-181 65.5q-86 0 -161 -39t-128 -104.5t-84 -156t-31 -190.5z" />
|
||||
<glyph unicode="e" horiz-adv-x="1056" d="M66 369q0 115 43 223t122.5 193t191.5 136.5t249 51.5q154 0 233.5 -71t79.5 -200q0 -59 -18.5 -117.5t-36.5 -82.5h-697q-12 -59 -12 -117q0 -61 15.5 -115.5t47 -95.5t82 -65.5t117.5 -24.5q49 0 99.5 11t96.5 28.5t88 38t75 41.5v-117q-31 -16 -74 -35.5t-94 -36 t-109.5 -28t-120.5 -11.5q-96 0 -166.5 32t-117.5 85t-70.5 125t-23.5 152zM268 610h568q4 10 9 23.5t5 50.5q0 86 -61.5 130t-147.5 44q-141 0 -233.5 -72t-139.5 -176z" />
|
||||
<glyph unicode="f" horiz-adv-x="608" d="M-23 -532l293 1378h-157l16 76l162 18q25 115 49.5 197t48 138t46 92t42.5 58q49 57 111.5 79t124.5 22q8 0 28.5 -1t45 -4t50 -10.5t48.5 -19.5l-62 -121q-6 0 -26.5 7t-47 16.5t-56 17.5t-54.5 8q-31 0 -54.5 -17.5t-44 -57t-39 -105t-38.5 -162.5l-29 -135h221 l-20 -96h-221l-293 -1378h-144z" />
|
||||
<glyph unicode="g" d="M-29 -406l25 111q43 -25 95 -45t106.5 -33.5t107.5 -21.5t98 -8q154 0 241 91t128 298l37 182h-8q-33 -37 -77 -72t-96.5 -61.5t-111.5 -43t-123 -16.5q-86 0 -148.5 30t-102.5 81t-58 119.5t-18 146.5q0 113 37.5 224.5t109.5 199.5t175.5 142.5t234.5 54.5 q141 0 215.5 -60.5t83.5 -146.5l65 176h113l-203 -954q-31 -139 -75 -235.5t-105.5 -156t-144.5 -86t-191 -26.5q-220 -1 -410 110zM217 369q0 -55 11.5 -104.5t37 -87.5t67.5 -59.5t103 -21.5q47 0 98.5 13.5t102.5 40t99 65.5t87 88l64 301q-12 117 -85 182.5t-184 65.5 q-86 0 -159.5 -39t-126.5 -105.5t-84 -153.5t-31 -185z" />
|
||||
<glyph unicode="h" horiz-adv-x="1112" d="M39 0l321 1516h144l-160 -750q45 86 147.5 146.5t239.5 60.5q55 0 103.5 -12.5t83 -39t55 -69.5t20.5 -107q0 -47 -12 -104l-137 -641h-144l134 623q8 39 8 77q0 82 -43 117t-115 35q-51 0 -104.5 -16.5t-102.5 -48t-92 -77.5t-74 -106l-129 -604h-143z" />
|
||||
<glyph unicode="i" horiz-adv-x="458" d="M39 0l201 942h143l-201 -942h-143zM279 1268q0 25 11 47t28.5 39.5t41 28t48.5 10.5q37 0 60.5 -28t23.5 -62q0 -49 -41 -84t-89 -35q-37 0 -60 24.5t-23 59.5z" />
|
||||
<glyph unicode="j" horiz-adv-x="460" d="M-293 -403q12 -6 43 -7q70 0 119 40t82 99.5t53.5 131t34.5 135.5l201 946h143l-201 -948q-23 -104 -62.5 -199.5t-94 -167t-122 -113.5t-145.5 -42q-14 0 -26.5 1t-16.5 5zM281 1268q0 47 38.5 86t88.5 39q37 0 61.5 -28t24.5 -62q0 -49 -41 -84t-88 -35 q-37 0 -60.5 24.5t-23.5 59.5z" />
|
||||
<glyph unicode="k" horiz-adv-x="964" d="M39 0l321 1516h144l-207 -973l500 399h164l-408 -332l272 -610h-163l-230 512l-172 -141l-78 -371h-143z" />
|
||||
<glyph unicode="l" horiz-adv-x="483" d="M51 0l322 1516h143l-321 -1516h-144z" />
|
||||
<glyph unicode="m" horiz-adv-x="1757" d="M39 0l201 942h112l-22 -176h8q45 86 143.5 146.5t233.5 60.5q123 0 193.5 -54.5t72.5 -152.5q59 82 156.5 144.5t236.5 62.5q53 0 101.5 -12.5t84 -40t57 -71.5t21.5 -108q0 -45 -12 -100l-137 -641h-143l133 623q8 39 8 75q0 84 -45 119t-117 35q-104 0 -201.5 -64.5 t-158.5 -183.5l-129 -604h-144l133 623q8 39 9 75q0 84 -45.5 119t-116.5 35q-104 0 -201.5 -64.5t-159.5 -183.5l-129 -604h-143z" />
|
||||
<glyph unicode="n" horiz-adv-x="1112" d="M39 0l201 942h112l-22 -176h8q45 86 150.5 146.5t242.5 60.5q55 0 103.5 -12.5t83 -39t55 -69.5t20.5 -107q0 -47 -12 -104l-137 -641h-144l134 623q8 39 8 77q0 80 -43 116t-115 36q-51 0 -104.5 -16.5t-102.5 -48t-92 -77.5t-74 -106l-129 -604h-143z" />
|
||||
<glyph unicode="o" horiz-adv-x="1155" d="M68 367q0 113 38.5 221t113.5 194t186.5 138.5t257.5 52.5q102 0 174.5 -32t120 -86t69 -125t21.5 -150q0 -115 -37 -223.5t-111 -192.5t-184.5 -136.5t-257.5 -52.5q-102 0 -177 31t-122 85t-69.5 125t-22.5 151zM221 383q0 -59 14.5 -113.5t46 -95.5t81 -65.5 t118.5 -24.5q102 0 179 42t129.5 109.5t78 152.5t25.5 171q0 61 -14.5 115.5t-46 95.5t-81 64.5t-118.5 23.5q-102 0 -180 -42t-129.5 -109.5t-77 -152.5t-25.5 -171z" />
|
||||
<glyph unicode="p" horiz-adv-x="1179" d="M-74 -532l314 1474h112l-20 -176h8q33 37 77 75t96 66.5t112.5 47t126.5 18.5q84 0 145 -30t101 -81t59.5 -119.5t19.5 -144.5q0 -117 -39 -228.5t-110.5 -198.5t-175 -141.5t-234.5 -54.5q-137 0 -213 59.5t-84 147.5l-151 -714h-144zM256 344q6 -59 31.5 -104t63.5 -78 t87 -49.5t103 -16.5q88 0 158.5 40t119.5 106.5t76 151.5t27 175q0 57 -13.5 108.5t-41 90.5t-71.5 61.5t-106 22.5q-98 0 -195.5 -53.5t-175.5 -153.5z" />
|
||||
<glyph unicode="q" horiz-adv-x="1179" d="M68 360q0 113 36.5 222.5t105.5 196.5t166 140.5t220 53.5q68 0 122 -18.5t95 -47t68.5 -65.5t46.5 -76h8l53 176h113l-314 -1474h-143l152 714q-45 -88 -145.5 -147.5t-237.5 -59.5q-90 0 -155.5 31t-107.5 83t-62.5 121.5t-20.5 149.5zM219 371q0 -117 53.5 -196 t167.5 -79q53 0 109.5 16.5t109 49.5t97.5 78t75 104l64 301q-35 100 -108.5 153.5t-172.5 53.5q-96 0 -169.5 -44t-124 -113.5t-76 -155.5t-25.5 -168z" />
|
||||
<glyph unicode="r" horiz-adv-x="729" d="M39 0l201 942h112l-28 -207h8q25 47 57.5 90t73.5 76t88 52.5t102 19.5q39 0 79 -13.5t54 -33.5l-71 -135q-29 18 -59.5 29t-61.5 11q-41 0 -83 -22.5t-81 -61t-72.5 -90t-58.5 -106.5l-117 -551h-143z" />
|
||||
<glyph unicode="s" horiz-adv-x="905" d="M-4 78l65 133q59 -68 142.5 -98.5t154.5 -30.5q55 0 101.5 16.5t79 44t51 62.5t18.5 74q0 33 -22.5 71.5t-91.5 57.5l-187 49q-102 27 -140 82t-38 114q0 70 30.5 128.5t85 101.5t129.5 66.5t163 23.5q39 0 83 -5t84.5 -16.5t77.5 -27t64 -35.5l-66 -123 q-35 35 -108.5 63.5t-169.5 28.5q-117 0 -168 -45t-51 -113q0 -35 26.5 -71.5t100.5 -53.5l139 -32q66 -16 107.5 -41t66.5 -54.5t34 -62.5t9 -61q0 -70 -33 -133.5t-91 -110.5t-140 -76t-180 -29q-109 0 -194 32t-132 71z" />
|
||||
<glyph unicode="t" horiz-adv-x="634" d="M104 846l17 76l166 20l92 285h108l-61 -285h221l-20 -96h-221l-140 -653q-6 -31 -6 -54q0 -33 15.5 -43t48.5 -10q47 0 88 14.5t71 34.5l6 -108q-37 -16 -97 -33t-128 -17q-92 0 -122.5 36t-30.5 87q0 20 4 43l8 45l139 658h-158z" />
|
||||
<glyph unicode="u" horiz-adv-x="1110" d="M82 197q0 45 12 104l137 641h144l-133 -623q-4 -23 -7.5 -42t-3.5 -35q0 -82 44 -114t114 -32q104 0 207.5 61.5t167.5 180.5l127 604h143l-200 -942h-113l22 176h-8q-45 -86 -149.5 -143.5t-241.5 -57.5q-55 0 -103 11.5t-83 37t-55.5 69t-20.5 104.5z" />
|
||||
<glyph unicode="v" horiz-adv-x="1067" d="M88 942h156l194 -807l539 807h149l-628 -942h-183z" />
|
||||
<glyph unicode="w" horiz-adv-x="1685" d="M106 942h152l123 -803l467 803h151l107 -803l483 803h146l-568 -942h-194l-99 737l-428 -737h-194z" />
|
||||
<glyph unicode="x" horiz-adv-x="1052" d="M-84 0l510 481l-289 461h174l224 -358l372 358h174l-485 -457l305 -485h-174l-240 383l-397 -383h-174z" />
|
||||
<glyph unicode="y" horiz-adv-x="1060" d="M-158 -383q6 -2 13.5 -4t27.5 -2q137 0 251 114.5t222 305.5l-276 911h170l207 -784l504 784h161l-635 -950q-43 -66 -105.5 -155t-140 -169t-168.5 -136t-192 -56q-16 0 -23.5 1t-15.5 5v135z" />
|
||||
<glyph unicode="z" horiz-adv-x="849" d="M-35 0l27 123l645 698h-477l26 121h643l-26 -119l-649 -702h522l-27 -121h-684z" />
|
||||
<glyph unicode="{" horiz-adv-x="579" d="M88 639l12 61q55 2 92 31t59.5 70t34 86t19.5 82q27 125 43.5 233.5t51 186t102 122.5t198.5 45l-4 -43q-47 -4 -77.5 -22t-50 -46t-31 -65t-19.5 -75l-57 -293q-12 -63 -32.5 -119.5t-52.5 -102t-77 -77t-104 -43.5q78 -18 107.5 -81t29.5 -145q0 -55 -15.5 -123.5 t-33 -137t-32.5 -130t-15 -100.5q0 -47 21.5 -84t80.5 -43l-14 -43q-66 0 -110 14.5t-70.5 39t-37 60t-10.5 78.5q0 49 16.5 117t35 139.5t35 139t16.5 114.5q0 25 -5.5 51.5t-17.5 49t-33.5 37t-54.5 16.5z" />
|
||||
<glyph unicode="|" horiz-adv-x="495" d="M16 -233l383 1806h127l-383 -1806h-127z" />
|
||||
<glyph unicode="}" horiz-adv-x="577" d="M-76 -217l4 43q47 4 78 22.5t50.5 46t30.5 63.5t19 77q20 98 38 201.5t50.5 192.5t87 154.5t148.5 86.5q-76 18 -106.5 80.5t-30.5 144.5q0 55 15.5 123.5t32.5 137.5t32.5 130.5t15.5 99.5q0 47 -20.5 84t-79.5 43l12 43q131 0 179 -53t48 -139q0 -49 -15 -116.5 t-34.5 -139.5t-35 -138.5t-15.5 -113.5q0 -25 5 -51.5t17.5 -49t33 -38t53.5 -17.5l-13 -61q-55 -2 -91 -29.5t-58.5 -66.5t-33.5 -84t-19 -82q-27 -125 -43.5 -233.5t-52.5 -188.5t-104.5 -126t-197.5 -46z" />
|
||||
<glyph unicode="~" horiz-adv-x="1013" d="M121 414q2 14 20.5 40.5t48 53.5t68.5 45t82 18q27 0 70 -3t93 -6t102 -6t97 -3q35 0 73 8t73 45l20 -16q-2 -6 -17 -32t-43 -53.5t-65.5 -50t-87.5 -22.5q-23 0 -73 3t-109 6t-115.5 6.5t-89.5 3.5q-51 0 -74.5 -13.5t-48.5 -38.5z" />
|
||||
<glyph unicode="¡" horiz-adv-x="491" d="M-66 -446l281 1089h96l-178 -1089h-199zM219 862q0 45 36 78t81 33q35 0 56.5 -22.5t21.5 -57.5q0 -23 -11.5 -42.5t-28 -35.5t-38 -25.5t-41.5 -9.5q-35 0 -55.5 24.5t-20.5 57.5z" />
|
||||
<glyph unicode="¢" horiz-adv-x="1040" d="M66 350q0 98 32.5 194.5t100 174.5t169 129t240.5 61l58 273h122l-59 -275q80 -6 150.5 -26.5t111.5 -51.5l-61 -120q-33 29 -93.5 51t-131.5 33l-150 -703q74 10 150.5 42t136.5 79v-133q-53 -31 -135 -59.5t-175 -38.5l-55 -261h-123l54 258q-88 6 -153 38t-107 82 t-62 114.5t-20 138.5zM223 383q0 -106 51.5 -187t159.5 -102l150 701q-92 -10 -161 -50t-113 -97.5t-65.5 -126t-21.5 -138.5z" />
|
||||
<glyph unicode="£" horiz-adv-x="1159" d="M-41 33q88 35 154.5 86t113.5 113.5t77 134t46 145.5l6 31h-200l22 106h193q10 94 14 184.5t21 161.5q20 100 70 170t115.5 114t139.5 63.5t141 19.5q94 0 174 -29.5t125 -70.5l-65 -136q-33 41 -104.5 71t-153.5 30q-61 0 -105.5 -17.5t-75 -48.5t-49 -72.5t-28.5 -89.5 q-16 -70 -20.5 -158.5t-20.5 -191.5h285l-23 -106h-281q-27 -104 -91 -220t-167 -212l2 -7q63 -4 126 -17t124.5 -28.5t125 -28t130.5 -12.5q51 0 94.5 9.5t96.5 29.5l-72 -149q-57 -27 -93 -34t-81 -7q-74 0 -140.5 21.5t-132 46t-134 46t-148.5 21.5q-20 0 -77.5 -9 t-125.5 -56z" />
|
||||
<glyph unicode="¤" horiz-adv-x="1187" d="M12 55l195 164q-23 39 -35 87t-12 95q0 33 5 67t20.5 73t46 83t83.5 95l-133 164l74 61l129 -162q76 47 140.5 68.5t133.5 21.5q72 0 127.5 -21.5t104.5 -68.5l201 160l49 -59l-197 -164q23 -43 34 -90t11 -94q0 -78 -31.5 -152t-117.5 -164l129 -164l-76 -61l-133 162 q-68 -45 -134.5 -69t-133.5 -24q-66 0 -121.5 23t-114.5 70l-197 -162zM266 416q0 -53 17.5 -99.5t50.5 -80t78 -53t100 -19.5q72 0 138.5 28.5t118.5 77.5t84 114t32 138q0 53 -17.5 99.5t-49.5 80t-77 53t-100 19.5q-72 0 -138.5 -28.5t-119.5 -76.5t-85 -113.5 t-32 -139.5z" />
|
||||
<glyph unicode="¥" horiz-adv-x="1339" d="M205 416l22 106h353l6 25l-37 84h-299l22 106h230l-273 615h183l290 -650l551 650h179l-535 -615h233l-22 -106h-303l-66 -76l-8 -33h354l-22 -106h-354l-86 -416h-154l88 416h-352z" />
|
||||
<glyph unicode="¦" horiz-adv-x="499" d="M18 -233l168 794h127l-168 -794h-127zM233 778l168 795h127l-168 -795h-127z" />
|
||||
<glyph unicode="§" horiz-adv-x="907" d="M37 -51l80 137q29 -41 76 -63.5t98 -22.5q37 0 71.5 13.5t62.5 38t44 57t16 73.5q0 49 -25.5 90t-65.5 80t-85 77t-85 81t-65.5 92t-25.5 113q0 45 15.5 90t42 86t62.5 77t77 60q-8 27 -8 68q0 88 36.5 155.5t92 111.5t121 66.5t122.5 22.5q59 0 119.5 -22.5t99.5 -55.5 l-79 -137q-29 41 -76 63.5t-99 22.5q-35 0 -69.5 -11.5t-62 -35t-45 -56t-17.5 -75.5q0 -49 25.5 -91t65.5 -81t85 -77t85 -81t65.5 -94t25.5 -113q0 -45 -15.5 -90t-42 -87t-62 -78t-76.5 -60q4 -16 6 -32.5t2 -33.5q0 -90 -37 -156.5t-92.5 -110.5t-121 -66.5 t-122.5 -22.5q-59 0 -119.5 22.5t-99.5 55.5zM274 782q0 -59 36 -106t87.5 -93t104.5 -95.5t88 -110.5q41 31 63.5 77t22.5 87q0 57 -36 104t-87 93t-104.5 95.5t-88.5 112.5q-43 -31 -64.5 -78t-21.5 -86z" />
|
||||
<glyph unicode="¨" horiz-adv-x="450" d="M272 1276q0 41 33 74.5t74 33.5q29 0 48 -22.5t19 -54.5q0 -43 -33.5 -74t-72.5 -31q-31 0 -49.5 20.5t-18.5 53.5zM553 1276q0 41 32.5 74.5t73.5 33.5q29 0 48.5 -22.5t19.5 -54.5q0 -43 -34 -74t-72 -31q-31 0 -49.5 20.5t-18.5 53.5z" />
|
||||
<glyph unicode="©" horiz-adv-x="1488" d="M145 621q0 143 64.5 274t172 229.5t245 156.5t282.5 58q113 0 206 -39.5t159.5 -108.5t103.5 -162t37 -200q0 -147 -65.5 -278t-173 -230.5t-248 -157t-289.5 -57.5q-109 0 -200 40t-156.5 110t-101.5 164.5t-36 200.5zM242 629q0 -92 29.5 -173t85 -139.5t132 -92.5 t168.5 -34q131 0 251 50.5t211 135.5t145.5 199.5t54.5 243.5q0 92 -31 172t-86 138.5t-134 92t-175 33.5q-127 0 -244 -50t-208 -136t-145 -199.5t-54 -240.5zM436 649q0 76 23.5 152t74 134t129 95t189.5 37q68 0 131.5 -15.5t97.5 -41.5l-47 -105q-27 25 -85 43.5 t-118 18.5q-74 0 -125 -27t-81.5 -69t-45 -93t-14.5 -102q0 -80 41 -135.5t131 -55.5q59 0 125 23.5t115 62.5l-6 -114q-47 -27 -122 -49.5t-153 -22.5q-135 0 -197.5 76.5t-62.5 187.5z" />
|
||||
<glyph unicode="ª" horiz-adv-x="759" d="M186 868q0 82 42 132.5t101.5 76t126 33.5t113.5 8h56l2 15q2 10 2 30q0 106 -131 107q-53 0 -95.5 -13.5t-83.5 -35.5l-4 73q47 25 98.5 39.5t108.5 14.5q41 0 80 -8.5t68.5 -27t47 -48t17.5 -72.5q0 -23 -6 -49l-82 -387h-82l10 100h-8q-39 -47 -108.5 -82t-141.5 -35 q-66 0 -98.5 37t-32.5 92zM287 887q0 -63 75 -64q49 0 114 34t112 93l20 99h-10q-55 0 -110.5 -4.5t-100.5 -20.5t-72.5 -49t-27.5 -88z" />
|
||||
<glyph unicode="«" horiz-adv-x="985" d="M88 487l2 11l352 362h162l-373 -362l-2 -11l217 -362h-163zM420 487l2 11l352 362h162l-373 -362l-2 -11l217 -362h-164z" />
|
||||
<glyph unicode="¬" horiz-adv-x="1298" d="M162 592l22 106h983l-98 -458h-108l75 352h-874z" />
|
||||
<glyph unicode="­" horiz-adv-x="999" d="M125 436l27 107h688l-27 -107h-688z" />
|
||||
<glyph unicode="®" horiz-adv-x="1488" d="M145 621q0 143 64.5 274t172 229.5t245 156.5t282.5 58q113 0 206 -39.5t159.5 -108.5t103.5 -162t37 -200q0 -147 -65.5 -278t-173 -230.5t-248 -157t-289.5 -57.5q-109 0 -200 40t-156.5 110t-101.5 164.5t-36 200.5zM242 629q0 -92 29.5 -173t85 -139.5t132 -92.5 t168.5 -34q131 0 251 50.5t211 135.5t145.5 199.5t54.5 243.5q0 92 -31 172t-86 138.5t-134 92t-175 33.5q-127 0 -244 -50t-208 -136t-145 -199.5t-54 -240.5zM508 412l143 673q35 2 87.5 3.5t88.5 1.5q98 0 159 -31t61 -117q0 -84 -57.5 -144.5t-149.5 -82.5l141 -303 h-113l-139 297h-59l-64 -297h-98zM686 782q16 -2 37 -2h43q80 0 128 40t48 108q0 37 -29.5 60.5t-99.5 23.5q-23 0 -42 -1t-38 -1z" />
|
||||
<glyph unicode="°" horiz-adv-x="729" d="M221 1065q0 55 21.5 106.5t61.5 90t96.5 62.5t125.5 24q106 0 156.5 -56.5t50.5 -138.5q0 -53 -19.5 -102.5t-58.5 -87t-96 -61t-133 -23.5q-109 0 -157 56t-48 130zM319 1079q0 -53 30 -88t93 -35q94 0 140.5 54.5t46.5 130.5q0 53 -29 88t-94 35q-49 0 -84 -15.5 t-58.5 -42t-34 -59.5t-10.5 -68z" />
|
||||
<glyph unicode="±" horiz-adv-x="987" d="M84 143l22 109h654l-23 -109h-653zM182 610l25 109h272l45 213h107l-45 -213h274l-24 -109h-275l-49 -235h-106l49 235h-273z" />
|
||||
<glyph unicode="²" horiz-adv-x="763" d="M141 612l19 86q66 66 147.5 125.5t153 117.5t121 118.5t49.5 126.5q0 33 -19.5 63.5t-79.5 30.5q-53 0 -113.5 -31.5t-105.5 -77.5l-4 91q57 43 121 71.5t123 28.5q92 0 139 -44t47 -116q0 -76 -40 -139.5t-104.5 -121.5t-146 -116.5t-163.5 -126.5h358l-18 -86h-484z " />
|
||||
<glyph unicode="³" horiz-adv-x="727" d="M135 680l43 82q35 -35 66.5 -56.5t93.5 -21.5q125 0 178 57.5t53 141.5q0 47 -36.5 74.5t-131.5 27.5h-24l14 70h31q92 0 135 43t43 110q0 33 -21.5 52.5t-80.5 19.5q-55 0 -97.5 -17.5t-78.5 -41.5l-7 79q47 27 95.5 44.5t97.5 17.5q94 0 144 -39t50 -113 q0 -68 -47 -112.5t-106 -71.5q57 -18 89 -55t32 -94q0 -49 -20.5 -97.5t-63.5 -88.5t-107.5 -64.5t-152.5 -24.5q-72 0 -112 20.5t-79 57.5z" />
|
||||
<glyph unicode="´" horiz-adv-x="448" d="M250 1171l8 15l414 207q29 -2 44 -18.5t15 -39.5q0 -27 -18 -53l-447 -158l-12 6z" />
|
||||
<glyph unicode="µ" horiz-adv-x="1181" d="M-86 -227q51 70 93 132t76 125.5t58.5 129t40.5 141.5l137 641h144l-133 -623q-8 -33 -8 -71q0 -66 34.5 -109t122.5 -43q104 0 206.5 61.5t166.5 180.5l127 604h143l-198 -942h-113l20 176h-8q-45 -86 -149.5 -143.5t-241.5 -57.5q-66 0 -121 16.5t-90 55.5l-12 -27 q-35 -78 -79 -153.5t-97 -153.5z" />
|
||||
<glyph unicode="¶" horiz-adv-x="1101" d="M145 846q0 121 44 216t124 161.5t188.5 102.5t237.5 36q72 0 155 -3t169 -7l-324 -1528h-92l297 1403h-110l-297 -1403h-103l146 684h-43q-102 0 -176 26.5t-122.5 72.5t-71 107.5t-22.5 131.5z" />
|
||||
<glyph unicode="·" horiz-adv-x="497" d="M137 481q0 43 37 79t82 36q33 0 55.5 -24.5t22.5 -59.5q0 -23 -11.5 -42t-27.5 -33.5t-37.5 -24t-42.5 -9.5q-35 0 -56.5 22.5t-21.5 55.5z" />
|
||||
<glyph unicode="¸" horiz-adv-x="413" d="M-78 -365l37 48h14q23 -10 61 -17.5t77 -7.5q51 0 91 21.5t40 82.5q0 41 -27 56.5t-63 15.5q-25 0 -52.5 -4t-50.5 -10l-12 22l137 158h70l-84 -104q39 8 71 8q61 0 97.5 -35t36.5 -88q0 -39 -21.5 -74t-57.5 -62.5t-84 -44t-102 -16.5q-49 0 -95 11.5t-83 27.5v12z" />
|
||||
<glyph unicode="¹" horiz-adv-x="499" d="M221 1227l283 135l-160 -750h-111l125 586l-129 -57z" />
|
||||
<glyph unicode="º" horiz-adv-x="796" d="M207 989q0 70 26.5 134.5t73.5 114.5t111.5 80t142.5 30q115 0 172.5 -72t57.5 -170q0 -66 -24 -128.5t-70 -111.5t-111.5 -79.5t-149.5 -30.5q-61 0 -104 19.5t-71 51t-41 73.5t-13 89zM313 999q0 -68 34 -113.5t108 -45.5q61 0 105 22.5t71.5 59t40 83t12.5 93.5 q0 66 -35 112.5t-112 46.5q-66 0 -109 -24.5t-68.5 -62t-36 -83t-10.5 -88.5z" />
|
||||
<glyph unicode="»" horiz-adv-x="985" d="M20 125l373 362l2 11l-219 362h162l199 -362l-2 -11l-351 -362h-164zM352 125l373 362l2 11l-219 362h162l198 -362l-2 -11l-350 -362h-164z" />
|
||||
<glyph unicode="¼" horiz-adv-x="1458" d="M35 -49l1259 1464h133l-1259 -1464h-133zM215 1227l283 135l-160 -750h-111l125 586l-129 -57zM825 225l19 86l393 437h98l-92 -437h74l-19 -86h-73l-49 -227h-93l50 227h-308zM948 311h203l68 316z" />
|
||||
<glyph unicode="½" horiz-adv-x="1462" d="M-2 -49l1259 1464h134l-1260 -1464h-133zM219 1227l283 135l-160 -750h-111l125 586l-129 -57zM772 -4l19 86q66 66 147.5 125t153 117.5t121 119t49.5 125.5q0 33 -19.5 64t-79.5 31q-53 0 -113.5 -32t-105.5 -77l-4 90q57 43 120.5 71.5t123.5 28.5q92 0 139 -44 t47 -115q0 -76 -40 -139.5t-104.5 -122t-146.5 -116.5t-164 -126h359l-19 -86h-483z" />
|
||||
<glyph unicode="¾" horiz-adv-x="1538" d="M100 680l43 82q35 -35 67 -56.5t93 -21.5q125 0 178.5 57.5t53.5 141.5q0 47 -37 74.5t-131 27.5h-25l14 70h31q92 0 135 43t43 110q0 33 -21.5 52.5t-80.5 19.5q-55 0 -97 -17.5t-79 -41.5l-6 79q47 27 95 44.5t97 17.5q94 0 144.5 -39t50.5 -113q0 -68 -47.5 -112.5 t-106.5 -71.5q57 -18 89 -55t32 -94q0 -49 -20.5 -97.5t-63.5 -88.5t-107.5 -64.5t-152.5 -24.5q-72 0 -112 20.5t-79 57.5zM141 -49l1260 1464h133l-1260 -1464h-133zM903 225l19 86l393 437h98l-92 -437h74l-19 -86h-73l-50 -227h-92l49 227h-307zM1026 311h203l67 316z " />
|
||||
<glyph unicode="¿" horiz-adv-x="831" d="M-51 -188q0 74 28.5 136t73.5 119.5t99.5 116t106.5 126t96 148.5t67 183h131q-25 -113 -68 -197t-93 -150.5t-102 -120.5t-94 -105.5t-69 -106.5t-27 -125q0 -66 42 -112t134 -46q33 0 71 8.5t76 21.5t71.5 31.5t60.5 41.5l8 -135q-66 -43 -152.5 -72t-164.5 -29 q-141 0 -218 74t-77 193zM430 862q0 43 39 77t82 34q35 0 55.5 -22.5t20.5 -55.5q0 -43 -35 -79t-82 -36q-35 0 -57.5 23.5t-22.5 58.5z" />
|
||||
<glyph unicode="À" horiz-adv-x="1316" d="M-102 0l827 1352h186l308 -1352h-175l-102 455h-604l-277 -455h-163zM424 598h485l-129 582zM678 1639v12q0 35 23.5 59.5t64.5 26.5l328 -205l2 -14l-21 -41l-16 -7l-379 158q-2 4 -2 11z" />
|
||||
<glyph unicode="Á" horiz-adv-x="1316" d="M-102 0l827 1352h186l308 -1352h-175l-102 455h-604l-277 -455h-163zM424 598h485l-129 582zM649 1518l8 14l412 205q31 -2 45 -17.5t14 -38.5q0 -29 -16 -53l-446 -158l-15 7z" />
|
||||
<glyph unicode="Â" horiz-adv-x="1316" d="M-102 0l827 1352h186l308 -1352h-175l-102 455h-604l-277 -455h-163zM424 598h485l-129 582zM635 1507l10 15l268 202h17l182 -202l2 -15l-20 -41l-15 -6l-186 127l-240 -127l-14 6z" />
|
||||
<glyph unicode="Ã" horiz-adv-x="1316" d="M-102 0l827 1352h186l308 -1352h-175l-102 455h-604l-277 -455h-163zM424 598h485l-129 582zM559 1540q14 27 33.5 55.5t46.5 50t61.5 36t77.5 14.5q51 0 88 -4t69 -10.5t61.5 -10.5t68.5 -4q35 0 72 8t73 45l21 -16q-12 -29 -31.5 -56.5t-46.5 -50t-60.5 -37 t-76.5 -14.5q-82 0 -164 14.5t-147 14.5q-51 0 -74 -13.5t-49 -37.5z" />
|
||||
<glyph unicode="Ä" horiz-adv-x="1316" d="M-102 0l827 1352h186l308 -1352h-175l-102 455h-604l-277 -455h-163zM424 598h485l-129 582zM649 1610q0 41 32 74.5t73 33.5q29 0 49 -22.5t20 -55.5q0 -43 -34.5 -73.5t-73.5 -30.5q-31 0 -48.5 20.5t-17.5 53.5zM971 1610q0 41 31.5 74.5t72.5 33.5q29 0 48.5 -22.5 t19.5 -53.5q0 -45 -35 -75.5t-72 -30.5q-29 0 -47 20.5t-18 53.5z" />
|
||||
<glyph unicode="Å" horiz-adv-x="1316" d="M-102 0l809 1321q-25 16 -38.5 43t-13.5 57q0 35 16.5 68t46.5 57.5t68.5 40t83.5 15.5q72 0 109 -41t37 -95q0 -49 -29 -86t-69 -59l301 -1321h-175l-102 455h-604l-277 -455h-163zM426 598h483l-131 582zM737 1427q0 -35 22.5 -61.5t57.5 -26.5q45 0 81 37t36 82 q0 35 -21.5 58.5t-56.5 23.5q-53 0 -86 -33t-33 -80z" />
|
||||
<glyph unicode="Æ" horiz-adv-x="1560" d="M-125 0l1008 1352h725l-31 -144h-485l-88 -420h348l-31 -143h-348l-107 -502h527l-31 -143h-680l96 455h-397l-338 -455h-168zM487 598h322l129 606z" />
|
||||
<glyph unicode="Ç" horiz-adv-x="1318" d="M125 508q0 166 57.5 320.5t167 272.5t266 189.5t355.5 71.5q111 0 216 -23.5t177 -64.5l-76 -148q-55 43 -145 72t-213 29q-188 0 -311 -63.5t-195 -166t-100.5 -229.5t-28.5 -252q0 -199 98.5 -302t294.5 -103q129 0 245 36.5t193 90.5l13 -138q-90 -47 -207 -83.5 t-256 -41.5l-66 -79q18 4 36 6t32 2q63 0 99 -34t36 -87q0 -39 -21.5 -75t-57.5 -63.5t-84 -44t-101 -16.5q-49 0 -96 11.5t-82 27.5l2 12l35 48h14q23 -10 59.5 -17.5t77.5 -7.5q53 0 91 21.5t38 82.5q0 41 -25.5 56.5t-62.5 15.5q-25 0 -51.5 -4t-50.5 -10l-13 22l117 135 q-125 8 -215 53.5t-148.5 117t-86 164t-27.5 196.5z" />
|
||||
<glyph unicode="È" horiz-adv-x="1069" d="M86 0l287 1352h741l-31 -144h-587l-88 -420h450l-31 -143h-450l-107 -502h629l-31 -143h-782zM580 1639v12q0 35 23.5 59.5t64.5 26.5l327 -205l4 -14l-22 -41l-16 -7l-379 158q-2 4 -2 11z" />
|
||||
<glyph unicode="É" horiz-adv-x="1069" d="M86 0l287 1352h741l-31 -144h-587l-88 -420h450l-31 -143h-450l-107 -502h629l-31 -143h-782zM571 1518l9 14l413 205q59 -4 60 -56q0 -20 -6.5 -31.5t-12.5 -21.5l-446 -158l-15 7z" />
|
||||
<glyph unicode="Ê" horiz-adv-x="1069" d="M86 0l287 1352h741l-31 -144h-587l-88 -420h450l-31 -143h-450l-107 -502h629l-31 -143h-782zM551 1507l10 15l268 202h17l182 -202l2 -15l-20 -41l-15 -6l-186 127l-240 -127l-14 6z" />
|
||||
<glyph unicode="Ë" horiz-adv-x="1069" d="M86 0l287 1352h741l-31 -144h-587l-88 -420h450l-31 -143h-450l-107 -502h629l-31 -143h-782zM551 1610q0 41 31.5 74.5t72.5 33.5q29 0 49.5 -22.5t20.5 -55.5q0 -43 -35 -73.5t-74 -30.5q-31 0 -48 20.5t-17 53.5zM872 1610q0 41 32 74.5t73 33.5q29 0 49.5 -22.5 t20.5 -55.5q0 -43 -35 -73.5t-74 -30.5q-31 0 -48.5 20.5t-17.5 53.5z" />
|
||||
<glyph unicode="Ì" horiz-adv-x="561" d="M86 0l287 1352h153l-286 -1352h-154zM266 1639v12q0 35 23.5 59.5t64.5 26.5l328 -205l4 -14l-22 -41l-15 -7l-381 158q-2 4 -2 11z" />
|
||||
<glyph unicode="Í" horiz-adv-x="561" d="M86 0l287 1352h153l-286 -1352h-154zM279 1518l8 14l413 205q31 -2 45.5 -17.5t14.5 -38.5q0 -20 -6 -31.5t-13 -21.5l-444 -158l-16 7z" />
|
||||
<glyph unicode="Î" horiz-adv-x="561" d="M86 0l287 1352h153l-286 -1352h-154zM240 1507l10 15l268 202h14l185 -202l2 -15l-21 -41l-16 -6l-184 127l-240 -127l-16 6z" />
|
||||
<glyph unicode="Ï" horiz-adv-x="561" d="M86 0l287 1352h153l-286 -1352h-154zM266 1610q0 41 32 74.5t73 33.5q29 0 49 -22.5t20 -55.5q0 -43 -34.5 -73.5t-73.5 -30.5q-29 0 -47.5 20.5t-18.5 53.5zM588 1610q0 41 31.5 74.5t72.5 33.5q29 0 49.5 -22.5t20.5 -55.5q0 -43 -35 -73.5t-74 -30.5q-31 0 -48 20.5 t-17 53.5z" />
|
||||
<glyph unicode="Ð" horiz-adv-x="1462" d="M59 668l19 90h178l127 594l10 2q47 6 101.5 8t111.5 2q121 0 220.5 -4t180 -19.5t145.5 -47t116 -85.5q59 -66 86.5 -168t27.5 -211q0 -162 -53 -315.5t-157.5 -273t-258 -192.5t-354.5 -73q-145 0 -259 7.5t-204 17.5l142 668h-179zM274 123q129 -12 308 -12 q158 0 276.5 53t197.5 149.5t118.5 229.5t39.5 293q0 88 -21.5 159.5t-69.5 122.5t-123.5 80t-184.5 29q-82 0 -162 -1t-145 -5l-98 -463h358l-18 -90h-359z" />
|
||||
<glyph unicode="Ñ" horiz-adv-x="1443" d="M86 0l287 1352h174l473 -1112l235 1112h154l-287 -1352h-174l-473 1110l-235 -1110h-154zM586 1540q14 27 33.5 55.5t46 50t61.5 36t78 14.5q51 0 88 -4t68.5 -10.5t61.5 -10.5t69 -4q35 0 71.5 8t73.5 45l20 -16q-12 -29 -31.5 -56.5t-46 -50t-60.5 -37t-77 -14.5 q-82 0 -163.5 14.5t-147.5 14.5q-51 0 -73.5 -13.5t-49.5 -37.5z" />
|
||||
<glyph unicode="Ò" horiz-adv-x="1560" d="M123 510q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q135 0 234.5 -43t166 -118t99.5 -174t33 -212q0 -154 -57.5 -303.5t-167 -269t-265 -193.5t-352.5 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM283 504q0 -184 105.5 -288.5t303.5 -104.5 q160 0 280 63.5t198.5 164.5t117.5 230t39 260q0 88 -25.5 161t-78 125t-133 82t-191.5 30q-164 0 -280.5 -63.5t-191.5 -166t-109.5 -232.5t-34.5 -261zM731 1651q0 35 23.5 59.5t66.5 26.5l324 -205l4 -14l-19 -41l-18 -7l-379 158q0 4 -1 11.5t-1 11.5z" />
|
||||
<glyph unicode="Ó" horiz-adv-x="1560" d="M123 510q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q135 0 234.5 -43t166 -118t99.5 -174t33 -212q0 -154 -57.5 -303.5t-167 -269t-265 -193.5t-352.5 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM283 504q0 -184 105.5 -288.5t303.5 -104.5 q160 0 280 63.5t198.5 164.5t117.5 230t39 260q0 88 -25.5 161t-78 125t-133 82t-191.5 30q-164 0 -280.5 -63.5t-191.5 -166t-109.5 -232.5t-34.5 -261zM840 1518l8 14l414 205q29 -2 43 -17.5t14 -38.5q0 -20 -16 -53l-447 -158l-14 7z" />
|
||||
<glyph unicode="Ô" horiz-adv-x="1560" d="M123 510q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q135 0 234.5 -43t166 -118t99.5 -174t33 -212q0 -154 -57.5 -303.5t-167 -269t-265 -193.5t-352.5 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM283 504q0 -184 105.5 -288.5t303.5 -104.5 q160 0 280 63.5t198.5 164.5t117.5 230t39 260q0 88 -25.5 161t-78 125t-133 82t-191.5 30q-164 0 -280.5 -63.5t-191.5 -166t-109.5 -232.5t-34.5 -261zM764 1507l8 15l268 202h17l182 -202l4 -15l-20 -41l-17 -6l-186 127l-240 -127l-12 6z" />
|
||||
<glyph unicode="Õ" horiz-adv-x="1560" d="M123 510q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q135 0 234.5 -43t166 -118t99.5 -174t33 -212q0 -154 -57.5 -303.5t-167 -269t-265 -193.5t-352.5 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM283 504q0 -184 105.5 -288.5t303.5 -104.5 q160 0 280 63.5t198.5 164.5t117.5 230t39 260q0 88 -25.5 161t-78 125t-133 82t-191.5 30q-164 0 -280.5 -63.5t-191.5 -166t-109.5 -232.5t-34.5 -261zM674 1540q14 27 34.5 55.5t46 50t60.5 36t78 14.5q51 0 88 -4t68.5 -10.5t61.5 -10.5t69 -4q35 0 72.5 8t72.5 45 l21 -16q-12 -29 -31 -56.5t-45.5 -50t-60 -37t-76.5 -14.5q-82 0 -164 14.5t-148 14.5q-51 0 -74.5 -13.5t-48.5 -37.5z" />
|
||||
<glyph unicode="Ö" horiz-adv-x="1560" d="M123 510q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q135 0 234.5 -43t166 -118t99.5 -174t33 -212q0 -154 -57.5 -303.5t-167 -269t-265 -193.5t-352.5 -74q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM283 504q0 -184 105.5 -288.5t303.5 -104.5 q160 0 280 63.5t198.5 164.5t117.5 230t39 260q0 88 -25.5 161t-78 125t-133 82t-191.5 30q-164 0 -280.5 -63.5t-191.5 -166t-109.5 -232.5t-34.5 -261zM762 1610q0 41 32.5 74.5t73.5 33.5q29 0 48.5 -22.5t19.5 -55.5q0 -43 -34 -73.5t-73 -30.5q-31 0 -49 20.5t-18 53.5 zM1083 1610q0 41 33 74.5t74 33.5q29 0 48 -22.5t19 -55.5q0 -43 -33.5 -73.5t-72.5 -30.5q-31 0 -49.5 20.5t-18.5 53.5z" />
|
||||
<glyph unicode="×" horiz-adv-x="933" d="M76 242l299 247l-195 246l92 76l195 -246l301 248l59 -76l-301 -248l197 -249l-92 -76l-197 250l-299 -248z" />
|
||||
<glyph unicode="Ø" horiz-adv-x="1558" d="M8 16l191 183q-76 131 -76 311q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q113 0 200 -31t153 -86l170 162l88 -80l-179 -170q49 -72 74 -158t25 -184q0 -154 -57.5 -303.5t-166 -269t-264 -193.5t-352.5 -74q-123 0 -214 34t-155 95l-186 -176zM283 504 q0 -111 36 -191l875 828q-53 41 -125 63.5t-170 22.5q-164 0 -280.5 -63.5t-191.5 -166t-109.5 -232.5t-34.5 -261zM389 215q109 -104 303 -104q160 0 280 63.5t198.5 164.5t117.5 230t39 260q0 127 -55 224z" />
|
||||
<glyph unicode="Ù" horiz-adv-x="1411" d="M152 317q0 61 16 138l190 897h154l-176 -828q-18 -84 -19 -147q0 -141 78 -203.5t219 -62.5q172 0 291 96t166 317l176 828h144l-191 -897q-23 -100 -72 -187.5t-125.5 -152t-181 -101.5t-235.5 -37q-119 0 -201 26t-134 71t-75.5 107t-23.5 136zM688 1639v12 q0 35 23.5 59.5t64.5 26.5l328 -205v-14l-19 -41l-18 -7l-377 158q-2 4 -2 11z" />
|
||||
<glyph unicode="Ú" horiz-adv-x="1411" d="M152 317q0 61 16 138l190 897h154l-176 -828q-18 -84 -19 -147q0 -141 78 -203.5t219 -62.5q172 0 291 96t166 317l176 828h144l-191 -897q-23 -100 -72 -187.5t-125.5 -152t-181 -101.5t-235.5 -37q-119 0 -201 26t-134 71t-75.5 107t-23.5 136zM715 1518l10 14l414 205 q59 -4 59 -56q0 -20 -6 -31.5t-12 -21.5l-447 -158l-14 7z" />
|
||||
<glyph unicode="Û" horiz-adv-x="1411" d="M152 317q0 61 16 138l190 897h154l-176 -828q-18 -84 -19 -147q0 -141 78 -203.5t219 -62.5q172 0 291 96t166 317l176 828h144l-191 -897q-23 -100 -72 -187.5t-125.5 -152t-181 -101.5t-235.5 -37q-119 0 -201 26t-134 71t-75.5 107t-23.5 136zM662 1466v41l8 15 l270 202h14l185 -202v-15l-19 -41l-18 -6l-184 127l-240 -127z" />
|
||||
<glyph unicode="Ü" horiz-adv-x="1411" d="M152 317q0 61 16 138l190 897h154l-176 -828q-18 -84 -19 -147q0 -141 78 -203.5t219 -62.5q172 0 291 96t166 317l176 828h144l-191 -897q-23 -100 -72 -187.5t-125.5 -152t-181 -101.5t-235.5 -37q-119 0 -201 26t-134 71t-75.5 107t-23.5 136zM709 1610 q0 41 32.5 74.5t73.5 33.5q29 0 48.5 -22.5t19.5 -55.5q0 -43 -34 -73.5t-73 -30.5q-31 0 -49 20.5t-18 53.5zM1030 1610q0 41 33 74.5t74 33.5q29 0 48 -22.5t19 -55.5q0 -43 -33.5 -73.5t-72.5 -30.5q-31 0 -49.5 20.5t-18.5 53.5z" />
|
||||
<glyph unicode="Ý" horiz-adv-x="1157" d="M139 1352h183l290 -650l551 650h178l-692 -797l-117 -555h-153l115 547zM637 1518l10 14l412 205q59 -4 59 -56q0 -20 -16 -53l-449 -158l-14 7z" />
|
||||
<glyph unicode="Þ" horiz-adv-x="1069" d="M86 0l287 1352h143l-55 -260q41 2 83 3t68 1q193 0 299.5 -84t106.5 -244q0 -90 -32 -177t-100.5 -155.5t-176 -110.5t-260.5 -42q-29 0 -73 1t-85 5l-62 -289h-143zM319 426q39 -4 82 -6t68 -2q201 0 290 93t89 255q0 92 -58.5 143.5t-201.5 51.5q-27 0 -72 -1.5 t-84 -3.5z" />
|
||||
<glyph unicode="ß" horiz-adv-x="1110" d="M39 0l211 995q25 115 68.5 209t105 162t140.5 104.5t173 36.5q68 0 119 -19.5t87 -51t54.5 -74.5t18.5 -90q0 -82 -48 -149.5t-105.5 -126t-105.5 -110.5t-48 -106q0 -35 21.5 -63.5t52 -56t68.5 -57.5t68.5 -66.5t52 -83.5t21.5 -111q0 -98 -41 -168t-99 -114 t-124.5 -64.5t-118.5 -20.5q-68 0 -119 28t-79 63l71 145q16 -61 63.5 -95t102.5 -34q37 0 70 15.5t59.5 44t42 71.5t15.5 98q0 82 -42 131.5t-92.5 90t-92.5 87t-42 121.5q0 59 21.5 107.5t54.5 88.5t71 77t70.5 72.5t54 75.5t21.5 87q0 53 -39 93t-119 40 q-74 0 -126 -32.5t-86.5 -86t-57 -124t-39.5 -144.5l-211 -995h-143z" />
|
||||
<glyph unicode="à" d="M66 350q0 117 37.5 228.5t110.5 198.5t176.5 141.5t234.5 54.5q137 0 212.5 -59.5t84.5 -147.5l65 176h113l-199 -942h-113l21 168h-8q-66 -76 -172.5 -134.5t-237.5 -58.5q-84 0 -145.5 30t-101.5 81t-59 119.5t-19 144.5zM217 362q0 -51 11.5 -99t37 -85t66.5 -59.5 t100 -22.5q98 0 205.5 53.5t185.5 153.5l64 301q-12 117 -85 182.5t-181 65.5q-86 0 -161 -39t-128 -104.5t-84 -156t-31 -190.5zM489 1282q0 47 19.5 78t69.5 33l325 -207l4 -15l-20 -41l-17 -6z" />
|
||||
<glyph unicode="á" d="M66 350q0 117 37.5 228.5t110.5 198.5t176.5 141.5t234.5 54.5q137 0 212.5 -59.5t84.5 -147.5l65 176h113l-199 -942h-113l21 168h-8q-66 -76 -172.5 -134.5t-237.5 -58.5q-84 0 -145.5 30t-101.5 81t-59 119.5t-19 144.5zM217 362q0 -51 11.5 -99t37 -85t66.5 -59.5 t100 -22.5q98 0 205.5 53.5t185.5 153.5l64 301q-12 117 -85 182.5t-181 65.5q-86 0 -161 -39t-128 -104.5t-84 -156t-31 -190.5zM612 1130v41l9 15l411 207q31 -2 46.5 -18.5t15.5 -39.5t-19 -53l-446 -158z" />
|
||||
<glyph unicode="â" d="M66 350q0 117 37.5 228.5t110.5 198.5t176.5 141.5t234.5 54.5q137 0 212.5 -59.5t84.5 -147.5l65 176h113l-199 -942h-113l21 168h-8q-66 -76 -172.5 -134.5t-237.5 -58.5q-84 0 -145.5 30t-101.5 81t-59 119.5t-19 144.5zM217 362q0 -51 11.5 -99t37 -85t66.5 -59.5 t100 -22.5q98 0 205.5 53.5t185.5 153.5l64 301q-12 117 -85 182.5t-181 65.5q-86 0 -161 -39t-128 -104.5t-84 -156t-31 -190.5zM494 1161l10 15l268 202h16l183 -202l2 -15l-21 -39l-14 -6l-186 125l-238 -125l-16 6z" />
|
||||
<glyph unicode="ã" d="M66 350q0 117 37.5 228.5t110.5 198.5t176.5 141.5t234.5 54.5q137 0 212.5 -59.5t84.5 -147.5l65 176h113l-199 -942h-113l21 168h-8q-66 -76 -172.5 -134.5t-237.5 -58.5q-84 0 -145.5 30t-101.5 81t-59 119.5t-19 144.5zM217 362q0 -51 11.5 -99t37 -85t66.5 -59.5 t100 -22.5q98 0 205.5 53.5t185.5 153.5l64 301q-12 117 -85 182.5t-181 65.5q-86 0 -161 -39t-128 -104.5t-84 -156t-31 -190.5zM432 1194q2 14 20.5 41t48 52.5t68.5 44t82 18.5q53 0 132 -9.5t169 -9.5q35 0 73 8.5t73 44.5l20 -16q-2 -6 -17.5 -31.5t-43 -53.5 t-65.5 -50.5t-87 -22.5q-23 0 -63.5 3.5t-88.5 6.5t-95.5 6t-79.5 3q-51 0 -74 -13.5t-49 -37.5z" />
|
||||
<glyph unicode="ä" d="M66 350q0 117 37.5 228.5t110.5 198.5t176.5 141.5t234.5 54.5q137 0 212.5 -59.5t84.5 -147.5l65 176h113l-199 -942h-113l21 168h-8q-66 -76 -172.5 -134.5t-237.5 -58.5q-84 0 -145.5 30t-101.5 81t-59 119.5t-19 144.5zM217 362q0 -51 11.5 -99t37 -85t66.5 -59.5 t100 -22.5q98 0 205.5 53.5t185.5 153.5l64 301q-12 117 -85 182.5t-181 65.5q-86 0 -161 -39t-128 -104.5t-84 -156t-31 -190.5zM532 1266q0 41 33 74.5t74 33.5q29 0 47.5 -22.5t18.5 -53.5q0 -45 -35 -75.5t-70 -30.5q-31 0 -49.5 20.5t-18.5 53.5zM854 1264 q0 43 33 76.5t71 33.5q29 0 48.5 -22.5t19.5 -55.5q0 -43 -34 -73.5t-72 -30.5q-29 0 -47.5 20.5t-18.5 51.5z" />
|
||||
<glyph unicode="å" d="M66 350q0 117 37.5 228.5t110.5 198.5t176.5 141.5t234.5 54.5q137 0 212.5 -59.5t84.5 -147.5l65 176h113l-199 -942h-113l21 168h-8q-66 -76 -172.5 -134.5t-237.5 -58.5q-84 0 -145.5 30t-101.5 81t-59 119.5t-19 144.5zM217 362q0 -51 11.5 -99t37 -85t66.5 -59.5 t100 -22.5q98 0 205.5 53.5t185.5 153.5l64 301q-12 117 -85 182.5t-181 65.5q-86 0 -161 -39t-128 -104.5t-84 -156t-31 -190.5zM610 1227q0 31 15.5 61.5t42 55t64.5 40t81 15.5q70 0 105.5 -40t35.5 -89q0 -31 -14 -60.5t-41 -54.5t-64.5 -39t-82.5 -14q-74 0 -108 39 t-34 86zM688 1235q0 -33 19.5 -58.5t54.5 -25.5q47 0 79.5 36t32.5 77q0 33 -18 59.5t-55 26.5q-49 0 -81 -38t-32 -77z" />
|
||||
<glyph unicode="æ" horiz-adv-x="1673" d="M8 190q0 92 33 158t86 112t120.5 72.5t138.5 42t137.5 19.5t119.5 4h92l6 25q4 23 7.5 39t3.5 32q0 41 -15.5 69t-40.5 48q-31 23 -68.5 32t-103.5 9q-86 0 -155.5 -22.5t-139.5 -59.5l-6 123q154 80 344 80q76 0 141.5 -13.5t108.5 -46.5q23 -16 40 -44.5t22 -57.5h8 q74 70 180.5 116t222.5 46q154 0 234 -71t80 -200q0 -59 -18.5 -117.5t-37.5 -82.5h-690l-8 -37q-12 -55 -12 -105q0 -117 64.5 -196.5t201.5 -79.5q49 0 98 10t95 25.5t86 35t73 40.5l4 -109q-31 -16 -74 -35.5t-94 -36t-109.5 -28t-119.5 -11.5q-137 0 -223 56.5 t-125 148.5h-8q-106 -113 -234.5 -159t-245.5 -46q-111 0 -165 61.5t-54 153.5zM164 221q0 -59 34.5 -92t98.5 -33q41 0 90 13.5t99.5 40t98.5 65.5t87 88l41 191h-19q-92 0 -186 -8.5t-171 -36t-125 -82t-48 -146.5zM895 610h559q4 10 10 23.5t6 50.5q0 86 -61 130t-149 44 q-135 0 -225.5 -71t-139.5 -177z" />
|
||||
<glyph unicode="ç" horiz-adv-x="1024" d="M70 369q0 111 36.5 219t112.5 193t190.5 138.5t268.5 53.5q98 0 187 -22.5t139 -59.5l-62 -121q-39 35 -121 62.5t-170 27.5q-109 0 -188.5 -41t-131.5 -107.5t-78 -148.5t-26 -164q0 -63 16.5 -119.5t50.5 -99.5t85 -67.5t123 -24.5q82 0 173 32t161 85l6 -127 q-61 -35 -160.5 -66.5t-208.5 -36.5l-65 -79q18 4 36.5 6t32.5 2q61 0 97 -34t36 -87q0 -39 -21.5 -75t-57 -63.5t-84 -44t-101.5 -16.5q-49 0 -96 11.5t-82 27.5l2 12l37 48h14q23 -10 58.5 -17.5t76.5 -7.5q53 0 91 21.5t38 82.5q0 41 -25.5 56.5t-62.5 15.5 q-25 0 -51.5 -4t-50.5 -10l-12 22l116 135q-86 8 -147.5 42t-102 86.5t-60 120t-19.5 143.5z" />
|
||||
<glyph unicode="è" horiz-adv-x="1054" d="M66 369q0 115 43 223t122.5 193t191.5 136.5t249 51.5q154 0 233.5 -71t79.5 -200q0 -59 -18.5 -117.5t-36.5 -82.5h-697q-12 -59 -12 -117q0 -61 15.5 -115.5t47 -95.5t82 -65.5t117.5 -24.5q98 0 193.5 35t161.5 76l4 -109q-31 -16 -74 -35.5t-94 -36t-109.5 -28 t-120.5 -11.5q-96 0 -166.5 32t-117.5 85t-70.5 125t-23.5 152zM268 610h568q4 10 9 23.5t5 50.5q0 86 -61.5 130t-147.5 44q-141 0 -233.5 -72t-139.5 -176zM444 1282q0 47 19.5 78t68.5 33l326 -207l2 -15l-18 -41l-19 -6z" />
|
||||
<glyph unicode="é" horiz-adv-x="1054" d="M66 369q0 115 43 223t122.5 193t191.5 136.5t249 51.5q154 0 233.5 -71t79.5 -200q0 -59 -18.5 -117.5t-36.5 -82.5h-697q-12 -59 -12 -117q0 -61 15.5 -115.5t47 -95.5t82 -65.5t117.5 -24.5q98 0 193.5 35t161.5 76l4 -109q-31 -16 -74 -35.5t-94 -36t-109.5 -28 t-120.5 -11.5q-96 0 -166.5 32t-117.5 85t-70.5 125t-23.5 152zM268 610h568q4 10 9 23.5t5 50.5q0 86 -61.5 130t-147.5 44q-141 0 -233.5 -72t-139.5 -176zM526 1171l11 15l411 207q31 -2 45.5 -18.5t14.5 -39.5q0 -18 -5.5 -30.5t-11.5 -22.5l-448 -158l-13 6z" />
|
||||
<glyph unicode="ê" horiz-adv-x="1054" d="M66 369q0 115 43 223t122.5 193t191.5 136.5t249 51.5q154 0 233.5 -71t79.5 -200q0 -59 -18.5 -117.5t-36.5 -82.5h-697q-12 -59 -12 -117q0 -61 15.5 -115.5t47 -95.5t82 -65.5t117.5 -24.5q98 0 193.5 35t161.5 76l4 -109q-31 -16 -74 -35.5t-94 -36t-109.5 -28 t-120.5 -11.5q-96 0 -166.5 32t-117.5 85t-70.5 125t-23.5 152zM268 610h568q4 10 9 23.5t5 50.5q0 86 -61.5 130t-147.5 44q-141 0 -233.5 -72t-139.5 -176zM446 1161l9 15l270 202h14l185 -202v-15l-19 -39l-16 -6l-184 125l-240 -125l-16 6z" />
|
||||
<glyph unicode="ë" horiz-adv-x="1054" d="M66 369q0 115 43 223t122.5 193t191.5 136.5t249 51.5q154 0 233.5 -71t79.5 -200q0 -59 -18.5 -117.5t-36.5 -82.5h-697q-12 -59 -12 -117q0 -61 15.5 -115.5t47 -95.5t82 -65.5t117.5 -24.5q98 0 193.5 35t161.5 76l4 -109q-31 -16 -74 -35.5t-94 -36t-109.5 -28 t-120.5 -11.5q-96 0 -166.5 32t-117.5 85t-70.5 125t-23.5 152zM268 610h568q4 10 9 23.5t5 50.5q0 86 -61.5 130t-147.5 44q-141 0 -233.5 -72t-139.5 -176zM459 1266q0 41 31.5 74.5t72.5 33.5q29 0 49.5 -22.5t20.5 -55.5q0 -43 -35 -73.5t-74 -30.5q-29 0 -47 20.5 t-18 53.5zM780 1266q0 41 32 74.5t73 33.5q29 0 49 -22.5t20 -55.5q0 -43 -34.5 -73.5t-73.5 -30.5q-29 0 -47.5 20.5t-18.5 53.5z" />
|
||||
<glyph unicode="ì" horiz-adv-x="458" d="M39 0l201 942h143l-201 -942h-143zM88 1293v12q0 35 23.5 60.5t66.5 27.5l326 -207l4 -15l-23 -41l-16 -6l-379 158q-2 4 -2 11z" />
|
||||
<glyph unicode="í" horiz-adv-x="458" d="M39 0l201 942h143l-201 -942h-143zM160 1171l8 15l414 207q29 -2 44 -18.5t15 -39.5t-18 -53l-447 -158l-14 6z" />
|
||||
<glyph unicode="î" horiz-adv-x="458" d="M39 0l201 942h143l-201 -942h-143zM113 1161l8 15l268 202h17l182 -202l4 -15l-23 -39l-14 -6l-186 125l-238 -125l-16 6z" />
|
||||
<glyph unicode="ï" horiz-adv-x="458" d="M39 0l201 942h143l-201 -942h-143zM133 1266q0 41 33 74.5t74 33.5q29 0 48 -22.5t19 -55.5q0 -43 -33.5 -73.5t-72.5 -30.5q-31 0 -49.5 20.5t-18.5 53.5zM455 1266q0 41 32.5 74.5t73.5 33.5q29 0 48.5 -22.5t19.5 -55.5q0 -43 -34 -73.5t-73 -30.5q-31 0 -49 20.5 t-18 53.5z" />
|
||||
<glyph unicode="ð" horiz-adv-x="1181" d="M70 369q0 111 36.5 219t111.5 194t186.5 138.5t261.5 52.5q113 0 193.5 -38t103.5 -124l6 2q-2 123 -11.5 216t-29.5 171l-271 -65l-14 94l254 63q-23 59 -56.5 112.5t-78.5 111.5h149q31 -35 56.5 -84.5t48.5 -110.5l258 65l16 -98l-248 -61q23 -86 33 -178.5t10 -188.5 q0 -84 -10 -182t-36.5 -196.5t-71.5 -189.5t-116 -162t-169 -113t-231 -42q-104 0 -176 33t-118 87.5t-66.5 125t-20.5 148.5zM225 383q0 -59 14.5 -113.5t44 -95.5t77 -65.5t112.5 -24.5q102 0 181 46t133.5 117.5t82 160t27.5 174.5q0 137 -70.5 207.5t-191.5 70.5 q-109 0 -185.5 -44t-127 -113.5t-74 -153.5t-23.5 -166z" />
|
||||
<glyph unicode="ñ" horiz-adv-x="1112" d="M39 0l201 942h112l-22 -176h8q45 86 150.5 146.5t242.5 60.5q55 0 103.5 -12.5t83 -39t55 -69.5t20.5 -107q0 -47 -12 -104l-137 -641h-144l134 623q8 39 8 77q0 82 -43 117t-115 35q-51 0 -104.5 -16.5t-102.5 -48t-92 -77.5t-74 -106l-129 -604h-143zM379 1194 q14 27 34.5 55.5t46 50t60.5 36t78 14.5q51 0 88 -4.5t68.5 -10.5t61.5 -10t69 -4q35 0 72.5 8t72.5 45l21 -16q-12 -29 -32 -56.5t-45.5 -50t-59 -37t-76.5 -14.5q-82 0 -164 14.5t-148 14.5q-51 0 -74.5 -13.5t-50.5 -37.5z" />
|
||||
<glyph unicode="ò" horiz-adv-x="1155" d="M68 367q0 113 38.5 221t113.5 194t186.5 138.5t257.5 52.5q102 0 174.5 -32t120 -86t69 -125t21.5 -150q0 -115 -37 -223.5t-111 -192.5t-184.5 -136.5t-257.5 -52.5q-102 0 -177 31t-122 85t-69.5 125t-22.5 151zM221 383q0 -59 14.5 -113.5t46 -95.5t81 -65.5 t118.5 -24.5q102 0 179 42t129.5 109.5t78 152.5t25.5 171q0 61 -14.5 115.5t-46 95.5t-81 64.5t-118.5 23.5q-102 0 -180 -42t-129.5 -109.5t-77 -152.5t-25.5 -171zM440 1293v12q0 35 24.5 60.5t63.5 27.5l328 -207l2 -15l-20 -41l-15 -6l-381 158q-2 4 -2 11z" />
|
||||
<glyph unicode="ó" horiz-adv-x="1155" d="M68 367q0 113 38.5 221t113.5 194t186.5 138.5t257.5 52.5q102 0 174.5 -32t120 -86t69 -125t21.5 -150q0 -115 -37 -223.5t-111 -192.5t-184.5 -136.5t-257.5 -52.5q-102 0 -177 31t-122 85t-69.5 125t-22.5 151zM221 383q0 -59 14.5 -113.5t46 -95.5t81 -65.5 t118.5 -24.5q102 0 179 42t129.5 109.5t78 152.5t25.5 171q0 61 -14.5 115.5t-46 95.5t-81 64.5t-118.5 23.5q-102 0 -180 -42t-129.5 -109.5t-77 -152.5t-25.5 -171zM541 1171l10 15l412 207q31 -2 46 -18.5t15 -39.5t-18 -53l-447 -158l-14 6z" />
|
||||
<glyph unicode="ô" horiz-adv-x="1155" d="M68 367q0 113 38.5 221t113.5 194t186.5 138.5t257.5 52.5q102 0 174.5 -32t120 -86t69 -125t21.5 -150q0 -115 -37 -223.5t-111 -192.5t-184.5 -136.5t-257.5 -52.5q-102 0 -177 31t-122 85t-69.5 125t-22.5 151zM221 383q0 -59 14.5 -113.5t46 -95.5t81 -65.5 t118.5 -24.5q102 0 179 42t129.5 109.5t78 152.5t25.5 171q0 61 -14.5 115.5t-46 95.5t-81 64.5t-118.5 23.5q-102 0 -180 -42t-129.5 -109.5t-77 -152.5t-25.5 -171zM479 1161l10 15l271 202h14l182 -202l2 -15l-18 -39l-16 -6l-187 125l-237 -125l-17 6z" />
|
||||
<glyph unicode="õ" horiz-adv-x="1155" d="M68 367q0 113 38.5 221t113.5 194t186.5 138.5t257.5 52.5q102 0 174.5 -32t120 -86t69 -125t21.5 -150q0 -115 -37 -223.5t-111 -192.5t-184.5 -136.5t-257.5 -52.5q-102 0 -177 31t-122 85t-69.5 125t-22.5 151zM221 383q0 -59 14.5 -113.5t46 -95.5t81 -65.5 t118.5 -24.5q102 0 179 42t129.5 109.5t78 152.5t25.5 171q0 61 -14.5 115.5t-46 95.5t-81 64.5t-118.5 23.5q-102 0 -180 -42t-129.5 -109.5t-77 -152.5t-25.5 -171zM375 1194q14 27 33.5 55.5t46 50t61.5 36t78 14.5q51 0 88 -4.5t68.5 -10.5t61.5 -10t69 -4q35 0 71.5 8 t73.5 45l21 -16q-12 -29 -32 -56.5t-46.5 -50t-60.5 -37t-77 -14.5q-82 0 -163.5 14.5t-147.5 14.5q-51 0 -73.5 -13.5t-49.5 -37.5z" />
|
||||
<glyph unicode="ö" horiz-adv-x="1155" d="M68 367q0 113 38.5 221t113.5 194t186.5 138.5t257.5 52.5q102 0 174.5 -32t120 -86t69 -125t21.5 -150q0 -115 -37 -223.5t-111 -192.5t-184.5 -136.5t-257.5 -52.5q-102 0 -177 31t-122 85t-69.5 125t-22.5 151zM221 383q0 -59 14.5 -113.5t46 -95.5t81 -65.5 t118.5 -24.5q102 0 179 42t129.5 109.5t78 152.5t25.5 171q0 61 -14.5 115.5t-46 95.5t-81 64.5t-118.5 23.5q-102 0 -180 -42t-129.5 -109.5t-77 -152.5t-25.5 -171zM483 1266q0 41 33 74.5t74 33.5q29 0 48 -22.5t19 -55.5q0 -43 -33.5 -73.5t-72.5 -30.5 q-31 0 -49.5 20.5t-18.5 53.5zM805 1266q0 41 32.5 74.5t73.5 33.5q29 0 48.5 -22.5t19.5 -55.5q0 -43 -34 -73.5t-73 -30.5q-31 0 -49 20.5t-18 53.5z" />
|
||||
<glyph unicode="÷" horiz-adv-x="1150" d="M127 436l23 107h847l-22 -107h-848zM418 147q0 45 37 79t82 34q33 0 55 -23.5t22 -58.5q0 -23 -11 -42t-27.5 -34.5t-38 -24.5t-41.5 -9q-35 0 -56.5 22t-21.5 57zM555 797q0 43 37 78.5t82 35.5q33 0 55.5 -24.5t22.5 -59.5q0 -23 -11.5 -42t-28 -33.5t-38 -23.5 t-41.5 -9q-35 0 -56.5 22.5t-21.5 55.5z" />
|
||||
<glyph unicode="ø" horiz-adv-x="1155" d="M-29 16l148 136q-51 90 -51 215q0 113 38.5 221t113.5 194t186.5 138.5t257.5 52.5q86 0 149.5 -22.5t110.5 -61.5l133 123l88 -80l-148 -135q27 -47 39.5 -102.5t12.5 -114.5q0 -115 -37 -223.5t-111 -192.5t-184.5 -136.5t-255.5 -52.5q-88 0 -153.5 21.5t-112.5 62.5 l-144 -131zM223 383q0 -33 3 -62.5t14 -58.5l575 526q-33 33 -78 51.5t-104 18.5q-102 0 -179 -42t-128.5 -109.5t-77 -152.5t-25.5 -171zM299 154q31 -33 76 -51.5t106 -18.5q102 0 179 42t129.5 109.5t79 152.5t26.5 171q0 66 -18 125z" />
|
||||
<glyph unicode="ù" horiz-adv-x="1110" d="M82 197q0 45 12 104l137 641h144l-133 -623q-4 -23 -7.5 -42t-3.5 -35q0 -82 44 -114t114 -32q104 0 207.5 61.5t167.5 180.5l127 604h143l-200 -942h-113l22 176h-8q-45 -86 -149.5 -143.5t-241.5 -57.5q-55 0 -103 11.5t-83 37t-55.5 69t-20.5 104.5zM422 1293v12 q0 35 23.5 60.5t64.5 27.5l326 -207l2 -15l-19 -41l-18 -6l-377 158q-2 4 -2 11z" />
|
||||
<glyph unicode="ú" horiz-adv-x="1110" d="M82 197q0 45 12 104l137 641h144l-133 -623q-4 -23 -7.5 -42t-3.5 -35q0 -82 44 -114t114 -32q104 0 207.5 61.5t167.5 180.5l127 604h143l-200 -942h-113l22 176h-8q-45 -86 -149.5 -143.5t-241.5 -57.5q-55 0 -103 11.5t-83 37t-55.5 69t-20.5 104.5zM469 1130v41 l10 15l412 207q29 -2 44 -18.5t15 -39.5q0 -12 -5 -25.5t-11 -27.5l-449 -158z" />
|
||||
<glyph unicode="û" horiz-adv-x="1110" d="M82 197q0 45 12 104l137 641h144l-133 -623q-4 -23 -7.5 -42t-3.5 -35q0 -82 44 -114t114 -32q104 0 207.5 61.5t167.5 180.5l127 604h143l-200 -942h-113l22 176h-8q-45 -86 -149.5 -143.5t-241.5 -57.5q-55 0 -103 11.5t-83 37t-55.5 69t-20.5 104.5zM434 1122v39l6 15 l273 202h14l182 -202l2 -15l-18 -39l-19 -6l-186 125l-237 -125z" />
|
||||
<glyph unicode="ü" horiz-adv-x="1110" d="M82 197q0 45 12 104l137 641h144l-133 -623q-4 -23 -7.5 -42t-3.5 -35q0 -82 44 -114t114 -32q104 0 207.5 61.5t167.5 180.5l127 604h143l-200 -942h-113l22 176h-8q-45 -86 -149.5 -143.5t-241.5 -57.5q-55 0 -103 11.5t-83 37t-55.5 69t-20.5 104.5zM449 1266 q0 41 32.5 74.5t73.5 33.5q29 0 49.5 -22.5t20.5 -55.5q0 -43 -35 -73.5t-74 -30.5q-31 0 -49 20.5t-18 53.5zM770 1266q0 41 33 74.5t74 33.5q29 0 49 -22.5t20 -55.5q0 -43 -34.5 -73.5t-73.5 -30.5q-31 0 -49.5 20.5t-18.5 53.5z" />
|
||||
<glyph unicode="ý" horiz-adv-x="1060" d="M-158 -383q6 -2 13.5 -4t27.5 -2q41 0 79 8t79 33q84 51 162 149.5t153 229.5l-276 911h170l207 -784l504 784h161l-635 -950q-43 -66 -105.5 -155t-140 -169t-168.5 -136t-192 -56q-16 0 -23.5 1t-15.5 5v135zM522 1171l10 15l412 207q31 -2 45.5 -18.5t14.5 -39.5 q0 -18 -5.5 -30.5t-11.5 -22.5l-448 -158l-13 6z" />
|
||||
<glyph unicode="þ" horiz-adv-x="1179" d="M-74 -532l436 2048h144l-160 -750q29 35 72 71.5t95 66.5t112.5 49.5t126.5 19.5q84 0 145 -30t101 -81t59.5 -119.5t19.5 -144.5q0 -117 -39 -228.5t-110.5 -198.5t-175 -141.5t-234.5 -54.5q-137 0 -213 59.5t-84 147.5l-151 -714h-144zM256 344q6 -59 31.5 -104 t63.5 -78t87 -49.5t103 -16.5q88 0 158.5 40t119.5 106.5t76 151.5t27 175q0 57 -13.5 108.5t-41 90.5t-71.5 61.5t-106 22.5q-98 0 -195.5 -53.5t-175.5 -153.5z" />
|
||||
<glyph unicode="ÿ" horiz-adv-x="1060" d="M-158 -383q6 -2 13.5 -4t27.5 -2q41 0 79 8t79 33q84 51 162 149.5t153 229.5l-276 911h170l207 -784l504 784h161l-635 -950q-43 -66 -105.5 -155t-140 -169t-168.5 -136t-192 -56q-16 0 -23.5 1t-15.5 5v135zM426 1266q0 41 31.5 74.5t72.5 33.5q29 0 49.5 -22.5 t20.5 -55.5q0 -43 -35 -73.5t-73 -30.5q-29 0 -47.5 20.5t-18.5 53.5zM748 1266q0 41 31.5 74.5t72.5 33.5q29 0 49.5 -22.5t20.5 -55.5q0 -43 -35 -73.5t-74 -30.5q-29 0 -47 20.5t-18 53.5z" />
|
||||
<glyph unicode="Œ" horiz-adv-x="1753" d="M123 510q0 168 59.5 321.5t169 271.5t262 188.5t338.5 70.5q39 0 75 -3t71 -7h702l-31 -144h-548l-91 -420h412l-31 -143h-411l-107 -502h590l-31 -143h-708q-92 -25 -201 -25q-135 0 -233.5 42t-162 115t-94 170t-30.5 208zM295 518q0 -199 96 -303t285 -104 q88 0 162 18l229 1079q-68 18 -149 19q-176 0 -295 -61.5t-192 -161t-104.5 -227.5t-31.5 -259z" />
|
||||
<glyph unicode="œ" horiz-adv-x="1865" d="M68 365q0 113 38.5 221t113.5 194t186.5 138.5t257.5 52.5q152 0 236.5 -60.5t119.5 -158.5q80 98 197.5 158.5t265.5 60.5q154 0 233.5 -71t79.5 -200q0 -59 -18.5 -117.5t-36.5 -82.5h-690l-4 -21q-12 -59 -13 -114q0 -59 15.5 -110.5t47 -90.5t81 -60.5t118.5 -21.5 q49 0 98.5 10t95.5 25.5t86 35t73 40.5l4 -109q-31 -16 -74 -35.5t-94 -36t-109.5 -28t-120.5 -11.5q-139 0 -228 57.5t-126 151.5q-74 -94 -183.5 -151.5t-258.5 -57.5q-102 0 -177 31t-122 85t-69.5 125t-22.5 151zM221 381q0 -59 14.5 -113.5t46 -95.5t81 -65.5 t118.5 -24.5q102 0 179 42t129.5 109.5t78 152.5t25.5 171q0 61 -14.5 115.5t-46 95.5t-81 64.5t-118.5 23.5q-102 0 -180 -42t-129.5 -109.5t-77 -152.5t-25.5 -171zM1087 608h560q4 10 10 23.5t6 50.5q0 86 -61.5 130t-149.5 44q-135 0 -225.5 -71t-139.5 -177z" />
|
||||
<glyph unicode="Ÿ" horiz-adv-x="1157" d="M139 1352h183l290 -650l551 650h178l-692 -797l-117 -555h-153l115 547zM559 1610q0 41 33 74.5t74 33.5q29 0 47 -22.5t18 -53.5q0 -45 -33.5 -75.5t-70.5 -30.5q-31 0 -49.5 20.5t-18.5 53.5zM881 1608q0 43 32.5 76.5t71.5 33.5q29 0 48.5 -22.5t19.5 -55.5 q0 -43 -34 -73.5t-73 -30.5q-29 0 -47 20.5t-18 51.5z" />
|
||||
<glyph unicode="ˆ" horiz-adv-x="479" d="M248 1161l8 15l270 202h17l180 -202l4 -15l-20 -39l-17 -6l-186 125l-240 -125l-12 6z" />
|
||||
<glyph unicode="˜" horiz-adv-x="636" d="M254 1194q14 27 33.5 55.5t46 50t61.5 36t78 14.5q51 0 88 -4.5t69 -10.5t61.5 -10t68.5 -4q35 0 72.5 8t72.5 45l21 -16q-25 -57 -77 -107.5t-136 -50.5q-82 0 -164 14.5t-148 14.5q-51 0 -74.5 -13.5t-50.5 -37.5z" />
|
||||
<glyph unicode=" " horiz-adv-x="868" />
|
||||
<glyph unicode=" " horiz-adv-x="1736" />
|
||||
<glyph unicode=" " horiz-adv-x="868" />
|
||||
<glyph unicode=" " horiz-adv-x="1736" />
|
||||
<glyph unicode=" " horiz-adv-x="577" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode=" " horiz-adv-x="288" />
|
||||
<glyph unicode=" " horiz-adv-x="288" />
|
||||
<glyph unicode=" " horiz-adv-x="217" />
|
||||
<glyph unicode=" " horiz-adv-x="346" />
|
||||
<glyph unicode=" " horiz-adv-x="96" />
|
||||
<glyph unicode="‐" horiz-adv-x="995" d="M125 436l22 107h693l-23 -107h-692z" />
|
||||
<glyph unicode="‑" horiz-adv-x="995" d="M125 436l22 107h693l-23 -107h-692z" />
|
||||
<glyph unicode="‒" horiz-adv-x="995" d="M125 436l22 107h693l-23 -107h-692z" />
|
||||
<glyph unicode="–" horiz-adv-x="1150" d="M125 436l22 107h848l-22 -107h-848z" />
|
||||
<glyph unicode="—" horiz-adv-x="1617" d="M125 436l22 107h1315l-22 -107h-1315z" />
|
||||
<glyph unicode="‘" horiz-adv-x="456" d="M266 1130l45 216l185 157l32 -39l-112 -149h51l-39 -185h-162z" />
|
||||
<glyph unicode="’" horiz-adv-x="419" d="M250 1169l112 150h-51l39 184h162l-47 -215l-182 -158z" />
|
||||
<glyph unicode="‚" horiz-adv-x="491" d="M-12 -160l112 150h-51l39 184h162l-47 -215l-183 -158z" />
|
||||
<glyph unicode="“" horiz-adv-x="763" d="M266 1130l45 216l185 157l32 -39l-112 -149h51l-39 -185h-162zM573 1130l45 216l185 157l33 -39l-113 -149h51l-39 -185h-162z" />
|
||||
<glyph unicode="”" horiz-adv-x="727" d="M250 1169l112 150h-51l39 184h162l-47 -215l-182 -158zM557 1169l113 150h-52l39 184h162l-47 -215l-182 -158z" />
|
||||
<glyph unicode="„" horiz-adv-x="821" d="M-12 -160l112 150h-51l39 184h162l-47 -215l-183 -158zM317 -160l113 150h-51l39 184h162l-48 -215l-182 -158z" />
|
||||
<glyph unicode="•" horiz-adv-x="677" d="M182 473q0 31 14.5 61.5t39 53t55.5 37t63 14.5q47 0 80 -36t33 -85q0 -33 -15.5 -61.5t-40 -50t-55 -34t-61.5 -12.5q-51 0 -82 33t-31 80z" />
|
||||
<glyph unicode="…" horiz-adv-x="1249" d="M45 55q0 43 37 79t82 36q35 0 56.5 -24.5t21.5 -59.5q0 -23 -11.5 -42t-28 -33.5t-38 -24t-41.5 -9.5q-35 0 -56.5 22.5t-21.5 55.5zM432 55q0 43 38 79t81 36q35 0 56.5 -24.5t21.5 -59.5q0 -23 -11.5 -42t-28 -33.5t-38 -24t-41.5 -9.5q-35 0 -56.5 22.5t-21.5 55.5z M819 55q0 43 38 79t81 36q35 0 56.5 -24.5t21.5 -59.5q0 -23 -11.5 -42t-27.5 -33.5t-37.5 -24t-42.5 -9.5q-35 0 -56.5 22.5t-21.5 55.5z" />
|
||||
<glyph unicode=" " horiz-adv-x="346" />
|
||||
<glyph unicode="‹" horiz-adv-x="653" d="M88 487l2 11l352 362h162l-373 -362l-2 -11l217 -362h-163z" />
|
||||
<glyph unicode="›" horiz-adv-x="653" d="M20 125l373 362l2 11l-219 362h162l199 -362l-2 -11l-351 -362h-164z" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode="€" horiz-adv-x="1267" d="M72 522l22 107h150q6 57 20 108h-147l22 107h158q41 111 105.5 205t150.5 163.5t190.5 109.5t227.5 40q92 0 183 -23.5t149 -64.5l-74 -148q-47 43 -121 72t-178 29q-109 0 -188.5 -33t-137 -86t-94.5 -121.5t-59 -142.5h546l-22 -107h-551q-6 -29 -9 -56.5t-5 -51.5h542 l-22 -107h-527v-35q0 -184 72 -280t213 -96q111 0 210 36.5t167 90.5l12 -138q-84 -49 -190.5 -87t-233.5 -38q-111 0 -189.5 40t-129.5 110t-76 162t-25 196v39h-161z" />
|
||||
<glyph unicode="™" horiz-adv-x="1404" d="M268 1257l17 80h440l-16 -80h-172l-107 -501h-96l106 501h-172zM678 756l123 581h98l96 -495l303 495h97l-123 -581h-80l90 428l-262 -428h-92l-80 430l-92 -430h-78z" />
|
||||
<glyph unicode="" horiz-adv-x="940" d="M0 940h940v-940h-940v940z" />
|
||||
<glyph unicode="fi" horiz-adv-x="1071" d="M-25 -532l295 1378h-157l16 76l162 18q41 199 92 312.5t109 172.5q61 66 118.5 83.5t110.5 17.5q102 0 178 -34t123 -69l-96 -123q-80 57 -137.5 88t-116.5 31q-45 0 -76 -19.5t-53.5 -62.5t-42 -110.5t-39.5 -161.5l-27 -123h221l-20 -96h-221l-295 -1378h-144zM653 0 l201 942h143l-200 -942h-144z" />
|
||||
<glyph unicode="fl" horiz-adv-x="1097" d="M-23 -532l293 1378h-157l16 76l162 18q23 111 51.5 190.5t58 137t60.5 95.5t57 62q63 59 120.5 80t104.5 21q20 0 53 -1t74 -6.5t87.5 -16.5t93.5 -29l79 43l-321 -1516h-143l288 1362q-51 29 -123.5 43t-148.5 14q-33 0 -63.5 -18.5t-58.5 -59.5t-53.5 -108.5 t-45.5 -167.5l-27 -123h221l-20 -96h-221l-293 -1378h-144z" />
|
||||
<glyph unicode="ffi" horiz-adv-x="1675" d="M1256 0l201 942h143l-201 -942h-143zM1496 1268q0 25 11 47t28.5 39.5t41 28t48.5 10.5q37 0 60.5 -28t23.5 -62q0 -49 -41 -84t-89 -35q-37 0 -60 24.5t-23 59.5zM585 -532l293 1378h-157l16 76l162 18q25 115 49.5 197t48 138t46 92t42.5 58q49 57 111.5 79t124.5 22 q8 0 28.5 -1t45 -4t50 -10.5t48.5 -19.5l-62 -121q-6 0 -26.5 7t-47 16.5t-56 17.5t-54.5 8q-31 0 -54.5 -17.5t-44 -57t-39 -105t-38.5 -162.5l-29 -135h221l-20 -96h-221l-293 -1378h-144zM-23 -532l293 1378h-157l16 76l162 18q25 115 49.5 197t48 138t46 92t42.5 58 q49 57 111.5 79t124.5 22q8 0 28.5 -1t45 -4t50 -10.5t48.5 -19.5l-62 -121q-6 0 -26.5 7t-47 16.5t-56 17.5t-54.5 8q-31 0 -54.5 -17.5t-44 -57t-39 -105t-38.5 -162.5l-29 -135h221l-20 -96h-221l-293 -1378h-144z" />
|
||||
<glyph unicode="ffl" horiz-adv-x="1699" d="M1268 0l322 1516h143l-321 -1516h-144zM585 -532l293 1378h-157l16 76l162 18q25 115 49.5 197t48 138t46 92t42.5 58q49 57 111.5 79t124.5 22q8 0 28.5 -1t45 -4t50 -10.5t48.5 -19.5l-62 -121q-6 0 -26.5 7t-47 16.5t-56 17.5t-54.5 8q-31 0 -54.5 -17.5t-44 -57 t-39 -105t-38.5 -162.5l-29 -135h221l-20 -96h-221l-293 -1378h-144zM-23 -532l293 1378h-157l16 76l162 18q25 115 49.5 197t48 138t46 92t42.5 58q49 57 111.5 79t124.5 22q8 0 28.5 -1t45 -4t50 -10.5t48.5 -19.5l-62 -121q-6 0 -26.5 7t-47 16.5t-56 17.5t-54.5 8 q-31 0 -54.5 -17.5t-44 -57t-39 -105t-38.5 -162.5l-29 -135h221l-20 -96h-221l-293 -1378h-144z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 69 KiB |
@@ -0,0 +1,247 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
This is a custom SVG webfont generated by Font Squirrel.
|
||||
Copyright : Copyright c 2011 Pablo Impallari wwwimpallaricomimpallarigmailcomCopyright c 2011 Igino Marini wwwikerncommailiginomarinicomCopyright c 2011 Brenda Gallo gbrenda1987gmailcomwith Reserved Font Name Quattrocento Sans
|
||||
Designer : Pablo Impallari
|
||||
Foundry : Pablo Impallari Igino Marini Brenda Gallo
|
||||
Foundry URL : wwwimpallaricom
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="QuattrocentoSansRegular" horiz-adv-x="1314" >
|
||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
||||
<missing-glyph horiz-adv-x="501" />
|
||||
<glyph unicode=" " horiz-adv-x="501" />
|
||||
<glyph unicode="	" horiz-adv-x="501" />
|
||||
<glyph unicode=" " horiz-adv-x="501" />
|
||||
<glyph unicode="!" horiz-adv-x="528" d="M166 1397h199l-54 -1090h-96zM170 72q0 39 27.5 68.5t68.5 29.5q37 0 66.5 -29.5t29.5 -68.5t-29.5 -67t-66.5 -28q-41 0 -68.5 28t-27.5 67z" />
|
||||
<glyph unicode=""" horiz-adv-x="684" d="M121 1499h166l-49 -442h-74zM401 1499h166l-49 -442h-74z" />
|
||||
<glyph unicode="#" horiz-adv-x="1257" d="M78 455l20 108h240l53 244h-252l21 106h254l90 426h131l-90 -426h258l90 426h131l-90 -426h248l-21 -106h-250l-53 -244h262l-20 -108h-264l-97 -455h-131l97 455h-259l-96 -455h-131l96 455h-237zM469 563h258l53 244h-258z" />
|
||||
<glyph unicode="$" horiz-adv-x="1083" d="M88 88l43 150q74 -51 154 -87t207 -40v530q-86 29 -155 61.5t-117 76.5t-73.5 102.5t-25.5 138.5q0 82 27.5 143.5t77.5 102.5t118 63.5t148 28.5v178h122v-176q90 -6 170 -26.5t140 -49.5l-43 -158q-51 45 -124 68t-143 29v-449q72 -25 141.5 -55.5t124 -77.5t88 -114.5 t33.5 -166.5q0 -94 -30.5 -162.5t-83.5 -114.5t-124 -70.5t-149 -32.5v-177h-122v174q-121 4 -224.5 36t-179.5 75zM270 1026q0 -41 13.5 -71.5t40 -54t68.5 -43t100 -40.5v406q-104 -10 -163 -57.5t-59 -139.5zM614 117q123 16 176.5 74.5t53.5 140.5q0 53 -19.5 94 t-51.5 72.5t-73 55.5t-86 42v-479z" />
|
||||
<glyph unicode="%" horiz-adv-x="1675" d="M80 977q0 80 20.5 150.5t59.5 123t94 82t127 29.5t128 -31t94 -82t58.5 -119.5t20.5 -144.5q0 -74 -20.5 -143.5t-59.5 -122.5t-97.5 -85t-131.5 -32q-72 0 -127.5 30t-92 81t-55 119.5t-18.5 144.5zM195 989q0 -147 47 -221t133 -74q51 0 88 22.5t60.5 61.5t34.5 91.5 t11 111.5q0 129 -47 209t-145 80q-100 0 -141 -79t-41 -202zM295 -49l948 1464h133l-948 -1464h-133zM997 360q0 80 20.5 151t59.5 123t94.5 81.5t126.5 29.5q72 0 128.5 -30.5t94.5 -81.5t58 -120t20 -144q0 -74 -20 -143.5t-59 -123t-97.5 -85t-132.5 -31.5 q-72 0 -127 29.5t-92 80.5t-55.5 119.5t-18.5 144.5zM1112 373q0 -147 47 -221t133 -74q51 0 88 22.5t60.5 61.5t35 91t11.5 112q0 129 -47 208.5t-146 79.5q-100 0 -141 -78.5t-41 -201.5z" />
|
||||
<glyph unicode="&" horiz-adv-x="1435" d="M129 360q0 55 17.5 113.5t51 112t86 98.5t119.5 74q-59 70 -91.5 139.5t-32.5 159.5q0 76 23.5 132t65.5 95t97 58.5t117 19.5q70 0 142.5 -23.5t141.5 -66.5l-41 -146q-47 45 -112.5 74t-126.5 29q-68 0 -116 -42t-48 -140q0 -68 26.5 -123.5t77.5 -108.5l467 -483 q33 78 33 157q0 61 -17.5 115.5t-50.5 106.5l-102 -9v97l514 75v-126l-274 -25q63 -117 63 -242q0 -133 -69 -250l225 -231h-172l-131 133q-72 -72 -175.5 -115t-234.5 -43q-117 0 -206 32t-148.5 86t-89 123.5t-29.5 143.5zM285 379q0 -66 25.5 -115t69.5 -84t105.5 -52 t135.5 -17q98 0 171.5 31.5t127.5 84.5l-426 437q-96 -33 -152.5 -109t-56.5 -176z" />
|
||||
<glyph unicode="'" horiz-adv-x="403" d="M121 1499h166l-49 -442h-74z" />
|
||||
<glyph unicode="(" horiz-adv-x="636" d="M102 670q0 262 108.5 495.5t305.5 413.5l78 -27q-84 -94 -142.5 -192t-95.5 -205.5t-53 -227.5t-16 -257q0 -84 7 -185.5t37.5 -215t92 -235.5t168.5 -247l-76 -27q-197 176 -305.5 412t-108.5 498z" />
|
||||
<glyph unicode=")" horiz-adv-x="636" d="M43 1552l78 27q197 -180 305.5 -413.5t108.5 -495.5t-109 -497.5t-305 -412.5l-76 27q106 125 167.5 247t92.5 235.5t38 215t7 185.5q0 137 -16.5 257t-53 227.5t-95 205.5t-142.5 192z" />
|
||||
<glyph unicode="*" horiz-adv-x="899" d="M125 991l252 109l-252 110l68 119l219 -166l-29 275h135l-33 -275l222 166l67 -119l-252 -110l252 -109l-65 -117l-224 162l31 -270h-133l29 270l-222 -162z" />
|
||||
<glyph unicode="+" horiz-adv-x="1017" d="M104 436v107h351v331h106v-331h352v-107h-352v-352h-106v352h-351z" />
|
||||
<glyph unicode="," horiz-adv-x="497" d="M139 -160l80 150h-51v184h162v-215l-150 -158z" />
|
||||
<glyph unicode="-" horiz-adv-x="995" d="M152 436v107h692v-107h-692z" />
|
||||
<glyph unicode="." horiz-adv-x="481" d="M145 72q0 39 27 68.5t68 29.5q39 0 68.5 -29.5t29.5 -68.5t-29.5 -67t-68.5 -28q-41 0 -68 28t-27 67z" />
|
||||
<glyph unicode="/" horiz-adv-x="868" d="M74 -117l569 1555h154l-570 -1555h-153z" />
|
||||
<glyph unicode="0" horiz-adv-x="1329" d="M121 659q0 145 37 273.5t106.5 223.5t171 150.5t230.5 55.5q131 0 232 -55.5t171 -150.5t105.5 -220t35.5 -262q0 -135 -36.5 -261t-107.5 -223.5t-175.5 -156t-239.5 -58.5q-133 0 -232.5 55.5t-165 149.5t-99 218t-33.5 261zM291 680q0 -283 95 -426t269 -143 q100 0 174 43t121 118.5t69.5 177t22.5 218.5q0 125 -23.5 227t-71.5 176t-119.5 115t-168.5 41q-98 0 -168.5 -40t-114.5 -113t-64.5 -173t-20.5 -221z" />
|
||||
<glyph unicode="1" horiz-adv-x="649" d="M51 1126l395 226v-1352h-153v1077l-197 -94z" />
|
||||
<glyph unicode="2" horiz-adv-x="1042" d="M96 0v143q92 119 205 232.5t211 222.5t163.5 215.5t65.5 214.5q0 41 -11 77t-38.5 63.5t-72 43t-109.5 15.5q-45 0 -95 -7.5t-99.5 -21.5t-92.5 -32.5t-71 -39.5l-37 136q39 20 88 38.5t101 33t106.5 21.5t103.5 7q88 0 162 -24.5t126 -67.5t80.5 -104.5t28.5 -135.5 q0 -115 -63.5 -225.5t-158.5 -220t-207.5 -220t-211.5 -221.5h656v-143h-830z" />
|
||||
<glyph unicode="3" horiz-adv-x="1095" d="M76 102l41 138q72 -59 160 -94t192 -35q166 0 253 76.5t87 224.5q0 117 -79 185.5t-265 68.5h-55v116h63q129 0 199.5 65.5t70.5 178.5q0 90 -49 145.5t-172 55.5q-47 0 -94 -8.5t-90 -21.5t-81 -31.5t-62 -39.5l-37 136q35 20 79 38.5t91 33t94 21.5t88 7 q182 0 292.5 -89t110.5 -263q0 -86 -56 -159t-138 -116q123 -41 191.5 -123t68.5 -217q0 -86 -30.5 -161.5t-94 -133t-158 -91.5t-221.5 -34q-119 0 -220 34t-179 93z" />
|
||||
<glyph unicode="4" horiz-adv-x="1040" d="M63 430v143l572 779h164v-779h141v-143h-141v-430h-154v430h-582zM238 573h407v555z" />
|
||||
<glyph unicode="5" horiz-adv-x="1101" d="M96 102l43 144q76 -59 160 -97t199 -38q156 0 243.5 76.5t87.5 224.5q0 57 -15 105t-53 82t-99.5 52.5t-153.5 18.5q-72 0 -147.5 -12.5t-143.5 -39.5l-59 31l75 713h695v-143h-566l-53 -437q63 14 133 23.5t129 9.5q92 0 171 -25.5t135.5 -74.5t88 -122t31.5 -167 q0 -90 -30.5 -172t-93 -143.5t-156.5 -98.5t-221 -37q-119 0 -220.5 34t-179.5 93z" />
|
||||
<glyph unicode="6" horiz-adv-x="1128" d="M129 612q0 141 23.5 275.5t82 239t156.5 169t246 64.5q33 0 76 -4t88 -15.5t87 -31t73 -47.5l-35 -136q-70 57 -148 79t-139 22q-106 0 -177 -44t-113 -115t-59.5 -160t-17.5 -177v-30q0 -13 2 -29l7 -2q25 45 61.5 73.5t81.5 46t94 24.5t98 7q129 0 209 -44t124 -107.5 t60.5 -136t16.5 -127.5q0 -74 -23.5 -151t-76 -139.5t-135 -101.5t-199.5 -39q-129 0 -217 45.5t-142.5 129t-79 200.5t-24.5 262zM309 395q0 -135 74 -215t209 -80q127 0 200.5 81t73.5 227q0 55 -13 107t-43 92t-80 64.5t-124 24.5q-154 0 -225.5 -86t-71.5 -215z" />
|
||||
<glyph unicode="7" horiz-adv-x="935" d="M82 1219v143h829v-143q-102 -102 -204.5 -249t-184.5 -306.5t-132 -313t-50 -268.5v-43q0 -20 2 -39h-178q-2 18 -2 40v40q0 129 54 282.5t138 308t187.5 297t199.5 251.5h-659z" />
|
||||
<glyph unicode="8" horiz-adv-x="1142" d="M119 381q0 135 65.5 229.5t182.5 128.5v9q-72 27 -126.5 100.5t-54.5 185.5q0 147 100.5 237.5t284.5 90.5q180 0 282.5 -87t102.5 -235q0 -109 -52 -183.5t-128 -106.5v-9q119 -27 183.5 -123t64.5 -233q0 -86 -26.5 -160.5t-83 -130t-142.5 -87.5t-203 -32 q-123 0 -209 34t-139 90.5t-77.5 130t-24.5 151.5zM285 371q0 -129 72.5 -200t211.5 -71t212 71t73 200q0 57 -15.5 111.5t-50 96.5t-89 67.5t-130.5 25.5q-78 0 -132 -25.5t-88 -67.5t-49 -96.5t-15 -111.5zM350 1026q0 -102 56.5 -166.5t162.5 -64.5t162.5 64.5 t56.5 166.5q0 86 -48 146.5t-171 60.5q-121 0 -170 -58.5t-49 -148.5z" />
|
||||
<glyph unicode="9" horiz-adv-x="1130" d="M104 930q0 74 24 150.5t76 139t135 101.5t200 39q129 0 217 -45t142 -129t78.5 -202t24.5 -261q0 -141 -23.5 -275.5t-81.5 -239t-156.5 -169t-245.5 -64.5q-33 0 -76 4.5t-88 15.5t-87 30.5t-73 48.5l35 135q70 -57 147.5 -78.5t139.5 -21.5q106 0 176.5 44t112.5 114.5 t59.5 159.5t17.5 177v30q0 13 -2 30l-6 2q-25 -45 -61.5 -74t-81.5 -46.5t-94.5 -24.5t-98.5 -7q-129 0 -209 44t-124 107.5t-60.5 136.5t-16.5 128zM264 928q0 -55 13.5 -107.5t43 -92.5t80 -64.5t123.5 -24.5q154 0 225.5 86t71.5 215q0 135 -73.5 215t-208.5 80 q-127 0 -201 -81t-74 -226z" />
|
||||
<glyph unicode=":" horiz-adv-x="495" d="M152 72q0 39 26.5 68.5t67.5 29.5q39 0 68.5 -29.5t29.5 -68.5t-29.5 -67t-68.5 -28q-41 0 -67.5 28t-26.5 67zM152 836q0 39 26.5 67.5t67.5 28.5q39 0 68.5 -29t29.5 -67q0 -41 -29.5 -69t-68.5 -28q-41 0 -67.5 28t-26.5 69z" />
|
||||
<glyph unicode=";" horiz-adv-x="520" d="M154 -160l79 150h-51v184h162v-215l-149 -158zM170 836q0 39 26.5 67.5t67.5 28.5q39 0 68.5 -29t29.5 -67q0 -41 -29.5 -69t-68.5 -28q-41 0 -67.5 28t-26.5 69z" />
|
||||
<glyph unicode="<" horiz-adv-x="835" d="M78 487v11l584 397l36 -129l-403 -268v-11l405 -272l-36 -131z" />
|
||||
<glyph unicode="=" horiz-adv-x="1003" d="M156 281v106h692v-106h-692zM156 592v106h692v-106h-692z" />
|
||||
<glyph unicode=">" horiz-adv-x="835" d="M135 215l406 272v11l-404 268l37 129l584 -397v-11l-586 -403z" />
|
||||
<glyph unicode="?" horiz-adv-x="843" d="M82 1305q55 43 137 71.5t160 28.5q82 0 148.5 -24.5t112.5 -67.5t70.5 -104.5t24.5 -135.5q0 -61 -21.5 -115.5t-55 -108.5t-71.5 -109.5t-72 -120t-56.5 -140.5t-22.5 -170h-131q0 102 20.5 182t52.5 144.5t68.5 118t68.5 103.5t52.5 102.5t20.5 115.5q0 82 -52.5 139.5 t-158.5 57.5q-33 0 -70 -8.5t-71.5 -21.5t-65.5 -32.5t-51 -40.5zM281 74q0 41 27.5 68.5t66.5 27.5t68.5 -27.5t29.5 -68.5q0 -39 -29.5 -68t-68.5 -29t-66.5 29t-27.5 68z" />
|
||||
<glyph unicode="@" horiz-adv-x="1480" d="M117 369q0 117 42 249t130 244.5t224 186t325 73.5q143 0 248.5 -45t174 -116.5t101.5 -161.5t33 -183q0 -90 -30 -174t-85 -148.5t-132 -103t-171 -38.5q-49 0 -79 11t-45 30.5t-20.5 47t-5.5 60.5q-35 -70 -87 -110.5t-105 -40.5q-31 0 -61.5 15t-55 46t-40 77 t-15.5 107q0 92 34.5 166t91 126t126 81t139.5 29q49 0 107.5 -16.5t93.5 -51.5l-76 -364q-4 -23 -6 -40.5t-2 -31.5q0 -29 12 -43t47 -14q53 0 97 31.5t76 83.5t49.5 120t17.5 137q0 76 -24.5 151t-77 134t-134.5 96t-198 37q-145 0 -256 -58.5t-184.5 -152.5t-111.5 -211 t-38 -235q0 -127 40 -217.5t107.5 -148.5t156.5 -85t187 -27q84 0 156 17.5t129 43t98 54.5t64 49v-102q-20 -18 -64.5 -46t-106 -53.5t-137 -43t-159.5 -17.5q-123 0 -231.5 41t-190.5 116t-130 181.5t-48 237.5zM598 369q0 -68 18.5 -99.5t47.5 -31.5q27 0 56.5 21.5 t56 55t48 74.5t29.5 80l49 248q-12 12 -51 12q-68 0 -116 -37t-78.5 -91t-45 -117.5t-14.5 -114.5z" />
|
||||
<glyph unicode="A" d="M10 0l541 1352h186l594 -1352h-174l-199 455h-604l-180 -455h-164zM412 598h483l-254 582z" />
|
||||
<glyph unicode="B" horiz-adv-x="1144" d="M203 0v1352q66 4 153.5 7t161.5 3q182 0 293 -89t111 -263q0 -82 -34 -148.5t-106 -113.5q123 -41 192.5 -129.5t69.5 -223.5q0 -86 -30.5 -161.5t-94 -133t-157.5 -91.5t-221 -34q-100 0 -186 7.5t-152 17.5zM356 117q80 -6 179 -6q166 0 252.5 76.5t86.5 224.5 q0 117 -78.5 185.5t-265.5 68.5q-45 0 -89 -1t-85 -3v-545zM356 784q29 -2 61 -2h64q129 0 200 65.5t71 178.5q0 90 -49.5 145.5t-172.5 55.5q-45 0 -89 -1t-85 -3v-439z" />
|
||||
<glyph unicode="C" d="M117 662q0 145 43 272t128 222t211 150.5t294 55.5q111 0 221 -23.5t190 -64.5l-43 -148q-66 43 -162 72t-219 29q-137 0 -231 -40t-152.5 -111.5t-84 -173t-25.5 -224.5q0 -281 122.5 -424t366.5 -143q129 0 237.5 36.5t174.5 90.5l41 -138q-82 -49 -198 -87t-261 -38 q-168 0 -291 55.5t-203.5 149.5t-119.5 218.5t-39 263.5z" />
|
||||
<glyph unicode="D" horiz-adv-x="1441" d="M203 0v1352h10q98 4 213 7t223 3q145 0 265 -41t204 -113q109 -98 158 -239.5t49 -306.5q0 -139 -39 -263.5t-120 -218.5t-203.5 -149.5t-290.5 -55.5q-145 0 -261 7.5t-208 17.5zM356 123q129 -12 310 -12q244 0 366.5 143t122.5 424q0 123 -25.5 224.5t-84 173 t-152.5 111.5t-231 40q-82 0 -161 -1t-145 -5v-1098z" />
|
||||
<glyph unicode="E" horiz-adv-x="1069" d="M203 0v1352h741v-144h-588v-420h451v-143h-451v-502h629v-143h-782z" />
|
||||
<glyph unicode="F" horiz-adv-x="983" d="M203 0v1352h731v-144h-578v-420h428v-143h-428v-645h-153z" />
|
||||
<glyph unicode="G" horiz-adv-x="1376" d="M117 662q0 145 43 272t128 222t211 150.5t294 55.5q119 0 231.5 -23.5t200.5 -64.5l-43 -148q-66 43 -169.5 72t-232.5 29q-137 0 -231 -40t-152.5 -111.5t-84 -173t-25.5 -224.5q0 -281 122.5 -424t366.5 -143q90 0 169 18t145 47v381h153v-444q-92 -61 -210 -99.5 t-263 -38.5q-168 0 -291 55.5t-203.5 149.5t-119.5 218.5t-39 263.5z" />
|
||||
<glyph unicode="H" horiz-adv-x="1441" d="M203 0v1352h153v-584h729v584h154v-1352h-154v625h-729v-625h-153z" />
|
||||
<glyph unicode="I" horiz-adv-x="559" d="M203 0v1352h153v-1352h-153z" />
|
||||
<glyph unicode="J" horiz-adv-x="557" d="M-29 -207q80 0 127 39t69.5 99.5t29 134t6.5 143.5v1143h153v-1145q0 -109 -21.5 -204t-65.5 -167t-110.5 -113.5t-158.5 -41.5z" />
|
||||
<glyph unicode="K" horiz-adv-x="1224" d="M203 0v1352h153v-639q57 39 103.5 77.5t105.5 96.5q100 98 202.5 220t188.5 245h177q-49 -72 -107.5 -147t-120 -147.5t-122 -138t-113.5 -118.5q-23 -23 -42.5 -41.5t-37.5 -34.5l627 -725h-191l-549 627l-121 -92v-535h-153z" />
|
||||
<glyph unicode="L" horiz-adv-x="995" d="M203 0v1352h153v-1209h605v-143h-758z" />
|
||||
<glyph unicode="M" horiz-adv-x="1726" d="M203 0v1352h207l458 -1159l459 1159h197v-1352h-154v1022l-414 -1022h-184l-416 1024v-1024h-153z" />
|
||||
<glyph unicode="N" horiz-adv-x="1441" d="M203 0v1352h186l696 -1108v1108h154v-1352h-186l-697 1106v-1106h-153z" />
|
||||
<glyph unicode="O" horiz-adv-x="1548" d="M115 659q0 145 44 273.5t128 223.5t206.5 150.5t280.5 55.5q160 0 283 -55.5t207 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -285 55.5t-200.5 149.5t-119.5 218t-40 261zM285 680q0 -283 122.5 -426t356.5 -143q133 0 228 43 t155.5 118.5t89.5 177t29 218.5q0 125 -30 227t-90.5 176t-154.5 115t-223 41q-131 0 -223 -40t-149.5 -113t-84 -173t-26.5 -221z" />
|
||||
<glyph unicode="P" horiz-adv-x="1083" d="M203 0v1352h8q66 4 145.5 7t151.5 3q111 0 201 -27.5t154.5 -83t100 -136.5t35.5 -187q0 -86 -28.5 -162t-86 -133.5t-146.5 -91t-208 -33.5q-98 0 -174 6v-514h-153zM356 649q74 -6 168 -6q152 0 228.5 77t76.5 224q0 63 -16 115.5t-52 89.5t-95.5 57.5t-145.5 20.5 q-43 0 -85 -1t-79 -3v-574z" />
|
||||
<glyph unicode="Q" horiz-adv-x="1554" d="M119 659q0 145 44 273.5t128 223.5t207 150.5t280 55.5q160 0 283 -55.5t207 -150.5t127 -220t43 -262q0 -131 -40 -254t-119 -218.5t-197.5 -155.5t-276.5 -69q72 -8 140.5 -33.5t138 -52t141 -48t149.5 -21.5q82 0 174 39l-39 -131q-39 -20 -77.5 -26.5t-73.5 -6.5 q-86 0 -168 28.5t-159 62.5t-149.5 62.5t-140.5 28.5q-49 0 -118.5 -18.5t-133.5 -65.5l-28 96q53 41 116.5 61.5t122.5 24.5q-147 10 -255.5 69.5t-181.5 152t-108.5 211t-35.5 249.5zM289 674q0 -279 124 -421t359 -142q131 0 226.5 43t154.5 118.5t88 179t29 222.5 q0 123 -30 224t-91.5 174t-155.5 114t-225 41q-129 0 -220 -40t-148.5 -114t-84 -175t-26.5 -224z" />
|
||||
<glyph unicode="R" horiz-adv-x="1218" d="M203 0v1352q72 4 152.5 7t152.5 3q111 0 201 -25.5t154.5 -75t100 -122t35.5 -166.5q0 -131 -73.5 -233.5t-227.5 -143.5l519 -596h-191l-506 578q-90 0 -164 6v-584h-153zM356 717q37 -4 79 -4h89q152 0 228.5 70.5t76.5 205.5q0 106 -68.5 172t-240.5 66q-43 0 -85 -1 t-79 -3v-506z" />
|
||||
<glyph unicode="S" horiz-adv-x="1128" d="M100 88l43 150q39 -27 78 -50.5t85 -40t101.5 -26.5t127.5 -10q92 0 157.5 16t106.5 46t59.5 71t18.5 88q0 70 -33 118t-85 82.5t-114.5 58t-124.5 44.5q-88 29 -159.5 61.5t-122 77.5t-78 104.5t-27.5 141.5q0 92 34 156.5t92 105.5t138 60.5t172 19.5 q111 0 213.5 -22.5t173.5 -55.5l-43 -158q-33 29 -76.5 48.5t-92 31t-95.5 16.5t-88 5q-129 0 -203.5 -48.5t-74.5 -152.5q0 -51 19.5 -85t61.5 -60.5t106.5 -50t154.5 -54.5q76 -25 149.5 -56.5t132 -77.5t93 -114.5t34.5 -167.5q0 -104 -41 -177.5t-108.5 -120t-155.5 -67 t-182 -20.5q-133 0 -248 33t-199 80z" />
|
||||
<glyph unicode="T" horiz-adv-x="1091" d="M37 1208v144h1018v-144h-432v-1208h-154v1208h-432z" />
|
||||
<glyph unicode="U" horiz-adv-x="1409" d="M188 455v897h154v-828q0 -221 97.5 -317t269.5 -96t270 96t98 317v828h144v-897q0 -100 -31 -187.5t-94.5 -152t-159.5 -101.5t-227 -37q-143 0 -242.5 37t-161 101.5t-89.5 152t-28 187.5z" />
|
||||
<glyph unicode="V" horiz-adv-x="1318" d="M-14 1352h174l514 -1180l469 1180h164l-537 -1352h-195z" />
|
||||
<glyph unicode="W" horiz-adv-x="2213" d="M-2 1352h174l455 -1157l395 1157h174l420 -1153l412 1153h163l-481 -1352h-194l-410 1118l-381 -1118h-195z" />
|
||||
<glyph unicode="X" horiz-adv-x="1323" d="M31 0l536 698l-506 654h183l422 -547l421 547h177l-510 -662l536 -690h-182l-453 584l-448 -584h-176z" />
|
||||
<glyph unicode="Y" horiz-adv-x="1159" d="M-23 1352h183l428 -650l413 650h179l-523 -797v-555h-153v547z" />
|
||||
<glyph unicode="Z" horiz-adv-x="1134" d="M88 0v143l754 1065h-723v144h897v-144l-754 -1065h785v-143h-959z" />
|
||||
<glyph unicode="[" horiz-adv-x="585" d="M184 -195v1729h328v-86h-195v-1557h195v-86h-328z" />
|
||||
<glyph unicode="\" horiz-adv-x="864" d="M72 1438h149l570 -1555h-150z" />
|
||||
<glyph unicode="]" horiz-adv-x="585" d="M74 -109h194v1557h-194v86h327v-1729h-327v86z" />
|
||||
<glyph unicode="^" horiz-adv-x="712" d="M117 1161l6 15l225 202h17l225 -202l6 -15l-12 -39l-15 -6l-213 125l-213 -125l-14 6z" />
|
||||
<glyph unicode="_" horiz-adv-x="1001" d="M57 0h887v-106h-887v106z" />
|
||||
<glyph unicode="`" horiz-adv-x="448" d="M0 1321q0 29 18.5 49.5t53.5 22.5l370 -207l7 -15l-13 -41l-16 -6l-412 158q-8 19 -8 39z" />
|
||||
<glyph unicode="a" horiz-adv-x="1019" d="M82 252q0 117 59.5 186.5t145.5 104.5t181 45t167 10h92v25q0 78 -21.5 118.5t-62.5 69.5q-35 23 -75 32t-105 9q-86 0 -151.5 -22.5t-127.5 -59.5l-32 123q137 80 327 80q76 0 143.5 -13.5t118.5 -46.5q59 -37 94 -104.5t35 -167.5v-641h-112l-17 168h-8 q-25 -39 -65.5 -74t-91 -61.5t-108.5 -42t-116 -15.5q-135 0 -202.5 79t-67.5 198zM233 260q0 -80 44.5 -122t117.5 -42q84 0 178.5 53.5t153.5 153.5v191h-18q-84 0 -168 -6.5t-153 -31t-112 -70.5t-43 -126z" />
|
||||
<glyph unicode="b" horiz-adv-x="1177" d="M160 0v1516h143v-750q27 88 117 147.5t223 59.5q109 0 190.5 -41t136 -109.5t82 -161t27.5 -192.5q0 -98 -25.5 -187t-76.5 -157t-129 -109t-182 -41q-131 0 -225.5 58.5t-143.5 134.5h-8l-17 -168h-112zM303 303q59 -98 153.5 -152.5t192.5 -54.5q78 0 131.5 33t86 85 t47 117.5t14.5 131.5q0 86 -21.5 157.5t-60.5 123t-96.5 80t-126.5 28.5q-109 0 -196 -65.5t-124 -182.5v-301z" />
|
||||
<glyph unicode="c" horiz-adv-x="1024" d="M98 479q0 98 28 187.5t87 158t151.5 108.5t221.5 40q98 0 192 -22.5t152 -59.5l-35 -121q-47 35 -135 62.5t-176 27.5q-90 0 -152.5 -30.5t-103.5 -82t-59.5 -118t-18.5 -137.5q0 -80 22.5 -154t66.5 -129t108.5 -88t150.5 -33q82 0 169 35t144 88l29 -133 q-57 -37 -156.5 -70t-212.5 -33q-119 0 -208 41t-147 110t-88 160t-30 193z" />
|
||||
<glyph unicode="d" horiz-adv-x="1177" d="M98 469q0 100 28 192.5t82 161t136 109.5t191 41q137 0 225 -59.5t114 -147.5v750h144v-1516h-113l-16 168h-8q-49 -76 -143.5 -134.5t-225.5 -58.5q-104 0 -182 41t-129 109t-77 157t-26 187zM250 463q0 -66 14.5 -131.5t47 -117.5t86 -85t130.5 -33q98 0 193.5 53.5 t152.5 153.5v301q-37 117 -123.5 182.5t-195.5 65.5q-72 0 -128 -28.5t-95 -80t-60.5 -123t-21.5 -157.5z" />
|
||||
<glyph unicode="e" horiz-adv-x="1058" d="M96 471q0 100 32 191.5t93.5 161t152.5 109.5t208 40q180 0 278 -91t98 -257q0 -35 -4 -71t-14 -52h-690v-21q0 -78 20.5 -149.5t61.5 -126.5t103.5 -88t148.5 -33q49 0 96 11t90 28.5t80 38t65 41.5l25 -117q-27 -16 -65.5 -35.5t-86 -36t-103.5 -28t-118 -11.5 q-115 0 -203 40t-147 109t-90 159t-31 188zM264 610h559q2 10 2 19v18q0 51 -20.5 91t-55 66.5t-79.5 40t-95 13.5q-135 0 -209.5 -71t-101.5 -177z" />
|
||||
<glyph unicode="f" horiz-adv-x="610" d="M51 846v76l158 18q0 115 7 197t19.5 138t28 92t29.5 58q39 57 96 79t119 22q8 0 28.5 -1t46 -4t52.5 -10.5t51 -19.5l-35 -121q-6 0 -28.5 7t-50 16.5t-59.5 17.5t-56 8q-31 0 -51.5 -17.5t-32 -57t-16.5 -105t-5 -162.5v-135h221v-96h-221v-846h-143v846h-158z" />
|
||||
<glyph unicode="g" horiz-adv-x="1040" d="M66 -236q0 41 16 81t43 75t62.5 61.5t74.5 41.5v8q-84 39 -84 106q0 43 32 78t79 68v8q-98 39 -141.5 124t-43.5 183q0 80 27 147.5t77 118.5t120.5 80t160.5 29q53 0 105.5 -10.5t91.5 -30.5q86 2 161 10t140 27l10 -8l-14 -113l-10 -10l-187 8l-2 -6q53 -43 78 -113 t25 -135q0 -68 -25.5 -129.5t-75 -107.5t-122 -73.5t-166.5 -27.5q-23 0 -39.5 1t-30.5 1q-43 -14 -64.5 -38.5t-21.5 -41.5q0 -20 27.5 -35.5t89.5 -21.5l198 -21q68 -6 126.5 -27.5t101.5 -55t68.5 -82t25.5 -109.5q0 -59 -26.5 -121.5t-80.5 -108.5q-53 -45 -147 -73.5 t-217 -28.5q-104 0 -187 21.5t-139.5 59.5t-86 87t-29.5 104zM211 -211q0 -78 83 -124t224 -46q68 0 126 11.5t100 35t67 57t25 80.5q0 92 -99.5 132t-304.5 55q-47 0 -87 -18.5t-69.5 -47t-47 -64.5t-17.5 -71zM250 610q0 -47 15.5 -92t47 -81t77.5 -58.5t108 -22.5 q57 0 101 19.5t75 51.5t47 75t16 90t-16 96t-48 89t-79 64.5t-109 24.5q-59 0 -103 -23.5t-73.5 -60.5t-44 -82t-14.5 -90z" />
|
||||
<glyph unicode="h" horiz-adv-x="1116" d="M160 0v1516h143v-750q27 86 116 146.5t226 60.5q66 0 124 -17.5t101 -56.5t69 -102.5t26 -155.5v-641h-144v623q0 125 -55 177t-141 52q-51 0 -101.5 -16.5t-93.5 -48t-75.5 -77.5t-51.5 -106v-604h-143z" />
|
||||
<glyph unicode="i" horiz-adv-x="462" d="M129 1286q0 41 29.5 74t72.5 33q41 0 74 -33t33 -74q0 -43 -33 -72.5t-74 -29.5q-43 0 -72.5 29.5t-29.5 72.5zM160 0v942h143v-942h-143z" />
|
||||
<glyph unicode="j" horiz-adv-x="462" d="M-88 -403q12 -6 45 -7q70 0 111 40t61.5 99.5t25.5 131t5 135.5v946h143v-948q0 -104 -19.5 -199.5t-58.5 -167t-98 -113.5t-137 -42q-33 0 -45 6zM129 1286q0 41 29.5 74t72.5 33q41 0 74 -33t33 -74q0 -43 -33 -72.5t-74 -29.5q-43 0 -72.5 29.5t-29.5 72.5z" />
|
||||
<glyph unicode="k" horiz-adv-x="970" d="M160 0v1516h143v-971l414 397h164l-336 -332l401 -610h-164l-338 512l-141 -141v-371h-143z" />
|
||||
<glyph unicode="l" horiz-adv-x="487" d="M172 0v1516h143v-1516h-143z" />
|
||||
<glyph unicode="m" horiz-adv-x="1759" d="M160 0v942h112l17 -176h8q27 86 112 146.5t220 60.5q123 0 206 -54.5t105 -152.5q20 41 51 78t74 65.5t98.5 46t124.5 17.5q63 0 121.5 -17.5t102.5 -56.5t71 -102.5t27 -155.5v-641h-144v623q0 125 -57 177t-143 52q-104 0 -188.5 -64.5t-121.5 -183.5v-604h-143v623 q0 125 -57.5 177t-143.5 52q-104 0 -188 -64.5t-121 -183.5v-604h-143z" />
|
||||
<glyph unicode="n" horiz-adv-x="1116" d="M160 0v942h112l17 -176h8q27 86 119 146.5t229 60.5q66 0 124 -17.5t101 -56.5t69 -102.5t26 -155.5v-641h-144v623q0 123 -55 176t-141 53q-51 0 -101.5 -16.5t-93.5 -48t-75.5 -77.5t-51.5 -106v-604h-143z" />
|
||||
<glyph unicode="o" horiz-adv-x="1148" d="M98 475q0 100 29 190.5t87 159t148.5 108.5t210.5 40q125 0 215.5 -42t148.5 -112.5t86 -162t28 -191.5t-28 -189.5t-85 -156t-146.5 -105.5t-209.5 -39q-125 0 -216.5 41t-150.5 110t-88 159t-29 190zM250 481q0 -78 19.5 -149.5t59.5 -126.5t102.5 -88t148.5 -33 q82 0 142 30.5t100 83t58.5 121t18.5 144.5q0 78 -19.5 149.5t-60.5 126t-103.5 87t-148.5 32.5q-84 0 -143 -30.5t-98 -82t-57.5 -120t-18.5 -144.5z" />
|
||||
<glyph unicode="p" horiz-adv-x="1177" d="M160 -532v1474h112l17 -176h8q25 37 60.5 75t82.5 66.5t103.5 47t122.5 18.5q104 0 182 -41t129 -108.5t76.5 -156.5t25.5 -188q0 -102 -27.5 -193t-82 -160t-136 -110t-190.5 -41q-137 0 -225 59.5t-115 147.5v-714h-143zM303 344q18 -59 53 -104t81 -78t98.5 -49.5 t105.5 -16.5q72 0 125 29t89 80t54.5 118.5t18.5 145.5q0 74 -17.5 143.5t-54.5 122.5t-93 85t-134 32q-98 0 -183.5 -53.5t-142.5 -153.5v-301z" />
|
||||
<glyph unicode="q" horiz-adv-x="1177" d="M98 477q0 98 26 188.5t77 158t126.5 108.5t178.5 41q68 0 126 -18.5t104 -47t83 -65.5t62 -76h8l16 176h113v-1474h-144v714q-27 -88 -114.5 -147.5t-224.5 -59.5q-109 0 -191 41t-136 110t-82 160t-28 191zM250 469q0 -78 18.5 -145.5t54 -118.5t89 -80t125.5 -29 q53 0 105 16.5t98 49.5t81 78t53 104v301q-57 100 -142 153.5t-183 53.5q-78 0 -134.5 -32t-93 -85t-54 -122.5t-17.5 -143.5z" />
|
||||
<glyph unicode="r" horiz-adv-x="731" d="M160 0v942h112l17 -207h8q14 47 37.5 90t57.5 76t77 52.5t98 19.5q39 0 82 -13.5t62 -33.5l-43 -135q-33 18 -66 29t-63 11q-41 0 -78 -22.5t-68 -61t-54.5 -90t-35.5 -106.5v-551h-143z" />
|
||||
<glyph unicode="s" horiz-adv-x="903" d="M96 78l37 133q74 -68 164 -98.5t162 -30.5q102 0 155.5 50t53.5 106q0 18 -2 41.5t-16.5 48t-43 46t-82.5 34.5l-196 49q-68 16 -111 42.5t-67.5 58.5t-35 68t-10.5 72q0 125 93.5 200t248.5 75q80 0 172.5 -21.5t155.5 -62.5l-39 -123q-41 35 -122 63.5t-177 28.5 q-98 0 -142 -36t-44 -97q0 -20 6 -43t23.5 -42t47 -36.5t79.5 -28.5l145 -32q86 -18 138 -50t81 -69t38 -75t9 -70q0 -63 -25.5 -119t-73.5 -96.5t-118 -64.5t-156 -24q-109 0 -201 32t-147 71z" />
|
||||
<glyph unicode="t" horiz-adv-x="641" d="M45 846v76l162 20l31 285h108v-285h221v-96h-221v-653q0 -66 19.5 -86.5t60.5 -20.5q47 0 84 14.5t65 34.5l29 -108q-35 -16 -91 -33t-124 -17q-66 0 -102.5 18.5t-55 49.5t-23.5 69t-5 74v658h-158z" />
|
||||
<glyph unicode="u" horiz-adv-x="1114" d="M150 301v641h143v-623q0 -63 15.5 -106t41 -68.5t61 -37t78.5 -11.5q51 0 101.5 15.5t93.5 46t76 76t51 104.5v604h143v-942h-112l-17 176h-8q-27 -86 -119 -143.5t-229 -57.5q-66 0 -124 16.5t-101 54.5t-68.5 100.5t-25.5 154.5z" />
|
||||
<glyph unicode="v" horiz-adv-x="1067" d="M14 942h156l367 -807l366 807h150l-428 -942h-183z" />
|
||||
<glyph unicode="w" horiz-adv-x="1683" d="M33 942h151l295 -803l295 803h152l276 -803l314 803h145l-367 -942h-194l-256 737l-271 -737h-194z" />
|
||||
<glyph unicode="x" horiz-adv-x="1058" d="M37 0l405 481l-385 461h174l299 -358l297 358h174l-387 -457l408 -485h-174l-322 383l-315 -383h-174z" />
|
||||
<glyph unicode="y" horiz-adv-x="1062" d="M-4 942h170l375 -784l336 784h161l-432 -950q-31 -66 -74 -155t-102 -169t-139 -136t-180 -56q-16 0 -24.5 1t-18.5 5l-27 135q6 -2 14 -4t29 -2q41 0 77 8t70 33q72 51 130.5 149.5t105.5 229.5z" />
|
||||
<glyph unicode="z" horiz-adv-x="854" d="M86 0v123l498 698h-478v121h644v-119l-502 -702h522v-121h-684z" />
|
||||
<glyph unicode="{" horiz-adv-x="583" d="M74 639v61q55 2 84.5 31t44 70t16.5 86t2 82q0 31 -1 72.5t-1 84.5t-1 80t-1 60q0 63 10.5 117.5t39 92t82.5 59t143 21.5l4 -43q-45 -4 -72 -22t-40 -46t-17.5 -65t-4.5 -75q0 -18 1.5 -57.5t1.5 -82.5t1 -85t1 -68q0 -63 -9.5 -119.5t-31 -102t-58.5 -77t-94 -43.5 q57 -12 94 -44t58.5 -77t31 -101.5t9.5 -119.5q0 -27 -1 -69t-1 -85t-1.5 -82t-1.5 -57q0 -41 4.5 -77t17.5 -63.5t40 -46t72 -22.5l-4 -43q-88 0 -142.5 21.5t-83 59.5t-39 91t-10.5 119q0 23 1 61.5t1 82.5t1 87t1 72q0 37 -3 82t-16.5 84t-43 66.5t-84.5 29.5z" />
|
||||
<glyph unicode="|" horiz-adv-x="491" d="M182 -233v1806h127v-1806h-127z" />
|
||||
<glyph unicode="}" horiz-adv-x="583" d="M88 -174q45 4 71.5 22.5t40 46t17.5 63.5t4 77q0 18 -1 57t-1 82t-1 85t-1 69q0 63 9.5 119.5t31 101.5t58 76.5t94.5 44.5q-57 12 -94 43.5t-58.5 77t-31 101.5t-9.5 120q0 27 1 68.5t1 84.5t1 82t1 58q0 39 -4 75.5t-17.5 64.5t-40 46t-71.5 22l4 43q88 0 142.5 -21.5 t83 -59t39 -92t10.5 -117.5q0 -23 -1 -60t-1 -80t-1.5 -85t-1.5 -72q0 -37 2.5 -82t16.5 -86t44 -70t85 -31v-61q-55 -2 -85 -29.5t-43 -66.5t-16.5 -84t-3.5 -82q0 -29 1.5 -72t1.5 -87t1 -83t1 -61q0 -66 -10.5 -119t-39 -91t-83 -59.5t-142.5 -21.5z" />
|
||||
<glyph unicode="~" horiz-adv-x="1015" d="M154 414q0 14 12 40.5t36.5 53.5t59.5 45t78 18q27 0 71 -3t94 -6t103.5 -6t98.5 -3q35 0 70.5 8t62.5 45l24 -16q0 -6 -10 -32t-31.5 -53.5t-55.5 -50t-83 -22.5q-23 0 -74 3t-111.5 6t-116.5 6.5t-89 3.5q-51 0 -71.5 -13.5t-41.5 -38.5z" />
|
||||
<glyph unicode="¡" horiz-adv-x="491" d="M147 -446l50 1089h96l53 -1089h-199zM152 879q0 39 27.5 66.5t68.5 27.5q37 0 66.5 -27.5t29.5 -66.5t-29.5 -69t-66.5 -30q-41 0 -68.5 30t-27.5 69z" />
|
||||
<glyph unicode="¢" horiz-adv-x="1036" d="M96 449q0 86 24.5 165.5t77 142t134.5 102.5t194 50v273h123v-275q82 -6 157 -26.5t122 -51.5l-35 -120q-39 29 -105.5 51t-138.5 33v-703q72 10 142.5 42t117.5 79l29 -133q-47 -31 -123 -59.5t-166 -38.5v-261h-123v258q-109 8 -189.5 48.5t-133.5 105t-80 146.5 t-27 172zM248 461q0 -68 17.5 -129.5t53 -110.5t88 -82t119.5 -45v701q-74 -10 -127 -40t-86.5 -75t-49 -101.5t-15.5 -117.5z" />
|
||||
<glyph unicode="£" horiz-adv-x="1161" d="M70 33q80 35 135 86t89 113.5t49 134t15 145.5v31h-200v106h192q-10 94 -24.5 184.5t-14.5 161.5q0 100 35 170t91.5 114t126 63.5t136.5 19.5q94 0 180.5 -29.5t139.5 -70.5l-37 -136q-41 41 -119 71t-159 30q-61 0 -101.5 -17.5t-64 -48.5t-33.5 -72.5t-10 -89.5 q0 -70 13 -158.5t19 -191.5h285v-106h-281q-4 -104 -43.5 -220t-121.5 -212l4 -7q63 -4 127.5 -17t130 -28.5t131 -28t133.5 -12.5q51 0 93 9.5t89 29.5l-39 -149q-51 -27 -86 -34t-80 -7q-74 0 -145.5 21.5t-142 46t-143 46t-152.5 21.5q-20 0 -75.5 -9t-113.5 -56z" />
|
||||
<glyph unicode="¤" horiz-adv-x="1189" d="M113 883l61 61l164 -162q66 47 125 68.5t129 21.5q72 0 132 -21.5t120 -68.5l166 160l61 -59l-162 -164q47 -63 68.5 -122.5t21.5 -129.5q0 -68 -20.5 -127t-67.5 -121l164 -164l-63 -61l-166 162q-59 -45 -120.5 -69t-129.5 -24q-66 0 -126 23t-128 70l-164 -162l-59 61 l160 164q-90 111 -91 252q0 66 20.5 125t72.5 123zM291 469q0 -63 23.5 -118.5t65.5 -97.5t97 -65.5t119 -23.5q63 0 117.5 23.5t95.5 65.5t64.5 97.5t23.5 118.5t-23.5 118.5t-64.5 96.5t-96.5 65.5t-118.5 24.5q-61 0 -116.5 -23.5t-97.5 -64.5t-65.5 -97.5t-23.5 -119.5z " />
|
||||
<glyph unicode="¥" horiz-adv-x="1329" d="M63 1352h183l428 -650l413 650h179l-404 -615h234v-106h-303l-50 -76v-33h353v-106h-353v-416h-153v416h-352v106h352v25l-55 84h-297v106h227z" />
|
||||
<glyph unicode="¦" horiz-adv-x="499" d="M186 -233v794h127v-794h-127zM186 778v795h127v-795h-127z" />
|
||||
<glyph unicode="§" horiz-adv-x="901" d="M94 762q0 78 36 148.5t95 115.5q-25 55 -24 127q0 76 27.5 132t71.5 93t97.5 55.5t104.5 18.5q59 0 124.5 -22.5t110.5 -55.5l-51 -137q-37 41 -89 63.5t-103 22.5q-61 0 -109.5 -38t-48.5 -109q0 -59 35 -106.5t87 -90.5t113.5 -86t113.5 -91t87 -106.5t35 -134.5 q0 -78 -36 -149.5t-95 -114.5q10 -29 17 -60.5t7 -66.5q0 -76 -27.5 -132t-71.5 -93t-97 -55.5t-105 -18.5q-59 0 -124.5 22.5t-110.5 55.5l51 137q37 -41 89 -63.5t104 -22.5q61 0 109 38t48 109q0 59 -34.5 106.5t-87 90.5t-114 86t-113.5 91t-87 106.5t-35 134.5z M221 811q0 -68 44 -119t107.5 -98t133 -98.5t121.5 -116.5q29 27 41 62.5t12 70.5q0 66 -45 117t-108.5 99t-133 98.5t-119.5 115.5q-29 -27 -41 -62.5t-12 -68.5z" />
|
||||
<glyph unicode="¨" horiz-adv-x="450" d="M0 1292q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5zM281 1292q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -26 -64.5t-60 -25.5q-35 0 -59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="©" horiz-adv-x="1484" d="M121 725q0 127 48 238.5t133 195.5t197.5 132t241.5 48t243 -48t198 -132t133 -195.5t49 -238.5q0 -129 -49 -242.5t-134 -196.5t-201 -131.5t-249 -48.5q-125 0 -236.5 49.5t-194.5 133.5t-131 196.5t-48 239.5zM217 725q0 -113 40 -210t110.5 -170t164 -114t201.5 -41 q115 0 212 41t169 113t113 169t41 212q0 111 -41 207t-112 169t-167 113.5t-207 40.5t-207 -40.5t-166.5 -113.5t-110.5 -169t-40 -207zM408 729q0 70 18 131.5t58 107.5t103.5 72.5t153.5 26.5q68 0 134.5 -15.5t107.5 -41.5l-25 -105q-33 25 -95 43.5t-122 18.5 q-57 0 -97 -18.5t-64.5 -49.5t-36 -73t-11.5 -89q0 -104 54.5 -178t163.5 -74q59 0 119.5 23.5t101.5 62.5l18 -114q-41 -27 -110.5 -49.5t-147.5 -22.5q-84 0 -144.5 27.5t-100.5 73.5t-59 108.5t-19 134.5z" />
|
||||
<glyph unicode="ª" horiz-adv-x="763" d="M123 905q0 70 36 113t87 64.5t108.5 28.5t100.5 7h55v15q0 70 -43 103.5t-115 33.5q-53 0 -92 -13.5t-76 -35.5l-20 73q41 25 90 39.5t106 14.5q47 0 92.5 -11.5t80 -36t56 -63.5t21.5 -94v-387h-82l-10 100h-8q-29 -47 -91.5 -82t-133.5 -35q-80 0 -121 47t-41 119z M221 911q0 -47 22.5 -67.5t67.5 -20.5q49 0 106.5 34t92.5 93v99h-10q-49 0 -99.5 -4.5t-90.5 -17.5t-64.5 -41t-24.5 -75z" />
|
||||
<glyph unicode="«" horiz-adv-x="991" d="M106 487v11l275 362h162l-295 -362v-11l295 -362h-164zM438 487v11l275 362h161l-294 -362v-11l294 -362h-163z" />
|
||||
<glyph unicode="¬" horiz-adv-x="1294" d="M156 592v106h983v-458h-109v352h-874z" />
|
||||
<glyph unicode="­" horiz-adv-x="997" d="M152 436l4 107h688l-4 -107h-688z" />
|
||||
<glyph unicode="®" horiz-adv-x="1484" d="M121 725q0 127 48 238.5t133 195.5t197.5 132t241.5 48t243 -48t198 -132t133 -195.5t49 -238.5q0 -129 -49 -242.5t-134 -196.5t-201 -131.5t-249 -48.5q-125 0 -236.5 49.5t-194.5 133.5t-131 196.5t-48 239.5zM217 725q0 -113 40 -210t110.5 -170t164 -114t201.5 -41 q115 0 212 41t169 113t113 169t41 212q0 111 -41 207t-112 169t-167 113.5t-207 40.5t-207 -40.5t-166.5 -113.5t-110.5 -169t-40 -207zM537 412v673q35 2 86 3.5t88 1.5q55 0 102 -9.5t81 -31t52.5 -58.5t18.5 -92q0 -63 -43 -113.5t-119 -70.5l207 -303h-113l-203 297h-59 v-297h-98zM635 782q18 -2 39 -2h43q68 0 106.5 33t38.5 94q0 47 -33.5 76t-113.5 29q-23 0 -42.5 -1t-37.5 -1v-228z" />
|
||||
<glyph unicode="°" horiz-adv-x="733" d="M117 1112q0 49 16.5 91t48 75t77.5 51.5t106 18.5q125 0 188 -72t63 -170q0 -45 -15 -86t-46 -73t-79 -50t-111 -18q-66 0 -113 19.5t-77 52t-44 74.5t-14 87zM213 1114q0 -66 38 -112t114 -46q78 0 113.5 42t35.5 108t-37 112t-115 46q-80 0 -114.5 -44.5t-34.5 -105.5z " />
|
||||
<glyph unicode="±" horiz-adv-x="989" d="M168 143v109h653v-109h-653zM168 610v109h272v213h107v-213h274v-109h-274v-235h-107v235h-272z" />
|
||||
<glyph unicode="²" horiz-adv-x="768" d="M133 612v86q49 61 112.5 117.5t120 113t96.5 114t40 118.5q0 18 -5 39t-18.5 38t-36 29.5t-59.5 12.5q-53 0 -107.5 -31.5t-89.5 -77.5l-22 91q47 43 104.5 71.5t116.5 28.5q109 0 166 -55.5t57 -143.5q0 -68 -31.5 -126t-82 -113.5t-113 -109.5t-123.5 -116h358v-86 h-483z" />
|
||||
<glyph unicode="³" horiz-adv-x="731" d="M115 680l24 82q43 -35 80 -56.5t98 -21.5q100 0 145.5 45t45.5 123q0 61 -40 97t-153 36h-24v70h31q76 0 111.5 32.5t35.5 92.5q0 45 -22.5 72.5t-96.5 27.5q-55 0 -94 -17.5t-70 -41.5l-22 79q41 27 85 44.5t93 17.5q111 0 170 -49t59 -144q0 -45 -34.5 -82.5 t-81.5 -60.5q72 -23 113.5 -67t41.5 -117q0 -47 -16 -90t-52 -77t-90.5 -53.5t-129.5 -19.5q-72 0 -116 20.5t-91 57.5z" />
|
||||
<glyph unicode="´" horiz-adv-x="448" d="M0 1171l6 15l369 207q35 -2 54.5 -22.5t19.5 -49.5q0 -20 -9 -39l-413 -158l-15 6z" />
|
||||
<glyph unicode="µ" horiz-adv-x="1181" d="M82 -227q37 70 65.5 132t48 125.5t31 129t11.5 141.5v641h143v-623q0 -63 15.5 -106t41 -68.5t61.5 -37t79 -11.5q51 0 101 15.5t93 46t76 76t51 104.5v604h143v-942h-112l-17 176h-8q-27 -86 -119 -143.5t-229 -57.5q-66 0 -125 16.5t-102 55.5l-6 -27 q-35 -152 -111 -307z" />
|
||||
<glyph unicode="¶" horiz-adv-x="1091" d="M72 928q0 106 34.5 187t99 136.5t156 83t201.5 27.5q72 0 155 -3t171 -7v-1528h-92v1403h-111v-1403h-102v684h-43q-121 0 -209 33.5t-145.5 91t-86 133.5t-28.5 162z" />
|
||||
<glyph unicode="·" horiz-adv-x="495" d="M152 498q0 39 27.5 68.5t68.5 29.5q37 0 66.5 -29.5t29.5 -68.5t-29.5 -67t-66.5 -28q-41 0 -68.5 28t-27.5 67z" />
|
||||
<glyph unicode="¸" horiz-adv-x="413" d="M0 -365l27 48h14q25 -10 63.5 -17.5t77.5 -7.5q45 0 78 17.5t33 64.5q0 55 -32 74.5t-75 19.5q-25 0 -50 -4t-48 -10l-18 22l104 158h70l-62 -104q35 8 70 8q72 0 117 -42t45 -106q0 -35 -17.5 -65.5t-47.5 -54t-70.5 -38t-90.5 -14.5q-49 0 -97 11.5t-89 27.5z" />
|
||||
<glyph unicode="¹" horiz-adv-x="507" d="M88 1227l254 135v-750h-111v586l-116 -57z" />
|
||||
<glyph unicode="º" horiz-adv-x="798" d="M115 1051q0 61 19.5 114.5t56 94t89 64.5t117.5 24q70 0 123 -25t90 -67t55.5 -97t18.5 -115q0 -55 -17.5 -107t-53 -92t-89 -64.5t-125.5 -24.5q-74 0 -127 24.5t-87.5 66.5t-52 95.5t-17.5 108.5zM219 1053q0 -90 44 -151.5t136 -61.5q96 0 137.5 57t41.5 147 q0 88 -44.5 150.5t-140.5 62.5t-135 -58t-39 -146z" />
|
||||
<glyph unicode="»" horiz-adv-x="991" d="M117 125l295 362v11l-295 362h162l274 -362v-11l-272 -362h-164zM449 125l294 362v11l-294 362h161l275 -362v-11l-273 -362h-163z" />
|
||||
<glyph unicode="¼" horiz-adv-x="1456" d="M72 1227l254 135v-750h-111v586l-117 -57zM162 -49l948 1464h133l-948 -1464h-133zM895 225v86l301 437h98v-437h74v-86h-74v-227h-92v227h-307zM999 311h203v316z" />
|
||||
<glyph unicode="½" horiz-adv-x="1464" d="M76 1227l254 135v-750h-111v586l-117 -57zM125 -49l948 1464h133l-948 -1464h-133zM889 -4v86q49 61 112.5 117.5t120 113t96 113.5t39.5 119q0 18 -5 38.5t-18 38t-35.5 30t-59.5 12.5q-53 0 -107.5 -32t-89.5 -77l-22 90q47 43 104 71.5t117 28.5q109 0 166 -55 t57 -143q0 -68 -32 -126.5t-82 -113.5t-112.5 -109.5t-123.5 -115.5h358v-86h-483z" />
|
||||
<glyph unicode="¾" horiz-adv-x="1536" d="M76 678l24 82q43 -35 80 -56.5t99 -21.5q100 0 145 45t45 123q0 61 -40 97t-153 36h-24v70h31q76 0 111.5 32.5t35.5 92.5q0 45 -22.5 72.5t-96.5 27.5q-55 0 -94 -17.5t-70 -41.5l-22 79q41 27 85 44.5t93 17.5q111 0 170 -49t59 -144q0 -45 -34.5 -82.5t-81.5 -60.5 q72 -23 113.5 -67t41.5 -117q0 -47 -16 -90t-52 -77t-90.5 -53.5t-129.5 -19.5q-72 0 -116 20.5t-91 57.5zM270 -49l949 1464h133l-949 -1464h-133zM975 225v86l301 437h98v-437h74v-86h-74v-227h-92v227h-307zM1079 311h203v316z" />
|
||||
<glyph unicode="¿" horiz-adv-x="823" d="M94 -123q0 61 21.5 115.5t55.5 109t72 109.5t71.5 119.5t56 140.5t22.5 170h131q0 -102 -20.5 -182t-52 -144.5t-68.5 -118t-68.5 -103.5t-52 -103t-20.5 -115q0 -82 52 -139.5t159 -57.5q33 0 69.5 8.5t71.5 21.5t64.5 31.5t52.5 41.5l37 -135q-55 -43 -137.5 -72 t-159.5 -29q-82 0 -148.5 24.5t-113 68t-71 104.5t-24.5 135zM356 877q0 39 30 67.5t69 28.5t66.5 -29t27.5 -67q0 -41 -27.5 -69t-66.5 -28t-69 28t-30 69z" />
|
||||
<glyph unicode="À" d="M10 0l541 1352h186l594 -1352h-174l-199 455h-604l-180 -455h-164zM412 598h483l-254 582zM438 1667q0 29 18.5 48.5t53.5 21.5l371 -205l4 -14l-11 -41l-16 -7l-412 158q-8 19 -8 39z" />
|
||||
<glyph unicode="Á" d="M10 0l541 1352h186l594 -1352h-174l-199 455h-604l-180 -455h-164zM412 598h483l-254 582zM438 1518l6 14l369 205q35 -2 53.5 -21.5t18.5 -48.5q0 -10 -1 -19.5t-5 -19.5l-414 -158l-14 7z" />
|
||||
<glyph unicode="Â" d="M10 0l541 1352h186l594 -1352h-174l-199 455h-604l-180 -455h-164zM412 598h483l-254 582zM428 1507l6 15l225 202h17l225 -202l6 -15l-12 -41l-14 -6l-213 127l-213 -127l-15 6z" />
|
||||
<glyph unicode="Ã" d="M10 0l541 1352h186l594 -1352h-174l-199 455h-604l-180 -455h-164zM344 1540q8 27 22.5 55.5t36 50t53 36t74.5 14.5q51 0 89 -4t71 -10.5t63.5 -10.5t69.5 -4q35 0 70 8t63 45l25 -16q-6 -29 -19.5 -56.5t-35 -50t-52 -37t-73.5 -14.5q-82 0 -167 14.5t-151 14.5 q-51 0 -71.5 -13.5t-40.5 -37.5zM412 598h483l-254 582z" />
|
||||
<glyph unicode="Ä" d="M10 0l541 1352h186l594 -1352h-174l-199 455h-604l-180 -455h-164zM412 598h483l-254 582zM418 1626q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5zM739 1626q0 37 24.5 64.5t59.5 27.5q33 0 58.5 -27.5 t25.5 -64.5q0 -39 -25.5 -64.5t-58.5 -25.5q-35 0 -59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="Å" d="M10 0l529 1321q-35 18 -54.5 51t-19.5 72q0 63 49 110.5t129 47.5t128 -49.5t48 -112.5q0 -39 -19.5 -70t-49.5 -49l581 -1321h-174l-199 455h-604l-180 -455h-164zM412 598h483l-254 582zM545 1446q0 -41 29.5 -74t70.5 -33t66.5 31t25.5 70q0 41 -27.5 70.5t-68.5 29.5 q-45 0 -70.5 -26.5t-25.5 -67.5z" />
|
||||
<glyph unicode="Æ" horiz-adv-x="1554" d="M-14 0l721 1352h725v-144h-486v-420h348v-143h-348v-502h527v-143h-680v455h-400l-239 -455h-168zM469 598h324v606z" />
|
||||
<glyph unicode="Ç" d="M117 662q0 145 43 272t128 222t211 150.5t294 55.5q111 0 221 -23.5t190 -64.5l-43 -148q-66 43 -162 72t-219 29q-137 0 -231 -40t-152.5 -111.5t-84 -173t-25.5 -224.5q0 -281 122.5 -424t366.5 -143q129 0 237.5 36.5t174.5 90.5l41 -138q-78 -47 -188.5 -83.5 t-247.5 -41.5l-50 -79q18 4 36 6t32 2q72 0 117 -42t45 -106q0 -35 -16.5 -65.5t-46 -54t-70.5 -38t-90 -14.5t-98.5 11.5t-88.5 27.5l-2 12l27 48h14q25 -10 62.5 -17.5t78.5 -7.5q45 0 77 17.5t32 64.5q0 55 -30.5 74.5t-73.5 19.5q-25 0 -51.5 -4t-49.5 -10l-16 22 l88 135q-154 8 -267.5 66.5t-188.5 152t-110.5 213.5t-35.5 253z" />
|
||||
<glyph unicode="È" horiz-adv-x="1069" d="M203 0v1352h741v-144h-588v-420h451v-143h-451v-502h629v-143h-782zM344 1667q0 29 18.5 48.5t53.5 21.5l370 -205l7 -14l-13 -41l-16 -7l-412 158q-8 19 -8 39z" />
|
||||
<glyph unicode="É" horiz-adv-x="1069" d="M203 0v1352h741v-144h-588v-420h451v-143h-451v-502h629v-143h-782zM365 1518l6 14l370 205q35 -2 53.5 -21.5t18.5 -48.5q0 -20 -8 -39l-414 -158l-14 7z" />
|
||||
<glyph unicode="Ê" horiz-adv-x="1069" d="M203 0v1352h741v-144h-588v-420h451v-143h-451v-502h629v-143h-782zM348 1507l6 15l226 202h16l225 -202l6 -15l-12 -41l-14 -6l-213 127l-213 -127l-15 6z" />
|
||||
<glyph unicode="Ë" horiz-adv-x="1069" d="M203 0v1352h741v-144h-588v-420h451v-143h-451v-502h629v-143h-782zM324 1626q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -26 -64.5t-60 -25.5q-35 0 -59.5 25.5t-24.5 64.5zM645 1626q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5 t-60.5 -25.5t-59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="Ì" horiz-adv-x="559" d="M31 1667q0 29 18.5 48.5t52.5 21.5l371 -205l6 -14l-12 -41l-14 -7l-414 158q-8 19 -8 39zM203 0v1352h153v-1352h-153z" />
|
||||
<glyph unicode="Í" horiz-adv-x="559" d="M72 1518l6 14l371 205q35 -2 53 -21.5t18 -48.5q0 -20 -8 -39l-412 -158l-16 7zM203 0v1352h153v-1352h-153z" />
|
||||
<glyph unicode="Î" horiz-adv-x="559" d="M37 1507l6 15l225 202h15l227 -202l6 -15l-12 -41l-17 -6l-211 127l-213 -127l-16 6zM203 0v1352h153v-1352h-153z" />
|
||||
<glyph unicode="Ï" horiz-adv-x="559" d="M39 1626q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5zM203 0v1352h153v-1352h-153zM360 1626q0 37 25 64.5t59 27.5q35 0 60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="Ð" horiz-adv-x="1445" d="M29 668v90h178v594h10q98 4 213 7t223 3q145 0 265 -41t204 -113q109 -98 158 -239.5t49 -306.5q0 -139 -39 -263.5t-119.5 -218.5t-203.5 -149.5t-291 -55.5q-145 0 -261 7.5t-208 17.5v668h-178zM360 123q129 -12 310 -12q244 0 366.5 143t122.5 424q0 123 -25.5 224.5 t-84 173t-152.5 111.5t-231 40q-82 0 -161 -1t-145 -5v-463h359v-90h-359v-545z" />
|
||||
<glyph unicode="Ñ" horiz-adv-x="1441" d="M203 0v1352h174l708 -1112v1112h154v-1352h-174l-709 1110v-1110h-153zM375 1540q8 27 22.5 55.5t36 50t53 36t74.5 14.5q51 0 89 -4t71 -10.5t63.5 -10.5t69.5 -4q35 0 69.5 8t63.5 45l25 -16q-6 -29 -19.5 -56.5t-35 -50t-52.5 -37t-74 -14.5q-82 0 -166.5 14.5 t-150.5 14.5q-51 0 -71.5 -13.5t-41.5 -37.5z" />
|
||||
<glyph unicode="Ò" horiz-adv-x="1548" d="M115 659q0 145 44 273.5t128 223.5t206.5 150.5t280.5 55.5q160 0 283 -55.5t207 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -285 55.5t-200.5 149.5t-119.5 218t-40 261zM285 680q0 -283 122.5 -426t356.5 -143q133 0 228 43 t155.5 118.5t89.5 177t29 218.5q0 125 -30 227t-90.5 176t-154.5 115t-223 41q-131 0 -223 -40t-149.5 -113t-84 -173t-26.5 -221zM492 1667q0 29 18 48.5t53 21.5l369 -205l6 -14l-10 -41l-17 -7l-411 158q-8 19 -8 39z" />
|
||||
<glyph unicode="Ó" horiz-adv-x="1548" d="M115 659q0 145 44 273.5t128 223.5t206.5 150.5t280.5 55.5q160 0 283 -55.5t207 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -285 55.5t-200.5 149.5t-119.5 218t-40 261zM285 680q0 -283 122.5 -426t356.5 -143q133 0 228 43 t155.5 118.5t89.5 177t29 218.5q0 125 -30 227t-90.5 176t-154.5 115t-223 41q-131 0 -223 -40t-149.5 -113t-84 -173t-26.5 -221zM629 1518l6 14l369 205q35 -2 53 -21.5t18 -48.5q0 -18 -6 -39l-414 -158l-16 7z" />
|
||||
<glyph unicode="Ô" horiz-adv-x="1548" d="M115 659q0 145 44 273.5t128 223.5t206.5 150.5t280.5 55.5q160 0 283 -55.5t207 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -285 55.5t-200.5 149.5t-119.5 218t-40 261zM285 680q0 -283 122.5 -426t356.5 -143q133 0 228 43 t155.5 118.5t89.5 177t29 218.5q0 125 -30 227t-90.5 176t-154.5 115t-223 41q-131 0 -223 -40t-149.5 -113t-84 -173t-26.5 -221zM555 1507l6 15l225 202h17l225 -202l6 -15l-12 -41l-14 -6l-213 127l-213 -127l-15 6z" />
|
||||
<glyph unicode="Õ" horiz-adv-x="1548" d="M115 659q0 145 44 273.5t128 223.5t206.5 150.5t280.5 55.5q160 0 283 -55.5t207 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -285 55.5t-200.5 149.5t-119.5 218t-40 261zM285 680q0 -283 122.5 -426t356.5 -143q133 0 228 43 t155.5 118.5t89.5 177t29 218.5q0 125 -30 227t-90.5 176t-154.5 115t-223 41q-131 0 -223 -40t-149.5 -113t-84 -173t-26.5 -221zM459 1540q8 27 22.5 55.5t36 50t53 36t74.5 14.5q51 0 89 -4t71 -10.5t63.5 -10.5t69.5 -4q35 0 69.5 8t63.5 45l25 -16q-6 -29 -19.5 -56.5 t-35 -50t-52.5 -37t-74 -14.5q-82 0 -166.5 14.5t-150.5 14.5q-51 0 -71.5 -13.5t-41.5 -37.5z" />
|
||||
<glyph unicode="Ö" horiz-adv-x="1548" d="M115 659q0 145 44 273.5t128 223.5t206.5 150.5t280.5 55.5q160 0 283 -55.5t207 -150.5t127 -220t43 -262q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-164 0 -285 55.5t-200.5 149.5t-119.5 218t-40 261zM285 680q0 -283 122.5 -426t356.5 -143q133 0 228 43 t155.5 118.5t89.5 177t29 218.5q0 125 -30 227t-90.5 176t-154.5 115t-223 41q-131 0 -223 -40t-149.5 -113t-84 -173t-26.5 -221zM530 1626q0 37 25 64.5t59 27.5q35 0 60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5zM852 1626 q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="×" horiz-adv-x="937" d="M145 242l246 247l-246 246l76 76l246 -246l250 248l76 -76l-250 -248l250 -249l-76 -76l-250 250l-246 -248z" />
|
||||
<glyph unicode="Ø" horiz-adv-x="1548" d="M117 659q0 145 44 273.5t128 223.5t206.5 150.5t280.5 55.5q115 0 210 -28.5t171 -82.5l133 156l105 -80l-138 -164q88 -96 133.5 -222t45.5 -267q0 -135 -42 -261t-127 -223.5t-211 -156t-294 -58.5q-125 0 -224.5 32t-177.5 91l-143 -170l-98 88l147 174 q-76 94 -112.5 214t-36.5 255zM287 680q0 -229 82 -367l700 832q-117 82 -299 82q-131 0 -223 -40t-149.5 -113t-84 -173t-26.5 -221zM455 209q117 -98 311 -98q133 0 228.5 43t155.5 118.5t89 177t29 218.5q0 238 -105 385z" />
|
||||
<glyph unicode="Ù" horiz-adv-x="1409" d="M188 455v897h154v-828q0 -221 97.5 -317t269.5 -96t270 96t98 317v828h144v-897q0 -100 -31 -187.5t-94.5 -152t-159.5 -101.5t-227 -37q-143 0 -242.5 37t-161 101.5t-89.5 152t-28 187.5zM453 1667q0 29 18 48.5t53 21.5l371 -205l4 -14l-10 -41l-17 -7l-411 158 q-8 19 -8 39z" />
|
||||
<glyph unicode="Ú" horiz-adv-x="1409" d="M188 455v897h154v-828q0 -221 97.5 -317t269.5 -96t270 96t98 317v828h144v-897q0 -100 -31 -187.5t-94.5 -152t-159.5 -101.5t-227 -37q-143 0 -242.5 37t-161 101.5t-89.5 152t-28 187.5zM510 1518l6 14l371 205q35 -2 53 -21.5t18 -48.5q0 -20 -8 -39l-411 -158l-17 7 z" />
|
||||
<glyph unicode="Û" horiz-adv-x="1409" d="M188 455v897h154v-828q0 -221 97.5 -317t269.5 -96t270 96t98 317v828h144v-897q0 -100 -31 -187.5t-94.5 -152t-159.5 -101.5t-227 -37q-143 0 -242.5 37t-161 101.5t-89.5 152t-28 187.5zM459 1507l4 15l227 202h15l227 -202l4 -15l-10 -41l-17 -6l-211 127l-213 -127 l-16 6z" />
|
||||
<glyph unicode="Ü" horiz-adv-x="1409" d="M188 455v897h154v-828q0 -221 97.5 -317t269.5 -96t270 96t98 317v828h144v-897q0 -100 -31 -187.5t-94.5 -152t-159.5 -101.5t-227 -37q-143 0 -242.5 37t-161 101.5t-89.5 152t-28 187.5zM483 1626q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5 t-60.5 -25.5t-59.5 25.5t-24.5 64.5zM805 1626q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="Ý" horiz-adv-x="1159" d="M-23 1352h183l428 -650l413 650h179l-523 -797v-555h-153v547zM440 1518l6 14l369 205q35 -2 53.5 -21.5t18.5 -48.5q0 -18 -6 -39l-414 -158l-16 7z" />
|
||||
<glyph unicode="Þ" horiz-adv-x="1062" d="M203 0v1352h143v-260q41 2 82 3t68 1q221 0 351 -105.5t130 -304.5q0 -84 -25.5 -156.5t-82 -128t-146.5 -87t-217 -31.5q-29 0 -74 1t-86 5v-289h-143zM346 426q39 -4 83 -6t69 -2q160 0 234.5 68.5t74.5 211.5q0 61 -15.5 109.5t-51 82.5t-94 52.5t-146.5 18.5 q-27 0 -71 -1.5t-83 -3.5v-530z" />
|
||||
<glyph unicode="ß" horiz-adv-x="1114" d="M160 0v995q0 115 23.5 209t71.5 162t118.5 104.5t165.5 36.5q76 0 137 -23.5t104 -61.5t66.5 -88t23.5 -103q0 -70 -32.5 -128.5t-71.5 -110.5t-71.5 -100t-32.5 -93q0 -43 28.5 -75t71.5 -62.5t92 -63.5t92 -77t72 -101.5t29 -136.5q0 -84 -32 -142.5t-78 -95.5 t-100.5 -53.5t-99.5 -16.5q-68 0 -125 28t-94 63l41 145q31 -61 84 -95t109 -34q59 0 101 44t42 134q0 72 -27.5 121t-68.5 85t-88 65.5t-88 63.5t-69 78t-28 111q0 72 30 127.5t65.5 104.5t65.5 98t30 107q0 66 -46 113.5t-141 47.5q-74 0 -118.5 -32.5t-69.5 -86t-32 -124 t-7 -144.5v-995h-143z" />
|
||||
<glyph unicode="à" horiz-adv-x="1019" d="M82 252q0 117 59.5 186.5t145.5 104.5t181 45t167 10h92v25q0 78 -21.5 118.5t-62.5 69.5q-35 23 -75 32t-105 9q-86 0 -151.5 -22.5t-127.5 -59.5l-32 123q137 80 327 80q76 0 143.5 -13.5t118.5 -46.5q59 -37 94 -104.5t35 -167.5v-641h-112l-17 168h-8 q-25 -39 -65.5 -74t-91 -61.5t-108.5 -42t-116 -15.5q-135 0 -202.5 79t-67.5 198zM215 1321q0 29 18.5 49.5t53.5 22.5l368 -207l7 -15l-11 -41l-16 -6l-414 158q-6 21 -6 39zM233 260q0 -80 44.5 -122t117.5 -42q84 0 178.5 53.5t153.5 153.5v191h-18q-84 0 -168 -6.5 t-153 -31t-112 -70.5t-43 -126z" />
|
||||
<glyph unicode="á" horiz-adv-x="1019" d="M82 252q0 117 59.5 186.5t145.5 104.5t181 45t167 10h92v25q0 78 -21.5 118.5t-62.5 69.5q-35 23 -75 32t-105 9q-86 0 -151.5 -22.5t-127.5 -59.5l-32 123q137 80 327 80q76 0 143.5 -13.5t118.5 -46.5q59 -37 94 -104.5t35 -167.5v-641h-112l-17 168h-8 q-25 -39 -65.5 -74t-91 -61.5t-108.5 -42t-116 -15.5q-135 0 -202.5 79t-67.5 198zM233 260q0 -80 44.5 -122t117.5 -42q84 0 178.5 53.5t153.5 153.5v191h-18q-84 0 -168 -6.5t-153 -31t-112 -70.5t-43 -126zM367 1171l6 15l368 207q35 -2 54.5 -22.5t19.5 -49.5 q0 -20 -8 -39l-414 -158l-14 6z" />
|
||||
<glyph unicode="â" horiz-adv-x="1019" d="M82 252q0 117 59.5 186.5t145.5 104.5t181 45t167 10h92v25q0 78 -21.5 118.5t-62.5 69.5q-35 23 -75 32t-105 9q-86 0 -151.5 -22.5t-127.5 -59.5l-32 123q137 80 327 80q76 0 143.5 -13.5t118.5 -46.5q59 -37 94 -104.5t35 -167.5v-641h-112l-17 168h-8 q-25 -39 -65.5 -74t-91 -61.5t-108.5 -42t-116 -15.5q-135 0 -202.5 79t-67.5 198zM233 260q0 -80 44.5 -122t117.5 -42q84 0 178.5 53.5t153.5 153.5v191h-18q-84 0 -168 -6.5t-153 -31t-112 -70.5t-43 -126zM252 1161l6 15l225 202h17l225 -202l6 -15l-12 -39l-14 -6 l-213 125l-211 -125l-17 6z" />
|
||||
<glyph unicode="ã" horiz-adv-x="1019" d="M82 252q0 117 59.5 186.5t145.5 104.5t181 45t167 10h92v25q0 78 -21.5 118.5t-62.5 69.5q-35 23 -75 32t-105 9q-86 0 -151.5 -22.5t-127.5 -59.5l-32 123q137 80 327 80q76 0 143.5 -13.5t118.5 -46.5q59 -37 94 -104.5t35 -167.5v-641h-112l-17 168h-8 q-25 -39 -65.5 -74t-91 -61.5t-108.5 -42t-116 -15.5q-135 0 -202.5 79t-67.5 198zM182 1194q0 14 12.5 41t37 52.5t59.5 44t78 18.5q53 0 134 -9.5t171 -9.5q35 0 69.5 8.5t63.5 44.5l24 -16q0 -6 -10 -31.5t-31.5 -53.5t-55.5 -50.5t-83 -22.5q-23 0 -64.5 3.5t-89.5 6.5 t-95.5 6t-79.5 3q-51 0 -72 -13.5t-41 -37.5zM233 260q0 -80 44.5 -122t117.5 -42q84 0 178.5 53.5t153.5 153.5v191h-18q-84 0 -168 -6.5t-153 -31t-112 -70.5t-43 -126z" />
|
||||
<glyph unicode="ä" horiz-adv-x="1019" d="M82 252q0 117 59.5 186.5t145.5 104.5t181 45t167 10h92v25q0 78 -21.5 118.5t-62.5 69.5q-35 23 -75 32t-105 9q-86 0 -151.5 -22.5t-127.5 -59.5l-32 123q137 80 327 80q76 0 143.5 -13.5t118.5 -46.5q59 -37 94 -104.5t35 -167.5v-641h-112l-17 168h-8 q-25 -39 -65.5 -74t-91 -61.5t-108.5 -42t-116 -15.5q-135 0 -202.5 79t-67.5 198zM233 260q0 -80 44.5 -122t117.5 -42q84 0 178.5 53.5t153.5 153.5v191h-18q-84 0 -168 -6.5t-153 -31t-112 -70.5t-43 -126zM266 1282q0 37 24.5 64.5t59.5 27.5q33 0 58.5 -27.5 t25.5 -64.5q0 -39 -25.5 -64.5t-58.5 -25.5q-35 0 -59.5 25.5t-24.5 64.5zM588 1282q0 37 23.5 64.5t58.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-58.5 25.5t-23.5 64.5z" />
|
||||
<glyph unicode="å" horiz-adv-x="1019" d="M82 252q0 117 59.5 186.5t145.5 104.5t181 45t167 10h92v25q0 78 -21.5 118.5t-62.5 69.5q-35 23 -75 32t-105 9q-86 0 -151.5 -22.5t-127.5 -59.5l-32 123q137 80 327 80q76 0 143.5 -13.5t118.5 -46.5q59 -37 94 -104.5t35 -167.5v-641h-112l-17 168h-8 q-25 -39 -65.5 -74t-91 -61.5t-108.5 -42t-116 -15.5q-135 0 -202.5 79t-67.5 198zM233 260q0 -80 44.5 -122t117.5 -42q84 0 178.5 53.5t153.5 153.5v191h-18q-84 0 -168 -6.5t-153 -31t-112 -70.5t-43 -126zM352 1249q0 57 45 103.5t123 46.5q80 0 125 -48t45 -106 q0 -53 -43 -98t-125 -45q-43 0 -74.5 13t-53 34.5t-32 47t-10.5 52.5zM428 1251q0 -37 26.5 -68.5t67.5 -31.5t65.5 29.5t24.5 64.5q0 37 -25.5 71t-68.5 34t-66.5 -32t-23.5 -67z" />
|
||||
<glyph unicode="æ" horiz-adv-x="1677" d="M82 252q0 117 59.5 186.5t145.5 104.5t181 45t167 10h92v25q0 78 -21.5 118.5t-62.5 69.5q-35 23 -75 32t-105 9q-86 0 -151.5 -22.5t-127.5 -59.5l-32 123q137 80 327 80q76 0 143.5 -13.5t118.5 -46.5q25 -16 49.5 -44.5t34.5 -57.5h9q59 70 155 116t213 46 q180 0 278.5 -91t98.5 -257q0 -35 -4 -71t-14 -52h-691v-37q2 -76 22.5 -145.5t62.5 -122t103.5 -83t145.5 -30.5q98 0 185.5 35t144.5 76l27 -109q-27 -16 -66 -35.5t-86 -36t-103.5 -28t-117.5 -11.5q-137 0 -235.5 56.5t-157.5 148.5h-9q-82 -113 -199.5 -159t-234.5 -46 q-135 0 -202.5 79t-67.5 198zM233 260q0 -80 44.5 -122t117.5 -42q84 0 178.5 53.5t153.5 153.5v191h-18q-84 0 -168 -6.5t-153 -31t-112 -70.5t-43 -126zM885 610h559q2 10 2 19v18q0 51 -20.5 91t-55.5 66.5t-80 40t-94 13.5q-135 0 -209.5 -71t-101.5 -177z" />
|
||||
<glyph unicode="ç" horiz-adv-x="1024" d="M100 479q0 98 28 187.5t87 158t151.5 108.5t221.5 40q98 0 192 -22.5t152 -59.5l-35 -121q-47 35 -135 62.5t-176 27.5q-90 0 -152.5 -30.5t-103.5 -82t-59.5 -118t-18.5 -137.5q0 -80 22.5 -154t66.5 -129t108.5 -88t150.5 -33q82 0 167 32t142 85l33 -127 q-53 -35 -146.5 -66.5t-199.5 -36.5l-49 -79q18 4 35.5 6t31.5 2q72 0 117 -42t45 -106q0 -35 -16.5 -65.5t-46 -54t-70.5 -38t-90 -14.5t-98 11.5t-88 27.5l-2 12l26 48h15q25 -10 62.5 -17.5t78.5 -7.5q45 0 76.5 17.5t31.5 64.5q0 55 -30.5 74.5t-73.5 19.5 q-25 0 -51.5 -4t-48.5 -10l-17 22l88 135q-106 8 -185 52.5t-131 112t-79 154.5t-27 183z" />
|
||||
<glyph unicode="è" horiz-adv-x="1056" d="M96 471q0 100 32 191.5t93.5 161t152.5 109.5t208 40q180 0 278 -91t98 -257q0 -35 -4 -71t-14 -52h-690v-21q0 -78 20.5 -149.5t61.5 -126.5t103.5 -88t148.5 -33q98 0 185 35t144 76l27 -109q-27 -16 -65.5 -35.5t-86 -36t-103.5 -28t-118 -11.5q-115 0 -203 40 t-147 109t-90 159t-31 188zM264 610h559q2 10 2 19v18q0 51 -20.5 91t-55 66.5t-79.5 40t-95 13.5q-135 0 -209.5 -71t-101.5 -177zM283 1321q0 29 18 49.5t53 22.5l369 -207l6 -15l-10 -41l-17 -6l-413 158q-6 21 -6 39z" />
|
||||
<glyph unicode="é" horiz-adv-x="1056" d="M96 471q0 100 32 191.5t93.5 161t152.5 109.5t208 40q180 0 278 -91t98 -257q0 -35 -4 -71t-14 -52h-690v-21q0 -78 20.5 -149.5t61.5 -126.5t103.5 -88t148.5 -33q98 0 185 35t144 76l27 -109q-27 -16 -65.5 -35.5t-86 -36t-103.5 -28t-118 -11.5q-115 0 -203 40 t-147 109t-90 159t-31 188zM264 610h559q2 10 2 19v18q0 51 -20.5 91t-55 66.5t-79.5 40t-95 13.5q-135 0 -209.5 -71t-101.5 -177zM395 1171l6 15l369 207q35 -2 53.5 -22.5t18.5 -49.5q0 -8 -1 -18.5t-5 -20.5l-414 -158l-14 6z" />
|
||||
<glyph unicode="ê" horiz-adv-x="1056" d="M96 471q0 100 32 191.5t93.5 161t152.5 109.5t208 40q180 0 278 -91t98 -257q0 -35 -4 -71t-14 -52h-690v-21q0 -78 20.5 -149.5t61.5 -126.5t103.5 -88t148.5 -33q98 0 185 35t144 76l27 -109q-27 -16 -65.5 -35.5t-86 -36t-103.5 -28t-118 -11.5q-115 0 -203 40 t-147 109t-90 159t-31 188zM264 610h559q2 10 2 19v18q0 51 -20.5 91t-55 66.5t-79.5 40t-95 13.5q-135 0 -209.5 -71t-101.5 -177zM317 1161l5 15l227 202h14l228 -202l4 -15l-11 -39l-16 -6l-211 125l-213 -125l-16 6z" />
|
||||
<glyph unicode="ë" horiz-adv-x="1056" d="M96 471q0 100 32 191.5t93.5 161t152.5 109.5t208 40q180 0 278 -91t98 -257q0 -35 -4 -71t-14 -52h-690v-21q0 -78 20.5 -149.5t61.5 -126.5t103.5 -88t148.5 -33q98 0 185 35t144 76l27 -109q-27 -16 -65.5 -35.5t-86 -36t-103.5 -28t-118 -11.5q-115 0 -203 40 t-147 109t-90 159t-31 188zM264 610h559q2 10 2 19v18q0 51 -20.5 91t-55 66.5t-79.5 40t-95 13.5q-135 0 -209.5 -71t-101.5 -177zM305 1282q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5zM627 1282 q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -26 -64.5t-60 -25.5q-35 0 -59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="ì" horiz-adv-x="462" d="M-70 1321q0 29 18.5 49.5t53.5 22.5l371 -207l6 -15l-12 -41l-17 -6l-411 158q-9 19 -9 39zM160 0v942h143v-942h-143z" />
|
||||
<glyph unicode="í" horiz-adv-x="462" d="M31 1171l6 15l369 207q35 -2 54 -22.5t19 -49.5q0 -20 -8 -39l-414 -158l-14 6zM160 0v942h143v-942h-143z" />
|
||||
<glyph unicode="î" horiz-adv-x="462" d="M-14 1161l6 15l225 202h16l226 -202l6 -15l-12 -39l-15 -6l-213 125l-211 -125l-16 6zM160 0v942h143v-942h-143z" />
|
||||
<glyph unicode="ï" horiz-adv-x="462" d="M-16 1282q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -26 -64.5t-60 -25.5q-35 0 -59.5 25.5t-24.5 64.5zM160 0v942h143v-942h-143zM305 1282q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="ð" horiz-adv-x="1155" d="M98 481q0 98 28 187.5t86 157t148.5 107.5t214.5 40q113 0 201 -38t129 -124l6 2q-29 123 -57.5 216t-65.5 171l-256 -65l-34 94l241 63q-37 59 -82 112.5t-102 111.5h150q82 -74 151 -193l240 63l37 -98l-230 -59q63 -135 100 -300t37 -337q0 -119 -21.5 -230.5 t-75.5 -197.5t-144 -137.5t-228 -51.5q-127 0 -217 43t-146 115t-83 162t-27 186zM252 485q0 -78 18.5 -149.5t57.5 -127.5t99 -90t144 -34t144.5 34t100.5 90t59.5 129t19.5 152q0 184 -91 277.5t-237 93.5q-86 0 -146.5 -31.5t-97 -84t-54 -120t-17.5 -139.5z" />
|
||||
<glyph unicode="ñ" horiz-adv-x="1116" d="M160 0v942h112l17 -176h8q27 86 119 146.5t229 60.5q66 0 124 -17.5t101 -56.5t69 -102.5t26 -155.5v-641h-144v623q0 125 -55 177t-141 52q-51 0 -101.5 -16.5t-93.5 -48t-75.5 -77.5t-51.5 -106v-604h-143zM246 1194q8 27 22.5 55.5t36 50t53 36t74.5 14.5 q51 0 89 -4.5t71 -10.5t63.5 -10t69.5 -4q35 0 69.5 8t63.5 45l25 -16q-6 -29 -19.5 -56.5t-35 -50t-52.5 -37t-74 -14.5q-82 0 -166.5 14.5t-150.5 14.5q-51 0 -71.5 -13.5t-41.5 -37.5z" />
|
||||
<glyph unicode="ò" horiz-adv-x="1148" d="M98 475q0 100 29 190.5t87 159t148.5 108.5t210.5 40q125 0 215.5 -42t148.5 -112.5t86 -162t28 -191.5t-28 -189.5t-85 -156t-146.5 -105.5t-209.5 -39q-125 0 -216.5 41t-150.5 110t-88 159t-29 190zM250 481q0 -78 19.5 -149.5t59.5 -126.5t102.5 -88t148.5 -33 q82 0 142 30.5t100 83t58.5 121t18.5 144.5q0 78 -19.5 149.5t-60.5 126t-103.5 87t-148.5 32.5q-84 0 -143 -30.5t-98 -82t-57.5 -120t-18.5 -144.5zM279 1321q0 29 18 49.5t53 22.5l371 -207l6 -15l-12 -41l-15 -6l-413 158q-8 19 -8 39z" />
|
||||
<glyph unicode="ó" horiz-adv-x="1148" d="M98 475q0 100 29 190.5t87 159t148.5 108.5t210.5 40q125 0 215.5 -42t148.5 -112.5t86 -162t28 -191.5t-28 -189.5t-85 -156t-146.5 -105.5t-209.5 -39q-125 0 -216.5 41t-150.5 110t-88 159t-29 190zM250 481q0 -78 19.5 -149.5t59.5 -126.5t102.5 -88t148.5 -33 q82 0 142 30.5t100 83t58.5 121t18.5 144.5q0 78 -19.5 149.5t-60.5 126t-103.5 87t-148.5 32.5q-84 0 -143 -30.5t-98 -82t-57.5 -120t-18.5 -144.5zM410 1171l6 15l368 207q35 -2 54.5 -22.5t19.5 -49.5q0 -20 -8 -39l-414 -158l-14 6z" />
|
||||
<glyph unicode="ô" horiz-adv-x="1148" d="M98 475q0 100 29 190.5t87 159t148.5 108.5t210.5 40q125 0 215.5 -42t148.5 -112.5t86 -162t28 -191.5t-28 -189.5t-85 -156t-146.5 -105.5t-209.5 -39q-125 0 -216.5 41t-150.5 110t-88 159t-29 190zM250 481q0 -78 19.5 -149.5t59.5 -126.5t102.5 -88t148.5 -33 q82 0 142 30.5t100 83t58.5 121t18.5 144.5q0 78 -19.5 149.5t-60.5 126t-103.5 87t-148.5 32.5q-84 0 -143 -30.5t-98 -82t-57.5 -120t-18.5 -144.5zM350 1161l6 15l228 202h14l225 -202l6 -15l-10 -39l-16 -6l-213 125l-211 -125l-17 6z" />
|
||||
<glyph unicode="õ" horiz-adv-x="1148" d="M98 475q0 100 29 190.5t87 159t148.5 108.5t210.5 40q125 0 215.5 -42t148.5 -112.5t86 -162t28 -191.5t-28 -189.5t-85 -156t-146.5 -105.5t-209.5 -39q-125 0 -216.5 41t-150.5 110t-88 159t-29 190zM238 1194q8 27 22 55.5t35.5 50t53.5 36t75 14.5q51 0 89 -4.5 t70.5 -10.5t63.5 -10t70 -4q35 0 69.5 8t63.5 45l24 -16q-6 -29 -19 -56.5t-34.5 -50t-52.5 -37t-74 -14.5q-82 0 -167 14.5t-150 14.5q-51 0 -71.5 -13.5t-41.5 -37.5zM250 481q0 -78 19.5 -149.5t59.5 -126.5t102.5 -88t148.5 -33q82 0 142 30.5t100 83t58.5 121 t18.5 144.5q0 78 -19.5 149.5t-60.5 126t-103.5 87t-148.5 32.5q-84 0 -143 -30.5t-98 -82t-57.5 -120t-18.5 -144.5z" />
|
||||
<glyph unicode="ö" horiz-adv-x="1148" d="M98 475q0 100 29 190.5t87 159t148.5 108.5t210.5 40q125 0 215.5 -42t148.5 -112.5t86 -162t28 -191.5t-28 -189.5t-85 -156t-146.5 -105.5t-209.5 -39q-125 0 -216.5 41t-150.5 110t-88 159t-29 190zM250 481q0 -78 19.5 -149.5t59.5 -126.5t102.5 -88t148.5 -33 q82 0 142 30.5t100 83t58.5 121t18.5 144.5q0 78 -19.5 149.5t-60.5 126t-103.5 87t-148.5 32.5q-84 0 -143 -30.5t-98 -82t-57.5 -120t-18.5 -144.5zM330 1282q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5z M651 1282q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="÷" horiz-adv-x="1159" d="M158 436v107h848v-107h-848zM508 164q0 39 27.5 67.5t68.5 28.5q37 0 66.5 -28.5t29.5 -67.5q0 -41 -29.5 -68.5t-66.5 -27.5q-41 0 -68.5 27.5t-27.5 68.5zM508 813q0 39 27.5 68.5t68.5 29.5q37 0 66.5 -29.5t29.5 -68.5t-29.5 -66.5t-66.5 -27.5q-41 0 -68.5 27.5 t-27.5 66.5z" />
|
||||
<glyph unicode="ø" horiz-adv-x="1148" d="M84 16l115 129q-51 68 -76 153t-25 177q0 100 29 190.5t87 159t148.5 108.5t210.5 40q86 0 157 -21.5t124 -58.5l104 119l105 -80l-115 -129q53 -70 78 -157t25 -181q0 -100 -28 -189.5t-85 -156t-146.5 -105.5t-209.5 -39q-174 0 -289 80l-111 -127zM250 481 q0 -59 11 -116.5t36 -106.5l469 535q-39 31 -88 48t-111 17q-84 0 -143 -30.5t-98 -82t-57.5 -120t-18.5 -144.5zM379 152q80 -68 201 -68q82 0 142 30.5t100 83t58.5 121t18.5 144.5q0 127 -49 225z" />
|
||||
<glyph unicode="ù" horiz-adv-x="1114" d="M150 301v641h143v-623q0 -63 15.5 -106t41 -68.5t61 -37t78.5 -11.5q51 0 101.5 15.5t93.5 46t76 76t51 104.5v604h143v-942h-112l-17 176h-8q-27 -86 -119 -143.5t-229 -57.5q-66 0 -124 16.5t-101 54.5t-68.5 100.5t-25.5 154.5zM262 1321q0 29 18.5 49.5t53.5 22.5 l368 -207l7 -15l-11 -41l-16 -6l-412 158q-8 19 -8 39z" />
|
||||
<glyph unicode="ú" horiz-adv-x="1114" d="M150 301v641h143v-623q0 -63 15.5 -106t41 -68.5t61 -37t78.5 -11.5q51 0 101.5 15.5t93.5 46t76 76t51 104.5v604h143v-942h-112l-17 176h-8q-27 -86 -119 -143.5t-229 -57.5q-66 0 -124 16.5t-101 54.5t-68.5 100.5t-25.5 154.5zM340 1171l6 15l369 207q35 -2 53 -22.5 t18 -49.5q0 -18 -6 -39l-413 -158l-17 6z" />
|
||||
<glyph unicode="û" horiz-adv-x="1114" d="M150 301v641h143v-623q0 -63 15.5 -106t41 -68.5t61 -37t78.5 -11.5q51 0 101.5 15.5t93.5 46t76 76t51 104.5v604h143v-942h-112l-17 176h-8q-27 -86 -119 -143.5t-229 -57.5q-66 0 -124 16.5t-101 54.5t-68.5 100.5t-25.5 154.5zM307 1161l4 15l228 202h14l227 -202 l4 -15l-10 -39l-16 -6l-213 125l-211 -125l-17 6z" />
|
||||
<glyph unicode="ü" horiz-adv-x="1114" d="M150 301v641h143v-623q0 -63 15.5 -106t41 -68.5t61 -37t78.5 -11.5q51 0 101.5 15.5t93.5 46t76 76t51 104.5v604h143v-942h-112l-17 176h-8q-27 -86 -119 -143.5t-229 -57.5q-66 0 -124 16.5t-101 54.5t-68.5 100.5t-25.5 154.5zM299 1282q0 37 24.5 64.5t59.5 27.5 t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5zM621 1282q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -26 -64.5t-60 -25.5q-35 0 -59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="ý" horiz-adv-x="1062" d="M-4 942h170l375 -784l336 784h161l-432 -950q-31 -66 -74 -155t-102 -169t-139 -136t-180 -56q-16 0 -24.5 1t-18.5 5l-27 135q6 -2 14 -4t29 -2q41 0 77 8t70 33q72 51 130.5 149.5t105.5 229.5zM391 1171l6 15l369 207q35 -2 53.5 -22.5t18.5 -49.5q0 -8 -1 -18.5 t-6 -20.5l-413 -158l-15 6z" />
|
||||
<glyph unicode="þ" horiz-adv-x="1177" d="M160 -532v2048h143v-750q20 35 56 71.5t82 66.5t102.5 49.5t122.5 19.5q104 0 182 -41t129 -108.5t76.5 -156.5t25.5 -188q0 -102 -27.5 -193t-82 -160t-136 -110t-190.5 -41q-137 0 -225 59.5t-115 147.5v-714h-143zM303 344q18 -59 53 -104t81 -78t98.5 -49.5 t105.5 -16.5q72 0 125 29t89 80t54.5 118.5t18.5 145.5q0 74 -17.5 143.5t-54.5 122.5t-93 85t-134 32q-98 0 -183.5 -53.5t-142.5 -153.5v-301z" />
|
||||
<glyph unicode="ÿ" horiz-adv-x="1062" d="M-4 942h170l375 -784l336 784h161l-432 -950q-31 -66 -74 -155t-102 -169t-139 -136t-180 -56q-16 0 -24.5 1t-18.5 5l-27 135q6 -2 14 -4t29 -2q41 0 77 8t70 33q72 51 130.5 149.5t105.5 229.5zM272 1282q0 37 25 64.5t59 27.5q35 0 60.5 -27.5t25.5 -64.5 q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5zM594 1282q0 37 24.5 64.5t59.5 27.5t60.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-60.5 -25.5t-59.5 25.5t-24.5 64.5z" />
|
||||
<glyph unicode="Œ" horiz-adv-x="1748" d="M115 659q0 145 44 273.5t128 223.5t206.5 150.5t280.5 55.5q39 0 76 -3t72 -7h702v-144h-549v-420h412v-143h-412v-502h590v-143h-709q-90 -25 -196 -25q-164 0 -285 55.5t-200.5 149.5t-119.5 218t-40 261zM285 680q0 -283 122.5 -426t356.5 -143q86 0 158 18v1079 q-72 18 -154 19q-131 0 -223 -40t-149.5 -113t-84 -173t-26.5 -221z" />
|
||||
<glyph unicode="œ" horiz-adv-x="1867" d="M98 473q0 100 29 190.5t87 159t148.5 108.5t210.5 40q152 0 250.5 -60.5t153.5 -158.5q59 98 163.5 158.5t252.5 60.5q180 0 278 -91.5t98 -256.5q0 -35 -4 -71t-14 -52h-690v-21q0 -78 20.5 -149.5t61.5 -127t103.5 -88t148.5 -32.5q98 0 185 35t144 76l27 -109 q-27 -16 -65.5 -35.5t-86 -36t-103.5 -28t-118 -11.5q-139 0 -240.5 57.5t-158.5 151.5q-53 -94 -150.5 -151.5t-246.5 -57.5q-125 0 -216.5 41t-150.5 110t-88 159t-29 190zM250 479q0 -78 19.5 -149.5t59.5 -127t102.5 -88t148.5 -32.5q82 0 142 30.5t100 83t58.5 121 t18.5 144.5q0 78 -19.5 149.5t-60.5 126t-103.5 87t-148.5 32.5q-84 0 -143 -30.5t-98 -82t-57.5 -120t-18.5 -144.5zM1075 608h559q2 10 2 19v18q0 51 -20.5 91t-55 66.5t-79.5 40t-95 13.5q-135 0 -209.5 -71t-101.5 -177z" />
|
||||
<glyph unicode="Ÿ" horiz-adv-x="1159" d="M-23 1352h183l428 -650l413 650h179l-523 -797v-555h-153v547zM342 1626q0 37 24.5 64.5t59.5 27.5q33 0 58.5 -27.5t25.5 -64.5q0 -39 -25.5 -64.5t-58.5 -25.5q-35 0 -59.5 25.5t-24.5 64.5zM664 1626q0 37 23.5 64.5t57.5 27.5q35 0 60.5 -27.5t25.5 -64.5 q0 -39 -25.5 -64.5t-60.5 -25.5t-58 25.5t-23 64.5z" />
|
||||
<glyph unicode="ˆ" horiz-adv-x="479" d="M0 1161l6 15l225 202h17l225 -202l6 -15l-12 -39l-14 -6l-213 125l-213 -125l-15 6z" />
|
||||
<glyph unicode="˜" horiz-adv-x="636" d="M0 1194q8 27 22.5 55.5t36 50t53 36t74.5 14.5q51 0 89 -4.5t71 -10.5t63.5 -10t69.5 -4q35 0 70 8t63 45l25 -16q-6 -29 -19.5 -56.5t-35 -50t-52 -37t-73.5 -14.5q-82 0 -167 14.5t-151 14.5q-51 0 -71.5 -13.5t-40.5 -37.5z" />
|
||||
<glyph unicode=" " horiz-adv-x="868" />
|
||||
<glyph unicode=" " horiz-adv-x="1736" />
|
||||
<glyph unicode=" " horiz-adv-x="868" />
|
||||
<glyph unicode=" " horiz-adv-x="1736" />
|
||||
<glyph unicode=" " horiz-adv-x="577" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode=" " horiz-adv-x="288" />
|
||||
<glyph unicode=" " horiz-adv-x="288" />
|
||||
<glyph unicode=" " horiz-adv-x="217" />
|
||||
<glyph unicode=" " horiz-adv-x="346" />
|
||||
<glyph unicode=" " horiz-adv-x="96" />
|
||||
<glyph unicode="‐" horiz-adv-x="995" d="M152 436v107h692v-107h-692z" />
|
||||
<glyph unicode="‑" horiz-adv-x="995" d="M152 436v107h692v-107h-692z" />
|
||||
<glyph unicode="‒" horiz-adv-x="995" d="M152 436v107h692v-107h-692z" />
|
||||
<glyph unicode="–" horiz-adv-x="1150" d="M152 436v107h847v-107h-847z" />
|
||||
<glyph unicode="—" horiz-adv-x="1617" d="M152 436v107h1314v-107h-1314z" />
|
||||
<glyph unicode="‘" horiz-adv-x="460" d="M150 1130v216l149 157l41 -39l-80 -149h51v-185h-161z" />
|
||||
<glyph unicode="’" horiz-adv-x="419" d="M127 1169l80 150h-51v184h161v-215l-149 -158z" />
|
||||
<glyph unicode="‚" horiz-adv-x="497" d="M139 -160l80 150h-51v184h162v-215l-150 -158z" />
|
||||
<glyph unicode="“" horiz-adv-x="768" d="M150 1130v216l149 157l41 -39l-80 -149h51v-185h-161zM457 1130v216l149 157l41 -39l-80 -149h51v-185h-161z" />
|
||||
<glyph unicode="”" horiz-adv-x="727" d="M127 1169l80 150h-51v184h161v-215l-149 -158zM434 1169l80 150h-51v184h162v-215l-150 -158z" />
|
||||
<glyph unicode="„" horiz-adv-x="827" d="M139 -160l80 150h-51v184h162v-215l-150 -158zM469 -160l80 150h-51v184h161v-215l-149 -158z" />
|
||||
<glyph unicode="•" horiz-adv-x="671" d="M197 498q0 55 39.5 98t99.5 43q27 0 52.5 -11.5t45 -32t30.5 -46t11 -51.5q0 -59 -43 -98.5t-96 -39.5q-59 0 -99 39.5t-40 98.5z" />
|
||||
<glyph unicode="…" horiz-adv-x="1255" d="M145 72q0 39 27 68.5t68 29.5q39 0 68.5 -29.5t29.5 -68.5t-29.5 -67t-68.5 -28q-41 0 -68 28t-27 67zM532 72q0 39 28 68.5t67 29.5t68.5 -29.5t29.5 -68.5t-29.5 -67t-68.5 -28t-67 28t-28 67zM920 72q0 39 27.5 68.5t66.5 29.5t68.5 -29.5t29.5 -68.5t-29.5 -67 t-68.5 -28t-66.5 28t-27.5 67z" />
|
||||
<glyph unicode=" " horiz-adv-x="346" />
|
||||
<glyph unicode="‹" horiz-adv-x="659" d="M106 487v11l275 362h162l-295 -362v-11l295 -362h-164z" />
|
||||
<glyph unicode="›" horiz-adv-x="659" d="M117 125l295 362v11l-295 362h162l274 -362v-11l-272 -362h-164z" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode="€" horiz-adv-x="1275" d="M86 522v107h156v54q0 32 2 54h-158v107h172q20 113 64.5 207t114 163.5t161.5 108.5t209 39q92 0 188.5 -23.5t161.5 -64.5l-43 -148q-55 43 -135 72t-184 29q-88 0 -154 -26.5t-110 -77t-70.5 -121t-38.5 -158.5h522v-107h-532v-108h532v-107h-524q53 -412 371 -411 q111 0 201.5 36.5t148.5 90.5l41 -138q-72 -49 -171.5 -87t-226.5 -38q-121 0 -214 42t-159.5 116t-106.5 174.5t-54 214.5h-164z" />
|
||||
<glyph unicode="™" horiz-adv-x="1415" d="M131 1257v80h440v-80h-172v-501h-96v501h-172zM647 756v581h98l201 -495l199 495h96v-581h-80v428l-172 -428h-92l-172 430v-430h-78z" />
|
||||
<glyph unicode="" horiz-adv-x="940" d="M0 940h940v-940h-940v940z" />
|
||||
<glyph unicode="fi" horiz-adv-x="1071" d="M51 846v76l158 18q0 199 26.5 312.5t71.5 172.5q47 66 101.5 83.5t107.5 17.5q102 0 184 -34t138 -69l-70 -123q-92 57 -155.5 88t-123.5 31q-45 0 -71.5 -19.5t-41 -62.5t-19.5 -110.5t-5 -161.5v-123h221v-96h-221v-846h-143v846h-158zM772 0v942h143v-942h-143z" />
|
||||
<glyph unicode="fl" horiz-adv-x="1099" d="M51 846v76l158 18q0 111 11 190.5t29.5 137t40 95.5t44.5 62q51 59 104.5 80t100.5 21q20 0 53 -1t75 -6.5t91 -16.5t98 -29l72 43v-1516h-144v1362q-57 29 -133 43t-151 14q-33 0 -60.5 -18.5t-47 -59.5t-30 -108.5t-10.5 -167.5v-123h221v-96h-221v-846h-143v846h-158z " />
|
||||
<glyph unicode="ffi" horiz-adv-x="1683" d="M1350 1286q0 41 29.5 74t72.5 33q41 0 74 -33t33 -74q0 -43 -33 -72.5t-74 -29.5q-43 0 -72.5 29.5t-29.5 72.5zM1381 0v942h143v-942h-143zM661 846v76l158 18q0 115 7 197t19.5 138t28 92t29.5 58q39 57 96 79t119 22q8 0 28.5 -1t46 -4t52.5 -10.5t51 -19.5l-35 -121 q-6 0 -28.5 7t-50 16.5t-59.5 17.5t-56 8q-31 0 -51.5 -17.5t-32 -57t-16.5 -105t-5 -162.5v-135h221v-96h-221v-846h-143v846h-158zM51 846v76l158 18q0 115 7 197t19.5 138t28 92t29.5 58q39 57 96 79t119 22q8 0 28.5 -1t46 -4t52.5 -10.5t51 -19.5l-35 -121 q-6 0 -28.5 7t-50 16.5t-59.5 17.5t-56 8q-31 0 -51.5 -17.5t-32 -57t-16.5 -105t-5 -162.5v-135h221v-96h-221v-846h-143v846h-158z" />
|
||||
<glyph unicode="ffl" horiz-adv-x="1708" d="M1393 0v1516h143v-1516h-143zM661 846v76l158 18q0 115 7 197t19.5 138t28 92t29.5 58q39 57 96 79t119 22q8 0 28.5 -1t46 -4t52.5 -10.5t51 -19.5l-35 -121q-6 0 -28.5 7t-50 16.5t-59.5 17.5t-56 8q-31 0 -51.5 -17.5t-32 -57t-16.5 -105t-5 -162.5v-135h221v-96h-221 v-846h-143v846h-158zM51 846v76l158 18q0 115 7 197t19.5 138t28 92t29.5 58q39 57 96 79t119 22q8 0 28.5 -1t46 -4t52.5 -10.5t51 -19.5l-35 -121q-6 0 -28.5 7t-50 16.5t-59.5 17.5t-56 8q-31 0 -51.5 -17.5t-32 -57t-16.5 -105t-5 -162.5v-135h221v-96h-221v-846h-143 v846h-158z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 993 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
@@ -0,0 +1,352 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||
<title>Open Shading Language by imageworks</title>
|
||||
<link rel="stylesheet" href="stylesheets/styles.css">
|
||||
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
|
||||
<script src="javascripts/main.js"></script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<h1>Open Shading Language</h1>
|
||||
<p>Advanced shading language for production GI renderers</p>
|
||||
</header>
|
||||
|
||||
<div id="banner">
|
||||
<span id="logo"></span>
|
||||
|
||||
<a href="https://github.com/imageworks/OpenShadingLanguage" class="button fork"><strong>View On GitHub</strong></a>
|
||||
<div class="downloads">
|
||||
<span>Downloads:</span>
|
||||
<ul>
|
||||
<li><a href="https://github.com/imageworks/OpenShadingLanguage/zipball/master" class="button">ZIP</a></li>
|
||||
<li><a href="https://github.com/imageworks/OpenShadingLanguage/tarball/master" class="button">TAR</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- end banner -->
|
||||
|
||||
<div class="wrapper">
|
||||
<nav>
|
||||
<ul></ul>
|
||||
</nav>
|
||||
<section>
|
||||
<h2>Table of contents</h2>
|
||||
|
||||
<ul>
|
||||
<li>Introduction</li>
|
||||
<li>How OSL is different</li>
|
||||
<li>What OSL consists of</li>
|
||||
<li>Building OSL</li>
|
||||
<li>Current state of the project and road map</li>
|
||||
<li>Contacts</li>
|
||||
<li>Credits</li>
|
||||
</ul><h2>Introduction</h2>
|
||||
|
||||
<p>Welcome to Open Shading Language!</p>
|
||||
|
||||
<p>Open Shading Language (OSL) is a small but rich language for
|
||||
programmable shading in advanced renderers and other applications, ideal
|
||||
for describing materials, lights, displacement, and pattern generation.</p>
|
||||
|
||||
<p>OSL was developed by Sony Pictures Imageworks for use in its in-house
|
||||
renderer used for feature film animation and visual effects. The
|
||||
language specification was developed with input by other visual effects
|
||||
and animation studios who also wish to use it.</p>
|
||||
|
||||
<p>OSL is robust and production-proven, and was the exclusive shading
|
||||
system for big VFX films such as "Men in Black 3: and "The Amazing
|
||||
Spider-Man," animated features such as "Hotel Transylvania", and several
|
||||
other films currently in production.</p>
|
||||
|
||||
<p>OSL is distributed under the "New BSD" license (see the "LICENSE" file
|
||||
that comes with the distribution). In short, you are free to use it in
|
||||
your own applications, whether they are free or commercial, open or
|
||||
proprietary, as well as to modify the OSL code as you desire, provided
|
||||
that you retain the original copyright notices as described in the
|
||||
license.</p>
|
||||
|
||||
<h2>How OSL is different</h2>
|
||||
|
||||
<p>OSL has syntax similar to C, as well as other shading languages.
|
||||
However, it is specifically designed for advanced rendering algorithms
|
||||
and has features such as radiance closures, BSDFs, and deferred ray
|
||||
tracing as first-class concepts.</p>
|
||||
|
||||
<p>OSL has several unique characteristics not found in other shading
|
||||
languages (certainly not all together). Here are some things you will
|
||||
find are different in OSL compared to other languages:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>Surface and volume shaders compute radiance closures, not final colors.</p>
|
||||
|
||||
<p>OSL's surface and volume shaders compute an explicit symbolic
|
||||
description, called a "closure", of the way a surface or volume
|
||||
scatters light, in units of radiance. These radiance closures may be
|
||||
evaluated in particular directions, sampled to find important
|
||||
directions, or saved for later evaluation and re-evaluation.
|
||||
This new approach is ideal for a physically-based renderer that
|
||||
supports ray tracing and global illumination.</p>
|
||||
|
||||
<p>In contrast, other shading languages usually compute just a surface
|
||||
color as visible from a particular direction. These old shaders are
|
||||
"black boxes" that a renderer can do little with but execute to find
|
||||
this one piece of information (for example, there is no effective way
|
||||
to discover from them which directions are important to sample).
|
||||
Furthermore, the physical units of lights and surfaces are often
|
||||
underspecified, making it very difficult to ensure that shaders are
|
||||
behaving in a physically correct manner.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Surface and volume shaders do not loop over lights or shoot rays.</p>
|
||||
|
||||
<p>There are no "light loops" or explicitly traced illumination rays in
|
||||
OSL surface shaders. Instead, surface shaders compute a radiance
|
||||
closure describing how the surface scatters light, and a part of the
|
||||
renderer called an "integrator" evaluates the closures for a
|
||||
particular set of light sources and determines in which directions
|
||||
rays should be traced. Effects that would ordinarily require explicit
|
||||
ray tracing, such as reflection and refraction, are simply part of the
|
||||
radiance closure and look like any other BSDF.</p>
|
||||
|
||||
<p>Advantages of this approach include that integration and sampling may
|
||||
be batched or re-ordered to increase ray coherence; a "ray budget" can
|
||||
be allocated to optimally sample the BSDF; the closures may be used by
|
||||
for bidirectional ray tracing or Metropolis light transport; and the
|
||||
closures may be rapidly re-evaluated with new lighting without having
|
||||
to re-run the shaders.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Surface and light shaders are the same thing.</p>
|
||||
|
||||
<p>OSL does not have a separate kind of shader for light sources. Lights
|
||||
are simply surfaces that are emissive, and all lights are area lights.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Transparency is just another kind of illumination.</p>
|
||||
|
||||
<p>You don't need to explicitly set transparency/opacity variables in the
|
||||
shader. Transparency is just another way for light to interact with a
|
||||
surface, and is included in the main radiance closure computed by a
|
||||
surface shader.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Renderer outputs (AOV's) may be specified using "light path expressions."</p>
|
||||
|
||||
<p>Sometimes it is desirable to output images containing individual
|
||||
lighting components such as specular, diffuse, reflection, individual
|
||||
lights, etc. In other languages, this is usually accomplished by
|
||||
adding a plethora of "output variables" to the shaders that collect
|
||||
these individual quantities.</p>
|
||||
|
||||
<p>OSL shaders need not be cluttered with any code or output variables to
|
||||
accomplish this. Instead, there is a regular-expression-based
|
||||
notation for describing which light paths should contribute to which
|
||||
outputs. This is all done on the renderer side (though supported by
|
||||
the OSL implementation). If you desire a new output, there is no need
|
||||
to modify the shaders at all; you only need to tell the renderer the
|
||||
new light path expression.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Shaders are organized into networks.</p>
|
||||
|
||||
<p>OSL shaders are not monolithic, but rather can be organized into
|
||||
networks of shaders (sometimes called a shader group, graph, or DAG),
|
||||
with named outputs of some nodes being connected to named inputs of
|
||||
other nodes within the network. These connections may be done
|
||||
dynamically at render time, and do not affect compilation of
|
||||
individual shader nodes. Furthermore, the individual nodes are
|
||||
evaluated lazily, only when their outputs are "pulled" from the later
|
||||
nodes that depend on them (shader writers may remain blissfully
|
||||
unaware of these details, and write shaders as if everything is
|
||||
evaluated normally).</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Arbitrary derivatives without grids or extra shading points.</p>
|
||||
|
||||
<p>In OSL, you can take derivatives of any computed quantity in a shader,
|
||||
and use arbitrary quantities as texture coordinates and expect correct
|
||||
filtering. This does not require that shaded points be arranged in a
|
||||
rectangular grid, or have any particular connectivity, or that any
|
||||
"extra points" be shaded. This is because derivatives are not
|
||||
computed by finite differences with neighboring points, but rather by
|
||||
"automatic differentiation", computing partial differentials for the
|
||||
variables that lead to derivatives, without any intervention required
|
||||
by the shader writer.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>OSL optimizes aggressively at render time</p>
|
||||
|
||||
<p>OSL uses the LLVM compiler framework to translate shader networks into
|
||||
machine code on the fly (just in time, or "JIT"), and in the process
|
||||
heavily optimizes shaders and networks with full knowledge of the
|
||||
shader parameters and other runtime values that could not have been
|
||||
known when the shaders were compiled from source code. As a result,
|
||||
we are seeing our OSL shading networks execute 25% faster than the
|
||||
equivalent shaders hand-crafted in C! (That's how our old shaders
|
||||
worked in our renderer.)</p>
|
||||
</li>
|
||||
</ul><h2>What OSL consists of</h2>
|
||||
|
||||
<p>The OSL open source distribution consists of the following components:</p>
|
||||
|
||||
<ul>
|
||||
<li><p>oslc, a standalone compiler that translates OSL source code into
|
||||
an assembly-like intermediate code (in the form of .oso files).</p></li>
|
||||
<li><p>liboslc, a library that implements the OSLCompiler class, which
|
||||
contains the guts of the shader compiler, in case anybody needs to
|
||||
embed it into other applications and does not desire for the compiler
|
||||
to be a separate executable.</p></li>
|
||||
<li><p>liboslquery, a library that implements the OSLQuery class, which
|
||||
allows applications to query information about compiled shaders,
|
||||
including a full list of its parameters, their types, and any metadata
|
||||
associated with them.</p></li>
|
||||
<li><p>oslinfo, a command-line program that uses liboslquery to print to the
|
||||
console all the relevant information about a shader and its parameters.</p></li>
|
||||
<li><p>liboslexec, a library that implements the ShadingSystem class, which
|
||||
allows compiled shaders to be executed within an application.
|
||||
Currently, it uses LLVM to JIT compile the shader bytecode to x86
|
||||
instructions.</p></li>
|
||||
<li><p>testshade, a program that lets you execute a shader (or connected
|
||||
shader network) on a rectangular array of points, and save any of its
|
||||
outputs as images. This allows for verification of shaders (and the
|
||||
shading system) without needing to be integrated into a fully
|
||||
functional renderer, and is the basis for most of our testsuite
|
||||
verification. Along with testrender, testshade is a good example
|
||||
of how to call the OSL libraries.</p></li>
|
||||
<li><p>testrender, a tiny ray-tracing renderer that uses OSL for shading.
|
||||
Features are very minimal (only spheres are permitted at this time)
|
||||
and there has been no attention to performance, but it demonstrates how
|
||||
the OSL libraries may be integrated into a working renderer, what
|
||||
interfaces the renderer needs to supply, and how the BSDFs/radiance
|
||||
closures should be evaluated and integrated (including with multiple
|
||||
importance sampling).</p></li>
|
||||
<li><p>A few sample shaders.</p></li>
|
||||
<li><p>Documentation -- at this point consisting of the OSL language
|
||||
specification (useful for shader writers), but in the future will have
|
||||
detailed documentation about how to integrate the OSL libraries into
|
||||
renderers.</p></li>
|
||||
</ul><h2>Building OSL</h2>
|
||||
|
||||
<p>Please see the "INSTALL" file in the OSL distribution for instructions
|
||||
for building the OSL source code.</p>
|
||||
|
||||
<h2>Current state of the project and road map</h2>
|
||||
|
||||
<p>At Sony Pictures Imageworks, we are exclusively using OSL in our
|
||||
proprietary renderer, "Arnold." Completed productions that used 100%
|
||||
OSL for their shading include Men in Black 3, The Amazing Spider-Man,
|
||||
and Hotel Transylvania, and other unreleased shows that are still in
|
||||
production. Our shader-writing team works entirely in OSL, all
|
||||
productions use OSL, and we've even removed all the code from the
|
||||
renderer that allows people to write the old-style "C" shaders. At the
|
||||
time we removed the old shader facility, the OSL shaders were
|
||||
consistently outperforming their equivalent old compiled C shaders in
|
||||
the old system.</p>
|
||||
|
||||
<p>In the longer term, there are a number of projects we hope to get to
|
||||
leading to a 2.x or 3.x cut of the language and library. Among our
|
||||
long-term goals:</p>
|
||||
|
||||
<ul>
|
||||
<li><p>More documentation, in particular the "Integration Guide" that
|
||||
documents all the public APIs of the OSL libraries that you use when
|
||||
integrating into a renderer. Currently, the source code to
|
||||
"testrender" is the best/only example of how to integrate OSL into a
|
||||
renderer.</p></li>
|
||||
<li><p>Our set of sample shaders is quite anemic. We will eventually have a
|
||||
more extensive set of useful, production-quality shaders and utility
|
||||
functions you can call from your shaders.</p></li>
|
||||
<li><p>Currently "closure primitives" are implemented in C++ in the OSL
|
||||
library or in the renderer, but we would like a future spec of the
|
||||
language to allow new closure primitives to be implemented in OSL
|
||||
itself.</p></li>
|
||||
<li><p>Similarly, integrators are now implemented in the renderer, but we
|
||||
want a future OSL release to allow new integrators to be implemented
|
||||
in OSL itself.</p></li>
|
||||
<li><p>We would like to implement alternate "back ends" that would allow
|
||||
translation of OSL shaders (and shader networks) into code that can
|
||||
run on GPUs or other exotic hardware (at least for the biggest subset
|
||||
of OSL that can be expressed on such hardware). This would, for
|
||||
example, allow you to view close approximations to your OSL shaders in
|
||||
realtime preview windows in a modeling system or lighting tool.</p></li>
|
||||
</ul><p>We (the renderer development team at Sony Pictures Imageworks) probably
|
||||
can't do these all right away (in fact, probably can't do ALL of them in
|
||||
any time range). But we hope that as an open source project, other
|
||||
users and developers will step up to help us explore more future
|
||||
development avenues for OSL than we would be able to do alone.</p>
|
||||
|
||||
<h2>Contacts</h2>
|
||||
|
||||
<p><a href="http://opensource.imageworks.com/?p=osl">OSL home page at SPI</a></p>
|
||||
|
||||
<p><a href="https://github.com/imageworks/OpenShadingLanguage">OSL GitHub page</a></p>
|
||||
|
||||
<p><a href="http://groups.google.com/group/osl-dev">Read or subscribe to the OSL development mail list</a></p>
|
||||
|
||||
<p>Email the lead architect: lg AT imageworks DOT com</p>
|
||||
|
||||
<p><a href="https://github.com/imageworks/OpenShadingLanguage/blob/master/src/doc/osl-languagespec.pdf">Most recent PDF of the OSL language specification</a></p>
|
||||
|
||||
<p><a href="http://opensource.imageworks.com">Sony Pictures Imageworks main open source page</a></p>
|
||||
|
||||
<p>If you want to contribute code back to the project, you'll need to
|
||||
sign <a href="http://opensource.imageworks.com/cla/">a Contributor License Agreement</a>.</p>
|
||||
|
||||
<h2>Credits</h2>
|
||||
|
||||
<p>The main developers of OSL are (in order of joining the project):</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Larry Gritz</p></li>
|
||||
<li><p>Cliff Stein</p></li>
|
||||
<li><p>Chris Kulla</p></li>
|
||||
<li><p>Alejandro Conty</p></li>
|
||||
<li><p>Jay Reynolds</p></li>
|
||||
<li><p>Solomon Boulos</p></li>
|
||||
<li><p>Adam Martinez</p></li>
|
||||
</ul><p>We cannot possibly express sufficient gratitude to the managers at Sony
|
||||
Pictures Imageworks who allowed this project to proceed, supported it
|
||||
wholeheartedly, and permitted us to release the source, especially Rob
|
||||
Bredow, Brian Keeney, Barbara Ford, and Rene Limberger.</p>
|
||||
|
||||
<p>Huge thanks also go to the crack shading team at SPI, and the brave
|
||||
lookdev TDs and CG supes willing to use OSL on their shows. They served
|
||||
as our guinea pigs, inspiration, testers, and a fantastic source of
|
||||
feedback. Thank you, and we hope we've been responsive to your needs.</p>
|
||||
|
||||
<p>OSL was not developed in isolation. We owe a debt to the individuals
|
||||
and studios who patiently read early drafts of the language
|
||||
specification and gave us very helpful feedback and additional ideas.
|
||||
(I hope to mention them by name after we get permission of the people
|
||||
and studios involved.)</p>
|
||||
|
||||
<p>The OSL implementation incorporates or depends upon several other open
|
||||
source packages:</p>
|
||||
|
||||
<p><a href="http://www.openimageio.org">OpenImageIO (c) Larry Gritz, et al</a></p>
|
||||
|
||||
<p><a href="http://www.boost.org">Boost - various authors</a></p>
|
||||
|
||||
<p><a href="http://www.openexr.com">IlmBase (c) Industrial Light & Magic</a></p>
|
||||
|
||||
<p><a href="http://llvm.org">LLVM Compiler Infrastructure</a></p>
|
||||
</section>
|
||||
<footer>
|
||||
<p>Project maintained by <a href="https://github.com/imageworks">imageworks</a></p>
|
||||
<p><small>Hosted on GitHub Pages — Theme by <a href="http://twitter.com/#!/michigangraham">mattgraham</a></small></p>
|
||||
</footer>
|
||||
</div>
|
||||
<!--[if !IE]><script>fixScale(document);</script><![endif]-->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,53 @@
|
||||
var sectionHeight = function() {
|
||||
var total = $(window).height(),
|
||||
$section = $('section').css('height','auto');
|
||||
|
||||
if ($section.outerHeight(true) < total) {
|
||||
var margin = $section.outerHeight(true) - $section.height();
|
||||
$section.height(total - margin - 20);
|
||||
} else {
|
||||
$section.css('height','auto');
|
||||
}
|
||||
}
|
||||
|
||||
$(window).resize(sectionHeight);
|
||||
|
||||
$(document).ready(function(){
|
||||
$("section h1, section h2").each(function(){
|
||||
$("nav ul").append("<li class='tag-" + this.nodeName.toLowerCase() + "'><a href='#" + $(this).text().toLowerCase().replace(/ /g, '-').replace(/[^\w-]+/g,'') + "'>" + $(this).text() + "</a></li>");
|
||||
$(this).attr("id",$(this).text().toLowerCase().replace(/ /g, '-').replace(/[^\w-]+/g,''));
|
||||
$("nav ul li:first-child a").parent().addClass("active");
|
||||
});
|
||||
|
||||
$("nav ul li").on("click", "a", function(event) {
|
||||
var position = $($(this).attr("href")).offset().top - 190;
|
||||
$("html, body").animate({scrollTop: position}, 400);
|
||||
$("nav ul li a").parent().removeClass("active");
|
||||
$(this).parent().addClass("active");
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
sectionHeight();
|
||||
|
||||
$('img').load(sectionHeight);
|
||||
});
|
||||
|
||||
fixScale = function(doc) {
|
||||
|
||||
var addEvent = 'addEventListener',
|
||||
type = 'gesturestart',
|
||||
qsa = 'querySelectorAll',
|
||||
scales = [1, 1],
|
||||
meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : [];
|
||||
|
||||
function fix() {
|
||||
meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1];
|
||||
doc.removeEventListener(type, fix, true);
|
||||
}
|
||||
|
||||
if ((meta = meta[meta.length - 1]) && addEvent in doc) {
|
||||
fix();
|
||||
scales = [.25, 1.6];
|
||||
doc[addEvent](type, fix, true);
|
||||
}
|
||||
};
|
||||
@@ -1,217 +0,0 @@
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# SPI-specific settings
|
||||
ifneq (${VERBOSE},)
|
||||
$(info Including spi/Makefile-bits)
|
||||
endif
|
||||
|
||||
$(info Building generic OSL)
|
||||
PYLIB_LIB_PREFIX ?= 0
|
||||
PYLIB_INCLUDE_SONAME ?= 0
|
||||
#$(info MAKECMDGOALS = $(MAKECMDGOALS))
|
||||
|
||||
|
||||
## Detect which SPI platform and set $platform, $COMPILER,
|
||||
## and PYTHON_VERSION. Lots of other decisions are based on these.
|
||||
ifeq (${SP_OS}, rhel7)
|
||||
# Rhel7 (current)
|
||||
platform := rhel7
|
||||
SPI_COMPILER_PLATFORM ?= gcc-6.3
|
||||
ifeq (${SPI_COMPILER_PLATFORM},gcc-6.3)
|
||||
CMAKE_CXX_STANDARD ?= 14
|
||||
endif
|
||||
LLVM_VERSION ?= 12.0.0
|
||||
else ifeq (${platform}, macosx)
|
||||
# Generic OSX machines (including LG's laptop)
|
||||
COMPILER ?= clang
|
||||
SP_OS ?= macosx
|
||||
else
|
||||
$(error Unknown SP_OS=${SP_OS} platform=${platform})
|
||||
endif # endif ${SP_OS}
|
||||
|
||||
MY_CMAKE_FLAGS += -DSP_OS=${SP_OS}
|
||||
MY_CMAKE_FLAGS += -DSPI_COMPILER_PLATFORM=${SPI_COMPILER_PLATFORM}
|
||||
MY_CMAKE_FLAGS += -DEXTRA_CPP_ARGS:STRING="-DOSL_SPI=1" -DOSL_SITE:STRING=spi
|
||||
MY_CMAKE_FLAGS += -DSPI_TESTS=1
|
||||
MY_CMAKE_FLAGS += -DOSL_NAMESPACE_INCLUDE_PATCH=1
|
||||
REZ_PACKAGE_ROOT ?= /shots/spi/home/software/packages
|
||||
SPCOMP2_ROOT ?= /shots/spi/home/lib/SpComp2
|
||||
|
||||
MY_CMAKE_FLAGS += -DOSL_EXTRA_NVCC_ARGS="--compiler-bindir=/opt/rh/devtoolset-6/root/bin/gcc"
|
||||
|
||||
## Rhel7 (current)
|
||||
ifeq (${SP_OS}, rhel7)
|
||||
PYTHON_VERSION ?= 2.7
|
||||
USE_SIMD ?= sse4.1,aes
|
||||
CMAKE ?= cmake
|
||||
USE_NINJA ?= 1
|
||||
NINJA ?= ninja
|
||||
ifeq ($(USE_NINJA),1)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_MAKE_PROGRAM=${NINJA}
|
||||
endif
|
||||
export CCACHE_CPP2 ?= 1
|
||||
# Override lib64 and use SPI convention of lib
|
||||
MY_CMAKE_FLAGS += -DCMAKE_INSTALL_LIBDIR="${INSTALL_PREFIX}/lib"
|
||||
|
||||
#
|
||||
# Compilers:
|
||||
#
|
||||
# A variety of tags can be used to try specific versions of gcc or
|
||||
# clang from the site-specific places we have installed them.
|
||||
LLVM_DIRECTORY ?= /shots/spi/home/lib/arnold/rhel7/llvm_12.0.0
|
||||
LLVM_DIRECTORY ?= /shots/spi/home/software/packages/llvm/${LLVM_VERSION}/${SPI_COMPILER_PLATFORM}
|
||||
ifeq (${COMPILER},clang9)
|
||||
LLVM_DIRECTORY := /shots/spi/home/software/packages/llvm/9.0.1-1/${SPI_COMPILER_PLATFORM}
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=${LLVM_DIRECTORY}/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=${LLVM_DIRECTORY}/bin/clang++
|
||||
else ifeq (${COMPILER},clang10)
|
||||
LLVM_DIRECTORY := /shots/spi/home/software/packages/llvm/10.0.0-1/${SPI_COMPILER_PLATFORM}
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=${LLVM_DIRECTORY}/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=${LLVM_DIRECTORY}/bin/clang++
|
||||
else ifeq (${COMPILER},clang11)
|
||||
LLVM_DIRECTORY := /shots/spi/home/software/packages/llvm/11.0.0/${SPI_COMPILER_PLATFORM}
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=${LLVM_DIRECTORY}/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=${LLVM_DIRECTORY}/bin/clang++
|
||||
else ifeq (${COMPILER},clang12)
|
||||
LLVM_DIRECTORY := /shots/spi/home/software/packages/llvm/12.0.0-final/${SPI_COMPILER_PLATFORM}
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=${LLVM_DIRECTORY}/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=${LLVM_DIRECTORY}/bin/clang++
|
||||
else ifeq (${COMPILER},clang)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
|
||||
else ifeq (${COMPILER}, gcc6)
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DCMAKE_C_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/gcc \
|
||||
-DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-6/root/usr/bin/g++
|
||||
else ifeq (${COMPILER},gcc)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
|
||||
else ifeq (${COMPILER},)
|
||||
# default compiler is clang, taken from the LLVM directory
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DCMAKE_C_COMPILER=${LLVM_DIRECTORY}/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=${LLVM_DIRECTORY}/bin/clang++
|
||||
endif
|
||||
|
||||
MY_CMAKE_FLAGS +=
|
||||
-DLLVM_STATIC=1 \
|
||||
-DLLVM_VERSION=${LLVM_VERSION} \
|
||||
-DLLVM_DIRECTORY=${LLVM_DIRECTORY}
|
||||
|
||||
#
|
||||
# Boost
|
||||
#
|
||||
BOOSTVERS ?= 1.70
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DBOOST_INCLUDEDIR=/usr/include/boostroot/boost${BOOSTVERS}.0 \
|
||||
-DBOOST_LIBRARYDIR=/usr/lib64/boostroot/boost${BOOSTVERS}.0
|
||||
|
||||
#
|
||||
# Python
|
||||
#
|
||||
Python_INCLUDE_DIR ?= /usr/include/python${PYTHON_VERSION}
|
||||
PYTHON_LIBRARY_DIR ?= /usr/lib64
|
||||
Python_LIBRARY ?= ${PYTHON_LIBRARY_DIR}/libpython${PYTHON_VERSION}.so
|
||||
ifeq (${PYTHON_VERSION},3.7)
|
||||
# Special sauce for Python 3.7
|
||||
Python_INCLUDE_DIR := /usr/include/python${PYTHON_VERSION}m
|
||||
Python_LIBRARY := ${PYTHON_LIBRARY_DIR}/libpython${PYTHON_VERSION}m.so
|
||||
else ifeq (${PYTHON_VERSION},2.7)
|
||||
# Special sauce for Python 2.7
|
||||
Python_INCLUDE_DIR := /usr/include/python${PYTHON_VERSION}
|
||||
Python_LIBRARY := ${PYTHON_LIBRARY_DIR}/libpython${PYTHON_VERSION}.so
|
||||
endif
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DPython_INCLUDE_DIR:STRING=${Python_INCLUDE_DIR} \
|
||||
-DPython_LIBRARY:STRING=${Python_LIBRARY} \
|
||||
-Dpybind11_ROOT:STRING=${REZ_PACKAGE_ROOT}/pybind11/2.4.3/python-${PYTHON_VERSION}
|
||||
|
||||
|
||||
# Set our preferred OpenEXR path, but allow env variable to override
|
||||
# with custom/test version.
|
||||
OPENEXR_VERSION ?= 2.4.1-2
|
||||
OpenEXR_ROOT ?= ${REZ_PACKAGE_ROOT}/OpenEXR/${OPENEXR_VERSION}/${SPI_COMPILER_PLATFORM}
|
||||
$(info OpenEXR_ROOT = $(OpenEXR_ROOT))
|
||||
MY_CMAKE_FLAGS += -DOpenEXR_ROOT=${OpenEXR_ROOT}
|
||||
|
||||
Partio_VERSION ?= 1.10.6
|
||||
partio_ROOT ?= ${REZ_PACKAGE_ROOT}/partio/${Partio_VERSION}/${SPI_COMPILER_PLATFORM}/python-${PYTHON_VERSION}/boost-${BOOSTVERS}
|
||||
MY_CMAKE_FLAGS += -Dpartio_ROOT="${partio_ROOT}"
|
||||
|
||||
pugixml_VERSION ?= 1.10.0
|
||||
pugixml_ROOT ?= ${REZ_PACKAGE_ROOT}/pugixml/${pugixml_VERSION}/${SPI_COMPILER_PLATFORM}
|
||||
MY_CMAKE_FLAGS += -Dpugixml_ROOT="${pugixml_ROOT}"
|
||||
|
||||
ifneq ($(OpenImageIO_ROOT),)
|
||||
MY_CMAKE_FLAGS += -DOpenImageIO_ROOT=${OpenImageIO_ROOT}
|
||||
endif
|
||||
|
||||
# Cuda/OptiX
|
||||
USE_OPTIX ?= 1
|
||||
CUDA_VERSION ?= 11.1.1
|
||||
OPTIX_VERSION ?= 7.2.0
|
||||
# CUDA_TOOLKIT_ROOT_DIR = $(shell rez-env -b cuda-${CUDA_VERSION} ${SPI_COMPILER_PLATFORM} -c "echo '$CUDA_TOOLKIT_ROOT'")
|
||||
CUDA_TOOLKIT_ROOT_DIR ?= /shots/spi/home/lib/arnold/rhel7/cuda_${CUDA_VERSION}
|
||||
OptiX_ROOT ?= /shots/spi/home/lib/arnold/rhel7/optix_${OPTIX_VERSION}
|
||||
OPTIXHOME = ${OptiX_ROOT}
|
||||
MY_CMAKE_FLAGS += -DUSE_OPTIX=${USE_OPTIX} \
|
||||
-DCUDA_TOOLKIT_ROOT_DIR=${CUDA_TOOLKIT_ROOT_DIR} \
|
||||
-DCUDA_EXTRA_LIBS=${CUDA_EXTRA_LIBS} \
|
||||
-DOPTIXHOME=${OPTIXHOME} -DOPTIX_EXTRA_LIBS=lzma
|
||||
|
||||
# end rhel7
|
||||
|
||||
## Generic OSX machines (including LG's laptop)
|
||||
else ifeq (${platform}, macosx)
|
||||
CMAKE_CXX_STANDARD ?= 14
|
||||
USE_SIMD ?= sse4.2
|
||||
MY_CMAKE_FLAGS += -DCMAKE_BUILD_WITH_INSTALL_RPATH=1
|
||||
MY_CMAKE_FLAGS += -DCMAKE_INSTALL_NAME_DIR="${working_dir}/dist/lib"
|
||||
|
||||
BOOSTVERS=${BOOSTVERS}${BOOSTSPSUFFIX}
|
||||
LLVM_DIRECTORY ?= /usr/local/opt/llvm
|
||||
|
||||
# A variety of tags can be used to try specific versions of gcc or
|
||||
# clang from the site-specific places we have installed them.
|
||||
ifeq (${COMPILER}, gcc6)
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6
|
||||
USE_LIBCPLUSPLUS := 0
|
||||
else ifeq (${COMPILER}, gcc9)
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9
|
||||
USE_LIBCPLUSPLUS := 0
|
||||
else ifeq (${COMPILER},clang14)
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DCMAKE_C_COMPILER=/usr/local/opt/llvm@14/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@14/bin/clang++
|
||||
else ifeq (${COMPILER},clang15)
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DCMAKE_C_COMPILER=/usr/local/opt/llvm@15/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@15/bin/clang++
|
||||
else ifeq (${COMPILER},clang)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
|
||||
else ifeq (${COMPILER},gcc)
|
||||
MY_CMAKE_FLAGS += -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
|
||||
else ifeq (${COMPILER},)
|
||||
# default compiler is clang, taken from the LLVM directory
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DCMAKE_C_COMPILER=${LLVM_DIRECTORY}/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=${LLVM_DIRECTORY}/bin/clang++
|
||||
else ifeq (${COMPILER},llvm)
|
||||
# "llvm" means "use the clang from our llvm"
|
||||
MY_CMAKE_FLAGS += \
|
||||
-DCMAKE_C_COMPILER=${LLVM_DIRECTORY}/bin/clang \
|
||||
-DCMAKE_CXX_COMPILER=${LLVM_DIRECTORY}/bin/clang++
|
||||
endif
|
||||
|
||||
# end generic OSX
|
||||
|
||||
else
|
||||
$(error Unknown SP_OS=${SP_OS})
|
||||
endif # endif ${SP_OS}
|
||||
|
||||
|
||||
ifneq (${VERBOSE},)
|
||||
$(info MY_CMAKE_FLAGS: $(MY_CMAKE_FLAGS))
|
||||
endif
|
||||
@@ -1,6 +0,0 @@
|
||||
<cfg>
|
||||
<version>@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@.@PROJECT_VERSION_TWEAK@</version>
|
||||
<appdir architecture="@SP_OS@">@OSL_REZ_INSTALL_PATH@</appdir>
|
||||
<launchprogram></launchprogram>
|
||||
<setup></setup>
|
||||
</cfg>
|
||||
@@ -1,9 +0,0 @@
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
option (${PROJ_NAME}_SPIREZ "Enable extra bits for building for SPI Rez install" OFF)
|
||||
if (${PROJ_NAME}_SPIREZ)
|
||||
set (appcfg_filename "${CMAKE_BINARY_DIR}/${PROJECT_NAME}_${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_TWEAK}.xml")
|
||||
configure_file ("${PROJECT_SOURCE_DIR}/site/spi/appcfg.xml.in" "${appcfg_filename}")
|
||||
endif ()
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# This helper script takes a major.minor.patch semantic version string
|
||||
# ("2.1.1") and reformats it into the dot-less zero-padded version like
|
||||
# "20101". This is necessary to turn external release designations into
|
||||
# integer SpComp2 version numbers.
|
||||
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
|
||||
if len(sys.argv) != 2 :
|
||||
print('Need 1 argument: version number with dots')
|
||||
exit(1)
|
||||
|
||||
vers = sys.argv[1]
|
||||
parts = vers.split('.')
|
||||
print ('{:d}{:02d}{:02d}'.format(int(parts[0]), int(parts[1]), int(parts[2])))
|
||||
@@ -1,28 +0,0 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright Contributors to the Open Shading Language Project.
|
||||
|
||||
sonar.host.url=https://sonarcloud.io
|
||||
|
||||
# Required metadata
|
||||
sonar.organization=academysoftwarefoundation
|
||||
sonar.projectName=OpenShadingLanguage
|
||||
sonar.projectVersion=1.12
|
||||
sonar.projectKey=AcademySoftwareFoundation_OpenShadingLanguage
|
||||
|
||||
# Project links
|
||||
sonar.links.homepage=https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
sonar.links.ci=https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/actions
|
||||
sonar.links.scm=https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
sonar.links.issue=https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/issues
|
||||
|
||||
# Source properties
|
||||
sonar.sources=src
|
||||
sonar.sourceEncoding=UTF-8
|
||||
sonar.exclusions=src/include/OSL/Imath/*.h,src/build-scripts/*
|
||||
|
||||
# C/C++ analyzer properties
|
||||
sonar.cfamily.build-wrapper-output=build/bw_output
|
||||
sonar.cfamily.gcov.reportsPath=_coverage
|
||||
|
||||
sonar.cfamily.cache.enabled=true
|
||||
sonar.cfamily.cache.path=/tmp/sonarcache
|
||||
@@ -1,40 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Utility script to download and build cmake
|
||||
#
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Exit the whole script if any command fails.
|
||||
set -ex
|
||||
|
||||
echo "Building cmake"
|
||||
uname
|
||||
|
||||
CMAKE_VERSION=${CMAKE_VERSION:=3.12.4}
|
||||
LOCAL_DEPS_DIR=${LOCAL_DEPS_DIR:=${PWD}/ext}
|
||||
CMAKE_INSTALL_DIR=${CMAKE_INSTALL_DIR:=${LOCAL_DEPS_DIR}/cmake}
|
||||
|
||||
if [[ `uname` == "Linux" && `uname -m` == "x86_64" ]] ; then
|
||||
mkdir -p ${CMAKE_INSTALL_DIR} || true
|
||||
curl --location "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh" -o "cmake.sh"
|
||||
sh cmake.sh --skip-license --prefix=${CMAKE_INSTALL_DIR}
|
||||
export PATH=${CMAKE_INSTALL_DIR}/bin:$PATH
|
||||
fi
|
||||
|
||||
if [[ `uname` == "Linux" && `uname -m` == "aarch64" ]] ; then
|
||||
mkdir -p ${CMAKE_INSTALL_DIR} || true
|
||||
curl --location https://anaconda.org/conda-forge/cmake/3.17.0/download/linux-aarch64/cmake-3.17.0-h28c56e5_0.tar.bz2 -o cmake-3.17.0-h28c56e5_0.tar.bz2
|
||||
tar -xjf cmake-3.17.0-h28c56e5_0.tar.bz2 -C ${CMAKE_INSTALL_DIR}
|
||||
export PATH=${CMAKE_INSTALL_DIR}/bin:$PATH
|
||||
|
||||
# In case we ever need to build from scratch:
|
||||
# curl --location "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz" -o cmake.tar.gz
|
||||
# tar xzf cmake.tar.gz
|
||||
# pushd cmake-${CMAKE_VERSION}
|
||||
# CXX="ccache $CXX" ./bootstrap --parallel=${PARALLEL:=4} --enable-ccache
|
||||
# CXX="ccache $CXX" timeout 2100 time make ${PAR_MAKEFAGS} || true
|
||||
# export PATH=${CMAKE_INSTALL_DIR}/bin:$PWD/bin:$PATH
|
||||
# popd
|
||||
fi
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Utility script to download and build LLVM & clang
|
||||
#
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Exit the whole script if any command fails.
|
||||
set -ex
|
||||
|
||||
echo "Building LLVM"
|
||||
uname
|
||||
|
||||
|
||||
if [[ `uname` == "Linux" ]] ; then
|
||||
LLVM_VERSION=${LLVM_VERSION:=13.0.0}
|
||||
LLVM_INSTALL_DIR=${LLVM_INSTALL_DIR:=${PWD}/llvm-install}
|
||||
if [[ "$GITHUB_WORKFLOW" != "" ]] ; then
|
||||
LLVM_DISTRO_NAME=${LLVM_DISTRO_NAME:=ubuntu-18.04}
|
||||
elif [[ "$TRAVIS_DIST" == "trusty" ]] ; then
|
||||
LLVM_DISTRO_NAME=${LLVM_DISTRO_NAME:=ubuntu-14.04}
|
||||
elif [[ "$TRAVIS_DIST" == "xenial" ]] ; then
|
||||
LLVM_DISTRO_NAME=${LLVM_DISTRO_NAME:=ubuntu-16.04}
|
||||
elif [[ "$TRAVIS_DIST" == "bionic" ]] ; then
|
||||
LLVM_DISTRO_NAME=${LLVM_DISTRO_NAME:=ubuntu-18.04}
|
||||
else
|
||||
LLVM_DISTRO_NAME=${LLVM_DISTRO_NAME:=error}
|
||||
fi
|
||||
LLVMTAR=clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-${LLVM_DISTRO_NAME}.tar.xz
|
||||
echo LLVMTAR = $LLVMTAR
|
||||
if [[ "$LLVM_VERSION" == "10.0.0" ]] || [[ "$LLVM_VERSION" == "11.0.0" ]] \
|
||||
|| [[ "$LLVM_VERSION" == "11.1.0" ]] || [[ "$LLVM_VERSION" == "12.0.0" ]] \
|
||||
|| [[ "$LLVM_VERSION" == "13.0.0" ]] || [[ "$LLVM_VERSION" == "14.0.0" ]] ;
|
||||
then
|
||||
# new
|
||||
curl --location https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/${LLVMTAR} -o $LLVMTAR
|
||||
else
|
||||
curl --location http://releases.llvm.org/${LLVM_VERSION}/${LLVMTAR} -o $LLVMTAR
|
||||
fi
|
||||
ls -l $LLVMTAR
|
||||
tar xf $LLVMTAR
|
||||
rm -f $LLVMTAR
|
||||
echo "Installed ${LLVM_VERSION} in ${LLVM_INSTALL_DIR}"
|
||||
mkdir -p $LLVM_INSTALL_DIR && true
|
||||
mv clang+llvm*/* $LLVM_INSTALL_DIR
|
||||
export LLVM_DIRECTORY=$LLVM_INSTALL_DIR
|
||||
export PATH=${LLVM_INSTALL_DIR}/bin:$PATH
|
||||
# ls -a $LLVM_DIRECTORY
|
||||
fi
|
||||
@@ -1,63 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Utility script to download and build OpenColorIO
|
||||
|
||||
# Exit the whole script if any command fails.
|
||||
set -ex
|
||||
|
||||
# Which OCIO to retrieve, how to build it
|
||||
OPENCOLORIO_REPO=${OPENCOLORIO_REPO:=https://github.com/AcademySoftwareFoundation/OpenColorIO.git}
|
||||
OPENCOLORIO_VERSION=${OPENCOLORIO_VERSION:=v1.1.1}
|
||||
|
||||
# Where to install the final results
|
||||
LOCAL_DEPS_DIR=${LOCAL_DEPS_DIR:=${PWD}/ext}
|
||||
OPENCOLORIO_SOURCE_DIR=${OPENCOLORIO_SOURCE_DIR:=${LOCAL_DEPS_DIR}/OpenColorIO}
|
||||
OPENCOLORIO_BUILD_DIR=${OPENCOLORIO_BUILD_DIR:=${LOCAL_DEPS_DIR}/OpenColorIO-build}
|
||||
OPENCOLORIO_INSTALL_DIR=${OPENCOLORIO_INSTALL_DIR:=${LOCAL_DEPS_DIR}/dist}
|
||||
OPENCOLORIO_CXX_FLAGS=${OPENCOLORIO_CXX_FLAGS:="-Wno-unused-function -Wno-deprecated-declarations -Wno-cast-qual -Wno-write-strings"}
|
||||
# Just need libs:
|
||||
OPENCOLORIO_BUILDOPTS="-DOCIO_BUILD_APPS=OFF -DOCIO_BUILD_NUKE=OFF \
|
||||
-DOCIO_BUILD_DOCS=OFF -DOCIO_BUILD_TESTS=OFF \
|
||||
-DOCIO_BUILD_GPU_TESTS=OFF \
|
||||
-DOCIO_BUILD_PYTHON=OFF -DOCIO_BUILD_PYGLUE=OFF \
|
||||
-DOCIO_BUILD_JAVA=OFF \
|
||||
-DBUILD_SHARED_LIBS=${OPENCOLORIO_BUILD_SHARED_LIBS:=ON}"
|
||||
BASEDIR=`pwd`
|
||||
pwd
|
||||
echo "OpenColorIO install dir will be: ${OPENCOLORIO_INSTALL_DIR}"
|
||||
|
||||
mkdir -p ${LOCAL_DEPS_DIR}
|
||||
pushd ${LOCAL_DEPS_DIR}
|
||||
|
||||
# Clone OpenColorIO project from GitHub and build
|
||||
if [[ ! -e ${OPENCOLORIO_SOURCE_DIR} ]] ; then
|
||||
echo "git clone ${OPENCOLORIO_REPO} ${OPENCOLORIO_SOURCE_DIR}"
|
||||
git clone ${OPENCOLORIO_REPO} ${OPENCOLORIO_SOURCE_DIR}
|
||||
fi
|
||||
cd ${OPENCOLORIO_SOURCE_DIR}
|
||||
|
||||
echo "git checkout ${OPENCOLORIO_VERSION} --force"
|
||||
git checkout ${OPENCOLORIO_VERSION} --force
|
||||
mkdir -p ${OPENCOLORIO_BUILD_DIR}
|
||||
cd ${OPENCOLORIO_BUILD_DIR}
|
||||
time cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=${OPENCOLORIO_INSTALL_DIR} \
|
||||
-DCMAKE_CXX_FLAGS="${OPENCOLORIO_CXX_FLAGS}" \
|
||||
${OPENCOLORIO_BUILDOPTS} ${OPENCOLORIO_SOURCE_DIR}
|
||||
time cmake --build . --config Release --target install
|
||||
popd
|
||||
|
||||
# ls -R ${OPENCOLORIO_INSTALL_DIR}
|
||||
|
||||
#echo "listing .."
|
||||
#ls ..
|
||||
|
||||
# Set up paths. These will only affect the caller if this script is
|
||||
# run with 'source' rather than in a separate shell.
|
||||
export OpenColorIO_ROOT=$OPENCOLORIO_INSTALL_DIR
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${OPENCOLORIO_INSTALL_DIR}/lib
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Utility script to download and build OpenEXR & IlmBase
|
||||
#
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
|
||||
# Exit the whole script if any command fails.
|
||||
set -ex
|
||||
|
||||
# Which OpenEXR to retrieve, how to build it
|
||||
OPENEXR_REPO=${OPENEXR_REPO:=https://github.com/AcademySoftwareFoundation/openexr.git}
|
||||
OPENEXR_VERSION=${OPENEXR_VERSION:=v3.1.1}
|
||||
|
||||
# Where to install the final results
|
||||
LOCAL_DEPS_DIR=${LOCAL_DEPS_DIR:=${PWD}/ext}
|
||||
OPENEXR_SOURCE_DIR=${OPENEXR_SOURCE_DIR:=${LOCAL_DEPS_DIR}/openexr}
|
||||
OPENEXR_BUILD_DIR=${OPENEXR_BUILD_DIR:=${LOCAL_DEPS_DIR}/openexr-build}
|
||||
OPENEXR_INSTALL_DIR=${OPENEXR_INSTALL_DIR:=${LOCAL_DEPS_DIR}/dist}
|
||||
OPENEXR_BUILD_TYPE=${OPENEXR_BUILD_TYPE:=Release}
|
||||
OPENEXR_CMAKE_FLAGS=${OPENEXR_CMAKE_FLAGS:=""}
|
||||
OPENEXR_CXX_FLAGS=${OPENEXR_CXX_FLAGS:=""}
|
||||
BASEDIR=$PWD
|
||||
|
||||
pwd
|
||||
echo "Building OpenEXR ${OPENEXR_VERSION}"
|
||||
echo "OpenEXR build dir will be: ${OPENEXR_BUILD_DIR}"
|
||||
echo "OpenEXR install dir will be: ${OPENEXR_INSTALL_DIR}"
|
||||
echo "OpenEXR Build type is ${OPENEXR_BUILD_TYPE}"
|
||||
echo "CMAKE_PREFIX_PATH is ${CMAKE_PREFIX_PATH}"
|
||||
|
||||
# Clone OpenEXR project (including IlmBase) from GitHub and build
|
||||
if [[ ! -e ${OPENEXR_SOURCE_DIR} ]] ; then
|
||||
echo "git clone ${OPENEXR_REPO} ${OPENEXR_SOURCE_DIR}"
|
||||
git clone ${OPENEXR_REPO} ${OPENEXR_SOURCE_DIR}
|
||||
fi
|
||||
mkdir -p ${OPENEXR_INSTALL_DIR} && true
|
||||
mkdir -p ${OPENEXR_BUILD_DIR} && true
|
||||
|
||||
pushd ${OPENEXR_SOURCE_DIR}
|
||||
git checkout ${OPENEXR_VERSION} --force
|
||||
|
||||
if [[ ${OPENEXR_VERSION} == "v2.3.0" ]] ; then
|
||||
# Simplified setup for 2.3+
|
||||
cd ${OPENEXR_BUILD_DIR}
|
||||
cmake -DCMAKE_BUILD_TYPE=${OPENEXR_BUILD_TYPE} \
|
||||
-DCMAKE_INSTALL_PREFIX="${OPENEXR_INSTALL_DIR}" \
|
||||
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
|
||||
-DILMBASE_PACKAGE_PREFIX="${OPENEXR_INSTALL_DIR}" \
|
||||
-DOPENEXR_BUILD_UTILS=0 \
|
||||
-DOPENEXR_BUILD_TESTS=0 \
|
||||
-DOPENEXR_BUILD_PYTHON_LIBS=0 \
|
||||
-DCMAKE_CXX_FLAGS="${OPENEXR_CXX_FLAGS}" \
|
||||
${OPENEXR_CMAKE_FLAGS} ${OPENEXR_SOURCE_DIR}
|
||||
time cmake --build . --target install --config ${OPENEXR_BUILD_TYPE}
|
||||
else
|
||||
# Simplified setup for 2.4+
|
||||
cd ${OPENEXR_BUILD_DIR}
|
||||
cmake -DCMAKE_BUILD_TYPE=${OPENEXR_BUILD_TYPE} \
|
||||
-DCMAKE_INSTALL_PREFIX="${OPENEXR_INSTALL_DIR}" \
|
||||
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
|
||||
-DILMBASE_PACKAGE_PREFIX="${OPENEXR_INSTALL_DIR}" \
|
||||
-DOPENEXR_BUILD_UTILS=0 \
|
||||
-DBUILD_TESTING=0 \
|
||||
-DPYILMBASE_ENABLE=0 \
|
||||
-DOPENEXR_VIEWERS_ENABLE=0 \
|
||||
-DINSTALL_OPENEXR_EXAMPLES=0 \
|
||||
-DOPENEXR_INSTALL_EXAMPLES=0 \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
-DCMAKE_CXX_FLAGS="${OPENEXR_CXX_FLAGS}" \
|
||||
${OPENEXR_CMAKE_FLAGS} ${OPENEXR_SOURCE_DIR}
|
||||
time cmake --build . --target install --config ${OPENEXR_BUILD_TYPE}
|
||||
fi
|
||||
|
||||
popd
|
||||
|
||||
#ls -R ${OPENEXR_INSTALL_DIR}
|
||||
|
||||
# Set up paths. These will only affect the caller if this script is
|
||||
# run with 'source' rather than in a separate shell.
|
||||
export ILMBASE_ROOT=$OPENEXR_INSTALL_DIR
|
||||
export OPENEXR_ROOT=$OPENEXR_INSTALL_DIR
|
||||
export ILMBASE_LIBRARY_DIR=$OPENEXR_INSTALL_DIR/lib
|
||||
export OPENEXR_LIBRARY_DIR=$OPENEXR_INSTALL_DIR/lib
|
||||
export LD_LIBRARY_PATH=$OPENEXR_ROOT/lib:$LD_LIBRARY_PATH
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Install OpenImageIO
|
||||
|
||||
# Exit the whole script if any command fails.
|
||||
set -ex
|
||||
|
||||
OPENIMAGEIO_REPO=${OPENIMAGEIO_REPO:=OpenImageIO/oiio}
|
||||
OPENIMAGEIO_VERSION=${OPENIMAGEIO_VERSION:=release}
|
||||
LOCAL_DEPS_DIR=${LOCAL_DEPS_DIR:=${PWD}/ext}
|
||||
OPENIMAGEIO_SRCDIR=${OPENIMAGEIO_SRCDIR:=${LOCAL_DEPS_DIR}/OpenImageIO}
|
||||
OPENIMAGEIO_BUILD_DIR=${OPENIMAGEIO_BUILD_DIR:=${OPENIMAGEIO_SRCDIR}/build}
|
||||
OPENIMAGEIO_INSTALLDIR=${OPENIMAGEIO_INSTALLDIR:=${LOCAL_DEPS_DIR}/dist}
|
||||
OPENIMAGEIO_CMAKE_FLAGS=${OPENIMAGEIO_CMAKE_FLAGS:=""}
|
||||
OPENIMAGEIO_BUILD_TYPE=${OPENIMAGEIO_BUILD_TYPE:=Release}
|
||||
OPENIMAGEIO_CXXFLAGS=${OPENIMAGEIO_CXXFLAGS:=""}
|
||||
BASEDIR=$PWD
|
||||
CMAKE_GENERATOR=${CMAKE_GENERATOR:="Unix Makefiles"}
|
||||
|
||||
if [ ! -e $OPENIMAGEIO_SRCDIR ] ; then
|
||||
git clone https://github.com/${OPENIMAGEIO_REPO} $OPENIMAGEIO_SRCDIR
|
||||
fi
|
||||
|
||||
|
||||
mkdir -p ${OPENIMAGEIO_INSTALLDIR} && true
|
||||
mkdir -p ${OPENIMAGEIO_BUILD_DIR} && true
|
||||
|
||||
pushd $OPENIMAGEIO_SRCDIR
|
||||
git fetch --all -p
|
||||
git checkout $OPENIMAGEIO_VERSION --force
|
||||
|
||||
if [[ "$USE_SIMD" != "" ]] ; then
|
||||
OPENIMAGEIO_CMAKE_FLAGS="$OPENIMAGEIO_CMAKE_FLAGS -DUSE_SIMD=$USE_SIMD"
|
||||
fi
|
||||
if [[ "$DEBUG" == "1" ]] ; then
|
||||
OPENIMAGEIO_CMAKE_FLAGS="$OPENIMAGEIO_CMAKE_FLAGS -DCMAKE_BUILD_TYPE=Debug"
|
||||
fi
|
||||
|
||||
# if [[ "$ARCH" == "windows64" ]] ; then
|
||||
pushd ${OPENIMAGEIO_BUILD_DIR}
|
||||
cmake .. -G "$CMAKE_GENERATOR" \
|
||||
-DCMAKE_BUILD_TYPE="$OPENIMAGEIO_BUILD_TYPE" \
|
||||
-DCMAKE_INSTALL_PREFIX="$OPENIMAGEIO_INSTALLDIR" \
|
||||
-DPYTHON_VERSION="$PYTHON_VERSION" \
|
||||
-DCMAKE_INSTALL_LIBDIR="$OPENIMAGEIO_INSTALLDIR/lib" \
|
||||
-DCMAKE_CXX_STANDARD="$CMAKE_CXX_STANDARD" \
|
||||
$OPENIMAGEIO_CMAKE_FLAGS -DVERBOSE=1
|
||||
echo "Parallel build $CMAKE_BUILD_PARALLEL_LEVEL"
|
||||
time cmake --build . --target install --config ${OPENIMAGEIO_BUILD_TYPE}
|
||||
popd
|
||||
|
||||
popd
|
||||
|
||||
export OpenImageIO_ROOT=$OPENIMAGEIO_INSTALLDIR
|
||||
export PATH=$OpenImageIO_ROOT/bin:$PATH
|
||||
export DYLD_LIBRARY_PATH=$OpenImageIO_ROOT/lib:$DYLD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=$OpenImageIO_ROOT/lib:$LD_LIBRARY_PATH
|
||||
export PYTHONPATH=$OpenImageIO_ROOT/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH
|
||||
|
||||
echo "DYLD_LIBRARY_PATH = $DYLD_LIBRARY_PATH"
|
||||
echo "LD_LIBRARY_PATH = $LD_LIBRARY_PATH"
|
||||
echo "OpenImageIO_ROOT $OpenImageIO_ROOT"
|
||||
# ls -R $OpenImageIO_ROOT
|
||||
@@ -1,58 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Utility script to download and build pugixml
|
||||
#
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Exit the whole script if any command fails.
|
||||
set -ex
|
||||
|
||||
# Repo and branch/tag/commit of pugixml to download if we don't have it yet
|
||||
PUGIXML_REPO=${PUGIXML_REPO:=https://github.com/zeux/pugixml.git}
|
||||
PUGIXML_VERSION=${PUGIXML_VERSION:=v1.10}
|
||||
|
||||
# Where to put pugixml repo source (default to the ext area)
|
||||
PUGIXML_SRC_DIR=${PUGIXML_SRC_DIR:=${PWD}/ext/pugixml}
|
||||
# Temp build area (default to a build/ subdir under source)
|
||||
PUGIXML_BUILD_DIR=${PUGIXML_BUILD_DIR:=${PUGIXML_SRC_DIR}/build}
|
||||
# Install area for pugixml (default to ext/dist)
|
||||
LOCAL_DEPS_DIR=${LOCAL_DEPS_DIR:=${PWD}/ext}
|
||||
PUGIXML_INSTALL_DIR=${PUGIXML_INSTALL_DIR:=${LOCAL_DEPS_DIR}/dist}
|
||||
#PUGIXML_BUILD_OPTS=${PUGIXML_BUILD_OPTS:=}
|
||||
|
||||
pwd
|
||||
echo "pugixml install dir will be: ${PUGIXML_INSTALL_DIR}"
|
||||
|
||||
mkdir -p ./ext
|
||||
pushd ./ext
|
||||
|
||||
# Clone pugixml project from GitHub and build
|
||||
if [[ ! -e ${PUGIXML_SRC_DIR} ]] ; then
|
||||
echo "git clone ${PUGIXML_REPO} ${PUGIXML_SRC_DIR}"
|
||||
git clone ${PUGIXML_REPO} ${PUGIXML_SRC_DIR}
|
||||
fi
|
||||
cd ${PUGIXML_SRC_DIR}
|
||||
echo "git checkout ${PUGIXML_VERSION} --force"
|
||||
git checkout ${PUGIXML_VERSION} --force
|
||||
|
||||
mkdir -p ${PUGIXML_BUILD_DIR}
|
||||
cd ${PUGIXML_BUILD_DIR}
|
||||
time cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=${PUGIXML_INSTALL_DIR} \
|
||||
-DBUILD_SHARED_LIBS=ON \
|
||||
-DBUILD_TESTS=OFF \
|
||||
${PUGIXML_BUILD_OPTS} ..
|
||||
time cmake --build . --config Release --target install
|
||||
|
||||
# ls -R ${PUGIXML_INSTALL_DIR}
|
||||
popd
|
||||
|
||||
#echo "listing .."
|
||||
#ls ..
|
||||
|
||||
# Set up paths. These will only affect the caller if this script is
|
||||
# run with 'source' rather than in a separate shell.
|
||||
export pugixml_ROOT=$PUGIXML_INSTALL_DIR
|
||||
export LD_LIBRARY_PATH=$pugixml_ROOT/lib:$pugixml_ROOT/lib64:$LD_LIBRARY_PATH
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Utility script to download and build pybind11
|
||||
#
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Exit the whole script if any command fails.
|
||||
set -ex
|
||||
|
||||
# Repo and branch/tag/commit of pybind11 to download if we don't have it yet
|
||||
PYBIND11_REPO=${PYBIND11_REPO:=https://github.com/pybind/pybind11.git}
|
||||
PYBIND11_VERSION=${PYBIND11_VERSION:=v2.8.1}
|
||||
|
||||
# Where to put pybind11 repo source (default to the ext area)
|
||||
PYBIND11_SRC_DIR=${PYBIND11_SRC_DIR:=${PWD}/ext/pybind11}
|
||||
# Temp build area (default to a build/ subdir under source)
|
||||
PYBIND11_BUILD_DIR=${PYBIND11_BUILD_DIR:=${PYBIND11_SRC_DIR}/build}
|
||||
# Install area for pybind11 (default to ext/dist)
|
||||
LOCAL_DEPS_DIR=${LOCAL_DEPS_DIR:=${PWD}/ext}
|
||||
PYBIND11_INSTALL_DIR=${PYBIND11_INSTALL_DIR:=${LOCAL_DEPS_DIR}/dist}
|
||||
#PYBIND11_BUILD_OPTS=${PYBIND11_BUILD_OPTS:=}
|
||||
|
||||
if [[ "${PYTHON_VERSION}" != "" ]] ; then
|
||||
PYBIND11_BUILD_OPTS+=" -DPYBIND11_PYTHON_VERSION=${PYTHON_VERSION}"
|
||||
fi
|
||||
|
||||
pwd
|
||||
echo "pybind11 install dir will be: ${PYBIND11_INSTALL_DIR}"
|
||||
|
||||
mkdir -p ./ext
|
||||
pushd ./ext
|
||||
|
||||
# Clone pybind11 project from GitHub and build
|
||||
if [[ ! -e ${PYBIND11_SRC_DIR} ]] ; then
|
||||
echo "git clone ${PYBIND11_REPO} ${PYBIND11_SRC_DIR}"
|
||||
git clone ${PYBIND11_REPO} ${PYBIND11_SRC_DIR}
|
||||
fi
|
||||
cd ${PYBIND11_SRC_DIR}
|
||||
|
||||
echo "git checkout ${PYBIND11_VERSION} --force"
|
||||
git checkout ${PYBIND11_VERSION} --force
|
||||
|
||||
mkdir -p ${PYBIND11_BUILD_DIR}
|
||||
cd ${PYBIND11_BUILD_DIR}
|
||||
|
||||
if [[ -z $DEP_DOWNLOAD_ONLY ]]; then
|
||||
time cmake -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=${PYBIND11_INSTALL_DIR} \
|
||||
-DPYBIND11_TEST=OFF \
|
||||
${PYBIND11_BUILD_OPTS} ..
|
||||
time cmake --build . --config Release --target install
|
||||
fi
|
||||
|
||||
# ls -R ${PYBIND11_INSTALL_DIR}
|
||||
popd
|
||||
|
||||
#echo "listing .."
|
||||
#ls ..
|
||||
|
||||
# Set up paths. These will only affect the caller if this script is
|
||||
# run with 'source' rather than in a separate shell.
|
||||
export pybind11_ROOT=$PYBIND11_INSTALL_DIR
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Important: set -ex causes this whole script to terminate with error if
|
||||
# any command in it fails. This is crucial for CI tests.
|
||||
set -ex
|
||||
|
||||
if [[ "$USE_SIMD" != "" ]] ; then
|
||||
OSL_CMAKE_FLAGS="$OSL_CMAKE_FLAGS -DUSE_SIMD=$USE_SIMD"
|
||||
fi
|
||||
|
||||
if [[ -n "$CODECOV" ]] ; then
|
||||
OSL_CMAKE_FLAGS="$OSL_CMAKE_FLAGS -DCODECOV=${CODECOV}"
|
||||
fi
|
||||
|
||||
pushd build
|
||||
cmake .. -G "$CMAKE_GENERATOR" \
|
||||
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
|
||||
-DCMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH" \
|
||||
-DCMAKE_INSTALL_PREFIX="$OSL_ROOT" \
|
||||
-DUSE_PYTHON="${USE_PYTHON:=1}" \
|
||||
-DPYTHON_VERSION="$PYTHON_VERSION" \
|
||||
-DUSE_BATCHED="${USE_BATCHED:=0}" \
|
||||
-DCMAKE_INSTALL_LIBDIR="$OSL_ROOT/lib" \
|
||||
-DCMAKE_CXX_STANDARD="$CMAKE_CXX_STANDARD" \
|
||||
$OSL_CMAKE_FLAGS -DVERBOSE=1
|
||||
|
||||
# Save a copy of the generated files for debugging broken CI builds.
|
||||
mkdir cmake-save || /bin/true
|
||||
cp -r CMake* *.cmake cmake-save
|
||||
|
||||
: ${BUILDTARGET:=install}
|
||||
if [[ "$BUILDTARGET" != "none" ]] ; then
|
||||
echo "Parallel build ${CMAKE_BUILD_PARALLEL_LEVEL} of target ${BUILDTARGET}"
|
||||
time ${OSL_CMAKE_BUILD_WRAPPER} cmake --build . --target ${BUILDTARGET} --config ${CMAKE_BUILD_TYPE}
|
||||
fi
|
||||
popd
|
||||
|
||||
if [[ "${DEBUG_CI:=0}" != "0" ]] ; then
|
||||
echo "PATH=$PATH"
|
||||
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
|
||||
echo "PYTHONPATH=$PYTHONPATH"
|
||||
echo "ldd testshade"
|
||||
ldd $OSL_ROOT/bin/testshade
|
||||
fi
|
||||
|
||||
if [[ "$BUILDTARGET" == clang-format ]] ; then
|
||||
git diff --color
|
||||
THEDIFF=`git diff`
|
||||
if [[ "$THEDIFF" != "" ]] ; then
|
||||
echo "git diff was not empty. Failing clang-format or clang-tidy check."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@@ -1,34 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Run code coverage analysis
|
||||
# This assumes that the build occurred with CODECOV=1 andtests have already
|
||||
# fully run.
|
||||
|
||||
set -ex
|
||||
|
||||
echo "Performing code coverage analysis"
|
||||
mkdir _coverage
|
||||
pushd _coverage
|
||||
|
||||
ls -R ../build/src/
|
||||
|
||||
# Remove files or directories we want to exclude from code coverage analysis,
|
||||
# generally because we don't expect to execute any of their code during our
|
||||
# CI. (Because it's only used interactively, or is fallback code only used
|
||||
# when certain dependencies are not found.) Including these when we know we
|
||||
# won't be calling them during coverage gathering will just make our coverage
|
||||
# percentage look artifically low.
|
||||
rm -f ../build/src/osltoy/CMakeFiles/osltoy.dir/*.cpp.{gcno,gcda}
|
||||
|
||||
|
||||
# The sed command below converts from:
|
||||
# ../build/src/liboslexec/CMakeFiles/oslexec.dir/foo.gcno
|
||||
# to:
|
||||
# ../src/liboslexec/foo.cpp
|
||||
|
||||
for g in $(find ../build -name "*.gcno" -type f); do
|
||||
echo "Processing $g"
|
||||
echo "dirname $g = $(dirname $g) to " `$(echo "$g" | sed -e 's/\/build\//\//' -e 's/\.gcno/\.cpp/' -e 's/\.cpp\.cpp/\.cpp/' -e 's/\/CMakeFiles.*\.dir\//\//')`
|
||||
gcov -l -p -o $(dirname "$g") $(echo "$g" | sed -e 's/\/build\//\//' -e 's/\.gcno/\.cpp/' -e 's/\/CMakeFiles.*\.dir\//\//')
|
||||
done
|
||||
popd
|
||||
@@ -1,76 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# This script is run when CI system first starts up.
|
||||
# Since it sets many env variables needed by the caller, it should be run
|
||||
# with 'source', not in a separate shell.
|
||||
|
||||
# Environment variables we always need
|
||||
export PATH=/usr/local/bin/_ccache:/usr/lib/ccache:$PATH
|
||||
export USE_CCACHE=${USE_CCACHE:=1}
|
||||
export CCACHE_CPP2=1
|
||||
export CCACHE_DIR=/tmp/ccache
|
||||
if [[ "${RUNNER_OS}" == "macOS" ]] ; then
|
||||
export CCACHE_DIR=$HOME/.ccache
|
||||
fi
|
||||
mkdir -p $CCACHE_DIR
|
||||
|
||||
export OSL_ROOT=$PWD/dist
|
||||
export DYLD_LIBRARY_PATH=$OSL_ROOT/lib:$DYLD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=$OSL_ROOT/lib:$LD_LIBRARY_PATH
|
||||
export OIIO_LIBRARY_PATH=$OSL_ROOT/lib:${OIIO_LIBRARY_PATH}
|
||||
export LSAN_OPTIONS=suppressions=$PWD/src/build-scripts/nosanitize.txt
|
||||
export ASAN_OPTIONS=print_suppressions=0:detect_odr_violation=1
|
||||
|
||||
export USE_PYTHON=${USE_PYTHON:=1}
|
||||
export PYTHON_VERSION=${PYTHON_VERSION:="2.7"}
|
||||
export PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH
|
||||
export PYTHONPATH=/usr/local/lib64/python${PYTHON_VERSION}/site-packages:$PYTHONPATH
|
||||
export PYTHONPATH=$OSL_ROOT/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH
|
||||
export BUILD_MISSING_DEPS=${BUILD_MISSING_DEPS:=1}
|
||||
export COMPILER=${COMPILER:=gcc}
|
||||
export CXX=${CXX:=g++}
|
||||
export OSL_CI=true
|
||||
export USE_NINJA=${USE_NINJA:=1}
|
||||
export CMAKE_GENERATOR=${CMAKE_GENERATOR:=Ninja}
|
||||
export CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:=Release}
|
||||
export CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD:=11}
|
||||
|
||||
export PARALLEL=${PARALLEL:=4}
|
||||
export PAR_MAKEFLAGS=-j${PARALLEL}
|
||||
export CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL:=${PARALLEL}}
|
||||
export CTEST_PARALLEL_LEVEL=${CTEST_PARALLEL_LEVEL:=${PARALLEL}}
|
||||
|
||||
export LOCAL_DEPS_DIR=${LOCAL_DEPS_DIR:=$HOME/ext}
|
||||
export CMAKE_PREFIX_PATH=${LOCAL_DEPS_DIR}/dist:${CMAKE_PREFIX_PATH}
|
||||
export LD_LIBRARY_PATH=${LOCAL_DEPS_DIR}/dist/lib:$LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=${LOCAL_DEPS_DIR}/dist/lib64:$LD_LIBRARY_PATH
|
||||
export DYLD_LIBRARY_PATH=${LOCAL_DEPS_DIR}/dist/lib:$DYLD_LIBRARY_PATH
|
||||
|
||||
export TESTSUITE_CLEANUP_ON_SUCCESS=${TESTSUITE_CLEANUP_ON_SUCCESS:=1}
|
||||
|
||||
mkdir -p build dist
|
||||
|
||||
echo "HOME = $HOME"
|
||||
echo "PWD = $PWD"
|
||||
echo "LOCAL_DEPS_DIR = $LOCAL_DEPS_DIR"
|
||||
echo "uname -a: " `uname -a`
|
||||
echo "uname -m: " `uname -m`
|
||||
echo "uname -s: " `uname -s`
|
||||
echo "uname -n: " `uname -n`
|
||||
echo "nproc " `nproc`
|
||||
pwd
|
||||
ls
|
||||
env | sort
|
||||
|
||||
if [[ `uname -s` == "Linux" ]] ; then
|
||||
head -40 /proc/cpuinfo
|
||||
elif [[ ${RUNNER_OS} == "macOS" ]] ; then
|
||||
sysctl machdep.cpu.features
|
||||
fi
|
||||
|
||||
# Save the env for use by other stages
|
||||
src/build-scripts/save-env.bash
|
||||
@@ -1,36 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Important: set -ex causes this whole script to terminate with error if
|
||||
# any command in it fails. This is crucial for CI tests.
|
||||
set -ex
|
||||
|
||||
: ${CTEST_EXCLUSIONS:="broken"}
|
||||
: ${CTEST_TEST_TIMEOUT:=60}
|
||||
|
||||
$OSL_ROOT/bin/testshade --help
|
||||
|
||||
echo "Parallel test ${CTEST_PARALLEL_LEVEL}"
|
||||
echo "Default timeout ${CTEST_TEST_TIMEOUT}"
|
||||
echo "Test exclusions '${CTEST_EXCLUSIONS}'"
|
||||
echo "CTEST_ARGS '${CTEST_ARGS}'"
|
||||
|
||||
pushd build
|
||||
|
||||
ctest -C ${CMAKE_BUILD_TYPE} --force-new-ctest-process --output-on-failure \
|
||||
--timeout ${CTEST_TEST_TIMEOUT} -E "${CTEST_EXCLUSIONS}" ${CTEST_ARGS} \
|
||||
|| \
|
||||
ctest -C ${CMAKE_BUILD_TYPE} --force-new-ctest-process \
|
||||
--rerun-failed --repeat until-pass:5 -R render --output-on-failure \
|
||||
--timeout ${CTEST_TEST_TIMEOUT} -E "${CTEST_EXCLUSIONS}" ${CTEST_ARGS}
|
||||
# The weird construct above allows the render-* tests to run multiple times
|
||||
|
||||
popd
|
||||
|
||||
|
||||
# if [[ "$CODECOV" == 1 ]] ; then
|
||||
# bash <(curl -s https://codecov.io/bash)
|
||||
# fi
|
||||
@@ -1,442 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
from __future__ import print_function, absolute_import
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# To generate docdeep for docdeep, run this:
|
||||
# python3 docdeep.py -d docdeep docdeep.py > docdeep.md.html
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
|
||||
### <doc docdeep>
|
||||
###
|
||||
### **docdeep**
|
||||
###
|
||||
### Introduction
|
||||
### ============
|
||||
###
|
||||
### `docdeep` is a utility that extracts documentation from source code and
|
||||
### turns them into beautiful Markdeep documents.
|
||||
###
|
||||
### [Markdeep](https://casual-effects.com/markdeep) is a package by Morgan
|
||||
### McGuire, an extension of Markdown with a whole bunch of nice features
|
||||
### that make it extra nice for code, math, and diagrams. Read the Markdeep
|
||||
### web page and look at the examples for details.
|
||||
###
|
||||
### `docdeep` is a little like `Doxygen`. A poor person's Doxygen. A very
|
||||
### poor person. But without Doxygen's awkward syntax -- you just write
|
||||
### the comments in Markdeep. And the output is very aesthetically pleasing.
|
||||
### But it doesn't have any bells and whistles, like cross-referencing.
|
||||
###
|
||||
###
|
||||
###
|
||||
### Markup controls
|
||||
### ===============
|
||||
###
|
||||
### ## Documentation lines.
|
||||
###
|
||||
### A line whose first three non-whitespace characters are either `///` or
|
||||
### `###` is called a *doc-line*. Any other line is a *non-doc-line*.
|
||||
###
|
||||
### The `///` or `###` is the *doc-symbol*. Generally speaking, the `///`
|
||||
### doc-symbol is used when doc-marking C or C++, and `###` when doc-marking
|
||||
### Python, shell scripts, or other programs in languages where `#` is the
|
||||
### comment character. For simplicity, in the rest of this document, we will
|
||||
### always use `///` in our examples.
|
||||
###
|
||||
### ## Doc regions
|
||||
###
|
||||
### Doc-lines by themeslves don't do much, unless they are within a
|
||||
### *doc-region*. The beginning of a doc-region is denoted by a doc-line
|
||||
### whose first characters after the doc-symbol is
|
||||
###
|
||||
### <code>
|
||||
### /// <doc region-name>
|
||||
### </code>
|
||||
###
|
||||
### A doc region is ended one of three ways:
|
||||
###
|
||||
### 1. `</doc>` ends the active region.
|
||||
### 2. `<doc newname>` setting a new region name.
|
||||
### 3. The end of the source file.
|
||||
###
|
||||
### When there is an active named region, any other doc lines will be
|
||||
### appended (after stripping off the doc symbol itself) to the current
|
||||
### doc region text.
|
||||
###
|
||||
### You can have multiple regions with the same name, in entirely separate
|
||||
### parts of your source code. They will just be concatenated.
|
||||
###
|
||||
### Only one main doc region will be output by the `docdeep` program,
|
||||
### specified with the `-d` command line argument. Any other doc-regions
|
||||
### will not be included in the documentation output of that run.
|
||||
###
|
||||
### However, one doc-region may *include* the text of another doc-region
|
||||
### as follows:
|
||||
###
|
||||
### <code>
|
||||
### /// <inc region-name>
|
||||
### </code>
|
||||
###
|
||||
### ## Doc continuations and code regions
|
||||
###
|
||||
### If three dots follow the `doc` directive, like this:
|
||||
###
|
||||
### <code>
|
||||
### /// <doc... region-name>
|
||||
### </code>
|
||||
###
|
||||
### This causes *all* lines (until the end of the doc region) to be
|
||||
### interpreted as Markdeep documentation, even it if doesn't start with
|
||||
### the doc-symbol.
|
||||
###
|
||||
### Furthermore, denoting any region thusly:
|
||||
### <code>
|
||||
### /// <code>
|
||||
### ...
|
||||
### /// </code>
|
||||
### </code>
|
||||
###
|
||||
### will designate the contents not only as a doc continuation, but also
|
||||
### to be formatted as source code (mono space, syntax highlighted).
|
||||
###
|
||||
### ## API Explanations
|
||||
###
|
||||
### There is a special syntax for a common case: call-by-call explanations
|
||||
### of API methods and their explanations. Of course, this may constitute
|
||||
### the bulk of your auto-generated documentation. The two cases we are
|
||||
### concerned about is *pre-code comments* and *post-code comments*.
|
||||
###
|
||||
### For pre-code comments, the contiguous comment region associated with
|
||||
### a declaration immediately precedes the declaration. Such a comment
|
||||
### set has its first line start with `///>`. For post-code comments,
|
||||
### the documentation comments follows the code declaration, and this is
|
||||
### designated by having its first line start with `///<`. I like to
|
||||
### just remember that the `<` or `>` points in the direction of the code
|
||||
### declaration that the comment applies to.
|
||||
###
|
||||
### This is perhaps best explained by example:
|
||||
###
|
||||
### <code>
|
||||
### ///> Do the foo operation. Everybody knows what this is. You can write
|
||||
### /// any comment you want, with full markdeep formatting! It applies
|
||||
### /// to the declaration that will immediately follow this comment.
|
||||
### float foo (float x, float y);
|
||||
###
|
||||
### void bar (int n);
|
||||
### ///< The bar procedure. Note that with post-comments, you explain the
|
||||
### /// function or method *after* the declaration itself.
|
||||
### </code>
|
||||
###
|
||||
### This will generate the following output:
|
||||
###
|
||||
### <code>
|
||||
### float foo (float x, float y);
|
||||
### </code>
|
||||
### Do the foo operation. Everybody knows what this is. You can write
|
||||
### any comment you want, with full markdeep formatting! It applies
|
||||
### to the declaration that will immediately follow this comment.
|
||||
###
|
||||
### <code>
|
||||
### void bar (int n);
|
||||
### </code>
|
||||
### The bar procedure. Note that with post-comments, you explain the
|
||||
### function or method *after* the declaration itself.
|
||||
###
|
||||
### -----------------------
|
||||
###
|
||||
### It is important to keep in mind that **this API explanation is extremely
|
||||
### stupid**. The comment documentation is just a series of doc-lines with
|
||||
### no break between them, whose *first* line starts with `///>' or `///>`
|
||||
### (for pre-code and post-code docs, respectively). And the code that it
|
||||
### documents is just the immediately preceding or following set of non-doc
|
||||
### lines that contain *no* whitespace-only lines. There is no syntax
|
||||
### parsing going on here -- it just takes those non-blank, non-doc lines,
|
||||
### strips off any semicolons and any characters following the semicolon
|
||||
### from each line in the block, and deletes anything in the whole block
|
||||
### at or after the first opening brace (`{`) found in the block. Strangely
|
||||
### enough, this is almost exactly what I want to document.
|
||||
###
|
||||
###
|
||||
### Command line arguments
|
||||
### ======================
|
||||
###
|
||||
### Run from the command line as follows:
|
||||
###
|
||||
### `$ python docdeep.py -d` *region* `-s` *style.css* `input1.h input2.cpp [...] > output.md.html`
|
||||
###
|
||||
### Arguments:
|
||||
###
|
||||
### `-d` *region*
|
||||
### : Specifies the name of the doc-region to generate output for. This is
|
||||
### required.
|
||||
### `-s` *stylesheet*
|
||||
### : This optional argument will specify which CSS style sheet to include a
|
||||
### reference to.
|
||||
###
|
||||
### Any number of filenames may be specified. They will be processed in the
|
||||
### order that they appear on the command line.
|
||||
###
|
||||
|
||||
import sys
|
||||
import re
|
||||
import argparse
|
||||
|
||||
# pattern for beginning of special comment
|
||||
docline_pattern = re.compile ('(^[ \t]*)((///)|(###))[<>]?([ \t]|$)(.*)')
|
||||
doc_begin_pattern = re.compile ('(^[ \t]*)((///)|(###))[ ]*<doc(\.\.\.)?[ ]*(\w*)[ ]*>')
|
||||
docendpattern = re.compile ('(^[ \t]*)((///)|(###))[ ]*</doc>')
|
||||
api_precomment_pattern = re.compile ('(^[ \t]*)((///)|(###))>( )+( )?(.*)')
|
||||
api_postcomment_pattern = re.compile ('(^[ \t]*)((///)|(###))<( )+( )?(.*)')
|
||||
inc_pattern = re.compile ('(^[ \t]*)<inc[ ]+([^>]+)>')
|
||||
code_pattern = re.compile ('(^[ \t]*)((///)|(###))[ ]*<code>')
|
||||
codeend_pattern = re.compile ('(^[ \t]*)((///)|(###))[ ]*</code>')
|
||||
trimbrace_pattern = re.compile ("([^{]*)")
|
||||
trimsemi_pattern = re.compile ("([^;]*)")
|
||||
blankline_pattern = re.compile ("^[ \t]*$")
|
||||
|
||||
region_name = '_'
|
||||
alldocs = { '_' : '' }
|
||||
DEBUG = False
|
||||
|
||||
|
||||
# Utility: blob is a string (possibly containing many "lines" separated by
|
||||
# '\n'). For each line of text in the blob, shave off the first `indent`
|
||||
# characters. Then reassemble and return.
|
||||
def shave_each_line (blob, indent) :
|
||||
r = ''
|
||||
lines = blob.split ('\n')
|
||||
for line in lines :
|
||||
r += line[indent:] + '\n'
|
||||
# strip trailing newline unless the original blob had a trailing newline
|
||||
if len(r) and r[-1] == '\n' and blob[-1] != '\n':
|
||||
r = r[:-1]
|
||||
return r
|
||||
|
||||
# Enumerated type for the state machine.
|
||||
class LineType :
|
||||
BLANK = 0
|
||||
DOC = 2
|
||||
NONDOC = 3
|
||||
|
||||
# Append this doc blob to the current region, and clear the blob
|
||||
def flush_doc_blob (doc_blob) :
|
||||
global alldocs, region_name
|
||||
if len(doc_blob) :
|
||||
alldocs[region_name] += doc_blob + '\n'
|
||||
doc_blob = ''
|
||||
|
||||
def read_input (filename, file) :
|
||||
global region_name, alldocs
|
||||
doc_cont_mode = False
|
||||
post_api_mode = False
|
||||
pre_api_mode = False
|
||||
indent = 0 # Amount of indentation we saw on the liast doc line
|
||||
lines = file.read().splitlines()
|
||||
code_blob = '' # Running set of contiguous non-doc, non-blank lines
|
||||
doc_blob = '' # Running set of contiguous doc lines
|
||||
|
||||
# state machine
|
||||
line_type = LineType.BLANK
|
||||
last_line_type = LineType.BLANK
|
||||
|
||||
for line in lines :
|
||||
|
||||
# Figure out what type of line we're on, and remember what type
|
||||
# of line we saw last.
|
||||
last_line_type = line_type
|
||||
if blankline_pattern.match(line) :
|
||||
line_type = LineType.BLANK
|
||||
elif docline_pattern.match(line) :
|
||||
line_type = LineType.DOC
|
||||
else :
|
||||
line_type = LineType.NONDOC
|
||||
|
||||
# print ('<!-- LINE----- ', line_type, line, ' -->\n')
|
||||
|
||||
# Not a doc line, but we're in "continuation mode": append
|
||||
# (unindented) to the doc blob.
|
||||
if line_type != LineType.DOC and doc_cont_mode :
|
||||
doc_blob += line[indent:] + '\n'
|
||||
if DEBUG :
|
||||
alldocs[region_name] += '<!-- CONT ' + line[:35] + ' -->\n'
|
||||
continue
|
||||
|
||||
# Blank line, not in continuation mode
|
||||
if line_type == LineType.BLANK :
|
||||
if DEBUG and last_line_type != LineType.BLANK :
|
||||
alldocs[region_name] += '<!-- BLANK -->\n'
|
||||
|
||||
# FIXME: does this end a post-declaration API doc?
|
||||
if pre_api_mode : # this blank ends a pre-api comment
|
||||
continue # ...keep reading
|
||||
|
||||
# If this line ends a post-api comment, output the code blob
|
||||
if post_api_mode :
|
||||
if DEBUG :
|
||||
alldocs[region_name] += ' <!-- blank ended post-api -->\n'
|
||||
# Trim everything past the first ; or { from the code blob
|
||||
alllines = code_blob.split('\n')
|
||||
# code_blob = ''
|
||||
new_code_blob = ''
|
||||
for oneline in alllines :
|
||||
m = trimsemi_pattern.search (oneline)
|
||||
oneline = m.group(1)
|
||||
new_code_blob += oneline + '\n'
|
||||
new_code_blob = new_code_blob.rstrip(' \n\r')
|
||||
m = trimbrace_pattern.match(new_code_blob)
|
||||
alldocs[region_name] += ('~~~C\n' +
|
||||
shave_each_line(m.group(1),indent) +
|
||||
'\n~~~\n')
|
||||
post_api_mode = False
|
||||
|
||||
# If this line ends a doc blob, output it
|
||||
if len(doc_blob) :
|
||||
alldocs[region_name] += doc_blob + '\n'
|
||||
doc_blob = ''
|
||||
# Blank lines clear the code blob
|
||||
code_blob = ''
|
||||
continue
|
||||
|
||||
# Non-blank, non-doc line: append to code blob and move on.
|
||||
if line_type == LineType.NONDOC :
|
||||
if DEBUG :
|
||||
alldocs[region_name] += '<!-- NONDOC ' + line[:35] + ' -->\n'
|
||||
code_blob += line + '\n'
|
||||
continue
|
||||
|
||||
# Remaining cases are all doc lines!
|
||||
|
||||
# Any doc line resets the pre-doc-symbol indentation level
|
||||
m = docline_pattern.match(line)
|
||||
indent = len(m.group(1))
|
||||
|
||||
# Handle <doc> and <doc...> : start of new doc section
|
||||
m = doc_begin_pattern.match(line)
|
||||
if m :
|
||||
flush_doc_blob (doc_blob)
|
||||
doc_blob = ''
|
||||
# If it led with <doc...> it also starts continuation mode
|
||||
doc_cont_mode = (m.group(5) == '...')
|
||||
# The <doc> directive gave the region name.
|
||||
r = m.group(6)
|
||||
r.strip()
|
||||
if r == '' :
|
||||
r = '_'
|
||||
if DEBUG :
|
||||
alldocs[region_name] += '<!-- DOCBEGIN ' + r + ' -->\n'
|
||||
region_name = r
|
||||
if not (region_name in alldocs) :
|
||||
alldocs[region_name] = ''
|
||||
continue
|
||||
#
|
||||
# Handle </doc>
|
||||
m = docendpattern.match(line)
|
||||
if m :
|
||||
if DEBUG :
|
||||
alldocs[region_name] += '<!-- DOCEND ' + region_name + '-->\n'
|
||||
flush_doc_blob (doc_blob)
|
||||
doc_blob = ''
|
||||
doc_cont_mode = False
|
||||
region_name = '_'
|
||||
continue
|
||||
#
|
||||
# Handle start of post-declaration API comment
|
||||
m = api_postcomment_pattern.match(line)
|
||||
if m :
|
||||
if DEBUG :
|
||||
alldocs[region_name] += '<!-- start post-decl api ' + line[:35] + '-->\n'
|
||||
flush_doc_blob (doc_blob)
|
||||
doc_blob = ''
|
||||
# Deduce indentation level
|
||||
indent = len(m.group(1))
|
||||
post_api_mode = True
|
||||
remainder = m.group(7)
|
||||
doc_blob += remainder + '\n'
|
||||
continue
|
||||
#
|
||||
# Handle start of pre-declaration API comment
|
||||
m = api_precomment_pattern.match(line)
|
||||
if m :
|
||||
flush_doc_blob (doc_blob)
|
||||
doc_blob = ''
|
||||
indent = len(m.group(1))
|
||||
post_api_mode = True
|
||||
remainder = m.group(7)
|
||||
doc_blob += remainder + '\n'
|
||||
continue
|
||||
#
|
||||
# Handle code section <code> ... </code>
|
||||
m = code_pattern.match(line)
|
||||
if m :
|
||||
flush_doc_blob (doc_blob)
|
||||
doc_blob = ''
|
||||
if DEBUG :
|
||||
doc_blob += '<!-- start code in '+ region_name+ '-->\n'
|
||||
indent = len(m.group(1))
|
||||
doc_blob += '<script type="preformatted">\n~~~C\n'
|
||||
doc_cont_mode = True
|
||||
continue
|
||||
if codeend_pattern.match(line) :
|
||||
doc_cont_mode = False
|
||||
doc_blob += '~~~\n</script>\n'
|
||||
if DEBUG :
|
||||
doc_blob += '<!-- end code in '+ region_name+ '-->\n'
|
||||
flush_doc_blob (doc_blob)
|
||||
doc_blob = ''
|
||||
continue
|
||||
#
|
||||
# Last case: just a continuing doc line
|
||||
m = docline_pattern.match (line)
|
||||
if m :
|
||||
if DEBUG :
|
||||
alldocs[region_name] += '<!-- doc cont ' + line[:35] + ' -->\n'
|
||||
contents = m.group(6)
|
||||
doc_blob += contents + '\n'
|
||||
continue
|
||||
print ('<!-- REMAINING CASE:', line, '-->\n')
|
||||
flush_doc_blob (doc_blob)
|
||||
region_name = '_'
|
||||
|
||||
|
||||
def output_blob (blob) :
|
||||
for line in blob.splitlines() :
|
||||
m = inc_pattern.match (line)
|
||||
if m and (m.group(2) in alldocs) :
|
||||
# print ('Want to include', m.group(2))
|
||||
output_blob (alldocs[m.group(2)])
|
||||
else :
|
||||
print (line)
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser (prog='docdeep',
|
||||
description='Turn source comments into markdeep document')
|
||||
parser.add_argument ('-d', dest='docname', default='main',
|
||||
help='Name of documentation (default: "main")')
|
||||
parser.add_argument ('-s', dest='stylesheet', default='',
|
||||
help='Name of style sheet (default: "")')
|
||||
parser.add_argument ('--debug', dest='DEBUG', action='store_const',
|
||||
const=True, default=False)
|
||||
parser.add_argument ('filenames', nargs='+')
|
||||
# parser.add_argument ('-o', dest='output_filename', nargs=1,
|
||||
# help='Output filename (default: stdout)')
|
||||
args = parser.parse_args()
|
||||
DEBUG = args.DEBUG
|
||||
|
||||
for filename in args.filenames :
|
||||
with open(filename) as file:
|
||||
read_input (filename, file)
|
||||
|
||||
print ('<meta charset="utf-8">\n')
|
||||
if args.docname in alldocs :
|
||||
output_blob (alldocs[args.docname])
|
||||
else :
|
||||
print ("Ick! could not find docs for", args.docname)
|
||||
|
||||
print ('<!-- Markdeep: --><style class="fallback">body{visibility:hidden;white-space:pre;font-family:monospace}</style><script src="markdeep.min.js"></script><script src="https://casual-effects.com/markdeep/latest/markdeep.min.js?"></script><script>window.alreadyProcessedMarkdeep||(document.body.style.visibility="visible")</script>')
|
||||
if args.stylesheet :
|
||||
print ('<link rel="stylesheet" href="{}">'.format (args.stylesheet))
|
||||
@@ -1,184 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
|
||||
set -ex
|
||||
|
||||
|
||||
#
|
||||
# Install system packages when those are acceptable for dependencies.
|
||||
#
|
||||
if [[ "$ASWF_ORG" != "" ]] ; then
|
||||
# Using ASWF CentOS container
|
||||
|
||||
export PATH=/opt/rh/devtoolset-6/root/usr/bin:/usr/local/bin:$PATH
|
||||
|
||||
#ls /etc/yum.repos.d
|
||||
|
||||
sudo yum install -y giflib giflib-devel && true
|
||||
# sudo yum install -y ffmpeg ffmpeg-devel && true
|
||||
|
||||
if [[ "${CONAN_LLVM_VERSION}" != "" ]] ; then
|
||||
mkdir conan
|
||||
pushd conan
|
||||
# Simple way to conan install just one package:
|
||||
# conan install clang/${CONAN_LLVM_VERSION}@aswftesting/ci_common1 -g deploy -g virtualenv
|
||||
# But the below method can accommodate multiple requirements:
|
||||
echo "[imports]" >> conanfile.txt
|
||||
echo "., * -> ." >> conanfile.txt
|
||||
echo "[requires]" >> conanfile.txt
|
||||
echo "clang/${CONAN_LLVM_VERSION}@aswftesting/ci_common1" >> conanfile.txt
|
||||
time conan install .
|
||||
echo "--ls--"
|
||||
ls -R .
|
||||
export PATH=$PWD/bin:$PATH
|
||||
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
|
||||
export LLVM_ROOT=$PWD
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "$CXX" == "icpc" || "$CC" == "icc" || "$USE_ICC" != "" || "$CXX" == "icpx" || "$CC" == "icx" || "$USE_ICX" != "" ]] ; then
|
||||
sudo cp src/build-scripts/oneAPI.repo /etc/yum.repos.d
|
||||
sudo yum install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.1.0-3768
|
||||
# Because multiple (possibly newer) versions of oneAPI may be installed,
|
||||
# use a config file to specify compiler and tbb versions
|
||||
# NOTE: oneAPI components have independent version numbering.
|
||||
set +e; source /opt/intel/oneapi/setvars.sh --config oneapi_2022.1.0.cfg; set -e
|
||||
|
||||
if [[ "$CXX" == "icpc" || "$CC" == "icc" || "$USE_ICC" != "" ]] ; then
|
||||
echo "Verifying installation of Intel(r) C++ Compiler:"
|
||||
icpc --version
|
||||
fi
|
||||
if [[ "$CXX" == "icpx" || "$CC" == "icx" || "$USE_ICX" != "" ]] ; then
|
||||
echo "Verifying installation of Intel(r) oneAPI DPC++/C++ Compiler:"
|
||||
icpx --version
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
# Using native Ubuntu runner
|
||||
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
time sudo apt-get update
|
||||
|
||||
time sudo apt-get -q install -y \
|
||||
git cmake ninja-build ccache g++ \
|
||||
libboost-dev libboost-thread-dev libboost-filesystem-dev \
|
||||
libilmbase-dev libopenexr-dev \
|
||||
libtiff-dev libgif-dev libpng-dev \
|
||||
flex bison libbison-dev \
|
||||
libpugixml-dev \
|
||||
libopencolorio-dev
|
||||
|
||||
time sudo apt-get -q install -y \
|
||||
qt5-default || /bin/true
|
||||
|
||||
export CMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu:$CMAKE_PREFIX_PATH
|
||||
|
||||
# Nonstandard python versions
|
||||
if [[ "${PYTHON_VERSION}" == "3.9" ]] ; then
|
||||
time sudo apt-get -q install -y python3.9-dev python3-numpy
|
||||
pip3 --version
|
||||
pip3 install numpy
|
||||
elif [[ "$PYTHON_VERSION" == "2.7" ]] ; then
|
||||
time sudo apt-get -q install -y python-dev python-numpy
|
||||
else
|
||||
pip3 install numpy
|
||||
fi
|
||||
|
||||
if [[ "$CXX" == "g++-6" ]] ; then
|
||||
time sudo apt-get install -y g++-6
|
||||
elif [[ "$CXX" == "g++-7" ]] ; then
|
||||
time sudo apt-get install -y g++-7
|
||||
elif [[ "$CXX" == "g++-8" ]] ; then
|
||||
time sudo apt-get install -y g++-8
|
||||
elif [[ "$CXX" == "g++-9" ]] ; then
|
||||
time sudo apt-get install -y g++-9
|
||||
elif [[ "$CXX" == "g++-10" ]] ; then
|
||||
time sudo apt-get install -y g++-10
|
||||
elif [[ "$CXX" == "g++-11" ]] ; then
|
||||
time sudo apt-get install -y g++-11
|
||||
elif [[ "$CXX" == "g++-12" ]] ; then
|
||||
time sudo apt-get install -y g++-12
|
||||
fi
|
||||
|
||||
if [[ "$CXX" == "icpc" || "$CC" == "icc" || "$USE_ICC" != "" || "$CXX" == "icpx" || "$CC" == "icx" || "$USE_ICX" != "" ]] ; then
|
||||
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
|
||||
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
|
||||
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
|
||||
time sudo apt-get update
|
||||
time sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic=2022.1.0-3768
|
||||
# Because multiple (possibly newer) versions of oneAPI may be installed,
|
||||
# use a config file to specify compiler and tbb versions
|
||||
# NOTE: oneAPI components have independent version numbering.
|
||||
set +e; source /opt/intel/oneapi/setvars.sh --config oneapi_2022.1.0.cfg; set -e
|
||||
fi
|
||||
|
||||
source src/build-scripts/build_llvm.bash
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [[ "$OPTIX_VERSION" != "" ]] ; then
|
||||
echo "Requested OPTIX_VERSION = '${OPTIX_VERSION}'"
|
||||
mkdir -p $LOCAL_DEPS_DIR/dist/include/internal
|
||||
OPTIXLOC=https://developer.download.nvidia.com/redist/optix/v${OPTIX_VERSION}
|
||||
for f in optix.h optix_device.h optix_function_table.h \
|
||||
optix_function_table_definition.h optix_host.h \
|
||||
optix_stack_size.h optix_stubs.h optix_types.h optix_7_device.h \
|
||||
optix_7_host.h optix_7_types.h \
|
||||
internal/optix_7_device_impl.h \
|
||||
internal/optix_7_device_impl_exception.h \
|
||||
internal/optix_7_device_impl_transformations.h
|
||||
do
|
||||
curl --retry 100 -m 120 --connect-timeout 30 \
|
||||
$OPTIXLOC/include/$f > $LOCAL_DEPS_DIR/dist/include/$f
|
||||
done
|
||||
export OptiX_ROOT=$LOCAL_DEPS_DIR/dist
|
||||
fi
|
||||
|
||||
|
||||
source src/build-scripts/build_pybind11.bash
|
||||
|
||||
if [[ "$OPENEXR_VERSION" != "" ]] ; then
|
||||
source src/build-scripts/build_openexr.bash
|
||||
fi
|
||||
|
||||
# if [[ "$PUGIXML_VERSION" != "" ]] ; then
|
||||
source src/build-scripts/build_pugixml.bash
|
||||
export MY_CMAKE_FLAGS+=" -DUSE_EXTERNAL_PUGIXML=1 "
|
||||
# fi
|
||||
|
||||
if [[ "$OPENCOLORIO_VERSION" != "" ]] ; then
|
||||
source src/build-scripts/build_opencolorio.bash
|
||||
fi
|
||||
|
||||
if [[ "$OPENIMAGEIO_VERSION" != "" ]] ; then
|
||||
# There are many parts of OIIO we don't need to build for OSL's tests
|
||||
export ENABLE_iinfo=0 ENABLE_iv=0 ENABLE_igrep=0
|
||||
export ENABLE_iconvert=0 ENABLE_testtex=0
|
||||
# For speed of compiling OIIO, disable the file formats that we don't
|
||||
# need for OSL's tests
|
||||
export ENABLE_BMP=0 ENABLE_cineon=0 ENABLE_DDS=0 ENABLE_DPX=0 ENABLE_FITS=0
|
||||
export ENABLE_ICO=0 ENABLE_iff=0 ENABLE_jpeg2000=0 ENABLE_PNM=0 ENABLE_PSD=0
|
||||
export ENABLE_RLA=0 ENABLE_SGI=0 ENABLE_SOCKET=0 ENABLE_SOFTIMAGE=0
|
||||
export ENABLE_TARGA=0 ENABLE_WEBP=0
|
||||
# We don't need to run OIIO's tests
|
||||
export OPENIMAGEIO_CMAKE_FLAGS+=" -DOIIO_BUILD_TESTING=OFF -DOIIO_BUILD_TESTS=0"
|
||||
# Don't let warnings in OIIO break OSL's CI run
|
||||
export OPENIMAGEIO_CMAKE_FLAGS+=" -DSTOP_ON_WARNING=OFF"
|
||||
export OPENIMAGEIO_CMAKE_FLAGS+=" -DUSE_OPENGL=0"
|
||||
if [[ $OPENIMAGEIO_VERSION == master && "${OPENIMAGEIO_UNITY:-1}" != "0" ]] ; then
|
||||
# Speed up the OIIO build by doing a "unity" build. (Note: this is
|
||||
# only a savings in CI where there are only 1-2 cores available, and
|
||||
# is only supported for OIIO 2.3.14 and later)
|
||||
export OPENIMAGEIO_CMAKE_FLAGS+=" -DCMAKE_UNITY_BUILD=ON -DCMAKE_UNITY_BUILD_MODE=BATCH"
|
||||
fi
|
||||
source src/build-scripts/build_openimageio.bash
|
||||
fi
|
||||
|
||||
# Save the env for use by other stages
|
||||
src/build-scripts/save-env.bash
|
||||
@@ -1,157 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# DEP_DIR="$PWD/ext/dist"
|
||||
DEP_DIR="$PWD/dist"
|
||||
mkdir -p "$DEP_DIR"
|
||||
INT_DIR="build"
|
||||
VCPKG_INSTALLATION_ROOT=/c/vcpkg
|
||||
|
||||
export CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH:=.}
|
||||
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;$DEP_DIR"
|
||||
export BOOST_ROOT=${BOOST_ROOT_1_72_0}
|
||||
|
||||
BOOST_UNIX_PATH=$(echo "/$BOOST_ROOT" | sed -e 's/\\/\//g' -e 's/://')
|
||||
echo "BOOST_UNIX_PATH=$BOOST_UNIX_PATH"
|
||||
|
||||
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;$BOOST_ROOT"
|
||||
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;$VCPKG_INSTALLATION_ROOT/installed/x64-windows"
|
||||
export PATH="$PATH:$DEP_DIR/bin:$DEP_DIR/lib:$VCPKG_INSTALLATION_ROOT/installed/x64-windows/bin:/bin"
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DEP_DIR/bin:$VCPKG_INSTALLATION_ROOT/installed/x64-windows/bin"
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DEP_DIR/lib:$VCPKG_INSTALLATION_ROOT/installed/x64-windows/lib"
|
||||
|
||||
# export OSL_CMAKE_FLAGS="$OSL_CMAKE_FLAGS -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"
|
||||
# export OPENEXR_CMAKE_FLAGS="$OPENEXR_CMAKE_FLAGS -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"
|
||||
|
||||
#ls -l "C:/Program Files (x86)/Microsoft Visual Studio/*/Enterprise/VC/Tools/MSVC" && true
|
||||
#ls -l "C:/Program Files (x86)/Microsoft Visual Studio" && true
|
||||
|
||||
|
||||
if [[ "$PYTHON_VERSION" == "3.6" ]] ; then
|
||||
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;/c/hostedtoolcache/windows/Python/3.6.8/x64"
|
||||
else
|
||||
export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;/c/hostedtoolcache/windows/Python/3.7.9/x64"
|
||||
export Python_EXECUTABLE="/c/hostedtoolcache/windows/Python/3.7.9/x64/python.exe"
|
||||
export PYTHONPATH=$OpenImageIO_ROOT/lib/python${PYTHON_VERSION}/site-packages
|
||||
fi
|
||||
pip install numpy
|
||||
|
||||
|
||||
########################################################################
|
||||
# Dependency method #1: Use vcpkg (disabled)
|
||||
#
|
||||
# Currently we are not using this, but here it is for reference:
|
||||
#
|
||||
echo "All pre-installed VCPkg installs:"
|
||||
vcpkg list
|
||||
echo "---------------"
|
||||
# vcpkg update
|
||||
#
|
||||
# # vcpkg install zlib:x64-windows
|
||||
vcpkg install tiff:x64-windows
|
||||
vcpkg install libpng:x64-windows
|
||||
#vcpkg install giflib:x64-windows
|
||||
#vcpkg install freetype:x64-windows
|
||||
# vcpkg install openexr:x64-windows
|
||||
# vcpkg install libjpeg-turbo:x64-windows
|
||||
|
||||
# vcpkg install libraw:x64-windows
|
||||
# vcpkg install openjpeg:x64-windows
|
||||
# vcpkg install ffmpeg:x64-windows # takes FOREVER!
|
||||
# vcpkg install webp:x64-windows # No such vcpkg package?a
|
||||
|
||||
# echo "$VCPKG_INSTALLATION_ROOT"
|
||||
# ls "$VCPKG_INSTALLATION_ROOT"
|
||||
# echo "$VCPKG_INSTALLATION_ROOT/installed/x64-windows"
|
||||
# ls "$VCPKG_INSTALLATION_ROOT/installed/x64-windows"
|
||||
# echo "$VCPKG_INSTALLATION_ROOT/installed/x64-windows/lib"
|
||||
# ls "$VCPKG_INSTALLATION_ROOT/installed/x64-windows/lib"
|
||||
# echo "$VCPKG_INSTALLATION_ROOT/installed/x64-windows/bin"
|
||||
# ls "$VCPKG_INSTALLATION_ROOT/installed/x64-windows/bin"
|
||||
|
||||
echo "All VCPkg installs:"
|
||||
vcpkg list
|
||||
#
|
||||
########################################################################
|
||||
|
||||
|
||||
########################################################################
|
||||
# Dependency method #2: Build from source ourselves
|
||||
#
|
||||
#
|
||||
|
||||
src/build-scripts/build_zlib.bash
|
||||
export ZLIB_ROOT=$PWD/ext/dist
|
||||
|
||||
src/build-scripts/build_libpng.bash
|
||||
export PNG_ROOT=$PWD/ext/dist
|
||||
|
||||
# We're currently getting libtiff from vcpkg
|
||||
#src/build-scripts/build_libtiff.bash
|
||||
#export TIFF_ROOT=$PWD/ext/dist
|
||||
|
||||
# We're currently getting jpeg from vcpkg
|
||||
# LIBJPEGTURBO_CONFIG_OPTS=-DWITH_SIMD=OFF
|
||||
# # ^^ because we're too lazy to build nasm
|
||||
# src/build-scripts/build_libjpeg-turbo.bash
|
||||
# export JPEGTurbo_ROOT=$PWD/ext/dist
|
||||
|
||||
source src/build-scripts/build_pybind11.bash
|
||||
#export pybind11_ROOT=$PWD/ext/dist
|
||||
|
||||
|
||||
# curl --location https://ffmpeg.zeranoe.com/builds/win64/dev/ffmpeg-4.2.1-win64-dev.zip -o ffmpeg-dev.zip
|
||||
# unzip ffmpeg-dev.zip
|
||||
# FFmpeg_ROOT=$PWD/ffmpeg-4.2.1-win64-dev
|
||||
|
||||
echo "CMAKE_PREFIX_PATH = $CMAKE_PREFIX_PATH"
|
||||
|
||||
|
||||
OPENEXR_CXX_FLAGS=" /W1 /EHsc /DWIN32=1 "
|
||||
#OPENEXR_BUILD_TYPE=$CMAKE_BUILD_TYPE
|
||||
OPENEXR_INSTALL_DIR=$DEP_DIR
|
||||
source src/build-scripts/build_openexr.bash
|
||||
export PATH="$OPENEXR_INSTALL_DIR/bin:$OPENEXR_INSTALL_DIR/lib:$PATH"
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PATH
|
||||
# the above line is admittedly sketchy
|
||||
|
||||
cp $DEP_DIR/lib/*.lib $DEP_DIR/bin
|
||||
cp $DEP_DIR/bin/*.dll $DEP_DIR/lib
|
||||
|
||||
|
||||
#OPENIMAGEIO_BRANCH=lg-cmake312
|
||||
OPENIMAGEIO_INSTALLDIR=$DEP_DIR
|
||||
OPENIMAGEIO_CMAKE_FLAGS+=" -DOIIO_BUILD_TESTS=0 -DOIIO_BUILD_TOOLS=0"
|
||||
OPENIMAGEIO_CMAKE_FLAGS+=" -DUSE_OPENGL=0 -DUSE_GENERATED_EXPORT_HEADER=1"
|
||||
OPENIMAGEIO_CMAKE_FLAGS+=" -DENABLE_DPX=0 -DENABLE_CINEON=0 -DENABLE_DDS=0"
|
||||
OPENIMAGEIO_CMAKE_FLAGS+=" -DENABLE_IFF=0 -DENABLE_ICO=0 -DENABLE_PSD=0"
|
||||
OPENIMAGEIO_CMAKE_FLAGS+=" -DENABLE_PNM=0 -DENABLE_ZFILE=0 -DENABLE_SOFTIMAGE=0"
|
||||
OPENIMAGEIO_CMAKE_FLAGS+=" -DLINKSTATIC=1 -DBUILD_SHARED_LIBS=0"
|
||||
export OPENIMAGEIO_CMAKE_FLAGS
|
||||
source src/build-scripts/build_openimageio.bash
|
||||
|
||||
|
||||
cp $DEP_DIR/lib/*.lib $DEP_DIR/bin
|
||||
cp $DEP_DIR/bin/*.dll $DEP_DIR/lib
|
||||
echo "after OIIO install, DEP_DIR $DEP_DIR :"
|
||||
ls -R -l "$DEP_DIR"
|
||||
|
||||
|
||||
# export PATH="$PATH:$DEP_DIR/bin:$VCPKG_INSTALLATION_ROOT/installed/x64-windows/bin"
|
||||
export PATH="$DEP_DIR/lib:$DEP_DIR/bin:$PATH:$VCPKG_INSTALLATION_ROOT/installed/x64-windows/lib"
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$VCPKG_INSTALLATION_ROOT/installed/x64-windows/lib:$DEP_DIR/lib:$DEP_DIR/bin"
|
||||
|
||||
|
||||
# source src/build-scripts/build_openexr.bash
|
||||
# export CMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;$ILMBASE_ROOT;$OPENEXR_ROOT"
|
||||
# source src/build-scripts/build_opencolorio.bash
|
||||
|
||||
|
||||
# For CI on Windows, prefer to pick up static libs where possible
|
||||
OSL_CMAKE_FLAGS="$OSL_CMAKE_FLAGS -DLINKSTATIC=1 -DBUILD_SHARED_LIBS=0"
|
||||
|
||||
# Save the env for use by other stages
|
||||
src/build-scripts/save-env.bash
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
global: *OSL*; test_shade; *osl*imageio*; *osl_input_extensions;
|
||||
local: osl_*; *pvt*; *;
|
||||
};
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# This script, which assumes it is running on a Mac OSX with Homebrew
|
||||
# installed, does a "brew install" in all packages reasonably needed by
|
||||
# OSL and its dependencies.
|
||||
|
||||
if [[ `uname` != "Darwin" ]] ; then
|
||||
echo "Don't run this script unless you are on Mac OSX"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ `which brew` == "" ]] ; then
|
||||
echo "You need to install Homebrew before running this script."
|
||||
echo "See http://brew.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [[ "$DO_BREW_UPDATE" != "" ]] ; then
|
||||
brew update >/dev/null
|
||||
fi
|
||||
echo ""
|
||||
echo "Before my brew installs:"
|
||||
brew list --versions
|
||||
|
||||
brew install --display-times -q gcc ccache cmake ninja boost || true
|
||||
brew link --overwrite gcc
|
||||
brew install --display-times -q python@${PYTHON_VERSION} || true
|
||||
brew unlink python@2.7 || true
|
||||
brew unlink python@3.8 || true
|
||||
brew unlink python@3.9 || true
|
||||
brew unlink python@3.10 || true
|
||||
brew link --overwrite --force python@${PYTHON_VERSION} || true
|
||||
brew upgrade --display-times -q cmake || true
|
||||
brew install --display-times -q ilmbase openexr
|
||||
#brew install --display-times -q freetype
|
||||
brew install --display-times -q opencolorio partio pugixml
|
||||
brew install --display-times -q pybind11 numpy || true
|
||||
brew install --display-times -q tbb || true
|
||||
brew install --display-times -q flex bison
|
||||
brew install --display-times -q llvm${LLVMBREWVER}
|
||||
brew install --display-times -q qt
|
||||
|
||||
echo ""
|
||||
echo "After brew installs:"
|
||||
brew list --versions
|
||||
|
||||
# Needed on some systems
|
||||
if [[ $PYTHON_VERSION != "2.7" ]] ; then
|
||||
pip3 install numpy
|
||||
else
|
||||
pip install numpy
|
||||
fi
|
||||
|
||||
# Set up paths. These will only affect the caller if this script is
|
||||
# run with 'source' rather than in a separate shell.
|
||||
export PATH=/usr/local/opt/qt5/bin:$PATH
|
||||
export PATH=/usr/local/opt/python/libexec/bin:$PATH
|
||||
export PYTHONPATH=/usr/local/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH
|
||||
# export PATH=/usr/local/opt/llvm${LLVMBREWVER}/bin:$PATH
|
||||
export LLVM_DIRECTORY=/usr/local/opt/llvm${LLVMBREWVER}
|
||||
export LLVM_ROOT=/usr/local/opt/llvm${LLVMBREWVER}
|
||||
export PATH=/usr/local/opt/flex/bin:/usr/local/opt/bison/bin:$PATH
|
||||
|
||||
# Save the env for use by other stages
|
||||
src/build-scripts/save-env.bash
|
||||
@@ -1,7 +0,0 @@
|
||||
[oneAPI]
|
||||
name=Intel® oneAPI repository
|
||||
baseurl=https://yum.repos.intel.com/oneapi
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
repo_gpgcheck=1
|
||||
gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
||||
@@ -1,3 +0,0 @@
|
||||
default=exclude
|
||||
compiler=2022.1.0
|
||||
tbb=2021.6.0
|
||||
@@ -1,11 +0,0 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: oslcomp
|
||||
Description: oslcomp Compile OSL shaders from source
|
||||
URL: https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
Version: @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@
|
||||
Libs: -L${libdir} -loslcomp
|
||||
Cflags: -I${includedir}
|
||||
@@ -1,11 +0,0 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: oslexec
|
||||
Description: oslexec Execute compiled OSL shaders
|
||||
URL: https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
Version: @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@
|
||||
Libs: -L${libdir} -loslexec
|
||||
Cflags: -I${includedir}
|
||||
@@ -1,11 +0,0 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: oslquery
|
||||
Description: oslquery Query parameters of OSL compiled shaders
|
||||
URL: https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
Version: @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@
|
||||
Libs: -L${libdir} -loslquery
|
||||
Cflags: -I${includedir}
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Save the env for use by other stages. Exclude things that we know aren't
|
||||
# needed.
|
||||
printenv \
|
||||
| sort \
|
||||
| grep -v ASWF_ \
|
||||
| grep -v GITHUB_ \
|
||||
| grep -v NVIDIA_ \
|
||||
| grep -v RUNNER_ \
|
||||
| grep -v _= \
|
||||
| fgrep -v "\*" \
|
||||
>> $GITHUB_ENV
|
||||
|
||||
|
||||
echo "save-env: GITHUB_ENV=${GITHUB_ENV}"
|
||||
cat $GITHUB_ENV
|
||||
echo "---------"
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
# Turn an LLVM-compiled bitfile into a C++ source file where the compiled
|
||||
# bitcode is in a huge array.
|
||||
|
||||
from __future__ import print_function, absolute_import
|
||||
|
||||
import sys
|
||||
|
||||
in_name = sys.argv[1]
|
||||
out_name = sys.argv[2]
|
||||
prefix = sys.argv[3]
|
||||
f_in = open(in_name, 'rb')
|
||||
f_out = open(out_name, 'w')
|
||||
f_out.write('#include <cstddef>\n')
|
||||
f_out.write('unsigned char ' + prefix + '_block[] = {\n')
|
||||
f_in.read
|
||||
if (sys.version_info > (3, 0)):
|
||||
for c in f_in.read():
|
||||
f_out.write(hex(c) + ',\n')
|
||||
else:
|
||||
for c in f_in.read():
|
||||
f_out.write('0x{},\n'.format(c.encode('hex')))
|
||||
f_out.write('0x00 };\n')
|
||||
f_out.write('int {}_size = sizeof({}_block)-1;\n'.format(prefix, prefix))
|
||||
@@ -1,38 +0,0 @@
|
||||
# Copyright Contributors to the Open Shading Language project.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# https://github.com/AcademySoftwareFoundation/OpenShadingLanguage
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
# add here all the find_dependency() whenever switching to config based dependencies
|
||||
if (@OpenEXR_VERSION@ VERSION_GREATER_EQUAL 3.0)
|
||||
find_dependency(Imath @Imath_VERSION@)
|
||||
elseif (@OpenEXR_VERSION@ VERSION_GREATER_EQUAL 2.4 AND @FOUND_OPENEXR_WITH_CONFIG@)
|
||||
find_dependency(IlmBase @OpenEXR_VERSION@)
|
||||
find_dependency(OpenEXR @OpenEXR_VERSION@)
|
||||
find_dependency(ZLIB @ZLIB_VERSION@) # Because OpenEXR doesn't do it
|
||||
find_dependency(Threads) # Because OpenEXR doesn't do it
|
||||
endif ()
|
||||
|
||||
|
||||
find_dependency(OpenImageIO @OpenImageIO_VERSION@ REQUIRED)
|
||||
|
||||
# Compute the installation prefix relative to this file
|
||||
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
|
||||
|
||||
# There's no guarantee that CMAKE_INSTALL_XXXDIR is a relative path so we extract the final component to handle absolute paths
|
||||
get_filename_component(_INCLUDE_DIR_NAME "@CMAKE_INSTALL_INCLUDEDIR@" NAME)
|
||||
get_filename_component(_LIB_DIR_NAME "@CMAKE_INSTALL_LIBDIR@" NAME)
|
||||
|
||||
set_and_check (@PROJECT_NAME@_INCLUDE_DIR "${_IMPORT_PREFIX}/${_INCLUDE_DIR_NAME}")
|
||||
set_and_check (@PROJECT_NAME@_INCLUDES "${_IMPORT_PREFIX}/${_INCLUDE_DIR_NAME}")
|
||||
set_and_check (@PROJECT_NAME@_LIB_DIR "${_IMPORT_PREFIX}/${_LIB_DIR_NAME}")
|
||||
|
||||
#...logic to determine installedPrefix from the own location...
|
||||
#set (@PROJECT_NAME@_CONFIG_DIR "${installedPrefix}/@CONFIG_INSTALL_DIR@")
|
||||
|
||||
include ("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
||||
|
||||
check_required_components ("@PROJECT_NAME@")
|
||||