forked from AkkomaGang/akkoma-fe
merged akkoma-fe develop
This commit is contained in:
commit
6b10df2d89
114 changed files with 4257 additions and 247 deletions
|
@ -21,6 +21,8 @@ module.exports = {
|
|||
'generator-star-spacing': 0,
|
||||
// allow debugger during development
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
|
||||
'vue/require-prop-types': 0
|
||||
'vue/require-prop-types': 0,
|
||||
'vue/no-unused-vars': 0,
|
||||
'no-tabs': 0
|
||||
}
|
||||
}
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -7,3 +7,4 @@ test/e2e/reports
|
|||
selenium-debug.log
|
||||
.idea/
|
||||
config/local.json
|
||||
config/local.*.json
|
||||
|
|
54
.woodpecker.yml
Normal file
54
.woodpecker.yml
Normal file
|
@ -0,0 +1,54 @@
|
|||
pipeline:
|
||||
lint:
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- pull_request
|
||||
image: node:16
|
||||
commands:
|
||||
- yarn
|
||||
- yarn lint
|
||||
- yarn stylelint
|
||||
|
||||
test:
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- pull_request
|
||||
image: node:16
|
||||
commands:
|
||||
- apt update
|
||||
- apt install firefox-esr -y --no-install-recommends
|
||||
- yarn
|
||||
- yarn unit
|
||||
|
||||
build:
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- develop
|
||||
image: node:16
|
||||
commands:
|
||||
- yarn
|
||||
- yarn build
|
||||
|
||||
release:
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- develop
|
||||
image: node:16
|
||||
secrets:
|
||||
- SCW_ACCESS_KEY
|
||||
- SCW_SECRET_KEY
|
||||
- SCW_DEFAULT_ORGANIZATION_ID
|
||||
commands:
|
||||
- apt-get update && apt-get install -y rclone wget zip
|
||||
- wget https://github.com/scaleway/scaleway-cli/releases/download/v2.5.1/scaleway-cli_2.5.1_linux_amd64
|
||||
- mv scaleway-cli_2.5.1_linux_amd64 scaleway-cli
|
||||
- chmod +x scaleway-cli
|
||||
- ./scaleway-cli object config install type=rclone
|
||||
- zip akkoma-fe.zip -r dist
|
||||
- rclone copyto akkoma-fe.zip scaleway:akkoma-updates/frontend/akkoma-fe.zip
|
|
@ -37,6 +37,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||
- Media modal now also displays description and counter position in gallery (i.e. 1/5)
|
||||
- Ability to rearrange order of attachments when uploading
|
||||
- Enabled users to zoom and pan images in media viewer with mouse and touch
|
||||
- Added frontend ui for account migration
|
||||
|
||||
|
||||
## [2.4.2] - 2022-01-09
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
|
||||
<title>Pleroma</title>
|
||||
<link rel="stylesheet" href="/static/font/css/fontello.css">
|
||||
<link rel="stylesheet" href="/static/font/css/animation.css">
|
||||
<link rel="stylesheet" href="/static/font/tiresias.css">
|
||||
<link rel="stylesheet" href="/static/font/css/lato.css">
|
||||
<link rel="stylesheet" href="/static/mfm.css">
|
||||
<!--server-generated-meta-->
|
||||
<link rel="icon" type="image/png" href="/favicon.png">
|
||||
</head>
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
"escape-html": "1.0.3",
|
||||
"js-cookie": "^3.0.1",
|
||||
"localforage": "1.10.0",
|
||||
"mfm-js": "^0.22.1",
|
||||
"parse-link-header": "1.0.1",
|
||||
"phoenix": "1.6.2",
|
||||
"punycode.js": "2.1.0",
|
||||
|
|
20
src/App.vue
20
src/App.vue
|
@ -15,8 +15,12 @@
|
|||
class="app-layout container"
|
||||
:class="classes"
|
||||
>
|
||||
<div class="underlay"/>
|
||||
<div id="sidebar" class="column -scrollable" :class="{ '-show-scrollbar': showScrollbars }">
|
||||
<div class="underlay" />
|
||||
<div
|
||||
id="sidebar"
|
||||
class="column -scrollable"
|
||||
:class="{ '-show-scrollbar': showScrollbars }"
|
||||
>
|
||||
<user-panel />
|
||||
<template v-if="layoutType !== 'mobile'">
|
||||
<nav-panel />
|
||||
|
@ -26,7 +30,11 @@
|
|||
<div id="notifs-sidebar" />
|
||||
</template>
|
||||
</div>
|
||||
<div id="main-scroller" class="column main" :class="{ '-full-height': isChats }">
|
||||
<div
|
||||
id="main-scroller"
|
||||
class="column main"
|
||||
:class="{ '-full-height': isChats }"
|
||||
>
|
||||
<div
|
||||
v-if="!currentUser"
|
||||
class="login-hint panel panel-default"
|
||||
|
@ -40,7 +48,11 @@
|
|||
</div>
|
||||
<router-view />
|
||||
</div>
|
||||
<div id="notifs-column" class="column -scrollable" :class="{ '-show-scrollbar': showScrollbars }"/>
|
||||
<div
|
||||
id="notifs-column"
|
||||
class="column -scrollable"
|
||||
:class="{ '-show-scrollbar': showScrollbars }"
|
||||
/>
|
||||
</div>
|
||||
<media-modal />
|
||||
<shout-panel
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 17 KiB |
|
@ -20,6 +20,9 @@ import ShoutPanel from 'components/shout_panel/shout_panel.vue'
|
|||
import WhoToFollow from 'components/who_to_follow/who_to_follow.vue'
|
||||
import About from 'components/about/about.vue'
|
||||
import RemoteUserResolver from 'components/remote_user_resolver/remote_user_resolver.vue'
|
||||
import Lists from 'components/lists/lists.vue'
|
||||
import ListTimeline from 'components/list_timeline/list_timeline.vue'
|
||||
import ListEdit from 'components/list_edit/list_edit.vue'
|
||||
|
||||
export default (store) => {
|
||||
const validateAuthenticatedRoute = (to, from, next) => {
|
||||
|
@ -69,7 +72,10 @@ export default (store) => {
|
|||
{ name: 'search', path: '/search', component: Search, props: (route) => ({ query: route.query.query }) },
|
||||
{ name: 'who-to-follow', path: '/who-to-follow', component: WhoToFollow, beforeEnter: validateAuthenticatedRoute },
|
||||
{ name: 'about', path: '/about', component: About },
|
||||
{ name: 'user-profile', path: '/:_(users)?/:name', component: UserProfile }
|
||||
{ name: 'user-profile', path: '/:_(users)?/:name', component: UserProfile },
|
||||
{ name: 'lists', path: '/lists', component: Lists },
|
||||
{ name: 'list-timeline', path: '/lists/:id', component: ListTimeline },
|
||||
{ name: 'list-edit', path: '/lists/:id/edit', component: ListEdit }
|
||||
]
|
||||
|
||||
if (store.state.instance.pleromaChatMessagesAvailable) {
|
||||
|
|
|
@ -197,6 +197,26 @@ const Attachment = {
|
|||
const width = image.naturalWidth
|
||||
const height = image.naturalHeight
|
||||
this.$emit('naturalSizeLoad', { id: this.attachment.id, width, height })
|
||||
},
|
||||
resize (e) {
|
||||
const target = e.target || e
|
||||
if (!(target instanceof window.Element)) { return }
|
||||
|
||||
// Reset to default height for empty form, nothing else to do here.
|
||||
if (target.value === '') {
|
||||
target.style.height = null
|
||||
this.$emit('resize')
|
||||
return
|
||||
}
|
||||
|
||||
const paddingString = getComputedStyle(target)['padding']
|
||||
// remove -px suffix
|
||||
const padding = Number(paddingString.substring(0, paddingString.length - 2))
|
||||
|
||||
target.style.height = 'auto'
|
||||
const newHeight = Math.floor(target.scrollHeight - padding * 2)
|
||||
target.style.height = `${newHeight}px`
|
||||
this.$emit('resize', newHeight)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
.attachment-wrapper {
|
||||
flex: 1 1 auto;
|
||||
height: 100%;
|
||||
height: 200px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
@ -33,7 +33,8 @@
|
|||
line-height: 1.5;
|
||||
padding: 0.5em;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
white-space: pre-line;
|
||||
word-break: break-word;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
@ -52,6 +53,19 @@
|
|||
.description-field {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
|
||||
box-sizing: content-box;
|
||||
overflow: hidden;
|
||||
transition: min-height 200ms 100ms;
|
||||
|
||||
padding-bottom: var(--_padding);
|
||||
height: calc(var(--post-line-height) * 1em);
|
||||
min-height: calc(var(--post-line-height) * 1em);
|
||||
resize: none;
|
||||
|
||||
&.scrollable-form {
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
& .placeholder-container,
|
||||
|
|
|
@ -248,14 +248,15 @@
|
|||
class="description-container"
|
||||
:class="{ '-static': !edit }"
|
||||
>
|
||||
<input
|
||||
<textarea
|
||||
v-if="edit"
|
||||
v-model="localDescription"
|
||||
type="text"
|
||||
class="description-field"
|
||||
:placeholder="$t('post_status.media_description')"
|
||||
@keydown.enter.prevent=""
|
||||
>
|
||||
rows="1"
|
||||
cols="1"
|
||||
@input="resize"
|
||||
/>
|
||||
<p v-else>
|
||||
{{ localDescription }}
|
||||
</p>
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
:title="title"
|
||||
>
|
||||
<router-link
|
||||
class="avatar-container"
|
||||
v-if="withAvatar && user"
|
||||
class="avatar-container"
|
||||
:to="getUserProfileLink(user)"
|
||||
>
|
||||
<UserAvatar
|
||||
|
|
|
@ -31,8 +31,8 @@
|
|||
keypath="status.show_all_conversation_with_icon"
|
||||
tag="button"
|
||||
class="button-unstyled -link"
|
||||
@click.prevent="diveToTopLevel"
|
||||
scope="global"
|
||||
@click.prevent="diveToTopLevel"
|
||||
>
|
||||
<template #icon>
|
||||
<FAIcon
|
||||
|
|
|
@ -171,7 +171,6 @@
|
|||
|
||||
.gallery-item {
|
||||
margin: 0;
|
||||
height: 200px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
16
src/components/list_card/list_card.js
Normal file
16
src/components/list_card/list_card.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
faEllipsisH
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
library.add(
|
||||
faEllipsisH
|
||||
)
|
||||
|
||||
const ListCard = {
|
||||
props: [
|
||||
'list'
|
||||
]
|
||||
}
|
||||
|
||||
export default ListCard
|
51
src/components/list_card/list_card.vue
Normal file
51
src/components/list_card/list_card.vue
Normal file
|
@ -0,0 +1,51 @@
|
|||
<template>
|
||||
<div class="list-card">
|
||||
<router-link
|
||||
:to="{ name: 'list-timeline', params: { id: list.id } }"
|
||||
class="list-name"
|
||||
>
|
||||
{{ list.title }}
|
||||
</router-link>
|
||||
<router-link
|
||||
:to="{ name: 'list-edit', params: { id: list.id } }"
|
||||
class="button-list-edit"
|
||||
>
|
||||
<FAIcon
|
||||
class="fa-scale-110 fa-old-padding"
|
||||
icon="ellipsis-h"
|
||||
/>
|
||||
</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./list_card.js"></script>
|
||||
|
||||
<style lang="scss">
|
||||
@import '../../_variables.scss';
|
||||
|
||||
.list-card {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.list-name,
|
||||
.button-list-edit {
|
||||
margin: 0;
|
||||
padding: 1em;
|
||||
color: $fallback--link;
|
||||
color: var(--link, $fallback--link);
|
||||
|
||||
&:hover {
|
||||
background-color: $fallback--lightBg;
|
||||
background-color: var(--selectedMenu, $fallback--lightBg);
|
||||
color: $fallback--link;
|
||||
color: var(--selectedMenuText, $fallback--link);
|
||||
--faint: var(--selectedMenuFaintText, $fallback--faint);
|
||||
--faintLink: var(--selectedMenuFaintLink, $fallback--faint);
|
||||
--lightText: var(--selectedMenuLightText, $fallback--lightText);
|
||||
}
|
||||
}
|
||||
|
||||
.list-name {
|
||||
flex-grow: 1;
|
||||
}
|
||||
</style>
|
91
src/components/list_edit/list_edit.js
Normal file
91
src/components/list_edit/list_edit.js
Normal file
|
@ -0,0 +1,91 @@
|
|||
import { mapState, mapGetters } from 'vuex'
|
||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
||||
import ListUserSearch from '../list_user_search/list_user_search.vue'
|
||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
faSearch,
|
||||
faChevronLeft
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
library.add(
|
||||
faSearch,
|
||||
faChevronLeft
|
||||
)
|
||||
|
||||
const ListNew = {
|
||||
components: {
|
||||
BasicUserCard,
|
||||
UserAvatar,
|
||||
ListUserSearch
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
title: '',
|
||||
userIds: [],
|
||||
selectedUserIds: []
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.$store.dispatch('fetchList', { id: this.id })
|
||||
.then(() => { this.title = this.findListTitle(this.id) })
|
||||
this.$store.dispatch('fetchListAccounts', { id: this.id })
|
||||
.then(() => {
|
||||
this.selectedUserIds = this.findListAccounts(this.id)
|
||||
this.selectedUserIds.forEach(userId => {
|
||||
this.$store.dispatch('fetchUserIfMissing', userId)
|
||||
})
|
||||
})
|
||||
},
|
||||
computed: {
|
||||
id () {
|
||||
return this.$route.params.id
|
||||
},
|
||||
users () {
|
||||
return this.userIds.map(userId => this.findUser(userId))
|
||||
},
|
||||
selectedUsers () {
|
||||
return this.selectedUserIds.map(userId => this.findUser(userId)).filter(user => user)
|
||||
},
|
||||
...mapState({
|
||||
currentUser: state => state.users.currentUser
|
||||
}),
|
||||
...mapGetters(['findUser', 'findListTitle', 'findListAccounts'])
|
||||
},
|
||||
methods: {
|
||||
onInput () {
|
||||
this.search(this.query)
|
||||
},
|
||||
selectUser (user) {
|
||||
if (this.selectedUserIds.includes(user.id)) {
|
||||
this.removeUser(user.id)
|
||||
} else {
|
||||
this.addUser(user)
|
||||
}
|
||||
},
|
||||
isSelected (user) {
|
||||
return this.selectedUserIds.includes(user.id)
|
||||
},
|
||||
addUser (user) {
|
||||
this.selectedUserIds.push(user.id)
|
||||
},
|
||||
removeUser (userId) {
|
||||
this.selectedUserIds = this.selectedUserIds.filter(id => id !== userId)
|
||||
},
|
||||
onResults (results) {
|
||||
this.userIds = results
|
||||
},
|
||||
updateList () {
|
||||
this.$store.dispatch('setList', { id: this.id, title: this.title })
|
||||
this.$store.dispatch('setListAccounts', { id: this.id, accountIds: this.selectedUserIds })
|
||||
|
||||
this.$router.push({ name: 'list-timeline', params: { id: this.id } })
|
||||
},
|
||||
deleteList () {
|
||||
this.$store.dispatch('deleteList', { id: this.id })
|
||||
this.$router.push({ name: 'lists' })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default ListNew
|
108
src/components/list_edit/list_edit.vue
Normal file
108
src/components/list_edit/list_edit.vue
Normal file
|
@ -0,0 +1,108 @@
|
|||
<template>
|
||||
<div class="panel-default panel list-edit">
|
||||
<div
|
||||
ref="header"
|
||||
class="panel-heading"
|
||||
>
|
||||
<button
|
||||
class="button-unstyled go-back-button"
|
||||
@click="$router.back"
|
||||
>
|
||||
<FAIcon
|
||||
size="lg"
|
||||
icon="chevron-left"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="input-wrap">
|
||||
<input
|
||||
ref="title"
|
||||
v-model="title"
|
||||
:placeholder="$t('lists.title')"
|
||||
>
|
||||
</div>
|
||||
<div class="member-list">
|
||||
<div
|
||||
v-for="user in selectedUsers"
|
||||
:key="user.id"
|
||||
class="member"
|
||||
>
|
||||
<BasicUserCard
|
||||
:user="user"
|
||||
:class="isSelected(user) ? 'selected' : ''"
|
||||
@click.capture.prevent="selectUser(user)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<ListUserSearch @results="onResults" />
|
||||
<div class="member-list">
|
||||
<div
|
||||
v-for="user in users"
|
||||
:key="user.id"
|
||||
class="member"
|
||||
>
|
||||
<BasicUserCard
|
||||
:user="user"
|
||||
:class="isSelected(user) ? 'selected' : ''"
|
||||
@click.capture.prevent="selectUser(user)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
:disabled="title && title.length === 0"
|
||||
class="btn button-default"
|
||||
@click="updateList"
|
||||
>
|
||||
{{ $t('lists.save') }}
|
||||
</button>
|
||||
<button
|
||||
class="btn button-default"
|
||||
@click="deleteList"
|
||||
>
|
||||
{{ $t('lists.delete') }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./list_edit.js"></script>
|
||||
|
||||
<style lang="scss">
|
||||
@import '../../_variables.scss';
|
||||
|
||||
.list-edit {
|
||||
.input-wrap {
|
||||
display: flex;
|
||||
margin: 0.7em 0.5em 0.7em 0.5em;
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.search-icon {
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
|
||||
.member-list {
|
||||
padding-bottom: 0.7rem;
|
||||
}
|
||||
|
||||
.basic-user-card:hover,
|
||||
.basic-user-card.selected {
|
||||
cursor: pointer;
|
||||
background-color: var(--selectedPost, $fallback--lightBg);
|
||||
}
|
||||
|
||||
.go-back-button {
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
height: 100%;
|
||||
align-self: start;
|
||||
width: var(--__panel-heading-height-inner);
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin: 0.5em;
|
||||
}
|
||||
}
|
||||
</style>
|
79
src/components/list_new/list_new.js
Normal file
79
src/components/list_new/list_new.js
Normal file
|
@ -0,0 +1,79 @@
|
|||
import { mapState, mapGetters } from 'vuex'
|
||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
||||
import ListUserSearch from '../list_user_search/list_user_search.vue'
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
faSearch,
|
||||
faChevronLeft
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
library.add(
|
||||
faSearch,
|
||||
faChevronLeft
|
||||
)
|
||||
|
||||
const ListNew = {
|
||||
components: {
|
||||
BasicUserCard,
|
||||
UserAvatar,
|
||||
ListUserSearch
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
title: '',
|
||||
userIds: [],
|
||||
selectedUserIds: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
users () {
|
||||
return this.userIds.map(userId => this.findUser(userId))
|
||||
},
|
||||
selectedUsers () {
|
||||
return this.selectedUserIds.map(userId => this.findUser(userId))
|
||||
},
|
||||
...mapState({
|
||||
currentUser: state => state.users.currentUser
|
||||
}),
|
||||
...mapGetters(['findUser'])
|
||||
},
|
||||
methods: {
|
||||
goBack () {
|
||||
this.$emit('cancel')
|
||||
},
|
||||
onInput () {
|
||||
this.search(this.query)
|
||||
},
|
||||
selectUser (user) {
|
||||
if (this.selectedUserIds.includes(user.id)) {
|
||||
this.removeUser(user.id)
|
||||
} else {
|
||||
this.addUser(user)
|
||||
}
|
||||
},
|
||||
isSelected (user) {
|
||||
return this.selectedUserIds.includes(user.id)
|
||||
},
|
||||
addUser (user) {
|
||||
this.selectedUserIds.push(user.id)
|
||||
},
|
||||
removeUser (userId) {
|
||||
this.selectedUserIds = this.selectedUserIds.filter(id => id !== userId)
|
||||
},
|
||||
onResults (results) {
|
||||
this.userIds = results
|
||||
},
|
||||
createList () {
|
||||
// the API has two different endpoints for "creating a list with a name"
|
||||
// and "updating the accounts on the list".
|
||||
this.$store.dispatch('createList', { title: this.title })
|
||||
.then((list) => {
|
||||
this.$store.dispatch('setListAccounts', { id: list.id, accountIds: this.selectedUserIds })
|
||||
this.$router.push({ name: 'list-timeline', params: { id: list.id } })
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default ListNew
|
95
src/components/list_new/list_new.vue
Normal file
95
src/components/list_new/list_new.vue
Normal file
|
@ -0,0 +1,95 @@
|
|||
<template>
|
||||
<div class="panel-default panel list-new">
|
||||
<div
|
||||
ref="header"
|
||||
class="panel-heading"
|
||||
>
|
||||
<button
|
||||
class="button-unstyled go-back-button"
|
||||
@click="goBack"
|
||||
>
|
||||
<FAIcon
|
||||
size="lg"
|
||||
icon="chevron-left"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="input-wrap">
|
||||
<input
|
||||
ref="title"
|
||||
v-model="title"
|
||||
:placeholder="$t('lists.title')"
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="member-list">
|
||||
<div
|
||||
v-for="user in selectedUsers"
|
||||
:key="user.id"
|
||||
class="member"
|
||||
>
|
||||
<BasicUserCard
|
||||
:user="user"
|
||||
:class="isSelected(user) ? 'selected' : ''"
|
||||
@click.capture.prevent="selectUser(user)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<ListUserSearch
|
||||
@results="onResults"
|
||||
/>
|
||||
<div
|
||||
v-for="user in users"
|
||||
:key="user.id"
|
||||
class="member"
|
||||
>
|
||||
<BasicUserCard
|
||||
:user="user"
|
||||
:class="isSelected(user) ? 'selected' : ''"
|
||||
@click.capture.prevent="selectUser(user)"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<button
|
||||
:disabled="title && title.length === 0"
|
||||
class="btn button-default"
|
||||
@click="createList"
|
||||
>
|
||||
{{ $t('lists.create') }}
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./list_new.js"></script>
|
||||
|
||||
<style lang="scss">
|
||||
@import '../../_variables.scss';
|
||||
|
||||
.list-new {
|
||||
.search-icon {
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
|
||||
.member-list {
|
||||
padding-bottom: 0.7rem;
|
||||
}
|
||||
|
||||
.basic-user-card:hover,
|
||||
.basic-user-card.selected {
|
||||
cursor: pointer;
|
||||
background-color: var(--selectedPost, $fallback--lightBg);
|
||||
}
|
||||
|
||||
.go-back-button {
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
height: 100%;
|
||||
align-self: start;
|
||||
width: var(--__panel-heading-height-inner);
|
||||
}
|
||||
|
||||
.btn {
|
||||
margin: 0.5em;
|
||||
}
|
||||
}
|
||||
</style>
|
25
src/components/list_timeline/list_timeline.js
Normal file
25
src/components/list_timeline/list_timeline.js
Normal file
|
@ -0,0 +1,25 @@
|
|||
import Timeline from '../timeline/timeline.vue'
|
||||
const ListTimeline = {
|
||||
data () {
|
||||
return {
|
||||
listId: null
|
||||
}
|
||||
},
|
||||
components: {
|
||||
Timeline
|
||||
},
|
||||
computed: {
|
||||
timeline () { return this.$store.state.statuses.timelines.list }
|
||||
},
|
||||
created () {
|
||||
this.listId = this.$route.params.id
|
||||
this.$store.dispatch('fetchList', { id: this.listId })
|
||||
this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })
|
||||
},
|
||||
unmounted () {
|
||||
this.$store.dispatch('stopFetchingTimeline', 'list')
|
||||
this.$store.commit('clearTimeline', { timeline: 'list' })
|
||||
}
|
||||
}
|
||||
|
||||
export default ListTimeline
|
10
src/components/list_timeline/list_timeline.vue
Normal file
10
src/components/list_timeline/list_timeline.vue
Normal file
|
@ -0,0 +1,10 @@
|
|||
<template>
|
||||
<Timeline
|
||||
title="list.name"
|
||||
:timeline="timeline"
|
||||
:list-id="listId"
|
||||
timeline-name="list"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script src="./list_timeline.js"></script>
|
46
src/components/list_user_search/list_user_search.js
Normal file
46
src/components/list_user_search/list_user_search.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
faSearch,
|
||||
faChevronLeft
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
import { debounce } from 'lodash'
|
||||
import Checkbox from '../checkbox/checkbox.vue'
|
||||
|
||||
library.add(
|
||||
faSearch,
|
||||
faChevronLeft
|
||||
)
|
||||
|
||||
const ListUserSearch = {
|
||||
components: {
|
||||
Checkbox
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
loading: false,
|
||||
query: '',
|
||||
followingOnly: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onInput: debounce(function () {
|
||||
this.search(this.query)
|
||||
}, 2000),
|
||||
search (query) {
|
||||
if (!query) {
|
||||
this.loading = false
|
||||
return
|
||||
}
|
||||
|
||||
this.loading = true
|
||||
this.userIds = []
|
||||
this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts', following: this.followingOnly })
|
||||
.then(data => {
|
||||
this.loading = false
|
||||
this.$emit('results', data.accounts.map(a => a.id))
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default ListUserSearch
|
45
src/components/list_user_search/list_user_search.vue
Normal file
45
src/components/list_user_search/list_user_search.vue
Normal file
|
@ -0,0 +1,45 @@
|
|||
<template>
|
||||
<div>
|
||||
<div class="input-wrap">
|
||||
<div class="input-search">
|
||||
<FAIcon
|
||||
class="search-icon fa-scale-110 fa-old-padding"
|
||||
icon="search"
|
||||
/>
|
||||
</div>
|
||||
<input
|
||||
ref="search"
|
||||
v-model="query"
|
||||
:placeholder="$t('lists.search')"
|
||||
@input="onInput"
|
||||
>
|
||||
</div>
|
||||
<div class="input-wrap">
|
||||
<Checkbox
|
||||
v-model="followingOnly"
|
||||
@change="onInput"
|
||||
>
|
||||
{{ $t('lists.following_only') }}
|
||||
</Checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./list_user_search.js"></script>
|
||||
<style lang="scss">
|
||||
@import '../../_variables.scss';
|
||||
|
||||
.input-wrap {
|
||||
display: flex;
|
||||
margin: 0.7em 0.5em 0.7em 0.5em;
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.search-icon {
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
|
||||
</style>
|
32
src/components/lists/lists.js
Normal file
32
src/components/lists/lists.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
import ListCard from '../list_card/list_card.vue'
|
||||
import ListNew from '../list_new/list_new.vue'
|
||||
|
||||
const Lists = {
|
||||
data () {
|
||||
return {
|
||||
isNew: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
ListCard,
|
||||
ListNew
|
||||
},
|
||||
created () {
|
||||
this.$store.dispatch('startFetchingLists')
|
||||
},
|
||||
computed: {
|
||||
lists () {
|
||||
return this.$store.state.lists.allLists
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
cancelNewList () {
|
||||
this.isNew = false
|
||||
},
|
||||
newList () {
|
||||
this.isNew = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default Lists
|
31
src/components/lists/lists.vue
Normal file
31
src/components/lists/lists.vue
Normal file
|
@ -0,0 +1,31 @@
|
|||
<template>
|
||||
<div v-if="isNew">
|
||||
<ListNew @cancel="cancelNewList" />
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
class="settings panel panel-default"
|
||||
>
|
||||
<div class="panel-heading">
|
||||
<div class="title">
|
||||
{{ $t('lists.lists') }}
|
||||
</div>
|
||||
<button
|
||||
class="button-default"
|
||||
@click="newList"
|
||||
>
|
||||
{{ $t("lists.new") }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<ListCard
|
||||
v-for="list in lists.slice().reverse()"
|
||||
:key="list"
|
||||
:list="list"
|
||||
class="list-item"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./lists.js"></script>
|
|
@ -182,7 +182,8 @@ $modal-view-button-icon-margin: 0.5em;
|
|||
min-height: 1em;
|
||||
max-width: 500px;
|
||||
max-height: 9.5em;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
white-space: pre-line;
|
||||
}
|
||||
|
||||
.modal-image {
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
&.-you {
|
||||
& .shortName,
|
||||
& .full {
|
||||
font-weight: 600;
|
||||
//font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,18 +22,7 @@
|
|||
@click.prevent="onClick"
|
||||
>
|
||||
<!-- eslint-disable vue/no-v-html -->
|
||||
<UserAvatar
|
||||
v-if="shouldShowAvatar"
|
||||
class="mention-avatar"
|
||||
:user="user"
|
||||
/><span
|
||||
class="shortName"
|
||||
><FAIcon
|
||||
v-if="useAtIcon"
|
||||
size="sm"
|
||||
icon="at"
|
||||
class="at"
|
||||
/>{{ !useAtIcon ? '@' : '' }}<span
|
||||
<span class="shortName">@<span
|
||||
class="userName"
|
||||
v-html="userName"
|
||||
/><span
|
||||
|
|
286
src/components/mfm_content/mfm_content.jsx
Normal file
286
src/components/mfm_content/mfm_content.jsx
Normal file
|
@ -0,0 +1,286 @@
|
|||
import { defineComponent, h } from 'vue'
|
||||
import * as mfm from 'mfm-js'
|
||||
import MentionLink from '../mention_link/mention_link.vue'
|
||||
|
||||
function concat (xss) {
|
||||
return ([]).concat(...xss)
|
||||
}
|
||||
|
||||
export const MFM_TAGS = ['tada', 'jelly', 'twitch', 'shake', 'spin', 'jump', 'bounce', 'flip', 'x2', 'x3', 'x4', 'font', 'blur', 'rainbow', 'rotate']
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
status: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
|
||||
render () {
|
||||
if (!this.status) return null
|
||||
const ast = mfm.parse(this.status.mfm_content, { fnNameList: MFM_TAGS })
|
||||
const validTime = (t) => {
|
||||
if (t == null) return null
|
||||
return t.match(/^[0-9.]+s$/) ? t : null
|
||||
}
|
||||
|
||||
const genEl = (ast) => concat(ast.map((token) => {
|
||||
switch (token.type) {
|
||||
case 'text': {
|
||||
const text = token.props.text.replace(/(\r\n|\n|\r)/g, '\n')
|
||||
|
||||
const res = []
|
||||
for (const t of text.split('\n')) {
|
||||
res.push(h('br'))
|
||||
res.push(t)
|
||||
}
|
||||
res.shift()
|
||||
return res
|
||||
}
|
||||
|
||||
case 'bold': {
|
||||
return [h('b', genEl(token.children))]
|
||||
}
|
||||
|
||||
case 'strike': {
|
||||
return [h('del', genEl(token.children))]
|
||||
}
|
||||
|
||||
case 'italic': {
|
||||
return h('i', {
|
||||
style: 'font-style: oblique;'
|
||||
}, genEl(token.children))
|
||||
}
|
||||
|
||||
case 'fn': {
|
||||
// TODO: CSSを文字列で組み立てていくと token.props.args.~~~ 経由でCSSインジェクションできるのでよしなにやる
|
||||
let style
|
||||
switch (token.props.name) {
|
||||
case 'tada': {
|
||||
style = `font-size: 150%;` + 'animation: tada 1s linear infinite both;'
|
||||
break
|
||||
}
|
||||
case 'jelly': {
|
||||
const speed = validTime(token.props.args.speed) || '1s'
|
||||
style = `animation: mfm-rubberBand ${speed} linear infinite both;`
|
||||
break
|
||||
}
|
||||
case 'twitch': {
|
||||
const speed = validTime(token.props.args.speed) || '0.5s'
|
||||
style = `animation: mfm-twitch ${speed} ease infinite;`
|
||||
break
|
||||
}
|
||||
case 'shake': {
|
||||
const speed = validTime(token.props.args.speed) || '0.5s'
|
||||
style = `animation: mfm-shake ${speed} ease infinite;`
|
||||
break
|
||||
}
|
||||
case 'spin': {
|
||||
const direction =
|
||||
token.props.args.left ? 'reverse'
|
||||
: token.props.args.alternate ? 'alternate'
|
||||
: 'normal'
|
||||
const anime =
|
||||
token.props.args.x ? 'mfm-spinX'
|
||||
: token.props.args.y ? 'mfm-spinY'
|
||||
: 'mfm-spin'
|
||||
const speed = validTime(token.props.args.speed) || '1.5s'
|
||||
style = `animation: ${anime} ${speed} linear infinite; animation-direction: ${direction};`
|
||||
break
|
||||
}
|
||||
case 'jump': {
|
||||
style = 'animation: mfm-jump 0.75s linear infinite;'
|
||||
break
|
||||
}
|
||||
case 'bounce': {
|
||||
style = 'animation: mfm-bounce 0.75s linear infinite; transform-origin: center bottom;'
|
||||
break
|
||||
}
|
||||
case 'flip': {
|
||||
const transform =
|
||||
(token.props.args.h && token.props.args.v) ? 'scale(-1, -1)'
|
||||
: token.props.args.v ? 'scaleY(-1)'
|
||||
: 'scaleX(-1)'
|
||||
style = `transform: ${transform};`
|
||||
break
|
||||
}
|
||||
case 'x2': {
|
||||
style = `font-size: 200%;`
|
||||
break
|
||||
}
|
||||
case 'x3': {
|
||||
style = `font-size: 400%;`
|
||||
break
|
||||
}
|
||||
case 'x4': {
|
||||
style = `font-size: 600%;`
|
||||
break
|
||||
}
|
||||
case 'font': {
|
||||
const family =
|
||||
token.props.args.serif ? 'serif'
|
||||
: token.props.args.monospace ? 'monospace'
|
||||
: token.props.args.cursive ? 'cursive'
|
||||
: token.props.args.fantasy ? 'fantasy'
|
||||
: token.props.args.emoji ? 'emoji'
|
||||
: token.props.args.math ? 'math'
|
||||
: null
|
||||
if (family) style = `font-family: ${family};`
|
||||
break
|
||||
}
|
||||
case 'blur': {
|
||||
return h('span', {
|
||||
class: '_mfm_blur_'
|
||||
}, genEl(token.children))
|
||||
}
|
||||
case 'rainbow': {
|
||||
style = 'animation: mfm-rainbow 1s linear infinite;'
|
||||
break
|
||||
}
|
||||
case 'rotate': {
|
||||
const degrees = parseInt(token.props.args.deg) || '90'
|
||||
style = `transform: rotate(${degrees}deg); transform-origin: center center;`
|
||||
break
|
||||
}
|
||||
}
|
||||
if (style == null) {
|
||||
return h('span', {}, ['$[', token.props.name, ' ', ...genEl(token.children), ']'])
|
||||
} else {
|
||||
return h('span', {
|
||||
style: 'display: inline-block;' + style
|
||||
}, genEl(token.children))
|
||||
}
|
||||
}
|
||||
|
||||
case 'small': {
|
||||
return [h('small', {
|
||||
style: 'opacity: 0.7;'
|
||||
}, genEl(token.children))]
|
||||
}
|
||||
|
||||
case 'center': {
|
||||
return [h('div', {
|
||||
style: 'text-align:center;'
|
||||
}, genEl(token.children))]
|
||||
}
|
||||
|
||||
case 'url': {
|
||||
return [h('a', {
|
||||
key: Math.random(),
|
||||
href: token.props.url,
|
||||
rel: 'nofollow noopener'
|
||||
}, token.props.url)]
|
||||
}
|
||||
|
||||
case 'link': {
|
||||
console.log(token.props)
|
||||
return [h('a', {
|
||||
key: Math.random(),
|
||||
href: token.props.url,
|
||||
rel: 'nofollow noopener'
|
||||
}, genEl(token.children))]
|
||||
}
|
||||
|
||||
case 'mention': {
|
||||
const user = this.status.attentions.find((mention) => `@${mention.screen_name}` === token.props.acct || mention.screen_name === token.props.username)
|
||||
if (user) {
|
||||
return [h(MentionLink, {
|
||||
url: user.statusnet_profile_url,
|
||||
content: token.props.acct,
|
||||
userScreenName: token.props.acct
|
||||
})]
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
case 'hashtag': {
|
||||
return [h('a', {
|
||||
rel: 'noopener noreferrer',
|
||||
target: '_blank',
|
||||
key: token.props.hashtag,
|
||||
href: this.status.tags.find((hash) => hash.name === token.props.hashtag).url
|
||||
}, `#${token.props.hashtag}`)]
|
||||
}
|
||||
|
||||
case 'blockCode': {
|
||||
return [h('pre', {
|
||||
key: Math.random(),
|
||||
lang: token.props.lang
|
||||
}, token.props.code)]
|
||||
}
|
||||
|
||||
case 'inlineCode': {
|
||||
return [h('code', {
|
||||
key: Math.random(),
|
||||
display: 'inline'
|
||||
}, token.props.code)]
|
||||
}
|
||||
|
||||
case 'quote': {
|
||||
if (!this.nowrap) {
|
||||
return [h('div', {
|
||||
class: 'quote'
|
||||
}, genEl(token.children))]
|
||||
} else {
|
||||
return [h('span', {
|
||||
class: 'quote'
|
||||
}, genEl(token.children))]
|
||||
}
|
||||
}
|
||||
|
||||
case 'emojiCode': {
|
||||
const emoj = this.status.emojis.find((emoji) => emoji.shortcode === token.props.name)
|
||||
if (emoj) {
|
||||
return [h('div', {
|
||||
class: 'still-image emoji img'
|
||||
},
|
||||
[h('img', {
|
||||
key: Math.random(),
|
||||
title: token.props.name,
|
||||
alt: token.props.name,
|
||||
src: this.status.emojis.find((emoji) => emoji.shortcode === token.props.name).static_url
|
||||
})]
|
||||
)]
|
||||
} else {
|
||||
return `:${token.props.name}:`
|
||||
}
|
||||
}
|
||||
|
||||
case 'unicodeEmoji': {
|
||||
return token.props.emoji
|
||||
}
|
||||
|
||||
case 'math': {
|
||||
return [h('pre', {
|
||||
key: Math.random(),
|
||||
code: token.props.code
|
||||
})]
|
||||
}
|
||||
|
||||
case 'mathInline': {
|
||||
return [h('pre', {
|
||||
key: Math.random(),
|
||||
code: token.props.code,
|
||||
inline: true
|
||||
})]
|
||||
}
|
||||
|
||||
case 'search': {
|
||||
return [h('a', {
|
||||
href: `https://www.google.com/search?q=${token.props.query}`
|
||||
}, token.props.content)
|
||||
]
|
||||
}
|
||||
|
||||
default: {
|
||||
console.error('unrecognized ast type:', token.type)
|
||||
|
||||
return []
|
||||
}
|
||||
}
|
||||
}))
|
||||
|
||||
// Parse ast to DOM
|
||||
return h('span', genEl(ast))
|
||||
}
|
||||
})
|
|
@ -67,11 +67,10 @@
|
|||
</a>
|
||||
</div>
|
||||
<div
|
||||
class="mobile-notifications"
|
||||
id="mobile-notifications"
|
||||
class="mobile-notifications"
|
||||
@scroll="onScroll"
|
||||
>
|
||||
</div>
|
||||
/>
|
||||
</div>
|
||||
<SideDrawer
|
||||
ref="sideDrawer"
|
||||
|
|
|
@ -12,7 +12,8 @@ import {
|
|||
faComments,
|
||||
faBell,
|
||||
faInfoCircle,
|
||||
faStream
|
||||
faStream,
|
||||
faList
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
library.add(
|
||||
|
@ -25,7 +26,8 @@ library.add(
|
|||
faComments,
|
||||
faBell,
|
||||
faInfoCircle,
|
||||
faStream
|
||||
faStream,
|
||||
faList
|
||||
)
|
||||
|
||||
const NavPanel = {
|
||||
|
|
|
@ -28,6 +28,18 @@
|
|||
<TimelineMenuContent class="timelines" />
|
||||
</div>
|
||||
</li>
|
||||
<li v-if="currentUser">
|
||||
<router-link
|
||||
class="menu-item"
|
||||
:to="{ name: 'lists' }"
|
||||
>
|
||||
<FAIcon
|
||||
fixed-width
|
||||
class="fa-scale-110"
|
||||
icon="list"
|
||||
/>{{ $t("nav.lists") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li v-if="currentUser">
|
||||
<router-link
|
||||
class="menu-item"
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
@import '../../_variables.scss';
|
||||
|
||||
.notification-reaction-emoji {
|
||||
width: 40px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
// TODO Copypaste from Status, should unify it somehow
|
||||
.Notification {
|
||||
border-bottom: 1px solid;
|
||||
|
|
|
@ -116,7 +116,18 @@
|
|||
scope="global"
|
||||
keypath="notifications.reacted_with"
|
||||
>
|
||||
<span class="emoji-reaction-emoji">{{ notification.emoji }}</span>
|
||||
<img
|
||||
v-if="notification.emoji_url !== null"
|
||||
class="notification-reaction-emoji"
|
||||
:src="notification.emoji_url"
|
||||
:name="notification.emoji"
|
||||
>
|
||||
<span
|
||||
v-else
|
||||
class="emoji-reaction-emoji"
|
||||
>
|
||||
{{ notification.emoji }}
|
||||
</span>
|
||||
</i18n-t>
|
||||
</small>
|
||||
</span>
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
<template>
|
||||
<teleport :disabled="minimalMode || disableTeleport" :to="teleportTarget">
|
||||
<teleport
|
||||
:disabled="minimalMode || disableTeleport"
|
||||
:to="teleportTarget"
|
||||
>
|
||||
<div
|
||||
:class="{ minimal: minimalMode }"
|
||||
class="Notifications"
|
||||
|
|
|
@ -123,7 +123,7 @@ const PostStatusForm = {
|
|||
? this.copyMessageScope
|
||||
: this.$store.state.users.currentUser.default_scope
|
||||
|
||||
const { postContentType: contentType, sensitiveByDefault } = this.$store.getters.mergedConfig
|
||||
const { postContentType: contentType, sensitiveByDefault, sensitiveIfSubject } = this.$store.getters.mergedConfig
|
||||
|
||||
return {
|
||||
dropFiles: [],
|
||||
|
@ -134,6 +134,7 @@ const PostStatusForm = {
|
|||
newStatus: {
|
||||
spoilerText: this.subject || '',
|
||||
status: statusText,
|
||||
sensitiveIfSubject,
|
||||
nsfw: !!sensitiveByDefault,
|
||||
files: [],
|
||||
poll: {},
|
||||
|
@ -390,6 +391,10 @@ const PostStatusForm = {
|
|||
addMediaFile (fileInfo) {
|
||||
this.$emit('resize')
|
||||
this.newStatus.files.push(fileInfo)
|
||||
|
||||
if (this.newStatus.sensitiveIfSubject && this.newStatus.spoilerText !== '') {
|
||||
this.newStatus.nsfw = true
|
||||
}
|
||||
this.$emit('resize', { delayed: true })
|
||||
},
|
||||
removeMediaFile (fileInfo) {
|
||||
|
@ -467,6 +472,11 @@ const PostStatusForm = {
|
|||
this.resize(this.$refs['textarea'])
|
||||
})
|
||||
},
|
||||
onSubjectInput (e) {
|
||||
if (this.newStatus.sensitiveIfSubject) {
|
||||
this.newStatus.nsfw = true
|
||||
}
|
||||
},
|
||||
resize (e) {
|
||||
const target = e.target || e
|
||||
if (!(target instanceof window.Element)) { return }
|
||||
|
|
|
@ -124,8 +124,18 @@
|
|||
:disabled="posting && !optimisticPosting"
|
||||
size="1"
|
||||
class="form-post-subject"
|
||||
@input="onSubjectInput"
|
||||
>
|
||||
</EmojiInput>
|
||||
<i18n-t
|
||||
v-if="newStatus.files.length !== 0 && newStatus.nsfw === false && newStatus.spoilerText !== ''"
|
||||
keypath="post_status.media_not_sensitive_warning"
|
||||
tag="p"
|
||||
class="visibility-notice"
|
||||
scope="global"
|
||||
>
|
||||
{{ $t('post_status.media_not_sensitive_warning') }}
|
||||
</i18n-t>
|
||||
<EmojiInput
|
||||
ref="emoji-input"
|
||||
v-model="newStatus.status"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import Popover from '../popover/popover.vue'
|
||||
import EmojiPicker from '../emoji_picker/emoji_picker.vue'
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import { faSmileBeam } from '@fortawesome/free-regular-svg-icons'
|
||||
|
||||
|
@ -12,10 +13,12 @@ const ReactButton = {
|
|||
}
|
||||
},
|
||||
components: {
|
||||
Popover
|
||||
Popover,
|
||||
EmojiPicker
|
||||
},
|
||||
methods: {
|
||||
addReaction (event, emoji, close) {
|
||||
addReaction (event, close) {
|
||||
const emoji = event.insertion
|
||||
const existingReaction = this.status.emoji_reactions.find(r => r.name === emoji)
|
||||
if (existingReaction && existingReaction.me) {
|
||||
this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })
|
||||
|
@ -32,39 +35,6 @@ const ReactButton = {
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
commonEmojis () {
|
||||
return [
|
||||
{ displayText: 'thumbsup', replacement: '👍' },
|
||||
{ displayText: 'angry', replacement: '😠' },
|
||||
{ displayText: 'eyes', replacement: '👀' },
|
||||
{ displayText: 'joy', replacement: '😂' },
|
||||
{ displayText: 'fire', replacement: '🔥' }
|
||||
]
|
||||
},
|
||||
emojis () {
|
||||
if (this.filterWord !== '') {
|
||||
const filterWordLowercase = this.filterWord.toLowerCase()
|
||||
let orderedEmojiList = []
|
||||
for (const emoji of [
|
||||
...this.$store.state.instance.emoji,
|
||||
...this.$store.state.instance.customEmoji
|
||||
]) {
|
||||
if (emoji.replacement === this.filterWord) return [emoji]
|
||||
|
||||
const indexOfFilterWord = emoji.displayText.toLowerCase().indexOf(filterWordLowercase)
|
||||
if (indexOfFilterWord > -1) {
|
||||
if (!Array.isArray(orderedEmojiList[indexOfFilterWord])) {
|
||||
orderedEmojiList[indexOfFilterWord] = []
|
||||
}
|
||||
orderedEmojiList[indexOfFilterWord].push(emoji)
|
||||
}
|
||||
}
|
||||
return orderedEmojiList.flat()
|
||||
}
|
||||
return [
|
||||
...this.$store.state.instance.emoji
|
||||
] || []
|
||||
},
|
||||
mergedConfig () {
|
||||
return this.$store.getters.mergedConfig
|
||||
}
|
||||
|
|
|
@ -9,43 +9,10 @@
|
|||
@show="focusInput"
|
||||
>
|
||||
<template v-slot:content="{close}">
|
||||
<div class="reaction-picker-filter">
|
||||
<input
|
||||
v-model="filterWord"
|
||||
size="1"
|
||||
:placeholder="$t('emoji.search_emoji')"
|
||||
>
|
||||
</div>
|
||||
<div class="reaction-picker">
|
||||
<span
|
||||
v-for="emoji in commonEmojis"
|
||||
:key="emoji.replacement"
|
||||
class="emoji-button"
|
||||
:title="emoji.displayText"
|
||||
@click="addReaction($event, emoji.replacement, close)"
|
||||
>
|
||||
{{ emoji.replacement }}
|
||||
</span>
|
||||
<div class="reaction-picker-divider" />
|
||||
<span
|
||||
v-for="(emoji, key) in emojis"
|
||||
:key="key"
|
||||
class="emoji-button"
|
||||
:title="emoji.displayText"
|
||||
@click="addReaction($event, emoji.replacement, close)"
|
||||
>
|
||||
<img
|
||||
v-if="emoji.imageUrl !== false"
|
||||
:src="emoji.imageUrl"
|
||||
width="30px"
|
||||
class="custom-reaction"
|
||||
>
|
||||
<span v-else>
|
||||
{{ emoji.replacement }}
|
||||
</span>
|
||||
</span>
|
||||
<div class="reaction-bottom-fader" />
|
||||
</div>
|
||||
<EmojiPicker
|
||||
:enable-sticker-picker="false"
|
||||
@emoji="addReaction($event, close)"
|
||||
/>
|
||||
</template>
|
||||
<template v-slot:trigger>
|
||||
<button
|
||||
|
@ -136,6 +103,11 @@
|
|||
color: var(--text, $fallback--text);
|
||||
}
|
||||
}
|
||||
|
||||
.popover {
|
||||
transform: translateX(-64px) translateY(5px);
|
||||
min-width: 70%;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
|
@ -24,6 +24,9 @@ const RetweetButton = {
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
isOwn () {
|
||||
return this.status.user.id === this.$store.state.users.currentUser.id
|
||||
},
|
||||
mergedConfig () {
|
||||
return this.$store.getters.mergedConfig
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="RetweetButton">
|
||||
<button
|
||||
v-if="visibility !== 'private' && visibility !== 'direct' && loggedIn"
|
||||
v-if="(visibility !== 'private' || isOwn) && visibility !== 'direct' && loggedIn"
|
||||
class="button-unstyled interactive"
|
||||
:class="status.repeated && '-repeated'"
|
||||
:title="$t('tool_tip.repeat')"
|
||||
|
|
|
@ -33,6 +33,9 @@ const ScopeSelector = {
|
|||
showPublic () {
|
||||
return this.originalScope !== 'direct' && this.shouldShow('public')
|
||||
},
|
||||
showLocal () {
|
||||
return this.originalScope !== 'direct' && this.shouldShow('local')
|
||||
},
|
||||
showUnlisted () {
|
||||
return this.originalScope !== 'direct' && this.shouldShow('unlisted')
|
||||
},
|
||||
|
@ -47,7 +50,8 @@ const ScopeSelector = {
|
|||
public: { selected: this.currentScope === 'public' },
|
||||
unlisted: { selected: this.currentScope === 'unlisted' },
|
||||
private: { selected: this.currentScope === 'private' },
|
||||
direct: { selected: this.currentScope === 'direct' }
|
||||
direct: { selected: this.currentScope === 'direct' },
|
||||
local: { selected: this.currentScope === 'local' }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -58,6 +58,19 @@
|
|||
class="fa-scale-110 fa-old-padding"
|
||||
/>
|
||||
</button>
|
||||
<button
|
||||
v-if="showLocal"
|
||||
class="button-unstyled scope"
|
||||
:class="css.local"
|
||||
:title="$t('post_status.scope.local')"
|
||||
type="button"
|
||||
@click="changeVis('local')"
|
||||
>
|
||||
<FAIcon
|
||||
icon="users"
|
||||
class="fa-scale-110 fa-old-padding"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -125,7 +125,15 @@
|
|||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting path="alwaysShowNewPostButton">
|
||||
<BooleanSetting path="renderMisskeyMarkdown">
|
||||
{{ $t('settings.render_mfm') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
path="alwaysShowNewPostButton"
|
||||
expert="1"
|
||||
>
|
||||
{{ $t('settings.always_show_post_button') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
|
|
|
@ -65,6 +65,14 @@
|
|||
{{ $t('settings.enable_web_push_notifications') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
path="webPushHideIfCW"
|
||||
expert="1"
|
||||
>
|
||||
{{ $t('settings.notification_setting_hide_if_cw') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
path="serverSide_webPushHideContents"
|
||||
|
|
|
@ -117,8 +117,8 @@
|
|||
<button
|
||||
v-if="!isDefaultAvatar && pickAvatarBtnVisible"
|
||||
:title="$t('settings.reset_avatar')"
|
||||
@click="resetAvatar"
|
||||
class="button-unstyled reset-button"
|
||||
@click="resetAvatar"
|
||||
>
|
||||
<FAIcon
|
||||
icon="times"
|
||||
|
|
|
@ -15,11 +15,21 @@ const SecurityTab = {
|
|||
deleteAccountError: false,
|
||||
changePasswordInputs: [ '', '', '' ],
|
||||
changedPassword: false,
|
||||
changePasswordError: false
|
||||
changePasswordError: false,
|
||||
moveAccountTarget: '',
|
||||
moveAccountPassword: '',
|
||||
movedAccount: false,
|
||||
moveAccountError: false,
|
||||
aliases: [],
|
||||
listAliasesError: false,
|
||||
addAliasTarget: '',
|
||||
addedAlias: false,
|
||||
addAliasError: false
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.$store.dispatch('fetchTokens')
|
||||
this.fetchAliases()
|
||||
},
|
||||
components: {
|
||||
ProgressButton,
|
||||
|
@ -92,6 +102,49 @@ const SecurityTab = {
|
|||
}
|
||||
})
|
||||
},
|
||||
moveAccount () {
|
||||
const params = {
|
||||
targetAccount: this.moveAccountTarget,
|
||||
password: this.moveAccountPassword
|
||||
}
|
||||
this.$store.state.api.backendInteractor.moveAccount(params)
|
||||
.then((res) => {
|
||||
if (res.status === 'success') {
|
||||
this.movedAccount = true
|
||||
this.moveAccountError = false
|
||||
} else {
|
||||
this.movedAccount = false
|
||||
this.moveAccountError = res.error
|
||||
}
|
||||
})
|
||||
},
|
||||
removeAlias (alias) {
|
||||
this.$store.state.api.backendInteractor.deleteAlias({ alias })
|
||||
.then(() => this.fetchAliases())
|
||||
},
|
||||
addAlias () {
|
||||
this.$store.state.api.backendInteractor.addAlias({ alias: this.addAliasTarget })
|
||||
.then((res) => {
|
||||
this.addedAlias = true
|
||||
this.addAliasError = false
|
||||
this.addAliasTarget = ''
|
||||
})
|
||||
.catch((error) => {
|
||||
this.addedAlias = false
|
||||
this.addAliasError = error
|
||||
})
|
||||
.then(() => this.fetchAliases())
|
||||
},
|
||||
fetchAliases () {
|
||||
this.$store.state.api.backendInteractor.listAliases()
|
||||
.then((res) => {
|
||||
this.aliases = res.aliases
|
||||
this.listAliasesError = false
|
||||
})
|
||||
.catch((error) => {
|
||||
this.listAliasesError = error.error
|
||||
})
|
||||
},
|
||||
logout () {
|
||||
this.$store.dispatch('logout')
|
||||
this.$router.replace('/')
|
||||
|
|
|
@ -103,6 +103,114 @@
|
|||
</table>
|
||||
</div>
|
||||
<mfa />
|
||||
|
||||
<div class="setting-item">
|
||||
<h2>{{ $t('settings.account_alias') }}</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ $t('settings.account_alias_table_head') }}</th>
|
||||
<th />
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr
|
||||
v-for="alias in aliases"
|
||||
:key="alias"
|
||||
>
|
||||
<td>{{ alias }}</td>
|
||||
<td class="actions">
|
||||
<button
|
||||
class="btn button-default"
|
||||
@click="removeAlias(alias)"
|
||||
>
|
||||
{{ $t('settings.remove_alias') }}
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div
|
||||
v-if="listAliasesError"
|
||||
class="alert error"
|
||||
>
|
||||
{{ $t('settings.list_aliases_error', { error }) }}
|
||||
<FAIcon
|
||||
class="fa-scale-110 fa-old-padding"
|
||||
icon="times"
|
||||
:title="$t('settings.hide_list_aliases_error_action')"
|
||||
@click="listAliasesError = false"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<i18n
|
||||
path="settings.new_alias_target"
|
||||
tag="p"
|
||||
>
|
||||
<code
|
||||
place="example"
|
||||
>
|
||||
foo@example.org
|
||||
</code>
|
||||
</i18n>
|
||||
<input
|
||||
v-model="addAliasTarget"
|
||||
>
|
||||
</div>
|
||||
<button
|
||||
class="btn button-default"
|
||||
@click="addAlias"
|
||||
>
|
||||
{{ $t('settings.save') }}
|
||||
</button>
|
||||
<p v-if="addedAlias">
|
||||
{{ $t('settings.added_alias') }}
|
||||
</p>
|
||||
<template v-if="addAliasError !== false">
|
||||
<p>{{ $t('settings.add_alias_error', { error: addAliasError }) }}</p>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<h2>{{ $t('settings.move_account') }}</h2>
|
||||
<p>{{ $t('settings.move_account_notes') }}</p>
|
||||
<div>
|
||||
<i18n
|
||||
path="settings.move_account_target"
|
||||
tag="p"
|
||||
>
|
||||
<code
|
||||
place="example"
|
||||
>
|
||||
foo@example.org
|
||||
</code>
|
||||
</i18n>
|
||||
<input
|
||||
v-model="moveAccountTarget"
|
||||
>
|
||||
</div>
|
||||
<div>
|
||||
<p>{{ $t('settings.current_password') }}</p>
|
||||
<input
|
||||
v-model="moveAccountPassword"
|
||||
type="password"
|
||||
autocomplete="current-password"
|
||||
>
|
||||
</div>
|
||||
<button
|
||||
class="btn button-default"
|
||||
@click="moveAccount"
|
||||
>
|
||||
{{ $t('settings.save') }}
|
||||
</button>
|
||||
<p v-if="movedAccount">
|
||||
{{ $t('settings.moved_account') }}
|
||||
</p>
|
||||
<template v-if="moveAccountError !== false">
|
||||
<p>{{ $t('settings.move_account_error', { error: moveAccountError }) }}</p>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<h2>{{ $t('settings.delete_account') }}</h2>
|
||||
<p v-if="!deletingAccount">
|
||||
|
|
|
@ -29,7 +29,10 @@
|
|||
{{ $t('settings.style.preview.content') }}
|
||||
</h4>
|
||||
|
||||
<i18n-t scope="global" keypath="settings.style.preview.text">
|
||||
<i18n-t
|
||||
scope="global"
|
||||
keypath="settings.style.preview.text"
|
||||
>
|
||||
<code style="font-family: var(--postCodeFont)">
|
||||
{{ $t('settings.style.preview.mono') }}
|
||||
</code>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { extractCommit } from 'src/services/version/version.service'
|
||||
|
||||
const pleromaFeCommitUrl = 'https://git.pleroma.social/absturztaube/pleroma-fe/commit/'
|
||||
const pleromaBeCommitUrl = 'https://git.pleroma.social/absturztaube/pleroma/commit/'
|
||||
const pleromaFeCommitUrl = 'https://akkoma.dev/puniko/pleroma-fe/commit/'
|
||||
const pleromaBeCommitUrl = 'https://akkoma.dev/puniko/akkoma/commits/'
|
||||
|
||||
const VersionTab = {
|
||||
data () {
|
||||
|
|
|
@ -14,7 +14,8 @@ import {
|
|||
faSearch,
|
||||
faTachometerAlt,
|
||||
faCog,
|
||||
faInfoCircle
|
||||
faInfoCircle,
|
||||
faList
|
||||
} from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
library.add(
|
||||
|
@ -28,7 +29,8 @@ library.add(
|
|||
faSearch,
|
||||
faTachometerAlt,
|
||||
faCog,
|
||||
faInfoCircle
|
||||
faInfoCircle,
|
||||
faList
|
||||
)
|
||||
|
||||
const SideDrawer = {
|
||||
|
|
|
@ -55,6 +55,18 @@
|
|||
/> {{ $t("nav.timelines") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li
|
||||
v-if="currentUser"
|
||||
@click="toggleDrawer"
|
||||
>
|
||||
<router-link :to="{ name: 'lists' }">
|
||||
<FAIcon
|
||||
fixed-width
|
||||
class="fa-scale-110 fa-old-padding"
|
||||
icon="list"
|
||||
/> {{ $t("nav.lists") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li
|
||||
v-if="currentUser && pleromaChatMessagesAvailable"
|
||||
@click="toggleDrawer"
|
||||
|
|
|
@ -406,6 +406,8 @@ const Status = {
|
|||
return 'lock-open'
|
||||
case 'direct':
|
||||
return 'envelope'
|
||||
case 'local':
|
||||
return 'users'
|
||||
default:
|
||||
return 'globe'
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import fileType from 'src/services/file_type/file_type.service'
|
||||
import RichContent from 'src/components/rich_content/rich_content.jsx'
|
||||
import MFMContent from 'src/components/mfm_content/mfm_content.jsx'
|
||||
import { mapGetters } from 'vuex'
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
|
@ -35,9 +36,11 @@ const StatusContent = {
|
|||
'toggleShowingLongSubject'
|
||||
],
|
||||
data () {
|
||||
const { renderMisskeyMarkdown } = this.$store.getters.mergedConfig
|
||||
return {
|
||||
postLength: this.status.text.length,
|
||||
parseReadyDone: false
|
||||
parseReadyDone: false,
|
||||
renderMisskeyMarkdown
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -81,7 +84,8 @@ const StatusContent = {
|
|||
...mapGetters(['mergedConfig'])
|
||||
},
|
||||
components: {
|
||||
RichContent
|
||||
RichContent,
|
||||
MFMContent
|
||||
},
|
||||
mounted () {
|
||||
this.status.attentions && this.status.attentions.forEach(attn => {
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
|
||||
.emoji {
|
||||
--_still_image-label-scale: 0.5;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.attachments {
|
||||
|
|
|
@ -41,18 +41,26 @@
|
|||
>
|
||||
{{ $t("general.show_more") }}
|
||||
</button>
|
||||
<RichContent
|
||||
<div
|
||||
v-if="!hideSubjectStatus && !(singleLine && status.summary_raw_html)"
|
||||
:class="{ '-single-line': singleLine }"
|
||||
class="text media-body"
|
||||
:html="status.raw_html"
|
||||
:emoji="status.emojis"
|
||||
:handle-links="true"
|
||||
:greentext="mergedConfig.greentext"
|
||||
:attentions="status.attentions"
|
||||
@parseReady="onParseReady"
|
||||
/>
|
||||
|
||||
>
|
||||
<MFMContent
|
||||
v-if="renderMisskeyMarkdown && status.mfm_content"
|
||||
class="RichContent text media-body mfm-post-content"
|
||||
:status="status"
|
||||
/>
|
||||
<RichContent
|
||||
v-else
|
||||
:class="{ '-single-line': singleLine }"
|
||||
class="text media-body"
|
||||
:html="status.raw_html"
|
||||
:emoji="status.emojis"
|
||||
:handle-links="true"
|
||||
:greentext="mergedConfig.greentext"
|
||||
:attentions="status.attentions"
|
||||
@parseReady="onParseReady"
|
||||
/>
|
||||
</div>
|
||||
<button
|
||||
v-show="hideSubjectStatus"
|
||||
class="button-unstyled -link cw-status-hider"
|
||||
|
|
|
@ -61,5 +61,12 @@
|
|||
.StatusContent {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
|
||||
img, video {
|
||||
&.emoji {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -18,6 +18,7 @@ const Timeline = {
|
|||
'timelineName',
|
||||
'title',
|
||||
'userId',
|
||||
'listId',
|
||||
'tag',
|
||||
'embedded',
|
||||
'count',
|
||||
|
@ -101,6 +102,7 @@ const Timeline = {
|
|||
timeline: this.timelineName,
|
||||
showImmediately,
|
||||
userId: this.userId,
|
||||
listId: this.listId,
|
||||
tag: this.tag
|
||||
})
|
||||
},
|
||||
|
@ -156,6 +158,7 @@ const Timeline = {
|
|||
older: true,
|
||||
showImmediately: true,
|
||||
userId: this.userId,
|
||||
listId: this.listId,
|
||||
tag: this.tag
|
||||
}).then(({ statuses }) => {
|
||||
if (statuses && statuses.length === 0) {
|
||||
|
|
|
@ -46,7 +46,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div :class="classes.footer">
|
||||
<teleport :to="footerSlipgate" :disabled="!embedded || !footerSlipgate">
|
||||
<teleport
|
||||
:to="footerSlipgate"
|
||||
:disabled="!embedded || !footerSlipgate"
|
||||
>
|
||||
<div
|
||||
v-if="count===0"
|
||||
class="new-status-notification text-center faint"
|
||||
|
|
|
@ -58,6 +58,9 @@ const TimelineMenu = {
|
|||
if (route === 'tag-timeline') {
|
||||
return '#' + this.$route.params.tag
|
||||
}
|
||||
if (route === 'list-timeline') {
|
||||
return this.$store.getters.findListTitle(this.$route.params.id)
|
||||
}
|
||||
const i18nkey = timelineNames()[this.$route.name]
|
||||
return i18nkey ? this.$t(i18nkey) : route
|
||||
}
|
||||
|
|
|
@ -125,12 +125,23 @@ export default {
|
|||
RichContent
|
||||
},
|
||||
methods: {
|
||||
refetchRelationship () {
|
||||
return this.$store.dispatch('fetchUserRelationship', this.user.id)
|
||||
},
|
||||
muteUser () {
|
||||
this.$store.dispatch('muteUser', this.user.id)
|
||||
},
|
||||
unmuteUser () {
|
||||
this.$store.dispatch('unmuteUser', this.user.id)
|
||||
},
|
||||
muteDomain () {
|
||||
this.$store.dispatch('muteDomain', this.user.screen_name.split('@')[1])
|
||||
.then(() => this.refetchRelationship())
|
||||
},
|
||||
unmuteDomain () {
|
||||
this.$store.dispatch('unmuteDomain', this.user.screen_name.split('@')[1])
|
||||
.then(() => this.refetchRelationship())
|
||||
},
|
||||
subscribeUser () {
|
||||
return this.$store.dispatch('subscribeUser', this.user.id)
|
||||
},
|
||||
|
|
|
@ -219,6 +219,22 @@
|
|||
{{ $t('user_card.mute') }}
|
||||
</button>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
v-if="relationship.domain_blocking"
|
||||
class="btn button-default btn-block toggled"
|
||||
@click="unmuteDomain"
|
||||
>
|
||||
{{ $t('user_card.domain_muted') }}
|
||||
</button>
|
||||
<button
|
||||
v-else
|
||||
class="btn button-default btn-block"
|
||||
@click="muteDomain"
|
||||
>
|
||||
{{ $t('user_card.mute_domain') }}
|
||||
</button>
|
||||
</div>
|
||||
<div>
|
||||
<button
|
||||
class="btn button-default btn-block"
|
||||
|
|
|
@ -7,6 +7,7 @@ import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
|||
import RichContent from 'src/components/rich_content/rich_content.jsx'
|
||||
import List from '../list/list.vue'
|
||||
import withLoadMore from '../../hocs/with_load_more/with_load_more'
|
||||
import { debounce } from 'lodash'
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
faCircleNotch
|
||||
|
@ -40,7 +41,9 @@ const UserProfile = {
|
|||
error: false,
|
||||
userId: null,
|
||||
tab: defaultTabKey,
|
||||
footerRef: null
|
||||
footerRef: null,
|
||||
note: null,
|
||||
noteLoading: false
|
||||
}
|
||||
},
|
||||
created () {
|
||||
|
@ -110,9 +113,13 @@ const UserProfile = {
|
|||
const user = this.$store.getters.findUser(userNameOrId)
|
||||
if (user) {
|
||||
loadById(user.id)
|
||||
this.note = user.relationship.note
|
||||
} else {
|
||||
this.$store.dispatch('fetchUser', userNameOrId)
|
||||
.then(({ id }) => loadById(id))
|
||||
.then(({ id, relationship }) => {
|
||||
this.note = relationship.note
|
||||
return loadById(id)
|
||||
})
|
||||
.catch((reason) => {
|
||||
const errorMessage = get(reason, 'error.error')
|
||||
if (errorMessage === 'No user with such user_id') { // Known error
|
||||
|
@ -145,7 +152,15 @@ const UserProfile = {
|
|||
if (target.tagName === 'A') {
|
||||
window.open(target.href, '_blank')
|
||||
}
|
||||
}
|
||||
},
|
||||
setNote () {
|
||||
this.noteLoading = true
|
||||
this.debounceSetNote()
|
||||
},
|
||||
debounceSetNote: debounce(function () {
|
||||
this.$store.dispatch('setNote', { id: this.userId, note: this.note })
|
||||
this.noteLoading = false
|
||||
}, 1500)
|
||||
},
|
||||
watch: {
|
||||
'$route.params.id': function (newVal) {
|
||||
|
|
|
@ -40,6 +40,27 @@
|
|||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div
|
||||
v-if="currentUser && !isUs"
|
||||
class="note"
|
||||
>
|
||||
<textarea
|
||||
v-model="note"
|
||||
class="resize-height"
|
||||
:placeholder="$t('user_card.note')"
|
||||
@input="setNote"
|
||||
/>
|
||||
<div
|
||||
v-show="noteLoading"
|
||||
class="preview-spinner"
|
||||
>
|
||||
<FAIcon
|
||||
class="fa-old-padding"
|
||||
spin
|
||||
icon="circle-notch"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<tab-switcher
|
||||
:active-tab="tab"
|
||||
:render-only-focused="true"
|
||||
|
@ -56,7 +77,7 @@
|
|||
:user-id="userId"
|
||||
:pinned-status-ids="user.pinnedStatusIds"
|
||||
:in-profile="true"
|
||||
:footerSlipgate="footerRef"
|
||||
:footer-slipgate="footerRef"
|
||||
/>
|
||||
<div
|
||||
v-if="followsTabVisible"
|
||||
|
@ -95,7 +116,7 @@
|
|||
:timeline="media"
|
||||
:user-id="userId"
|
||||
:in-profile="true"
|
||||
:footerSlipgate="footerRef"
|
||||
:footer-slipgate="footerRef"
|
||||
/>
|
||||
<Timeline
|
||||
v-if="isUs"
|
||||
|
@ -107,10 +128,13 @@
|
|||
timeline-name="favorites"
|
||||
:timeline="favorites"
|
||||
:in-profile="true"
|
||||
:footerSlipgate="footerRef"
|
||||
:footer-slipgate="footerRef"
|
||||
/>
|
||||
</tab-switcher>
|
||||
<div class="panel-footer" :ref="setFooterRef"></div>
|
||||
<div
|
||||
:ref="setFooterRef"
|
||||
class="panel-footer"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-else
|
||||
|
@ -199,6 +223,22 @@
|
|||
align-items: middle;
|
||||
padding: 2em;
|
||||
}
|
||||
|
||||
.note {
|
||||
position: relative;
|
||||
margin: 0.5em 0.75em;
|
||||
|
||||
textarea {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.preview-spinner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
margin: 0.5em 0.25em;
|
||||
}
|
||||
}
|
||||
}
|
||||
.user-profile-placeholder {
|
||||
.panel-body {
|
||||
|
|
|
@ -146,7 +146,8 @@
|
|||
"who_to_follow": "Who to follow",
|
||||
"preferences": "Preferences",
|
||||
"timelines": "Timelines",
|
||||
"chats": "Chats"
|
||||
"chats": "Chats",
|
||||
"lists": "Lists"
|
||||
},
|
||||
"notifications": {
|
||||
"broken_favorite": "Unknown status, searching for it…",
|
||||
|
@ -203,13 +204,15 @@
|
|||
"new_status": "Post new status",
|
||||
"account_not_locked_warning": "Your account is not {0}. Anyone can follow you to view your follower-only posts.",
|
||||
"account_not_locked_warning_link": "locked",
|
||||
"media_not_sensitive_warning": "You have a Content Warning, but the attachments are not marked as sensitive!",
|
||||
"attachments_sensitive": "Mark attachments as sensitive",
|
||||
"media_description": "Media description",
|
||||
"content_type": {
|
||||
"text/plain": "Plain text",
|
||||
"text/html": "HTML",
|
||||
"text/markdown": "Markdown",
|
||||
"text/bbcode": "BBCode"
|
||||
"text/bbcode": "BBCode",
|
||||
"text/x.misskeymarkdown": "MFM"
|
||||
},
|
||||
"content_warning": "Subject (optional)",
|
||||
"default": "Just landed in L.A.",
|
||||
|
@ -224,13 +227,15 @@
|
|||
"scope_notice": {
|
||||
"public": "This post will be visible to everyone",
|
||||
"private": "This post will be visible to your followers only",
|
||||
"unlisted": "This post will not be visible in Public Timeline and The Whole Known Network"
|
||||
"unlisted": "This post will not be visible in Public Timeline and The Whole Known Network",
|
||||
"local": "This post will not be visible on other instances"
|
||||
},
|
||||
"scope": {
|
||||
"direct": "Direct - post to mentioned users only",
|
||||
"private": "Followers-only - post to followers only",
|
||||
"public": "Public - post to public timelines",
|
||||
"unlisted": "Unlisted - do not post to public timelines"
|
||||
"unlisted": "Unlisted - do not post to public timelines",
|
||||
"local": "Local - do not federate this post"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
|
@ -334,6 +339,8 @@
|
|||
"collapse_subject": "Collapse posts with subjects",
|
||||
"composing": "Composing",
|
||||
"confirm_new_password": "Confirm new password",
|
||||
"current_avatar": "Your current avatar",
|
||||
"current_mascot": "Your current mascot",
|
||||
"current_password": "Current password",
|
||||
"mutes_and_blocks": "Mutes and Blocks",
|
||||
"data_import_export_tab": "Data import / export",
|
||||
|
@ -342,6 +349,19 @@
|
|||
"delete_account_description": "Permanently delete your data and deactivate your account.",
|
||||
"delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.",
|
||||
"delete_account_instructions": "Type your password in the input below to confirm account deletion.",
|
||||
"account_alias": "Account aliases",
|
||||
"account_alias_table_head": "Alias",
|
||||
"list_aliases_error": "Error fetching aliases: {error}",
|
||||
"hide_list_aliases_error_action": "Close",
|
||||
"remove_alias": "Remove this alias",
|
||||
"new_alias_target": "Add a new alias (e.g. {example})",
|
||||
"added_alias": "Alias is added.",
|
||||
"add_alias_error": "Error adding alias: {error}",
|
||||
"move_account": "Move account",
|
||||
"move_account_notes": "If you want to move the account somewhere else, you must go to your target account and add an alias pointing here.",
|
||||
"move_account_target": "Target account (e.g. {example})",
|
||||
"moved_account": "Account is moved.",
|
||||
"move_account_error": "Error moving account: {error}",
|
||||
"discoverable": "Allow discovery of this account in search results and other services",
|
||||
"domain_mutes": "Domains",
|
||||
"avatar_size_instruction": "The recommended minimum size for avatar images is 150x150 pixels.",
|
||||
|
@ -467,8 +487,10 @@
|
|||
"search_user_to_mute": "Search whom you want to mute",
|
||||
"security_tab": "Security",
|
||||
"scope_copy": "Copy scope when replying (DMs are always copied)",
|
||||
"mascot": "Mastodon FE Mascot",
|
||||
"minimal_scopes_mode": "Minimize post scope selection options",
|
||||
"set_new_avatar": "Set new avatar",
|
||||
"set_new_mascot": "Set new mascot",
|
||||
"set_new_profile_background": "Set new profile background",
|
||||
"set_new_profile_banner": "Set new profile banner",
|
||||
"reset_avatar": "Reset avatar",
|
||||
|
@ -500,6 +522,9 @@
|
|||
"max_depth_in_thread": "Maximum number of levels in thread to display by default",
|
||||
"post_status_content_type": "Post status content type",
|
||||
"sensitive_by_default": "Mark posts as sensitive by default",
|
||||
"sensitive_if_subject": "Automatically mark images as sensitive if a subject line is specified",
|
||||
"render_mfm": "Render Misskey Markdown",
|
||||
"useStreamingApiWarning": "It's cool use it. If it breaks refresh I guess?",
|
||||
"stop_gifs": "Pause animated images until you hover on them",
|
||||
"streaming": "Automatically show new posts when scrolled to the top",
|
||||
"user_mutes": "Users",
|
||||
|
@ -535,6 +560,7 @@
|
|||
"notification_setting_block_from_strangers": "Block notifications from users who you do not follow",
|
||||
"notification_setting_privacy": "Privacy",
|
||||
"notification_setting_hide_notification_contents": "Hide the sender and contents of push notifications",
|
||||
"notification_setting_hide_if_cw": "Hide the contents of push notifications if under a Content Warning",
|
||||
"notification_mutes": "To stop receiving notifications from a specific user, use a mute.",
|
||||
"notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.",
|
||||
"enable_web_push_notifications": "Enable web push notifications",
|
||||
|
@ -831,7 +857,10 @@
|
|||
"mute_progress": "Muting…",
|
||||
"hide_repeats": "Hide repeats",
|
||||
"show_repeats": "Show repeats",
|
||||
"domain_muted": "Unblock domain",
|
||||
"mute_domain": "Block domain",
|
||||
"bot": "Bot",
|
||||
"note": "Private note",
|
||||
"admin_menu": {
|
||||
"moderation": "Moderation",
|
||||
"grant_admin": "Grant Admin",
|
||||
|
@ -934,6 +963,16 @@
|
|||
"error_sending_message": "Something went wrong when sending the message.",
|
||||
"empty_chat_list_placeholder": "You don't have any chats yet. Start a new chat!"
|
||||
},
|
||||
"lists": {
|
||||
"lists": "Lists",
|
||||
"new": "New List",
|
||||
"title": "List title",
|
||||
"search": "Search users",
|
||||
"create": "Create",
|
||||
"save": "Save changes",
|
||||
"delete": "Delete list",
|
||||
"following_only": "Limit to Following"
|
||||
},
|
||||
"file_type": {
|
||||
"audio": "Audio",
|
||||
"video": "Video",
|
||||
|
|
|
@ -581,6 +581,8 @@
|
|||
"setting_changed": "規定の設定と異なっています",
|
||||
"greentext": "引用を緑色で表示",
|
||||
"sensitive_by_default": "はじめから投稿をセンシティブとして設定",
|
||||
"sensitive_if_subject": "ステータスにサブジェクトをついたらNSFWにする",
|
||||
"render_mfm": "Misskey Markdownを表示",
|
||||
"more_settings": "その他の設定",
|
||||
"reply_visibility_self_short": "自分宛のリプライを見る",
|
||||
"reply_visibility_following_short": "フォローしている人に宛てられたリプライを見る",
|
||||
|
|
|
@ -6,6 +6,7 @@ import './lib/event_target_polyfill.js'
|
|||
import interfaceModule from './modules/interface.js'
|
||||
import instanceModule from './modules/instance.js'
|
||||
import statusesModule from './modules/statuses.js'
|
||||
import listsModule from './modules/lists.js'
|
||||
import usersModule from './modules/users.js'
|
||||
import apiModule from './modules/api.js'
|
||||
import configModule from './modules/config.js'
|
||||
|
@ -70,6 +71,7 @@ const persistedStateOptions = {
|
|||
// TODO refactor users/statuses modules, they depend on each other
|
||||
users: usersModule,
|
||||
statuses: statusesModule,
|
||||
lists: listsModule,
|
||||
api: apiModule,
|
||||
config: configModule,
|
||||
serverSideConfig: serverSideConfigModule,
|
||||
|
|
|
@ -191,12 +191,13 @@ const api = {
|
|||
startFetchingTimeline (store, {
|
||||
timeline = 'friends',
|
||||
tag = false,
|
||||
userId = false
|
||||
userId = false,
|
||||
listId = false
|
||||
}) {
|
||||
if (store.state.fetchers[timeline]) return
|
||||
|
||||
const fetcher = store.state.backendInteractor.startFetchingTimeline({
|
||||
timeline, store, userId, tag
|
||||
timeline, store, userId, listId, tag
|
||||
})
|
||||
store.commit('addFetcher', { fetcherName: timeline, fetcher })
|
||||
},
|
||||
|
@ -248,6 +249,18 @@ const api = {
|
|||
store.commit('setFollowRequests', requests)
|
||||
},
|
||||
|
||||
// Lists
|
||||
startFetchingLists (store) {
|
||||
if (store.state.fetchers['lists']) return
|
||||
const fetcher = store.state.backendInteractor.startFetchingLists({ store })
|
||||
store.commit('addFetcher', { fetcherName: 'lists', fetcher })
|
||||
},
|
||||
stopFetchingLists (store) {
|
||||
const fetcher = store.state.fetchers.lists
|
||||
if (!fetcher) return
|
||||
store.commit('removeFetcher', { fetcherName: 'lists', fetcher })
|
||||
},
|
||||
|
||||
// Pleroma websocket
|
||||
setWsToken (store, token) {
|
||||
store.commit('setWsToken', token)
|
||||
|
|
|
@ -47,7 +47,7 @@ const chats = {
|
|||
const fetcher = () => dispatch('fetchChats', { latest: true })
|
||||
fetcher()
|
||||
commit('setChatListFetcher', {
|
||||
fetcher: () => promiseInterval(fetcher, 5000)
|
||||
fetcher: () => promiseInterval(fetcher, 60000)
|
||||
})
|
||||
},
|
||||
stopFetchingChats ({ commit }) {
|
||||
|
|
|
@ -67,11 +67,12 @@ export const defaultState = {
|
|||
polls: true
|
||||
},
|
||||
webPushNotifications: false,
|
||||
webPushHideIfCW: true,
|
||||
muteWords: [],
|
||||
highlight: {},
|
||||
interfaceLanguage: browserLocale,
|
||||
hideScopeNotice: false,
|
||||
useStreamingApi: false,
|
||||
useStreamingApi: true,
|
||||
sidebarRight: undefined, // instance default
|
||||
scopeCopy: undefined, // instance default
|
||||
subjectLineBehavior: undefined, // instance default
|
||||
|
@ -98,6 +99,8 @@ export const defaultState = {
|
|||
hideUserStats: undefined, // instance default
|
||||
virtualScrolling: undefined, // instance default
|
||||
sensitiveByDefault: undefined, // instance default
|
||||
sensitiveIfSubject: undefined,
|
||||
renderMisskeyMarkdown: undefined,
|
||||
conversationDisplay: undefined, // instance default
|
||||
conversationTreeAdvanced: undefined, // instance default
|
||||
conversationOtherRepliesButton: undefined, // instance default
|
||||
|
|
|
@ -54,7 +54,9 @@ const defaultState = {
|
|||
theme: 'pleroma-dark',
|
||||
virtualScrolling: true,
|
||||
sensitiveByDefault: false,
|
||||
conversationDisplay: 'simple_tree',
|
||||
sensitiveIfSubject: true,
|
||||
renderMisskeyMarkdown: false,
|
||||
conversationDisplay: 'linear',
|
||||
conversationTreeAdvanced: false,
|
||||
conversationOtherRepliesButton: 'below',
|
||||
conversationTreeFadeAncestors: false,
|
||||
|
|
90
src/modules/lists.js
Normal file
90
src/modules/lists.js
Normal file
|
@ -0,0 +1,90 @@
|
|||
import { remove, find } from 'lodash'
|
||||
|
||||
export const defaultState = {
|
||||
allLists: [],
|
||||
allListsObject: {}
|
||||
}
|
||||
|
||||
export const mutations = {
|
||||
setLists (state, value) {
|
||||
state.allLists = value
|
||||
},
|
||||
setList (state, { id, title }) {
|
||||
if (!state.allListsObject[id]) {
|
||||
state.allListsObject[id] = {}
|
||||
}
|
||||
state.allListsObject[id].title = title
|
||||
|
||||
if (!find(state.allLists, { id })) {
|
||||
state.allLists.push({ id, title })
|
||||
} else {
|
||||
find(state.allLists, { id }).title = title
|
||||
}
|
||||
},
|
||||
setListAccounts (state, { id, accountIds }) {
|
||||
if (!state.allListsObject[id]) {
|
||||
state.allListsObject[id] = {}
|
||||
}
|
||||
state.allListsObject[id].accountIds = accountIds
|
||||
},
|
||||
deleteList (state, { id }) {
|
||||
delete state.allListsObject[id]
|
||||
remove(state.allLists, list => list.id === id)
|
||||
}
|
||||
}
|
||||
|
||||
const actions = {
|
||||
setLists ({ commit }, value) {
|
||||
commit('setLists', value)
|
||||
},
|
||||
createList ({ rootState, commit }, { title }) {
|
||||
return rootState.api.backendInteractor.createList({ title })
|
||||
.then((list) => {
|
||||
commit('setList', { id: list.id, title })
|
||||
return list
|
||||
})
|
||||
},
|
||||
fetchList ({ rootState, commit }, { id }) {
|
||||
return rootState.api.backendInteractor.getList({ id })
|
||||
.then((list) => commit('setList', { id: list.id, title: list.title }))
|
||||
},
|
||||
fetchListAccounts ({ rootState, commit }, { id }) {
|
||||
return rootState.api.backendInteractor.getListAccounts({ id })
|
||||
.then((accountIds) => commit('setListAccounts', { id, accountIds }))
|
||||
},
|
||||
setList ({ rootState, commit }, { id, title }) {
|
||||
rootState.api.backendInteractor.updateList({ id, title })
|
||||
commit('setList', { id, title })
|
||||
},
|
||||
setListAccounts ({ rootState, commit }, { id, accountIds }) {
|
||||
commit('setListAccounts', { id, accountIds })
|
||||
rootState.api.backendInteractor.addAccountsToList({ id, accountIds })
|
||||
rootState.api.backendInteractor.removeAccountsFromList({
|
||||
id,
|
||||
accountIds: rootState.lists.allListsObject[id].accountIds.filter(id => !accountIds.includes(id))
|
||||
})
|
||||
},
|
||||
deleteList ({ rootState, commit }, { id }) {
|
||||
rootState.api.backendInteractor.deleteList({ id })
|
||||
commit('deleteList', { id })
|
||||
}
|
||||
}
|
||||
|
||||
export const getters = {
|
||||
findListTitle: state => id => {
|
||||
if (!state.allListsObject[id]) return
|
||||
return state.allListsObject[id].title
|
||||
},
|
||||
findListAccounts: state => id => {
|
||||
return state.allListsObject[id].accountIds
|
||||
}
|
||||
}
|
||||
|
||||
const lists = {
|
||||
state: defaultState,
|
||||
mutations,
|
||||
actions,
|
||||
getters
|
||||
}
|
||||
|
||||
export default lists
|
|
@ -62,7 +62,8 @@ export const defaultState = () => ({
|
|||
friends: emptyTl(),
|
||||
tag: emptyTl(),
|
||||
dms: emptyTl(),
|
||||
bookmarks: emptyTl()
|
||||
bookmarks: emptyTl(),
|
||||
list: emptyTl()
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -754,8 +755,8 @@ const statuses = {
|
|||
rootState.api.backendInteractor.fetchRebloggedByUsers({ id })
|
||||
.then(rebloggedByUsers => commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser }))
|
||||
},
|
||||
search (store, { q, resolve, limit, offset, following }) {
|
||||
return store.rootState.api.backendInteractor.search2({ q, resolve, limit, offset, following })
|
||||
search (store, { q, resolve, limit, offset, following, type }) {
|
||||
return store.rootState.api.backendInteractor.search2({ q, resolve, limit, offset, following, type })
|
||||
.then((data) => {
|
||||
store.commit('addNewUsers', data.accounts)
|
||||
store.commit('addNewStatuses', { statuses: data.statuses })
|
||||
|
|
|
@ -88,6 +88,10 @@ const showReblogs = (store, userId) => {
|
|||
.then((relationship) => store.commit('updateUserRelationship', [relationship]))
|
||||
}
|
||||
|
||||
const fetchMascot = (store) => {
|
||||
return store.rootState.api.backendInteractor.fetchMascot()
|
||||
.then(({ url }) => store.commit('updateMascot', url))
|
||||
}
|
||||
const muteDomain = (store, domain) => {
|
||||
return store.rootState.api.backendInteractor.muteDomain({ domain })
|
||||
.then(() => store.commit('addDomainMute', domain))
|
||||
|
@ -98,6 +102,11 @@ const unmuteDomain = (store, domain) => {
|
|||
.then(() => store.commit('removeDomainMute', domain))
|
||||
}
|
||||
|
||||
const setNote = (store, { id, note }) => {
|
||||
return store.rootState.api.backendInteractor.setNote({ id, note })
|
||||
.then((relationship) => store.commit('updateUserRelationship', [relationship]))
|
||||
}
|
||||
|
||||
export const mutations = {
|
||||
tagUser (state, { user: { id }, tag }) {
|
||||
const user = state.usersObject[id]
|
||||
|
@ -186,6 +195,9 @@ export const mutations = {
|
|||
state.currentUser.muteIds.push(muteId)
|
||||
}
|
||||
},
|
||||
updateMascot (state, mascotUrl) {
|
||||
state.currentUser.mascot = mascotUrl
|
||||
},
|
||||
saveDomainMutes (state, domainMutes) {
|
||||
state.currentUser.domainMutes = domainMutes
|
||||
},
|
||||
|
@ -343,6 +355,9 @@ const users = {
|
|||
unmuteUsers (store, ids = []) {
|
||||
return Promise.all(ids.map(id => unmuteUser(store, id)))
|
||||
},
|
||||
fetchMascot (store) {
|
||||
return fetchMascot(store)
|
||||
},
|
||||
fetchDomainMutes (store) {
|
||||
return store.rootState.api.backendInteractor.fetchDomainMutes()
|
||||
.then((domainMutes) => {
|
||||
|
@ -362,6 +377,9 @@ const users = {
|
|||
unmuteDomains (store, domain = []) {
|
||||
return Promise.all(domain.map(domain => unmuteDomain(store, domain)))
|
||||
},
|
||||
setNote (store, { id, note }) {
|
||||
return setNote(store, { id, note })
|
||||
},
|
||||
fetchFriends ({ rootState, commit }, id) {
|
||||
const user = rootState.users.usersObject[id]
|
||||
const maxId = last(user.friendIds)
|
||||
|
|
|
@ -9,6 +9,8 @@ const FOLLOW_IMPORT_URL = '/api/pleroma/follow_import'
|
|||
const DELETE_ACCOUNT_URL = '/api/pleroma/delete_account'
|
||||
const CHANGE_EMAIL_URL = '/api/pleroma/change_email'
|
||||
const CHANGE_PASSWORD_URL = '/api/pleroma/change_password'
|
||||
const MOVE_ACCOUNT_URL = '/api/pleroma/move_account'
|
||||
const ALIASES_URL = '/api/pleroma/aliases'
|
||||
const TAG_USER_URL = '/api/pleroma/admin/users/tag'
|
||||
const PERMISSION_GROUP_URL = (screenName, right) => `/api/pleroma/admin/users/${screenName}/permission_group/${right}`
|
||||
const ACTIVATE_USER_URL = '/api/pleroma/admin/users/activate'
|
||||
|
@ -47,9 +49,12 @@ const MASTODON_PUBLIC_TIMELINE = '/api/v1/timelines/public'
|
|||
const MASTODON_USER_HOME_TIMELINE_URL = '/api/v1/timelines/home'
|
||||
const MASTODON_STATUS_URL = id => `/api/v1/statuses/${id}`
|
||||
const MASTODON_STATUS_CONTEXT_URL = id => `/api/v1/statuses/${id}/context`
|
||||
const MASTODON_USER_URL = '/api/v1/accounts'
|
||||
const MASTODON_USER_URL = id => `/api/v1/accounts/${id}?with_relationships=true`
|
||||
const MASTODON_USER_RELATIONSHIPS_URL = '/api/v1/accounts/relationships'
|
||||
const MASTODON_USER_TIMELINE_URL = id => `/api/v1/accounts/${id}/statuses`
|
||||
const MASTODON_LIST_URL = id => `/api/v1/lists/${id}`
|
||||
const MASTODON_LIST_TIMELINE_URL = id => `/api/v1/timelines/list/${id}`
|
||||
const MASTODON_LIST_ACCOUNTS_URL = id => `/api/v1/lists/${id}/accounts`
|
||||
const MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`
|
||||
const MASTODON_BOOKMARK_TIMELINE_URL = '/api/v1/bookmarks'
|
||||
const MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'
|
||||
|
@ -60,6 +65,7 @@ const MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`
|
|||
const MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`
|
||||
const MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`
|
||||
const MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`
|
||||
const MASTODON_SET_NOTE_URL = id => `/api/v1/accounts/${id}/note`
|
||||
const MASTODON_BOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/bookmark`
|
||||
const MASTODON_UNBOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/unbookmark`
|
||||
const MASTODON_POST_STATUS_URL = '/api/v1/statuses'
|
||||
|
@ -76,7 +82,9 @@ const MASTODON_MUTE_CONVERSATION = id => `/api/v1/statuses/${id}/mute`
|
|||
const MASTODON_UNMUTE_CONVERSATION = id => `/api/v1/statuses/${id}/unmute`
|
||||
const MASTODON_SEARCH_2 = `/api/v2/search`
|
||||
const MASTODON_USER_SEARCH_URL = '/api/v1/accounts/search'
|
||||
const MASTODON_MASCOT_URL = '/api/v1/pleroma/mascot'
|
||||
const MASTODON_DOMAIN_BLOCKS_URL = '/api/v1/domain_blocks'
|
||||
const MASTODON_LISTS_URL = '/api/v1/lists'
|
||||
const MASTODON_STREAMING = '/api/v1/streaming'
|
||||
const MASTODON_KNOWN_DOMAIN_LIST_URL = '/api/v1/instance/peers'
|
||||
const PLEROMA_EMOJI_REACTIONS_URL = id => `/api/v1/pleroma/statuses/${id}/reactions`
|
||||
|
@ -305,7 +313,7 @@ const denyUser = ({ id, credentials }) => {
|
|||
}
|
||||
|
||||
const fetchUser = ({ id, credentials }) => {
|
||||
let url = `${MASTODON_USER_URL}/${id}`
|
||||
const url = MASTODON_USER_URL(id)
|
||||
return promisedRequest({ url, credentials })
|
||||
.then((data) => parseUser(data))
|
||||
}
|
||||
|
@ -381,6 +389,95 @@ const fetchFollowRequests = ({ credentials }) => {
|
|||
.then((data) => data.map(parseUser))
|
||||
}
|
||||
|
||||
const fetchLists = ({ credentials }) => {
|
||||
const url = MASTODON_LISTS_URL
|
||||
return fetch(url, { headers: authHeaders(credentials) })
|
||||
.then((data) => data.json())
|
||||
}
|
||||
|
||||
const createList = ({ title, credentials }) => {
|
||||
const url = MASTODON_LISTS_URL
|
||||
const headers = authHeaders(credentials)
|
||||
headers['Content-Type'] = 'application/json'
|
||||
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
headers: headers,
|
||||
body: JSON.stringify({ title })
|
||||
}).then((data) => data.json())
|
||||
}
|
||||
|
||||
const getList = ({ id, credentials }) => {
|
||||
const url = MASTODON_LIST_URL(id)
|
||||
return fetch(url, { headers: authHeaders(credentials) })
|
||||
.then((data) => data.json())
|
||||
}
|
||||
|
||||
const updateList = ({ id, title, credentials }) => {
|
||||
const url = MASTODON_LIST_URL(id)
|
||||
const headers = authHeaders(credentials)
|
||||
headers['Content-Type'] = 'application/json'
|
||||
|
||||
return fetch(url, {
|
||||
method: 'PUT',
|
||||
headers: headers,
|
||||
body: JSON.stringify({ title })
|
||||
})
|
||||
}
|
||||
|
||||
const getListAccounts = ({ id, credentials }) => {
|
||||
const url = MASTODON_LIST_ACCOUNTS_URL(id)
|
||||
return fetch(url, { headers: authHeaders(credentials) })
|
||||
.then((data) => data.json())
|
||||
.then((data) => data.map(({ id }) => id))
|
||||
}
|
||||
|
||||
const addAccountsToList = ({ id, accountIds, credentials }) => {
|
||||
const url = MASTODON_LIST_ACCOUNTS_URL(id)
|
||||
const headers = authHeaders(credentials)
|
||||
headers['Content-Type'] = 'application/json'
|
||||
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
headers: headers,
|
||||
body: JSON.stringify({ account_ids: accountIds })
|
||||
})
|
||||
}
|
||||
|
||||
const removeAccountsFromList = ({ id, accountIds, credentials }) => {
|
||||
const url = MASTODON_LIST_ACCOUNTS_URL(id)
|
||||
const headers = authHeaders(credentials)
|
||||
headers['Content-Type'] = 'application/json'
|
||||
|
||||
return fetch(url, {
|
||||
method: 'DELETE',
|
||||
headers: headers,
|
||||
body: JSON.stringify({ account_ids: accountIds })
|
||||
})
|
||||
}
|
||||
|
||||
const deleteList = ({ id, credentials }) => {
|
||||
const url = MASTODON_LIST_URL(id)
|
||||
return fetch(url, {
|
||||
method: 'DELETE',
|
||||
headers: authHeaders(credentials)
|
||||
})
|
||||
}
|
||||
|
||||
const errorStatusMapper = (response) => {
|
||||
console.log(response)
|
||||
switch (response.status) {
|
||||
case 429:
|
||||
return 'You are rate limited'
|
||||
case 500:
|
||||
return 'Internal Server Error'
|
||||
case 503:
|
||||
return 'The backend is not available'
|
||||
default:
|
||||
return `Unexpected status: ${response.status}`
|
||||
}
|
||||
}
|
||||
|
||||
const fetchConversation = ({ id, credentials }) => {
|
||||
let urlContext = MASTODON_STATUS_CONTEXT_URL(id)
|
||||
return fetch(urlContext, { headers: authHeaders(credentials) })
|
||||
|
@ -388,7 +485,7 @@ const fetchConversation = ({ id, credentials }) => {
|
|||
if (data.ok) {
|
||||
return data
|
||||
}
|
||||
throw new Error('Error fetching timeline', data)
|
||||
throw new Error('Error fetching timeline', errorStatusMapper(data))
|
||||
})
|
||||
.then((data) => data.json())
|
||||
.then(({ ancestors, descendants }) => ({
|
||||
|
@ -404,7 +501,7 @@ const fetchStatus = ({ id, credentials }) => {
|
|||
if (data.ok) {
|
||||
return data
|
||||
}
|
||||
throw new Error('Error fetching timeline', data)
|
||||
throw new Error('Error fetching timeline', errorStatusMapper(data))
|
||||
})
|
||||
.then((data) => data.json())
|
||||
.then((data) => parseStatus(data))
|
||||
|
@ -502,6 +599,7 @@ const fetchTimeline = ({
|
|||
since = false,
|
||||
until = false,
|
||||
userId = false,
|
||||
listId = false,
|
||||
tag = false,
|
||||
withMuted = false,
|
||||
replyVisibility = 'all'
|
||||
|
@ -514,6 +612,7 @@ const fetchTimeline = ({
|
|||
'publicAndExternal': MASTODON_PUBLIC_TIMELINE,
|
||||
user: MASTODON_USER_TIMELINE_URL,
|
||||
media: MASTODON_USER_TIMELINE_URL,
|
||||
list: MASTODON_LIST_TIMELINE_URL,
|
||||
favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,
|
||||
tag: MASTODON_TAG_TIMELINE_URL,
|
||||
bookmarks: MASTODON_BOOKMARK_TIMELINE_URL
|
||||
|
@ -527,6 +626,10 @@ const fetchTimeline = ({
|
|||
url = url(userId)
|
||||
}
|
||||
|
||||
if (timeline === 'list') {
|
||||
url = url(listId)
|
||||
}
|
||||
|
||||
if (since) {
|
||||
params.push(['since_id', since])
|
||||
}
|
||||
|
@ -570,8 +673,15 @@ const fetchTimeline = ({
|
|||
})
|
||||
return data
|
||||
})
|
||||
.then((data) => data.json())
|
||||
.then((data) => {
|
||||
if (data.ok) return data.json()
|
||||
|
||||
throw new Error(errorStatusMapper(data))
|
||||
})
|
||||
.then((data) => {
|
||||
if (data.error) {
|
||||
throw new Error(data.error)
|
||||
}
|
||||
if (!data.errors) {
|
||||
return { data: data.map(isNotifications ? parseNotification : parseStatus), pagination }
|
||||
} else {
|
||||
|
@ -789,6 +899,49 @@ const changeEmail = ({ credentials, email, password }) => {
|
|||
.then((response) => response.json())
|
||||
}
|
||||
|
||||
const moveAccount = ({ credentials, password, targetAccount }) => {
|
||||
const form = new FormData()
|
||||
|
||||
form.append('password', password)
|
||||
form.append('target_account', targetAccount)
|
||||
|
||||
return fetch(MOVE_ACCOUNT_URL, {
|
||||
body: form,
|
||||
method: 'POST',
|
||||
headers: authHeaders(credentials)
|
||||
})
|
||||
.then((response) => response.json())
|
||||
}
|
||||
|
||||
const addAlias = ({ credentials, alias }) => {
|
||||
return promisedRequest({
|
||||
url: ALIASES_URL,
|
||||
method: 'PUT',
|
||||
credentials,
|
||||
payload: { alias }
|
||||
})
|
||||
}
|
||||
|
||||
const deleteAlias = ({ credentials, alias }) => {
|
||||
return promisedRequest({
|
||||
url: ALIASES_URL,
|
||||
method: 'DELETE',
|
||||
credentials,
|
||||
payload: { alias }
|
||||
})
|
||||
}
|
||||
|
||||
const listAliases = ({ credentials }) => {
|
||||
return promisedRequest({
|
||||
url: ALIASES_URL,
|
||||
method: 'GET',
|
||||
credentials,
|
||||
params: {
|
||||
_cacheBooster: (new Date()).getTime()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const changePassword = ({ credentials, password, newPassword, newPasswordConfirmation }) => {
|
||||
const form = new FormData()
|
||||
|
||||
|
@ -862,6 +1015,32 @@ const unmuteUser = ({ id, credentials }) => {
|
|||
return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })
|
||||
}
|
||||
|
||||
const setNote = ({ id, note, credentials }) => {
|
||||
const form = new FormData()
|
||||
|
||||
form.append('comment', note)
|
||||
|
||||
return fetch(MASTODON_SET_NOTE_URL(id), {
|
||||
body: form,
|
||||
headers: authHeaders(credentials),
|
||||
method: 'POST'
|
||||
}).then((data) => data.json())
|
||||
}
|
||||
|
||||
const fetchMascot = ({ credentials }) => {
|
||||
return promisedRequest({ url: MASTODON_MASCOT_URL, credentials })
|
||||
}
|
||||
|
||||
const updateMascot = ({ mascot, credentials }) => {
|
||||
const form = new FormData()
|
||||
form.append('file', mascot)
|
||||
return fetch(MASTODON_MASCOT_URL, {
|
||||
headers: authHeaders(credentials),
|
||||
method: 'PUT',
|
||||
body: form
|
||||
}).then((data) => data.json())
|
||||
}
|
||||
|
||||
const subscribeUser = ({ id, credentials }) => {
|
||||
return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })
|
||||
}
|
||||
|
@ -1009,7 +1188,7 @@ const searchUsers = ({ credentials, query }) => {
|
|||
.then((data) => data.map(parseUser))
|
||||
}
|
||||
|
||||
const search2 = ({ credentials, q, resolve, limit, offset, following }) => {
|
||||
const search2 = ({ credentials, q, resolve, limit, offset, following, type }) => {
|
||||
let url = MASTODON_SEARCH_2
|
||||
let params = []
|
||||
|
||||
|
@ -1033,6 +1212,10 @@ const search2 = ({ credentials, q, resolve, limit, offset, following }) => {
|
|||
params.push(['following', true])
|
||||
}
|
||||
|
||||
if (type) {
|
||||
params.push(['type', type])
|
||||
}
|
||||
|
||||
params.push(['with_relationships', true])
|
||||
|
||||
let queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')
|
||||
|
@ -1305,6 +1488,7 @@ const apiService = {
|
|||
fetchMutes,
|
||||
muteUser,
|
||||
unmuteUser,
|
||||
setNote,
|
||||
subscribeUser,
|
||||
unsubscribeUser,
|
||||
fetchBlocks,
|
||||
|
@ -1326,6 +1510,10 @@ const apiService = {
|
|||
importFollows,
|
||||
deleteAccount,
|
||||
changeEmail,
|
||||
moveAccount,
|
||||
addAlias,
|
||||
deleteAlias,
|
||||
listAliases,
|
||||
changePassword,
|
||||
settingsMFA,
|
||||
mfaDisableOTP,
|
||||
|
@ -1333,6 +1521,14 @@ const apiService = {
|
|||
mfaSetupOTP,
|
||||
mfaConfirmOTP,
|
||||
fetchFollowRequests,
|
||||
fetchLists,
|
||||
createList,
|
||||
getList,
|
||||
updateList,
|
||||
getListAccounts,
|
||||
addAccountsToList,
|
||||
removeAccountsFromList,
|
||||
deleteList,
|
||||
approveUser,
|
||||
denyUser,
|
||||
suggestions,
|
||||
|
@ -1342,6 +1538,8 @@ const apiService = {
|
|||
fetchPoll,
|
||||
fetchFavoritedByUsers,
|
||||
fetchRebloggedByUsers,
|
||||
fetchMascot,
|
||||
updateMascot,
|
||||
fetchEmojiReactions,
|
||||
reactWithEmoji,
|
||||
unreactWithEmoji,
|
||||
|
|
|
@ -2,10 +2,11 @@ import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.servic
|
|||
import timelineFetcher from '../timeline_fetcher/timeline_fetcher.service.js'
|
||||
import notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js'
|
||||
import followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service'
|
||||
import listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js'
|
||||
|
||||
const backendInteractorService = credentials => ({
|
||||
startFetchingTimeline ({ timeline, store, userId = false, tag }) {
|
||||
return timelineFetcher.startFetching({ timeline, store, credentials, userId, tag })
|
||||
startFetchingTimeline ({ timeline, store, userId = false, listId = false, tag }) {
|
||||
return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, tag })
|
||||
},
|
||||
|
||||
fetchTimeline (args) {
|
||||
|
@ -24,6 +25,10 @@ const backendInteractorService = credentials => ({
|
|||
return followRequestFetcher.startFetching({ store, credentials })
|
||||
},
|
||||
|
||||
startFetchingLists ({ store }) {
|
||||
return listsFetcher.startFetching({ store, credentials })
|
||||
},
|
||||
|
||||
startUserSocket ({ store }) {
|
||||
const serv = store.rootState.instance.server.replace('http', 'ws')
|
||||
const url = serv + getMastodonSocketURI({ credentials, stream: 'user' })
|
||||
|
|
|
@ -2,8 +2,5 @@ export const showDesktopNotification = (rootState, desktopNotificationOpts) => {
|
|||
if (!('Notification' in window && window.Notification.permission === 'granted')) return
|
||||
if (rootState.statuses.notifications.desktopNotificationSilence) { return }
|
||||
|
||||
const desktopNotification = new window.Notification(desktopNotificationOpts.title, desktopNotificationOpts)
|
||||
// Chrome is known for not closing notifications automatically
|
||||
// according to MDN, anyway.
|
||||
setTimeout(desktopNotification.close.bind(desktopNotification), 5000)
|
||||
return new window.Notification(desktopNotificationOpts.title, desktopNotificationOpts)
|
||||
}
|
||||
|
|
|
@ -280,6 +280,15 @@ export const parseStatus = (data) => {
|
|||
output.summary = data.spoiler_text
|
||||
}
|
||||
|
||||
if (data.akkoma) {
|
||||
const { akkoma } = data
|
||||
if (akkoma && akkoma.source && akkoma.source.mediaType === 'text/x.misskeymarkdown') {
|
||||
output.mfm_content = akkoma.source.content
|
||||
}
|
||||
} else {
|
||||
output.mfm_content = null
|
||||
}
|
||||
|
||||
output.in_reply_to_status_id = data.in_reply_to_id
|
||||
output.in_reply_to_user_id = data.in_reply_to_account_id
|
||||
output.replies_count = data.replies_count
|
||||
|
@ -388,6 +397,7 @@ export const parseNotification = (data) => {
|
|||
: parseUser(data.target)
|
||||
output.from_profile = parseUser(data.account)
|
||||
output.emoji = data.emoji
|
||||
output.emoji_url = data.emoji_url
|
||||
} else {
|
||||
const parsedNotice = parseStatus(data.notice)
|
||||
output.type = data.ntype
|
||||
|
|
|
@ -13,7 +13,7 @@ const fetchAndUpdate = ({ store, credentials }) => {
|
|||
const startFetching = ({ credentials, store }) => {
|
||||
const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })
|
||||
boundFetchAndUpdate()
|
||||
return promiseInterval(boundFetchAndUpdate, 10000)
|
||||
return promiseInterval(boundFetchAndUpdate, 240000)
|
||||
}
|
||||
|
||||
const followRequestFetcher = {
|
||||
|
|
22
src/services/lists_fetcher/lists_fetcher.service.js
Normal file
22
src/services/lists_fetcher/lists_fetcher.service.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
import apiService from '../api/api.service.js'
|
||||
import { promiseInterval } from '../promise_interval/promise_interval.js'
|
||||
|
||||
const fetchAndUpdate = ({ store, credentials }) => {
|
||||
return apiService.fetchLists({ credentials })
|
||||
.then(lists => {
|
||||
store.commit('setLists', lists)
|
||||
}, () => {})
|
||||
.catch(() => {})
|
||||
}
|
||||
|
||||
const startFetching = ({ credentials, store }) => {
|
||||
const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })
|
||||
boundFetchAndUpdate()
|
||||
return promiseInterval(boundFetchAndUpdate, 240000)
|
||||
}
|
||||
|
||||
const listsFetcher = {
|
||||
startFetching
|
||||
}
|
||||
|
||||
export default listsFetcher
|
|
@ -58,7 +58,7 @@ export const maybeShowNotification = (store, notification) => {
|
|||
if (!visibleTypes(store).includes(notification.type)) return
|
||||
if (notification.type === 'mention' && isMutedNotification(store, notification)) return
|
||||
|
||||
const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)
|
||||
const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n, store)
|
||||
showDesktopNotification(rootState, notificationObject)
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ export const filteredNotificationsFromStore = (store, types) => {
|
|||
export const unseenNotificationsFromStore = store =>
|
||||
filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)
|
||||
|
||||
export const prepareNotificationObject = (notification, i18n) => {
|
||||
export const prepareNotificationObject = (notification, i18n, store) => {
|
||||
const notifObj = {
|
||||
tag: notification.id
|
||||
}
|
||||
|
@ -109,7 +109,15 @@ export const prepareNotificationObject = (notification, i18n) => {
|
|||
} else if (i18nString) {
|
||||
notifObj.body = i18n.t('notifications.' + i18nString)
|
||||
} else if (isStatusNotification(notification.type)) {
|
||||
notifObj.body = notification.status.text
|
||||
if (notification.status.summary) {
|
||||
if (store.getters.mergedConfig.webPushHideIfCW) {
|
||||
notifObj.body = notification.status.summary
|
||||
} else {
|
||||
notifObj.body = `${notification.status.summary}:\n${notification.status.text}`
|
||||
}
|
||||
} else {
|
||||
notifObj.body = notification.status.text
|
||||
}
|
||||
}
|
||||
|
||||
// Shows first attached non-nsfw image, if any. Should add configuration for this somehow...
|
||||
|
|
|
@ -73,7 +73,7 @@ const startFetching = ({ credentials, store }) => {
|
|||
setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)
|
||||
const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })
|
||||
boundFetchAndUpdate()
|
||||
return promiseInterval(boundFetchAndUpdate, 10000)
|
||||
return promiseInterval(boundFetchAndUpdate, 20000)
|
||||
}
|
||||
|
||||
const notificationsFetcher = {
|
||||
|
|
|
@ -3,12 +3,13 @@ import { camelCase } from 'lodash'
|
|||
import apiService from '../api/api.service.js'
|
||||
import { promiseInterval } from '../promise_interval/promise_interval.js'
|
||||
|
||||
const update = ({ store, statuses, timeline, showImmediately, userId, pagination }) => {
|
||||
const update = ({ store, statuses, timeline, showImmediately, userId, listId, pagination }) => {
|
||||
const ccTimeline = camelCase(timeline)
|
||||
|
||||
store.dispatch('addNewStatuses', {
|
||||
timeline: ccTimeline,
|
||||
userId,
|
||||
listId,
|
||||
statuses,
|
||||
showImmediately,
|
||||
pagination
|
||||
|
@ -22,6 +23,7 @@ const fetchAndUpdate = ({
|
|||
older = false,
|
||||
showImmediately = false,
|
||||
userId = false,
|
||||
listId = false,
|
||||
tag = false,
|
||||
until,
|
||||
since
|
||||
|
@ -44,6 +46,7 @@ const fetchAndUpdate = ({
|
|||
}
|
||||
|
||||
args['userId'] = userId
|
||||
args['listId'] = listId
|
||||
args['tag'] = tag
|
||||
args['withMuted'] = !hideMutedPosts
|
||||
if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {
|
||||
|
@ -62,7 +65,7 @@ const fetchAndUpdate = ({
|
|||
if (!older && statuses.length >= 20 && !timelineData.loading && numStatusesBeforeFetch > 0) {
|
||||
store.dispatch('queueFlush', { timeline: timeline, id: timelineData.maxId })
|
||||
}
|
||||
update({ store, statuses, timeline, showImmediately, userId, pagination })
|
||||
update({ store, statuses, timeline, showImmediately, userId, listId, pagination })
|
||||
return { statuses, pagination }
|
||||
})
|
||||
.catch((error) => {
|
||||
|
@ -75,15 +78,16 @@ const fetchAndUpdate = ({
|
|||
})
|
||||
}
|
||||
|
||||
const startFetching = ({ timeline = 'friends', credentials, store, userId = false, tag = false }) => {
|
||||
const startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = false, tag = false }) => {
|
||||
const rootState = store.rootState || store.state
|
||||
const timelineData = rootState.statuses.timelines[camelCase(timeline)]
|
||||
const showImmediately = timelineData.visibleStatuses.length === 0
|
||||
timelineData.userId = userId
|
||||
fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, tag })
|
||||
timelineData.listId = listId
|
||||
fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, tag })
|
||||
const boundFetchAndUpdate = () =>
|
||||
fetchAndUpdate({ timeline, credentials, store, userId, tag })
|
||||
return promiseInterval(boundFetchAndUpdate, 10000)
|
||||
fetchAndUpdate({ timeline, credentials, store, userId, listId, tag })
|
||||
return promiseInterval(boundFetchAndUpdate, 20000)
|
||||
}
|
||||
const timelineFetcher = {
|
||||
fetchAndUpdate,
|
||||
|
|
|
@ -1,6 +1,17 @@
|
|||
|
||||
export const extractCommit = versionString => {
|
||||
const regex = /-g(\w+)/i
|
||||
const matches = versionString.match(regex)
|
||||
return matches ? matches[1] : ''
|
||||
// X.Y.Z-1337-gdeadbeef => deadbeef
|
||||
const commit = versionString.match(/-g(\w+)/i)
|
||||
if (commit) {
|
||||
return commit[1]
|
||||
}
|
||||
|
||||
// X.Y.Z-develop => develop
|
||||
const branch = versionString.match(/-([\w-/]+)$/i)
|
||||
if (branch) {
|
||||
return branch[1]
|
||||
}
|
||||
|
||||
// X.Y.Z => vX.Y.Z
|
||||
return 'v' + versionString
|
||||
}
|
||||
|
|
45
static/.tos
Normal file
45
static/.tos
Normal file
|
@ -0,0 +1,45 @@
|
|||
<h4>Terms of Service</h4>
|
||||
|
||||
<p>It's mainly "be nice"</p>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<h3>Don't be a big meanie</h4>
|
||||
<p>Arguments are cool and all but don't make them into flamewars. Try to act in good faith - we want to be at least on good terms with people. Please act with understanding towards others on this instance. Most people here are probably struggling with a lot, be mindful of that.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Mark your lewds!</h3>
|
||||
<p>Reminder that lewd is bad and nobody wants to be forced to see that. Just mark it sensitive, and post unlisted. That is to say, anything suggestive/ecchi upwards should be marked. If you wouldn't look at it with your parents/boss in the room, mark it. It goes without saying that if you're <em>going</em> to post lewd stuff, keep it sensible. Obviously nothing underaged or otherwise questionable. Or you could just not post lewd stuff. Either/or.</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>This is a <b>Kink Shame Zone</b></h3>
|
||||
<p>Being a lewdie will be met with many anime girl reaction images shaming you for your lewdness. Go think about icky things on someone else's webzone™</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Keep it legal!</h3>
|
||||
<p>Server is hosted in france, keep content legal for there (+ wherever you're browsing from)</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3>No ads/spambots</h3>
|
||||
<p>I didn't think I'd have to specify this, but please do not set up bots solely for trying to advertise.</h3>
|
||||
</li>
|
||||
<li>
|
||||
<h3>Non-TOS recommendations</h3>
|
||||
<p>This is stuff that'd I'd <em>like</em> you to do, but I won't outright ban you if you don't follow them</p>
|
||||
<ul>
|
||||
<li>If someone is sadposting, don't antagonise them - they probably just want to vent</li>
|
||||
<li>Put walls of text behind a subject (CW) - helps the timeline not get flooded with text</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<h3>Other</h3>
|
||||
<p>If you're here and you happen to play minecraft, feel free to message me with your username and come play with us sometime!</p>
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<p>So I guess yeah, that's about it. Try to be nice, eh? We're probably all sad here.</p>
|
||||
|
||||
<br>
|
||||
<img src="/static/logo.png" style="display: block; margin: auto; max-width: 100%; height: 50px; object-fit: contain;" />
|
|
@ -23,6 +23,6 @@
|
|||
"showInstanceSpecificPanel": false,
|
||||
"sidebarRight": false,
|
||||
"subjectLineBehavior": "email",
|
||||
"theme": "pleroma-dark",
|
||||
"theme": "ihatebeingalive",
|
||||
"webPushNotifications": false
|
||||
}
|
||||
|
|
13
static/font/css/lato.css
Normal file
13
static/font/css/lato.css
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* lato-regular - latin */
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('../font/lato-v15-latin-regular.eot'); /* IE9 Compat Modes */
|
||||
src: local('Lato Regular'), local('Lato-Regular'),
|
||||
url('../font/lato-v15-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
url('../font/lato-v15-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
|
||||
url('../font/lato-v15-latin-regular.woff') format('woff'), /* Modern Browsers */
|
||||
url('../font/lato-v15-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
url('../font/lato-v15-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */
|
||||
}
|
BIN
static/font/font/lato-v15-latin-regular.eot
Normal file
BIN
static/font/font/lato-v15-latin-regular.eot
Normal file
Binary file not shown.
435
static/font/font/lato-v15-latin-regular.svg
Normal file
435
static/font/font/lato-v15-latin-regular.svg
Normal file
|
@ -0,0 +1,435 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<defs >
|
||||
<font id="Lato" horiz-adv-x="1042" ><font-face
|
||||
font-family="Lato"
|
||||
units-per-em="2000"
|
||||
panose-1="2 15 5 2 2 2 4 3 2 3"
|
||||
ascent="1974"
|
||||
descent="-426"
|
||||
alphabetic="0" />
|
||||
<glyph unicode=" " glyph-name="space" horiz-adv-x="386" />
|
||||
<glyph unicode="!" glyph-name="exclam" horiz-adv-x="686" d="M430 1433V861Q430 816 429 773T424 687T417 598T406 500H285Q279 552 275 597T267 686T263 773T261 861V1433H430ZM218 110Q218 136 227 159T253 199T293 226T342 236Q368 236 391 226T431 199T457
|
||||
159T467 110Q467 83 458 61T431 21T391 -5T342 -15Q316 -15 293 -6T254 21T228 60T218 110Z" />
|
||||
<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="794" d="M307 1433V1143L291 988Q288 956 274 939T229 921Q203 921 189 938T168 988L152 1143V1433H307ZM640 1433V1143L624 988Q621 956 607 939T562 921Q536 921 522 938T501 988L485 1143V1433H640Z" />
|
||||
<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1160" d="M790 423L706 0H625Q602 0 586 17T570 61Q570 65 570 68T572 77L643 423H396L325 68Q317 31 295 16T243 0H164L249 423H103Q80 423 67 434T54 474Q54 479 54 485T56 497L64 554H268L333 880H101L114
|
||||
954Q119 983 137 997T194 1011H352L424 1369Q430 1399 451 1416T503 1433H583L499 1011H746L830 1433H909Q934 1433 950 1418T967 1379Q967 1371 966 1366L893 1011H1105L1092 936Q1087 907 1069 894T1012 880H874L809 554H988Q1012 554 1025 543T1038 502Q1038
|
||||
497 1038 492T1036 480L1027 423H790ZM415 554H662L727 880H480L415 554Z" />
|
||||
<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1160" d="M498 -12Q377 -1 278 47T106 171L159 253Q166 264 179 271T206 278Q225 278 249 259T308 216T391 168T508 137L545 668Q475 689 408 715T287 784T201 891T168 1053Q168 1126 196 1195T279 1319T414
|
||||
1407T598 1446L608 1590Q610 1609 623 1624T658 1639H724L710 1441Q815 1428 891 1387T1027 1288L984 1222Q964 1192 938 1192Q924 1192 904 1204T854 1233T787 1266T700 1290L667 806Q739 784 809 758T935 691T1025 589T1060 435Q1060 345 1030 266T943 127T802
|
||||
30T611 -14L599 -190Q597 -209 584 -223T549 -238H483L498 -12ZM891 407Q891 457 873 493T822 555T747 600T655 635L621 137Q686 143 736 165T821 223T873 304T891 407ZM336 1071Q336 1023 353 988T400 925T470 878T557 842L587 1293Q522 1287 475 1267T397 1217T351
|
||||
1150T336 1071Z" />
|
||||
<glyph unicode="%" glyph-name="percent" horiz-adv-x="1572" d="M707 1087Q707 1003 681 937T612 825T510 755T389 731Q321 731 264 755T163 824T96 936T72 1087Q72 1173 96 1240T163 1353T263 1423T389 1447Q456 1447 514 1423T615 1353T682 1240T707 1087ZM568
|
||||
1087Q568 1153 554 1199T516 1274T459 1317T389 1330Q352 1330 320 1317T263 1275T226 1199T212 1087Q212 1022 225 977T263 903T319 862T389 849Q426 849 458 861T515 902T554 976T568 1087ZM1208 1397Q1221 1414 1235 1423T1274 1433H1402L355 29Q345 16 331
|
||||
8T298 0H166L1208 1397ZM1499 338Q1499 254 1473 188T1404 77T1303 7T1182 -17Q1114 -17 1057 7T956 76T889 188T865 338Q865 424 889 491T956 605T1056 675T1182 699Q1249 699 1307 675T1408 605T1475 492T1499 338ZM1361 338Q1361 404 1347 450T1309 526T1252
|
||||
568T1182 581Q1145 581 1113 568T1056 526T1019 451T1005 338Q1005 273 1018 228T1056 155T1112 114T1182 101Q1219 101 1251 113T1308 154T1347 228T1361 338Z" />
|
||||
<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1406" d="M660 1449Q739 1449 804 1424T916 1356T991 1259T1023 1143L912 1121Q907 1120 903 1120Q890 1120 879 1127T862 1152Q855 1178 840 1206T800 1257T741 1295T660 1310Q610 1310 570 1294T502
|
||||
1250T458 1183T442 1099Q442 1064 450 1032T476 968T520 901T585 828L997 409Q1035 476 1057 549T1088 697Q1090 716 1100 727T1128 738H1238Q1236 623 1201 512T1100 304L1400 0H1228Q1199 0 1181 7T1141 36L997 181Q903 90 781 37T511 -16Q431 -16 354 11T217
|
||||
89T119 215T82 382Q82 452 105 514T170 630T269 725T394 797Q333 874 304 947T275 1098Q275 1171 301 1235T378 1346T499 1421T660 1449ZM263 396Q263 331 287 282T350 198T439 147T541 129Q653 129 742 170T899 279L476 706Q370 649 317 570T263 396Z" />
|
||||
<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="460" d="M307 1433V1143L291 988Q288 956 274 939T229 921Q203 921 189 938T168 988L152 1143V1433H307Z" />
|
||||
<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="600" d="M289 629Q289 415 344 214T503 -171Q509 -182 511 -190T513 -206Q513 -220 506 -229T488 -245L409 -293Q334 -178 282 -65T197 162T149 391T134 629Q134 750 149 866T196 1095T281 1322T409 1551L488
|
||||
1502Q499 1495 506 1486T513 1463Q513 1448 503 1429Q398 1247 344 1045T289 629Z" />
|
||||
<glyph unicode=")" glyph-name="parenright" horiz-adv-x="600" d="M298 629Q298 843 244 1045T84 1429Q74 1448 74 1463Q74 1477 81 1486T99 1502L178 1551Q253 1435 305 1322T390 1096T438 866T453 629Q453 507 438 392T391 162T306 -65T178 -293L99 -245Q88
|
||||
-238 81 -229T74 -206Q74 -198 76 -190T84 -171Q188 12 243 213T298 629Z" />
|
||||
<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="800" d="M354 863V1060Q354 1079 356 1096T366 1129Q346 1104 313 1084L141 985L97 1060L269 1160Q305 1181 342 1184Q322 1186 305 1191T269 1209L96 1310L140 1385L313 1285Q348 1265 370 1233Q361 1251
|
||||
358 1269T354 1308V1506H442V1309Q442 1268 428 1237Q439 1252 452 1263T483 1285L655 1384L699 1309L527 1209Q510 1198 494 1192T459 1184Q477 1182 493 1177T527 1160L700 1059L656 984L483 1084Q465 1095 451 1106T426 1133Q442 1100 442 1061V863H354Z" />
|
||||
<glyph unicode="+" glyph-name="plus" horiz-adv-x="1160" d="M651 1166V739H1058V604H651V174H505V604H100V739H505V1166H651Z" />
|
||||
<glyph unicode="," glyph-name="comma" horiz-adv-x="424" d="M94 123Q94 146 102 166T126 202T164 227T212 236Q242 236 265 225T304 195T328 150T336 94Q336 49 323 1T286 -95T227 -188T146 -271L116 -242Q103 -230 103 -214Q103 -201 117 -187Q127 -176 142
|
||||
-158T174 -115T203 -62T223 0H210Q184 0 163 9T127 34T103 73T94 123Z" />
|
||||
<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="694" d="M100 675H594V524H100V675Z" />
|
||||
<glyph unicode="." glyph-name="period" horiz-adv-x="424" d="M88 110Q88 136 97 159T123 199T163 226T212 236Q238 236 261 226T301 199T327 159T337 110Q337 83 328 61T301 21T261 -5T212 -15Q186 -15 163 -6T124 21T98 60T88 110Z" />
|
||||
<glyph unicode="/" glyph-name="slash" horiz-adv-x="746" d="M161 -21Q147 -56 120 -73T63 -90H-12L589 1407Q602 1439 626 1456T683 1473H758L161 -21Z" />
|
||||
<glyph unicode="0" glyph-name="zero" horiz-adv-x="1160" d="M1100 716Q1100 528 1060 391T949 163T784 29T579 -15Q469 -15 375 29T210 163T100 390T60 716Q60 904 100 1042T210 1270T374 1405T579 1449Q688 1449 783 1405T949 1271T1059 1042T1100 716ZM915
|
||||
716Q915 880 888 991T814 1171T706 1268T579 1298Q513 1298 452 1269T345 1171T272 992T244 716Q244 552 271 441T345 262T452 165T579 135Q645 135 706 164T813 262T887 441T915 716Z" />
|
||||
<glyph unicode="1" glyph-name="one" horiz-adv-x="1160" d="M287 136H595V1113Q595 1157 598 1202L342 983Q332 975 322 972T303 968Q288 968 276 974T258 990L202 1067L628 1436H773V136H1055V0H287V136Z" />
|
||||
<glyph unicode="2" glyph-name="two" horiz-adv-x="1160" d="M601 1449Q692 1449 771 1422T907 1344T998 1218T1031 1050Q1031 970 1007 902T942 772T848 651T734 531L357 145Q397 156 438 162T517 169H997Q1026 169 1043 152T1060 108V0H104V61Q104 80 111 100T136
|
||||
137L595 598Q652 656 699 709T779 817T831 926T849 1045Q849 1108 829 1155T774 1234T692 1280T591 1296Q537 1296 491 1280T410 1236T350 1168T315 1082Q307 1053 291 1040T249 1027Q244 1027 239 1027T226 1029L133 1045Q147 1143 187 1218T288 1345T429 1422T601
|
||||
1449Z" />
|
||||
<glyph unicode="3" glyph-name="three" horiz-adv-x="1160" d="M620 1449Q711 1449 788 1423T920 1349T1007 1233T1038 1082Q1038 1014 1021 961T971 867T892 798T789 753Q929 716 999 629T1070 411Q1070 312 1033 233T930 99T779 14T593 -16Q479 -16 398 12T261
|
||||
91T169 209T108 358L184 390Q205 399 226 399Q246 399 261 391T285 364Q287 360 289 356T293 346Q307 317 327 281T381 212T465 158T591 136Q666 136 722 160T816 224T873 311T892 406Q892 464 877 512T821 595T709 650T525 670V799Q616 800 680 819T786 871T845
|
||||
950T864 1052Q864 1114 845 1160T791 1236T711 1281T610 1296Q556 1296 510 1280T429 1236T369 1168T333 1082Q325 1053 309 1040T268 1027Q263 1027 258 1027T245 1029L152 1045Q166 1143 206 1218T307 1345T448 1422T620 1449Z" />
|
||||
<glyph unicode="4" glyph-name="four" horiz-adv-x="1160" d="M903 517H1120V415Q1120 399 1111 388T1081 377H903V0H746V377H111Q91 377 77 388T58 417L40 508L737 1433H903V517ZM746 1108Q746 1134 747 1164T754 1226L233 517H746V1108Z" />
|
||||
<glyph unicode="5" glyph-name="five" horiz-adv-x="1160" d="M978 1355Q978 1317 954 1293T873 1268H423L357 892Q469 916 564 916Q676 916 761 883T905 792T992 655T1022 483Q1022 369 982 277T873 120T709 19T506 -16Q443 -16 385 -4T277 30T184 78T108 135L162
|
||||
211Q180 237 210 237Q229 237 254 222T316 187T400 153T516 137Q591 137 651 161T753 229T819 336T842 475Q842 542 823 596T764 688T665 747T527 768Q473 768 415 759T295 730L183 763L299 1433H978V1355Z" />
|
||||
<glyph unicode="6" glyph-name="six" horiz-adv-x="1160" d="M650 878Q736 878 813 850T948 767T1040 633T1074 451Q1074 352 1038 267T938 119T782 20T582 -16Q474 -16 387 18T237 116T142 270T108 473Q108 567 150 673T283 901L646 1390Q660 1408 685 1420T742
|
||||
1433H900L403 804Q454 839 516 858T650 878ZM280 442Q280 373 300 316T358 218T452 155T579 132Q651 132 709 155T808 219T872 316T895 438Q895 508 873 564T811 660T715 721T592 742Q520 742 462 718T364 652T302 556T280 442Z" />
|
||||
<glyph unicode="7" glyph-name="seven" horiz-adv-x="1160" d="M1084 1433V1353Q1084 1319 1077 1297T1061 1260L468 63Q455 37 432 19T370 0H243L845 1182Q858 1207 871 1228T902 1268H154Q137 1268 124 1281T110 1312V1433H1084Z" />
|
||||
<glyph unicode="8" glyph-name="eight" horiz-adv-x="1160" d="M579 -16Q472 -16 383 12T230 94T131 222T96 392Q96 530 168 619T374 747Q261 789 204 872T146 1072Q146 1151 177 1220T265 1340T401 1420T579 1449Q676 1449 756 1420T893 1340T981 1220T1012 1072Q1012
|
||||
956 954 873T784 747Q918 709 990 620T1062 392Q1062 298 1027 223T928 94T775 13T579 -16ZM579 126Q649 126 704 145T798 200T857 285T878 395Q878 469 854 521T788 607T692 655T579 671Q520 671 466 656T371 607T305 522T280 395Q280 335 300 286T359 201T453
|
||||
146T579 126ZM579 814Q649 814 698 835T779 892T824 974T838 1069Q838 1119 822 1163T773 1240T692 1292T579 1311Q515 1311 467 1292T386 1240T337 1163T320 1069Q320 1020 334 974T379 893T459 836T579 814Z" />
|
||||
<glyph unicode="9" glyph-name="nine" horiz-adv-x="1160" d="M549 588Q468 588 396 615T268 694T181 823T148 999Q148 1093 183 1175T281 1318T431 1414T622 1449Q725 1449 809 1415T953 1320T1045 1174T1078 986Q1078 924 1067 869T1033 760T981 655T911 546L562
|
||||
42Q549 23 525 12T470 0H306L742 571Q764 600 783 626T819 678Q764 634 695 611T549 588ZM907 1007Q907 1074 886 1128T826 1221T736 1279T620 1300Q554 1300 500 1279T407 1219T347 1128T326 1012Q326 944 345 891T401 800T490 744T608 725Q680 725 735 748T829
|
||||
811T887 901T907 1007Z" />
|
||||
<glyph unicode=":" glyph-name="colon" horiz-adv-x="504" d="M128 110Q128 136 137 159T163 199T203 226T252 236Q278 236 301 226T341 199T367 159T377 110Q377 83 368 61T341 21T301 -5T252 -15Q226 -15 203 -6T164 21T138 60T128 110ZM128 860Q128 886 137
|
||||
909T163 949T203 976T252 986Q278 986 301 976T341 949T367 909T377 860Q377 833 368 811T341 771T301 745T252 735Q226 735 203 744T164 771T138 810T128 860Z" />
|
||||
<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="504" d="M134 123Q134 146 142 166T166 202T204 227T252 236Q282 236 305 225T344 195T368 150T376 94Q376 49 363 1T326 -95T267 -188T186 -271L156 -242Q143 -230 143 -214Q143 -201 157 -187Q167 -176
|
||||
182 -158T214 -115T243 -62T263 0H250Q224 0 203 9T167 34T143 73T134 123ZM128 860Q128 886 137 909T163 949T203 976T252 986Q278 986 301 976T341 949T367 909T377 860Q377 833 368 811T341 771T301 745T252 735Q226 735 203 744T164 771T138 810T128 860Z"
|
||||
/>
|
||||
<glyph unicode="<" glyph-name="less" horiz-adv-x="1160" d="M148 710L922 1111V984Q922 967 914 955T886 932L437 704Q417 693 395 686T347 672Q372 667 394 659T437 641L886 414Q906 404 914 391T922 362V234L148 636V710Z" />
|
||||
<glyph unicode="=" glyph-name="equal" horiz-adv-x="1160" d="M150 574H1009V439H150V574ZM150 909H1009V774H150V909Z" />
|
||||
<glyph unicode=">" glyph-name="greater" horiz-adv-x="1160" d="M238 234V362Q238 378 246 391T274 414L723 641Q743 651 764 659T811 672Q786 678 765 685T723 704L274 932Q254 942 246 954T238 984V1111L1011 710V636L238 234Z" />
|
||||
<glyph unicode="?" glyph-name="question" horiz-adv-x="796" d="M34 1305Q65 1334 102 1360T184 1406T280 1437T392 1449Q471 1449 538 1426T655 1361T732 1259T760 1124Q760 1048 738 993T681 897T605 825T529 767T468 713T438 653L420 500H298L286 666V677Q286
|
||||
719 308 751T365 812T439 869T513 932T570 1011T593 1115Q593 1158 576 1193T530 1252T462 1290T377 1303Q316 1303 273 1288T199 1255T151 1222T120 1207Q95 1207 81 1230L34 1305ZM230 110Q230 136 239 159T265 199T305 226T354 236Q380 236 403 226T443 199T469
|
||||
159T479 110Q479 83 470 61T443 21T403 -5T354 -15Q328 -15 305 -6T266 21T240 60T230 110Z" />
|
||||
<glyph unicode="@" glyph-name="at" horiz-adv-x="1644" d="M1167 186Q1089 186 1040 223T978 339Q920 258 852 223T706 188Q646 188 602 208T529 265T485 352T470 460Q470 545 502 631T599 787T758 901T979 945Q1046 945 1096 935T1192 904L1099 543Q1080 468
|
||||
1080 419Q1080 383 1089 360T1113 323T1149 304T1193 299Q1242 299 1286 327T1363 406T1416 528T1436 687Q1436 825 1392 929T1270 1102T1087 1206T859 1241Q725 1241 608 1190T404 1049T267 836T217 568Q217 398 270 270T416 54T633 -77T901 -121Q1053 -121 1169
|
||||
-88T1371 -4Q1386 5 1398 5Q1419 5 1429 -19L1454 -85Q1347 -157 1211 -198T901 -239Q728 -239 579 -184T321 -26T149 228T86 568Q86 677 113 778T191 966T311 1126T467 1250T652 1330T859 1359Q951 1359 1039 1339T1205 1280T1350 1184T1463 1052T1537 886T1564
|
||||
687Q1564 579 1534 488T1450 329T1324 224T1167 186ZM741 306Q772 306 803 316T864 351T918 419T960 527L1036 822Q997 831 951 831Q876 831 814 800T706 717T636 600T610 465Q610 393 643 350T741 306Z" />
|
||||
<glyph unicode="A" glyph-name="A" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532Z" />
|
||||
<glyph unicode="B" glyph-name="B" horiz-adv-x="1294" d="M174 0V1433H631Q763 1433 858 1407T1015 1333T1106 1216T1136 1059Q1136 1006 1120 957T1070 866T986 791T867 737Q1024 706 1104 624T1184 408Q1184 317 1151 242T1053 113T895 30T681 0H174ZM368 653V154H678Q761
|
||||
154 820 173T918 226T975 308T993 413Q993 524 915 588T677 653H368ZM368 791H624Q706 791 766 809T865 859T924 936T943 1036Q943 1162 867 1221T631 1280H368V791Z" />
|
||||
<glyph unicode="C" glyph-name="C" horiz-adv-x="1370" d="M1184 296Q1200 296 1213 283L1289 200Q1201 98 1076 41T773 -16Q618 -16 492 37T277 187T139 419T90 716Q90 878 142 1013T290 1245T517 1395T810 1449Q968 1449 1082 1400T1286 1267L1223 1178Q1216
|
||||
1168 1207 1162T1181 1155Q1168 1155 1154 1164T1119 1188T1072 1218T1008 1248T922 1271T809 1281Q694 1281 599 1242T434 1129T327 951T288 716Q288 582 326 477T431 300T589 189T785 151Q849 151 900 158T994 182T1075 222T1151 281Q1168 296 1184 296Z" />
|
||||
<glyph unicode="D" glyph-name="D" horiz-adv-x="1506" d="M1416 716Q1416 555 1365 423T1221 197T998 52T710 0H174V1433H710Q868 1433 998 1382T1221 1236T1365 1009T1416 716ZM1217 716Q1217 848 1181 952T1079 1128T919 1238T710 1276H369V157H710Q825 157
|
||||
919 195T1079 304T1181 480T1217 716Z" />
|
||||
<glyph unicode="E" glyph-name="E" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057Z" />
|
||||
<glyph unicode="F" glyph-name="F" horiz-adv-x="1132" d="M1057 1433V1275H369V774H957V616H369V0H174V1433H1057Z" />
|
||||
<glyph unicode="G" glyph-name="G" horiz-adv-x="1468" d="M813 141Q871 141 919 146T1011 163T1092 189T1168 225V541H946Q927 541 916 552T904 579V689H1344V139Q1290 100 1232 71T1107 23T964 -6T799 -16Q643 -16 513 37T289 187T143 419T90 716Q90 880 141
|
||||
1015T288 1246T519 1396T823 1449Q908 1449 981 1437T1116 1401T1232 1344T1331 1268L1276 1180Q1259 1153 1232 1153Q1216 1153 1197 1164Q1172 1178 1141 1198T1066 1236T961 1268T817 1281Q696 1281 598 1242T431 1129T325 951T288 716Q288 580 326 474T435
|
||||
293T601 180T813 141Z" />
|
||||
<glyph unicode="H" glyph-name="H" horiz-adv-x="1512" d="M1336 0H1141V652H369V0H174V1433H369V794H1141V1433H1336V0Z" />
|
||||
<glyph unicode="I" glyph-name="I" horiz-adv-x="614" d="M404 0H210V1433H404V0Z" />
|
||||
<glyph unicode="J" glyph-name="J" horiz-adv-x="888" d="M713 495Q713 375 684 280T597 120T455 19T262 -16Q165 -16 60 12Q62 41 65 69T71 126Q73 143 83 153T115 164Q133 164 163 155T243 146Q309 146 360 166T447 228T501 335T520 491V1433H713V495Z" />
|
||||
<glyph unicode="K" glyph-name="K" horiz-adv-x="1362" d="M387 805H460Q498 805 520 814T563 847L1040 1387Q1062 1412 1082 1422T1135 1433H1300L754 816Q733 793 715 777T675 751Q703 742 724 724T768 679L1338 0H1170Q1151 0 1138 3T1116 11T1098 24T1082
|
||||
41L587 610Q576 622 567 630T545 645T516 653T475 656H387V0H194V1433H387V805Z" />
|
||||
<glyph unicode="L" glyph-name="L" horiz-adv-x="1028" d="M368 163H988V0H174V1433H368V163Z" />
|
||||
<glyph unicode="M" glyph-name="M" horiz-adv-x="1840" d="M879 518Q893 494 903 468T924 414Q934 442 945 467T970 519L1455 1400Q1468 1423 1482 1428T1522 1433H1665V0H1495V1053Q1495 1074 1496 1098T1499 1147L1008 251Q983 206 938 206H910Q865 206 840
|
||||
251L338 1150Q341 1124 342 1099T344 1053V0H174V1433H317Q343 1433 357 1428T384 1400L879 518V518Z" />
|
||||
<glyph unicode="N" glyph-name="N" horiz-adv-x="1512" d="M274 1433Q300 1433 312 1427T341 1400L1171 320Q1168 346 1167 370T1166 418V1433H1336V0H1238Q1215 0 1200 8T1169 35L340 1114Q342 1089 343 1065T344 1021V0H174V1433H274V1433Z" />
|
||||
<glyph unicode="O" glyph-name="O" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 716ZM1306
|
||||
716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716Z" />
|
||||
<glyph unicode="P" glyph-name="P" horiz-adv-x="1222" d="M387 536V0H194V1433H617Q753 1433 853 1402T1020 1312T1118 1172T1151 989Q1151 889 1116 806T1014 663T846 570T617 536H387ZM387 690H617Q700 690 763 712T870 773T935 868T957 989Q957 1126 873 1203T617
|
||||
1280H387V690Z" />
|
||||
<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1596" d="M1505 716Q1505 615 1485 524T1425 355T1330 212T1204 101L1572 -296H1412Q1376 -296 1348 -286T1297 -251L1045 23Q988 5 927 -5T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287
|
||||
1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270
|
||||
479T1306 716Z" />
|
||||
<glyph unicode="R" glyph-name="R" horiz-adv-x="1288" d="M387 598V0H194V1433H599Q735 1433 834 1406T997 1326T1093 1201T1124 1036Q1124 960 1100 894T1031 776T920 686T771 630Q807 609 835 569L1253 0H1081Q1028 0 1003 41L631 553Q614 577 594 587T534
|
||||
598H387ZM387 739H590Q675 739 739 759T847 817T913 907T935 1022Q935 1150 851 1215T599 1280H387V739Z" />
|
||||
<glyph unicode="S" glyph-name="S" horiz-adv-x="1060" d="M908 1209Q899 1194 889 1187T863 1179Q846 1179 824 1196T767 1233T684 1271T566 1288Q501 1288 451 1271T368 1223T317 1153T300 1065Q300 1005 329 966T407 898T517 850T643 807T769 758T879 688T957
|
||||
585T987 435Q987 341 955 259T862 115T711 19T507 -16Q368 -16 254 34T58 171L114 263Q122 274 133 281T159 289Q180 289 207 267T274 217T372 168T513 145Q582 145 636 164T727 217T785 300T805 407Q805 472 776 513T698 583T589 630T463 670T337 718T227 788T150
|
||||
895T120 1055Q120 1131 149 1202T235 1328T373 1416T563 1449Q683 1449 782 1411T955 1301L908 1209Z" />
|
||||
<glyph unicode="T" glyph-name="T" horiz-adv-x="1180" d="M1150 1433V1270H687V0H493V1270H28V1433H1150Z" />
|
||||
<glyph unicode="U" glyph-name="U" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452 269T571
|
||||
185T731 154Z" />
|
||||
<glyph unicode="V" glyph-name="V" horiz-adv-x="1360" d="M8 1433H163Q189 1433 205 1420T229 1387L634 376Q648 342 659 302T682 219Q691 262 701 302T726 376L1129 1387Q1136 1404 1153 1418T1195 1433H1351L767 0H592L8 1433Z" />
|
||||
<glyph unicode="W" glyph-name="W" horiz-adv-x="2038" d="M14 1433H175Q201 1433 218 1420T241 1387L537 391Q545 364 551 333T564 268Q571 302 578 333T594 391L931 1387Q937 1404 954 1418T997 1433H1053Q1079 1433 1095 1420T1119 1387L1454 391Q1472 339
|
||||
1486 272Q1492 305 1497 335T1510 391L1807 1387Q1812 1405 1829 1419T1872 1433H2023L1576 0H1402L1039 1093Q1028 1124 1019 1165Q1014 1145 1010 1127T1000 1093L635 0H461L14 1433Z" />
|
||||
<glyph unicode="X" glyph-name="X" horiz-adv-x="1286" d="M507 736L34 1433H227Q248 1433 258 1426T276 1406L650 832Q657 853 671 878L1024 1402Q1033 1416 1043 1424T1069 1433H1254L779 745L1270 0H1078Q1056 0 1044 11T1023 37L639 638Q632 617 621 598L247
|
||||
37Q238 23 227 12T194 0H14L507 736Z" />
|
||||
<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1258" d="M726 570V0H533V570L8 1433H178Q204 1433 219 1420T245 1388L573 831Q593 796 606 765T631 704Q642 735 655 766T688 831L1015 1388Q1024 1404 1039 1418T1080 1433H1252L726 570Z" />
|
||||
<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1248" d="M1172 1433V1361Q1172 1327 1151 1297L340 158H1158V0H86V76Q86 106 105 133L917 1275H124V1433H1172Z" />
|
||||
<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="600" d="M142 -289V1533H510V1463Q510 1441 497 1429T461 1416H292V-171H461Q483 -171 496 -183T510 -219V-289H142Z" />
|
||||
<glyph unicode="\" glyph-name="backslash" horiz-adv-x="750" d="M-20 1473H56Q89 1473 113 1456T150 1407L751 -90H676Q647 -90 619 -73T578 -21L-20 1473Z" />
|
||||
<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="600" d="M90 -219Q90 -199 103 -185T139 -171H308V1416H139Q117 1416 104 1429T90 1463V1533H458V-289H90V-219Z" />
|
||||
<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1160" d="M516 1433H631L989 787H860Q843 787 831 797T811 821L615 1173Q602 1196 593 1217T576 1260Q562 1216 539 1173L345 821Q337 807 326 797T294 787H158L516 1433Z" />
|
||||
<glyph unicode="_" glyph-name="underscore" horiz-adv-x="788" d="M788 -165V-285H0V-165H788Z" />
|
||||
<glyph unicode="`" glyph-name="grave" horiz-adv-x="614" d="M207 1449Q240 1449 256 1439T286 1405L435 1163H333Q312 1163 299 1169T272 1191L38 1449H207Z" />
|
||||
<glyph unicode="a" glyph-name="a" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450 887
|
||||
406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276 192T311
|
||||
145T363 118T428 109Z" />
|
||||
<glyph unicode="b" glyph-name="b" horiz-adv-x="1118" d="M152 0V1473H331V867Q394 940 475 984T662 1029Q750 1029 821 996T942 898T1019 736T1046 513Q1046 401 1016 305T930 138T792 27T608 -14Q510 -14 442 24T322 130L313 38Q305 0 267 0H152ZM604 887Q517
|
||||
887 452 847T331 734V244Q379 178 437 151T568 124Q710 124 786 225T862 513Q862 612 845 683T794 799T713 866T604 887Z" />
|
||||
<glyph unicode="c" glyph-name="c" horiz-adv-x="934" d="M837 833Q829 822 821 816T798 810Q783 810 766 822T721 850T656 877T561 890Q487 890 430 864T335 787T277 666T257 507Q257 415 278 344T337 224T429 150T552 124Q617 124 659 139T729 174T775 208T811
|
||||
224Q834 224 845 207L895 142Q829 61 730 24T521 -14Q426 -14 345 21T203 122T109 286T74 507Q74 620 105 716T197 881T347 990T551 1029Q657 1029 739 995T884 897L837 833Z" />
|
||||
<glyph unicode="d" glyph-name="d" horiz-adv-x="1118" d="M859 0Q821 0 811 37L795 160Q730 81 647 34T455 -14Q368 -14 297 19T176 118T99 280T72 503Q72 615 102 711T188 879T326 990T510 1031Q603 1031 669 1000T787 911V1473H965V0H859ZM514 130Q601 130
|
||||
666 170T787 283V773Q738 839 680 865T550 892Q408 892 332 791T256 503Q256 404 273 334T323 218T404 151T514 130Z" />
|
||||
<glyph unicode="e" glyph-name="e" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954 142Q921
|
||||
102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898Z" />
|
||||
<glyph unicode="f" glyph-name="f" horiz-adv-x="674" d="M186 0V861L74 874Q53 879 40 889T26 920V993H186V1091Q186 1178 210 1245T280 1359T390 1430T534 1454Q602 1454 660 1434L656 1345Q655 1325 639 1321T594 1317H563Q517 1317 480 1305T415 1266T374
|
||||
1195T359 1086V993H652V864H365V0H186Z" />
|
||||
<glyph unicode="g" glyph-name="g" horiz-adv-x="1022" d="M487 1030Q553 1030 610 1016T715 973H990V907Q990 874 948 865L833 849Q867 784 867 704Q867 630 839 570T760 466T640 400T487 377Q416 377 353 394Q321 374 305 351T288 306Q288 270 317 252T394 225T503
|
||||
215T627 209T752 193T861 157T938 88T967 -26Q967 -91 935 -152T841 -260T692 -336T493 -365Q382 -365 299 -343T160 -284T78 -199T50 -97Q50 -22 97 30T228 114Q185 134 160 167T134 257Q134 279 142 302T166 349T207 393T263 430Q188 472 146 541T103 704Q103
|
||||
778 131 838T211 941T332 1007T487 1030ZM803 -55Q803 -17 782 6T725 41T642 60T543 68T437 74T334 85Q277 58 242 19T206 -74Q206 -108 223 -137T277 -188T367 -222T496 -235Q568 -235 625 -222T721 -185T782 -128T803 -55ZM487 495Q541 495 582 510T652 552T694
|
||||
616T708 699Q708 792 652 847T487 902Q380 902 324 847T267 699Q267 654 281 617T324 552T393 510T487 495Z" />
|
||||
<glyph unicode="h" glyph-name="h" horiz-adv-x="1112" d="M146 0V1473H324V877Q389 946 468 987T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146Z" />
|
||||
<glyph unicode="i" glyph-name="i" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM384 1331Q384 1305 374 1283T346 1243T305 1215T256 1205Q230 1205 208 1215T168 1242T140 1282T130 1331Q130 1357 140 1380T167 1421T207 1449T256 1459Q282 1459 305 1449T345
|
||||
1422T373 1381T384 1331Z" />
|
||||
<glyph unicode="j" glyph-name="j" horiz-adv-x="508" d="M344 1013V-75Q344 -136 328 -188T278 -280T189 -341T58 -364Q25 -364 -2 -359T-56 -344L-48 -248Q-46 -235 -39 -232T-17 -228Q-9 -228 0 -228T22 -229Q100 -229 133 -193T166 -75V1013H344ZM384 1331Q384
|
||||
1305 374 1283T346 1243T305 1215T256 1205Q230 1205 208 1215T168 1242T140 1282T130 1331Q130 1357 140 1380T167 1421T207 1449T256 1459Q282 1459 305 1449T345 1422T373 1381T384 1331Z" />
|
||||
<glyph unicode="k" glyph-name="k" horiz-adv-x="1048" d="M331 1473V606H377Q397 606 410 611T439 634L759 977Q774 993 789 1003T829 1013H991L618 616Q604 599 591 586T560 563Q578 551 592 536T620 500L1016 0H856Q834 0 819 8T789 35L456 450Q441 471 426
|
||||
477T381 484H331V0H152V1473H331Z" />
|
||||
<glyph unicode="l" glyph-name="l" horiz-adv-x="512" d="M344 1473V0H166V1473H344Z" />
|
||||
<glyph unicode="m" glyph-name="m" horiz-adv-x="1642" d="M146 0V1013H252Q290 1013 300 976L313 872Q369 941 438 985T600 1029Q703 1029 766 972T858 818Q879 873 913 913T991 979T1082 1017T1181 1029Q1261 1029 1323 1004T1429 929T1496 809T1519 645V0H1341V645Q1341
|
||||
764 1289 825T1138 887Q1094 887 1055 872T985 826T938 751T920 645V0H742V645Q742 767 693 827T550 887Q484 887 428 852T324 755V0H146Z" />
|
||||
<glyph unicode="n" glyph-name="n" horiz-adv-x="1112" d="M146 0V1013H252Q290 1013 300 976L314 866Q380 939 461 984T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146Z" />
|
||||
<glyph unicode="o" glyph-name="o" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556 125Q706
|
||||
125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125Z" />
|
||||
<glyph unicode="p" glyph-name="p" horiz-adv-x="1104" d="M146 -343V1013H252Q290 1013 300 976L315 856Q380 935 463 983T656 1031Q743 1031 814 998T935 899T1012 736T1039 513Q1039 401 1009 305T923 138T786 27T602 -14Q508 -14 442 17T324 105V-343H146ZM597
|
||||
887Q510 887 445 847T324 734V244Q373 178 431 151T562 124Q703 124 779 225T855 513Q855 612 838 683T787 799T706 866T597 887Z" />
|
||||
<glyph unicode="q" glyph-name="q" horiz-adv-x="1118" d="M965 1013V-343H787V150Q723 76 642 31T455 -14Q368 -14 297 19T176 118T99 280T72 503Q72 615 102 711T188 879T326 990T510 1031Q608 1031 676 996T799 897L811 976Q821 1013 859 1013H965ZM514 130Q601
|
||||
130 666 170T787 283V773Q739 837 680 864T550 892Q408 892 332 791T256 503Q256 404 273 334T323 218T404 151T514 130Z" />
|
||||
<glyph unicode="r" glyph-name="r" horiz-adv-x="806" d="M146 0V1013H248Q277 1013 288 1002T303 964L315 806Q367 912 443 971T623 1031Q665 1031 699 1022T762 995L739 862Q732 837 708 837Q694 837 665 846T584 856Q491 856 429 802T324 645V0H146Z" />
|
||||
<glyph unicode="s" glyph-name="s" horiz-adv-x="868" d="M726 846Q714 824 689 824Q674 824 655 835T609 859T543 884T453 896Q408 896 372 885T311 853T272 807T258 749Q258 710 280 684T340 639T424 606T520 575T617 538T701 488T760 415T783 310Q783 240 758
|
||||
181T684 78T564 9T400 -16Q294 -16 208 18T62 107L104 175Q112 188 123 195T152 202Q170 202 190 188T238 157T307 126T409 112Q461 112 500 125T565 162T603 215T616 279Q616 321 594 348T534 395T450 429T353 460T256 496T171 548T112 624T89 735Q89 793 113
|
||||
846T183 940T296 1005T449 1029Q549 1029 628 998T766 911L726 846Z" />
|
||||
<glyph unicode="t" glyph-name="t" horiz-adv-x="746" d="M453 -16Q333 -16 269 51T204 244V864H82Q66 864 55 873T44 903V974L210 995L251 1308Q253 1323 264 1332T292 1342H382V993H672V864H382V256Q382 192 413 161T493 130Q521 130 541 137T577 154T602 170T621
|
||||
178Q635 178 646 161L698 76Q652 33 587 9T453 -16Z" />
|
||||
<glyph unicode="u" glyph-name="u" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300Z" />
|
||||
<glyph unicode="v" glyph-name="v" horiz-adv-x="1024" d="M18 1013H164Q185 1013 199 1002T219 976L476 324Q490 288 498 252T513 181Q521 216 530 252T553 324L813 976Q819 992 832 1002T866 1013H1005L592 0H431L18 1013Z" />
|
||||
<glyph unicode="w" glyph-name="w" horiz-adv-x="1532" d="M14 1013H154Q176 1013 190 1002T209 976L403 324Q411 288 418 255T430 187Q438 221 448 254T469 324L683 980Q688 995 700 1005T732 1015H809Q829 1015 842 1005T860 980L1069 324Q1080 289 1088 255T1105
|
||||
188Q1110 221 1118 257T1135 324L1333 976Q1338 992 1352 1002T1385 1013H1519L1191 0H1050Q1024 0 1014 34L790 721Q782 744 777 767T767 814Q762 791 757 767T744 720L517 34Q506 0 476 0H342L14 1013Z" />
|
||||
<glyph unicode="x" glyph-name="x" horiz-adv-x="1008" d="M383 519L42 1013H213Q235 1013 245 1006T263 986L511 606Q520 634 537 662L755 982Q765 996 775 1004T800 1013H964L623 529L978 0H807Q785 0 773 11T752 37L497 434Q490 405 476 382L240 37Q230 23
|
||||
219 12T187 0H28L383 519Z" />
|
||||
<glyph unicode="y" glyph-name="y" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443 -299Z" />
|
||||
<glyph unicode="z" glyph-name="z" horiz-adv-x="924" d="M853 937Q853 918 846 901T828 869L280 139H833V0H70V74Q70 87 76 104T95 138L646 873H101V1013H853V937Z" />
|
||||
<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="600" d="M181 425Q181 488 146 528T44 569V676Q111 676 146 716T181 820Q181 870 173 919T156 1017T138 1116T130 1218Q130 1287 150 1345T212 1445T315 1510T459 1533H512V1454Q512 1434 498 1425T472
|
||||
1416H452Q375 1416 331 1366T286 1229Q286 1173 293 1121T309 1020T325 921T332 822Q332 784 321 752T290 694T242 650T181 622Q214 613 241 595T289 550T321 492T332 423Q332 373 325 324T309 226T293 124T286 16Q286 -71 330 -121T452 -171H472Q484 -171 498
|
||||
-180T512 -209V-289H459Q377 -289 316 -266T213 -200T151 -100T130 27Q130 79 138 128T155 227T173 326T181 425Z" />
|
||||
<glyph unicode="|" glyph-name="bar" horiz-adv-x="600" d="M230 1533H368V-343H230V1533Z" />
|
||||
<glyph unicode="}" glyph-name="braceright" horiz-adv-x="600" d="M419 425Q419 375 427 326T444 228T462 129T470 27Q470 -42 449 -100T387 -200T285 -265T141 -289H88V-209Q88 -189 102 -180T128 -171H148Q225 -171 269 -121T314 16Q314 72 307 124T291 225T275
|
||||
324T268 423Q268 460 279 492T310 550T358 594T419 622Q386 631 359 649T311 693T279 751T268 822Q268 872 275 921T291 1019T307 1121T314 1229Q314 1315 270 1365T148 1416H128Q116 1416 102 1425T88 1454V1533H141Q223 1533 284 1510T387 1445T449 1345T470
|
||||
1218Q470 1166 462 1116T445 1017T427 919T419 820Q419 756 454 716T556 676V569Q489 569 454 529T419 425Z" />
|
||||
<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1160" d="M759 613Q824 613 860 655T898 768H1042Q1042 701 1024 645T971 549T885 487T770 465Q718 465 667 481T569 516T478 552T399 569Q334 569 298 527T260 414H116Q116 481 134 537T187 633T272
|
||||
695T388 718Q440 718 491 702T589 666T680 630T759 613Z" />
|
||||
<glyph unicode=" " glyph-name="uni00A0" horiz-adv-x="386" />
|
||||
<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="686" d="M262 -343V198Q262 243 263 285T268 371T275 461T286 559H407Q413 507 417 461T425 372T429 286T431 198V-343H262ZM218 904Q218 931 227 953T254 993T293 1019T343 1029Q369 1029 391 1020T431
|
||||
993T458 954T468 904Q468 878 458 855T431 815T392 788T343 778Q316 778 294 788T254 815T228 855T218 904Z" />
|
||||
<glyph unicode="¢" glyph-name="cent" horiz-adv-x="1160" d="M561 -11Q469 -1 392 38T258 144T170 301T138 506Q138 617 171 710T267 873T422 982T633 1026L645 1205Q647 1225 660 1239T695 1254H761L745 1021Q827 1009 893 978T1013 897L967 835Q959 824
|
||||
952 819T930 813Q918 813 902 821T863 842T809 866T735 885L683 123Q746 127 788 142T860 175T909 206T944 220Q955 220 964 216T978 204L1026 141Q966 69 874 32T674 -12L662 -187Q660 -206 647 -220T612 -235H546L561 -11ZM315 506Q315 344 382 248T571 129L623
|
||||
889Q547 883 490 855T393 777T335 659T315 506Z" />
|
||||
<glyph unicode="£" glyph-name="sterling" horiz-adv-x="1160" d="M52 672Q52 698 68 716T113 734H247V995Q247 1089 274 1171T356 1315T493 1412T685 1448Q763 1448 823 1429T931 1375T1012 1296T1071 1199L999 1153Q989 1147 979 1145T958 1142Q944 1142
|
||||
932 1147T908 1167Q888 1192 868 1215T822 1256T763 1284T685 1295Q622 1295 574 1274T494 1214T446 1120T430 997V734H871V662Q871 644 856 629T819 614H430V371Q430 296 402 242T323 142Q352 147 380 150T439 154H1115V78Q1115 64 1110 51T1094 26T1070 7T1038
|
||||
0H74V115Q108 125 139 142T194 184T232 244T247 325V614H52V672Z" />
|
||||
<glyph unicode="¤" glyph-name="currency" horiz-adv-x="1160" d="M223 672Q223 729 239 779T285 874L132 1027L223 1117L374 965Q418 996 470 1013T580 1030Q637 1030 688 1014T782 967L935 1120L1024 1029L873 877Q904 833 921 782T938 672Q938 615 922
|
||||
564T876 470L1028 319L937 227L785 379Q741 349 689 332T580 315Q523 315 473 331T378 377L225 224L136 315L287 467Q257 511 240 562T223 672ZM355 672Q355 626 372 586T421 515T492 466T580 448Q627 448 668 466T740 514T789 585T807 672Q807 719 789 760T741
|
||||
832T669 880T580 898Q533 898 493 881T421 832T373 760T355 672Z" />
|
||||
<glyph unicode="¥" glyph-name="yen" horiz-adv-x="1160" d="M146 625H452L44 1433H193Q219 1433 234 1421T260 1388L536 822Q550 787 560 758T577 700Q584 729 593 758T616 822L891 1388Q899 1405 915 1419T957 1433H1107L698 625H1005V523H665V418H1005V315H665V0H486V315H146V418H486V523H146V625Z"
|
||||
/>
|
||||
<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="600" d="M230 1533H368V739H230V1533ZM230 452H368V-343H230V452Z" />
|
||||
<glyph unicode="§" glyph-name="section" horiz-adv-x="1006" d="M817 1265Q805 1243 780 1243Q765 1243 746 1254T700 1278T634 1303T544 1315Q496 1315 458 1303T393 1269T352 1220T338 1161Q338 1123 362 1095T426 1043T517 998T620 953T724 903T814 840T878
|
||||
758T903 651Q903 570 864 507T741 405Q790 368 821 319T852 201Q852 131 827 72T754 -31T634 -100T470 -125Q364 -125 278 -91T132 -2L173 66Q181 79 192 86T221 93Q239 93 259 79T308 48T379 16T485 2Q535 2 574 14T641 49T682 103T696 172Q696 217 671 250T605
|
||||
308T512 355T405 398T298 445T205 506T139 587T114 698Q114 776 157 838T293 936Q243 974 212 1026T180 1154Q180 1212 204 1265T274 1359T387 1423T540 1447Q640 1447 719 1416T857 1330L817 1265ZM272 726Q272 675 307 640T396 576T517 521T645 463Q699 489 723
|
||||
526T747 611Q747 647 732 675T691 726T630 768T556 804T474 839T392 877Q326 847 299 811T272 726Z" />
|
||||
<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="614" d="M239 1289Q239 1266 230 1246T205 1211T169 1187T125 1178Q103 1178 83 1187T48 1211T23 1246T14 1289Q14 1312 23 1333T47 1369T83 1394T125 1403Q148 1403 168 1394T205 1370T230 1333T239
|
||||
1289ZM598 1289Q598 1266 589 1246T565 1211T529 1187T485 1178Q462 1178 442 1187T406 1211T382 1246T373 1289Q373 1312 382 1333T406 1369T441 1394T485 1403Q508 1403 528 1394T564 1370T589 1333T598 1289Z" />
|
||||
<glyph unicode="©" glyph-name="copyright" horiz-adv-x="1596" d="M1030 463Q1038 468 1043 471T1055 475Q1066 475 1070 472T1080 463L1141 399Q1084 333 1001 297T802 260Q704 260 624 294T486 389T397 534T365 718Q365 819 399 903T495 1048T639 1142T821
|
||||
1176Q929 1176 1005 1142T1138 1053L1092 988Q1087 982 1079 976T1059 970Q1045 970 1030 981T989 1005T926 1030T829 1042Q759 1042 703 1020T607 955T546 853T524 718Q524 641 545 581T605 479T696 417T811 395Q859 395 892 401T949 417T991 439T1030 463ZM68
|
||||
716Q68 817 94 910T167 1085T282 1233T430 1348T604 1422T798 1448Q899 1448 992 1422T1167 1348T1315 1234T1429 1086T1503 911T1529 716Q1529 616 1503 523T1430 348T1315 201T1167 86T993 12T798 -14Q697 -14 604 12T430 86T282 200T168 348T94 522T68 716ZM168
|
||||
716Q168 627 190 545T253 392T351 262T478 163T629 99T798 76Q930 76 1045 126T1246 262T1381 465T1431 716Q1431 805 1409 888T1345 1042T1247 1173T1119 1273T968 1338T798 1361Q666 1361 551 1311T351 1173T217 968T168 716Z" />
|
||||
<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="684" d="M596 840H536Q518 840 509 845T492 869L480 918Q456 897 433 881T385 854T332 837T270 831Q232 831 200 841T143 871T106 922T92 993Q92 1027 111 1060T174 1120T290 1164T470 1184V1221Q470
|
||||
1284 441 1314T355 1344Q317 1344 292 1335T249 1316T216 1297T185 1288Q171 1288 161 1295T146 1313L124 1355Q176 1404 236 1427T370 1450Q424 1450 466 1433T537 1386T581 1314T596 1221V840ZM309 923Q360 923 397 942T470 996V1101Q400 1099 352 1091T273 1069T230
|
||||
1038T217 999Q217 957 243 940T309 923Z" />
|
||||
<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="926" d="M138 518V541L387 930L445 902Q459 895 466 884T473 860Q473 843 463 827L304 566Q290 542 276 529Q291 515 304 493L463 232Q468 224 470 215T473 198Q473 170 445 157L387 129L138
|
||||
518ZM434 518V541L683 930L741 902Q755 895 762 884T769 860Q769 843 759 827L600 566Q586 542 572 529Q587 515 600 493L759 232Q764 224 766 215T769 198Q769 170 741 157L683 129L434 518Z" />
|
||||
<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="1160" d="M148 739H1008V315H857V604H148V739Z" />
|
||||
<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="694" d="M100 675H594V524H100V675Z" />
|
||||
<glyph unicode="®" glyph-name="registered" horiz-adv-x="1596" d="M68 716Q68 817 94 910T167 1085T282 1233T430 1348T604 1422T798 1448Q899 1448 992 1422T1167 1348T1315 1234T1429 1086T1503 911T1529 716Q1529 616 1503 523T1430 348T1315 201T1167
|
||||
86T993 12T798 -14Q697 -14 604 12T430 86T282 200T168 348T94 522T68 716ZM168 716Q168 627 190 545T253 392T351 262T478 163T629 99T798 76Q930 76 1045 126T1246 262T1381 465T1431 716Q1431 805 1409 888T1345 1042T1247 1173T1119 1273T968 1338T798 1361Q666
|
||||
1361 551 1311T351 1173T217 968T168 716ZM654 626V272H498V1164H786Q958 1164 1041 1102T1124 917Q1124 823 1071 757T911 666Q928 656 940 641T964 606L1192 272H1044Q1011 272 995 297L794 599Q785 612 773 619T734 626H654ZM654 740H770Q825 740 863 750T925
|
||||
781T959 830T970 897Q970 934 961 962T930 1008T873 1035T786 1044H654V740Z" />
|
||||
<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="614" d="M20 1348H594V1231H20V1348Z" />
|
||||
<glyph unicode="°" glyph-name="degree" horiz-adv-x="794" d="M70 1128Q70 1195 95 1254T164 1356T267 1425T396 1450Q465 1450 524 1425T628 1357T697 1254T722 1128Q722 1062 697 1004T628 902T525 833T396 807Q327 807 268 832T164 901T95 1003T70 1128ZM197
|
||||
1127Q197 1085 212 1049T254 985T317 943T396 927Q438 927 474 942T537 985T579 1048T594 1127Q594 1169 579 1206T537 1270T474 1313T396 1329Q354 1329 318 1314T254 1271T212 1206T197 1127Z" />
|
||||
<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="1160" d="M651 1202V826H1058V690H651V322H505V690H100V826H505V1202H651ZM100 215H1058V80H100V215Z" />
|
||||
<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="664" d="M346 1637Q398 1637 440 1622T513 1580T559 1515T576 1429Q576 1389 564 1355T530 1289T482 1229T425 1170L263 1005Q286 1011 309 1015T354 1019H549Q570 1019 581 1008T593 977V900H82V943Q82
|
||||
956 87 970T104 996L325 1215Q350 1240 372 1266T410 1318T435 1371T445 1425Q445 1476 415 1503T340 1531Q294 1531 266 1507T223 1441Q215 1427 206 1419T179 1411Q175 1411 171 1411T161 1413L90 1425Q105 1531 174 1584T346 1637Z" />
|
||||
<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="664" d="M354 1637Q405 1637 446 1623T516 1583T562 1523T578 1449Q578 1321 459 1276Q525 1257 559 1218T594 1117Q594 1062 573 1020T518 950T438 907T344 892Q287 892 245 904T173 941T121
|
||||
1002T84 1085L139 1109Q154 1115 168 1115Q197 1115 208 1092Q214 1079 223 1063T247 1033T283 1010T337 1000Q368 1000 391 1010T431 1035T455 1071T463 1112Q463 1142 455 1163T427 1199T375 1220T295 1227V1314Q382 1315 417 1345T453 1427Q453 1477 424 1503T347
|
||||
1529Q299 1529 271 1506T230 1442Q222 1426 214 1419T190 1411Q186 1411 182 1411T172 1413L105 1425Q112 1478 134 1517T188 1583T263 1623T354 1637Z" />
|
||||
<glyph unicode="´" glyph-name="acute" horiz-adv-x="614" d="M597 1449L364 1191Q350 1176 337 1170T302 1163H196L344 1405Q358 1428 374 1438T423 1449H597Z" />
|
||||
<glyph unicode="µ" glyph-name="mu" horiz-adv-x="1112" d="M300 1013V355Q300 246 354 186T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q730 74 660 40T502 6Q428 6 372 31T277 103Q284 61 287 18T290 -64V-343H201Q163 -343
|
||||
143 -323T122 -267V1013H300Z" />
|
||||
<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="1338" d="M1302 1433V1280H1083V-201H926V1280H649V-201H492V660Q388 660 305 690T164 773T74 897T42 1049Q42 1135 73 1205T163 1326T305 1405T492 1433H1302Z" />
|
||||
<glyph unicode="·" glyph-name="middot" horiz-adv-x="546" d="M124 593Q124 624 135 652T167 700T215 732T272 744Q303 744 331 732T379 700T411 652T423 593Q423 563 411 536T379 489T331 457T272 445Q242 445 215 456T168 488T136 536T124 593Z" />
|
||||
<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="614" d="M172 -247Q178 -247 186 -250T205 -258T232 -266T269 -270Q311 -270 332 -254T354 -211Q354 -192 343 -179T312 -157T261 -142T193 -131L236 10H348L324 -70Q414 -90 454 -124T495 -213Q495
|
||||
-245 479 -270T435 -314T366 -341T278 -351Q237 -351 200 -343T132 -320L149 -265Q155 -247 172 -247Z" />
|
||||
<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="664" d="M173 985H320V1425L324 1468L217 1380Q205 1371 191 1371Q168 1371 159 1385L120 1441L342 1631H450V985H580V900H173V985Z" />
|
||||
<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="762" d="M382 1449Q452 1449 508 1428T605 1366T667 1269T689 1140Q689 1068 667 1010T605 912T509 850T382 828Q311 828 254 849T157 911T94 1010T72 1140Q72 1211 94 1268T156 1366T254 1427T382
|
||||
1449ZM382 934Q466 934 507 986T549 1139Q549 1239 508 1291T382 1343Q295 1343 254 1291T212 1139Q212 1039 253 987T382 934Z" />
|
||||
<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="926" d="M236 129L178 157Q150 170 150 198Q150 215 160 232L319 493Q332 517 346 529Q334 540 319 566L160 827Q150 844 150 861Q150 889 178 902L236 930L485 541V518L236 129ZM781 541V518L532
|
||||
129L474 157Q446 170 446 198Q446 215 456 232L615 493Q628 517 642 529Q630 540 615 566L456 827Q446 844 446 861Q446 889 474 902L532 930L781 541Z" />
|
||||
<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="1424" d="M1295 267H1404V202Q1404 191 1397 184T1377 176H1295V0H1186V176H880Q862 176 852 184T839 204L829 261L1171 729H1295V267ZM155 788H302V1228L306 1271L199 1183Q187 1174 173 1174Q150
|
||||
1174 141 1188L102 1244L324 1434H432V788H562V703H155V788ZM1186 508Q1186 527 1187 549T1191 594L950 267H1186V508ZM434 53Q415 22 393 11T342 0H266L1084 1372Q1102 1401 1125 1417T1180 1433H1257L434 53Z" />
|
||||
<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="1424" d="M1126 737Q1178 737 1220 722T1293 680T1339 615T1356 529Q1356 489 1344 455T1310 389T1262 329T1205 270L1043 105Q1066 111 1089 115T1134 119H1329Q1350 119 1361 108T1373 77V0H862V43Q862
|
||||
56 867 70T884 96L1105 315Q1130 340 1152 366T1190 418T1215 471T1225 525Q1225 576 1195 603T1120 631Q1074 631 1046 607T1003 541Q995 527 986 519T959 511Q955 511 951 511T941 513L870 525Q885 631 954 684T1126 737ZM155 788H302V1228L306 1271L199 1183Q187
|
||||
1174 173 1174Q150 1174 141 1188L102 1244L324 1434H432V788H562V703H155V788ZM390 53Q371 22 349 11T298 0H222L1040 1372Q1058 1401 1081 1417T1136 1433H1213L390 53Z" />
|
||||
<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="1426" d="M1296 267H1405V202Q1405 191 1398 184T1378 176H1296V0H1187V176H881Q863 176 853 184T840 204L830 261L1172 729H1296V267ZM338 1440Q389 1440 430 1426T500 1386T546 1326T562 1252Q562
|
||||
1124 443 1079Q509 1060 543 1021T578 920Q578 865 557 823T502 753T422 710T328 695Q271 695 229 707T157 744T105 805T68 888L123 912Q138 918 152 918Q181 918 192 895Q198 882 207 866T231 836T267 813T321 803Q352 803 375 813T415 838T439 874T447 915Q447
|
||||
945 439 966T411 1002T359 1023T279 1030V1117Q366 1118 401 1148T437 1230Q437 1280 408 1306T331 1332Q283 1332 255 1309T214 1245Q206 1229 198 1222T174 1214Q170 1214 166 1214T156 1216L89 1228Q96 1281 118 1320T172 1386T247 1426T338 1440ZM1187 508Q1187
|
||||
527 1188 549T1192 594L951 267H1187V508ZM439 53Q420 22 398 11T347 0H271L1089 1372Q1107 1401 1130 1417T1185 1433H1262L439 53Z" />
|
||||
<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="796" d="M770 -212Q739 -241 702 -267T620 -313T524 -344T412 -356Q333 -356 266 -334T149 -271T72 -171T44 -37Q44 39 66 92T123 183T199 248T275 299T336 347T366 405L384 559H506L518 392V380Q518
|
||||
336 496 305T439 249T365 201T291 147T234 77T211 -22Q211 -66 228 -100T274 -159T342 -197T427 -210Q488 -210 531 -195T605 -162T654 -129T685 -114Q699 -114 707 -120T723 -137L770 -212ZM324 903Q324 929 333 952T359 992T399 1019T448 1029Q474 1029 497 1019T537
|
||||
992T563 952T573 903Q573 876 564 854T537 814T497 788T448 778Q422 778 399 787T360 814T334 853T324 903Z" />
|
||||
<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM520
|
||||
1782Q552 1782 568 1776T604 1749L815 1546H676Q655 1546 643 1549T614 1565L319 1782H520Z" />
|
||||
<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM1021
|
||||
1782L727 1566Q710 1554 697 1550T663 1546H525L736 1749Q746 1759 754 1765T772 1775T792 1780T820 1782H1021Z" />
|
||||
<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414
|
||||
532ZM1006 1546H871Q859 1546 845 1549T822 1559L692 1654Q684 1658 680 1662Q672 1656 668 1654L538 1559Q529 1553 515 1550T489 1546H354L592 1756H768L1006 1546Z" />
|
||||
<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM801
|
||||
1663Q836 1663 854 1683T874 1741H972Q972 1698 961 1662T929 1600T877 1559T806 1544Q771 1544 739 1557T678 1585T622 1614T572 1627Q538 1627 520 1606T500 1548H400Q400 1591 411 1627T444 1690T497 1731T568 1746Q603 1746 635 1733T696 1705T751 1676T801
|
||||
1663Z" />
|
||||
<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM578
|
||||
1666Q578 1644 569 1625T545 1590T510 1567T466 1558Q445 1558 426 1566T391 1590T367 1624T358 1666Q358 1689 367 1709T391 1745T425 1769T466 1778Q489 1778 509 1769T545 1745T569 1710T578 1666ZM1004 1666Q1004 1644 995 1625T971 1590T936 1567T894 1558Q871
|
||||
1558 851 1566T816 1590T793 1624T784 1666Q784 1689 792 1709T816 1745T851 1769T894 1778Q916 1778 936 1769T971 1745T995 1710T1004 1666Z" />
|
||||
<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM489
|
||||
1659Q489 1698 504 1731T545 1787T605 1824T677 1837Q716 1837 750 1824T811 1788T853 1731T868 1659Q868 1621 853 1589T812 1534T751 1498T677 1485Q639 1485 605 1498T546 1534T505 1589T489 1659ZM578 1659Q578 1616 605 1588T679 1559Q724 1559 751 1587T779
|
||||
1659Q779 1704 752 1732T679 1760Q632 1760 605 1732T578 1659Z" />
|
||||
<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="1858" d="M733 1433H1754V1275H1005L1065 799H1624V647H1084L1145 158H1754V0H982L933 392H377L198 45Q187 25 169 13T124 0H-24L733 1433ZM450 532H915L821 1285Q809 1244 795 1210T766 1144L450 532Z" />
|
||||
<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="1370" d="M643 -247Q649 -247 657 -250T676 -258T703 -266T740 -270Q782 -270 803 -254T825 -211Q825 -192 814 -179T783 -157T732 -142T664 -131L700 -13Q561 -1 448 57T256 211T133 435T90 716Q90
|
||||
878 142 1013T290 1245T517 1395T810 1449Q968 1449 1082 1400T1286 1267L1223 1178Q1216 1168 1207 1162T1181 1155Q1168 1155 1154 1164T1119 1188T1072 1218T1008 1248T922 1271T809 1281Q694 1281 599 1242T434 1129T327 951T288 716Q288 582 326 477T431 300T589
|
||||
189T785 151Q849 151 900 158T994 182T1075 222T1151 281Q1168 296 1184 296Q1200 296 1213 283L1289 200Q1206 103 1090 47T811 -15L795 -70Q885 -90 925 -124T966 -213Q966 -245 950 -270T906 -314T837 -341T749 -351Q708 -351 671 -343T603 -320L620 -265Q626
|
||||
-247 643 -247Z" />
|
||||
<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM468 1782Q500 1782 516 1776T552 1749L763 1546H624Q603 1546 591 1549T562 1565L267 1782H468Z" />
|
||||
<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM969 1782L675 1566Q658 1554 645 1550T611 1546H473L684 1749Q694 1759 702 1765T720 1775T740 1780T768 1782H969Z" />
|
||||
<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM954 1546H819Q807 1546 793 1549T770 1559L640 1654Q632 1658 628 1662Q620 1656 616 1654L486 1559Q477 1553 463 1550T437
|
||||
1546H302L540 1756H716L954 1546Z" />
|
||||
<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM526 1666Q526 1644 517 1625T493 1590T458 1567T414 1558Q393 1558 374 1566T339 1590T315 1624T306 1666Q306 1689 315
|
||||
1709T339 1745T373 1769T414 1778Q437 1778 457 1769T493 1745T517 1710T526 1666ZM952 1666Q952 1644 943 1625T919 1590T884 1567T842 1558Q819 1558 799 1566T764 1590T741 1624T732 1666Q732 1689 740 1709T764 1745T799 1769T842 1778Q864 1778 884 1769T919
|
||||
1745T943 1710T952 1666Z" />
|
||||
<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM405 1782Q437 1782 453 1776T489 1749L700 1546H561Q540 1546 528 1549T499 1565L204 1782H405Z" />
|
||||
<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM906 1782L612 1566Q595 1554 582 1550T548 1546H410L621 1749Q631 1759 639 1765T657 1775T677 1780T705 1782H906Z" />
|
||||
<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM635 1546H500Q488 1546 474 1549T451 1559L321 1654Q313 1658 309 1662Q301 1656 297 1654L167 1559Q158 1553 144 1550T118 1546H-17L221 1756H397L635 1546Z" />
|
||||
<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM206 1666Q206 1644 197 1625T173 1590T138 1567T94 1558Q73 1558 54 1566T19 1590T-5 1624T-14 1666Q-14 1689 -5 1709T19 1745T53 1769T94 1778Q117 1778 137 1769T173
|
||||
1745T197 1710T206 1666ZM632 1666Q632 1644 623 1625T599 1590T564 1567T522 1558Q499 1558 479 1566T444 1590T421 1624T412 1666Q412 1689 420 1709T444 1745T479 1769T522 1778Q544 1778 564 1769T599 1745T623 1710T632 1666Z" />
|
||||
<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="1578" d="M50 780H247V1433H782Q940 1433 1070 1382T1294 1236T1438 1009T1489 716Q1489 555 1438 423T1294 197T1071 52T782 0H247V666H50V780ZM1290 716Q1290 848 1254 952T1152 1128T992 1238T782 1276H441V780H822V666H441V157H782Q898
|
||||
157 992 195T1152 304T1254 480T1290 716Z" />
|
||||
<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="1512" d="M274 1433Q300 1433 312 1427T341 1400L1171 320Q1168 346 1167 370T1166 418V1433H1336V0H1238Q1215 0 1200 8T1169 35L340 1114Q342 1089 343 1065T344 1021V0H174V1433H274V1433ZM901 1663Q936
|
||||
1663 954 1683T974 1741H1072Q1072 1698 1061 1662T1029 1600T977 1559T906 1544Q871 1544 839 1557T778 1585T722 1614T672 1627Q638 1627 620 1606T600 1548H500Q500 1591 511 1627T544 1690T597 1731T668 1746Q703 1746 735 1733T796 1705T851 1676T901 1663Z"
|
||||
/>
|
||||
<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM640 1782Q672 1782 688 1776T724 1749L935 1546H796Q775
|
||||
1546 763 1549T734 1565L439 1782H640Z" />
|
||||
<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM1141 1782L847 1566Q830 1554 817 1550T783 1546H645L856
|
||||
1749Q866 1759 874 1765T892 1775T912 1780T940 1782H1141Z" />
|
||||
<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM1126 1546H991Q979 1546 965 1549T942 1559L812 1654Q804
|
||||
1658 800 1662Q792 1656 788 1654L658 1559Q649 1553 635 1550T609 1546H474L712 1756H888L1126 1546Z" />
|
||||
<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM921 1663Q956 1663 974 1683T994 1741H1092Q1092 1698 1081
|
||||
1662T1049 1600T997 1559T926 1544Q891 1544 859 1557T798 1585T742 1614T692 1627Q658 1627 640 1606T620 1548H520Q520 1591 531 1627T564 1690T617 1731T688 1746Q723 1746 755 1733T816 1705T871 1676T921 1663Z" />
|
||||
<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM698 1666Q698 1644 689 1625T665 1590T630 1567T586 1558Q565
|
||||
1558 546 1566T511 1590T487 1624T478 1666Q478 1689 487 1709T511 1745T545 1769T586 1778Q609 1778 629 1769T665 1745T689 1710T698 1666ZM1124 1666Q1124 1644 1115 1625T1091 1590T1056 1567T1014 1558Q991 1558 971 1566T936 1590T913 1624T904 1666Q904
|
||||
1689 912 1709T936 1745T971 1769T1014 1778Q1036 1778 1056 1769T1091 1745T1115 1710T1124 1666Z" />
|
||||
<glyph unicode="×" glyph-name="multiply" horiz-adv-x="1160" d="M1017 1014L673 670L1027 317L932 221L578 575L221 219L126 315L482 671L137 1016L232 1112L577 766L921 1110L1017 1014Z" />
|
||||
<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q690 -15 596 9T423 82L323 -54Q301 -83 272 -96T214 -109H136L327 151Q215 249 154 393T92 716Q92 877 143 1011T287 1243T510 1395T798
|
||||
1449Q913 1449 1013 1420T1196 1337L1278 1448Q1298 1475 1314 1486T1362 1498H1462L1290 1263Q1393 1165 1449 1026T1505 716ZM290 716Q290 581 327 476T434 297L1093 1196Q1033 1238 959 1259T798 1281Q683 1281 589 1242T429 1131T326 953T290 716ZM1306 716Q1306
|
||||
842 1274 942T1181 1115L526 223Q642 153 798 153Q914 153 1008 191T1168 302T1270 479T1306 716Z" />
|
||||
<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452
|
||||
269T571 185T731 154ZM570 1782Q602 1782 618 1776T654 1749L865 1546H726Q705 1546 693 1549T664 1565L369 1782H570Z" />
|
||||
<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452
|
||||
269T571 185T731 154ZM1071 1782L777 1566Q760 1554 747 1550T713 1546H575L786 1749Q796 1759 804 1765T822 1775T842 1780T870 1782H1071Z" />
|
||||
<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378
|
||||
398T452 269T571 185T731 154ZM1056 1546H921Q909 1546 895 1549T872 1559L742 1654Q734 1658 730 1662Q722 1656 718 1654L588 1559Q579 1553 565 1550T539 1546H404L642 1756H818L1056 1546Z" />
|
||||
<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378
|
||||
398T452 269T571 185T731 154ZM628 1666Q628 1644 619 1625T595 1590T560 1567T516 1558Q495 1558 476 1566T441 1590T417 1624T408 1666Q408 1689 417 1709T441 1745T475 1769T516 1778Q539 1778 559 1769T595 1745T619 1710T628 1666ZM1054 1666Q1054 1644 1045
|
||||
1625T1021 1590T986 1567T944 1558Q921 1558 901 1566T866 1590T843 1624T834 1666Q834 1689 842 1709T866 1745T901 1769T944 1778Q966 1778 986 1769T1021 1745T1045 1710T1054 1666Z" />
|
||||
<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="1258" d="M726 570V0H533V570L8 1433H178Q204 1433 219 1420T245 1388L573 831Q593 796 606 765T631 704Q642 735 655 766T688 831L1015 1388Q1024 1404 1039 1418T1080 1433H1252L726 570ZM971 1782L677
|
||||
1566Q660 1554 647 1550T613 1546H475L686 1749Q696 1759 704 1765T722 1775T742 1780T770 1782H971Z" />
|
||||
<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="1222" d="M387 272V0H194V1433H387V1169H617Q753 1169 853 1138T1020 1048T1118 908T1151 725Q1151 625 1116 542T1014 399T846 306T617 272H387ZM387 426H617Q700 426 763 448T870 509T935 604T957 725Q957
|
||||
862 873 939T617 1016H387V426Z" />
|
||||
<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="1218" d="M673 1454Q776 1454 851 1424T976 1348T1048 1246T1072 1140Q1072 1080 1051 1037T997 961T928 903T858 854T805 805T783 747Q783 708 809 682T876 634T962 588T1049 529T1115 443T1142
|
||||
314Q1142 236 1114 175T1035 72T918 7T771 -16Q674 -16 595 18T456 107L497 175Q505 188 516 195T545 202Q563 202 583 188T630 157T695 126T786 112Q830 112 865 125T924 162T962 217T975 286Q975 342 947 377T877 437T786 484T695 534T625 604T597 712Q597 765
|
||||
619 804T675 875T748 934T820 991T876 1056T899 1140Q899 1172 887 1204T846 1263T774 1305T666 1322Q598 1322 543 1301T448 1238T387 1133T365 986V0H186V992Q186 1096 220 1181T319 1327T473 1421T673 1454Z" />
|
||||
<glyph unicode="à" glyph-name="agrave" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450
|
||||
887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276
|
||||
192T311 145T363 118T428 109ZM428 1449Q461 1449 477 1439T507 1405L656 1163H554Q533 1163 520 1169T493 1191L259 1449H428Z" />
|
||||
<glyph unicode="á" glyph-name="aacute" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450
|
||||
887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276
|
||||
192T311 145T363 118T428 109ZM818 1449L585 1191Q571 1176 558 1170T523 1163H417L565 1405Q579 1428 595 1438T644 1449H818Z" />
|
||||
<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515
|
||||
887Q450 887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263
|
||||
221 276 192T311 145T363 118T428 109ZM833 1169H714Q693 1169 674 1183L546 1309L529 1326L513 1309L384 1183Q378 1178 367 1174T344 1169H221L444 1433H610L833 1169Z" />
|
||||
<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450
|
||||
887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276
|
||||
192T311 145T363 118T428 109ZM638 1325Q674 1325 693 1346T714 1411H822Q822 1364 810 1325T774 1257T718 1214T645 1198Q610 1198 580 1212T522 1244T471 1275T424 1290Q352 1290 350 1202H239Q239 1250 252 1289T289 1357T346 1401T418 1417Q453 1417 483 1403T541
|
||||
1371T591 1340T638 1325Z" />
|
||||
<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515
|
||||
887Q450 887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263
|
||||
221 276 192T311 145T363 118T428 109ZM460 1289Q460 1266 451 1246T426 1211T390 1187T346 1178Q324 1178 304 1187T269 1211T244 1246T235 1289Q235 1312 244 1333T268 1369T304 1394T346 1403Q369 1403 389 1394T426 1370T451 1333T460 1289ZM819 1289Q819 1266
|
||||
810 1246T786 1211T750 1187T706 1178Q683 1178 663 1187T627 1211T603 1246T594 1289Q594 1312 603 1333T627 1369T662 1394T706 1403Q729 1403 749 1394T785 1370T810 1333T819 1289Z" />
|
||||
<glyph unicode="å" glyph-name="aring" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450
|
||||
887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276
|
||||
192T311 145T363 118T428 109ZM328 1315Q328 1357 344 1391T387 1450T451 1488T527 1502Q568 1502 604 1489T669 1450T713 1391T729 1315Q729 1274 713 1240T669 1182T605 1145T527 1131Q487 1131 451 1144T388 1182T344 1240T328 1315ZM428 1315Q428 1271 455
|
||||
1243T529 1215Q574 1215 601 1243T629 1315Q629 1360 602 1388T529 1416Q482 1416 455 1388T428 1315Z" />
|
||||
<glyph unicode="æ" glyph-name="ae" horiz-adv-x="1632" d="M1166 1029Q1248 1029 1318 997T1440 904T1521 756T1551 556Q1551 515 1543 501T1510 486H883Q887 395 910 328T971 215T1062 148T1180 126Q1249 126 1295 140T1371 173T1421 205T1456 220Q1470
|
||||
220 1479 216T1494 203L1541 142Q1508 102 1465 73T1372 24T1269 -4T1164 -14Q1047 -14 952 42T801 215Q774 153 731 109T634 37T522 -3T403 -16Q334 -16 277 1T179 54T115 142T92 267Q92 327 125 385T231 489T424 564T715 598V648Q715 766 665 829T515 892Q450
|
||||
892 406 875T329 836T273 798T226 780Q208 780 195 789T173 813L141 870Q225 951 315 991T519 1031Q639 1031 712 980T818 838Q872 926 958 977T1166 1029ZM715 486Q592 481 506 464T366 418T288 354T263 276Q263 189 313 149T444 109Q501 109 550 127T636 182T694
|
||||
274T715 403V486ZM1159 898Q1098 898 1050 878T968 818T913 723T885 597H1393Q1393 662 1378 717T1332 813T1259 875T1159 898Z" />
|
||||
<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="934" d="M400 -247Q406 -247 414 -250T433 -258T460 -266T497 -270Q539 -270 560 -254T582 -211Q582 -192 571 -179T540 -157T489 -142T421 -131L458 -10Q375 1 305 40T183 146T103 303T74 507Q74
|
||||
620 105 716T197 881T347 990T551 1029Q657 1029 739 995T884 897L837 833Q829 822 821 816T798 810Q783 810 766 822T721 850T656 877T561 890Q487 890 430 864T335 787T277 666T257 507Q257 415 278 344T337 224T429 150T552 124Q617 124 659 139T729 174T775
|
||||
208T811 224Q822 224 830 220T845 207L895 142Q836 70 751 33T569 -12L552 -70Q642 -90 682 -124T723 -213Q723 -245 707 -270T663 -314T594 -341T506 -351Q465 -351 428 -343T360 -320L377 -265Q383 -247 400 -247Z" />
|
||||
<glyph unicode="è" glyph-name="egrave" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954
|
||||
142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM451 1449Q484 1449 500 1439T530 1405L679 1163H577Q556
|
||||
1163 543 1169T516 1191L282 1449H451Z" />
|
||||
<glyph unicode="é" glyph-name="eacute" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954
|
||||
142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM841 1449L608 1191Q594 1176 581 1170T546 1163H440L588
|
||||
1405Q602 1428 618 1438T667 1449H841Z" />
|
||||
<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904
|
||||
207L954 142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM856 1169H737Q716 1169 697 1183L569 1309L552
|
||||
1326L536 1309L407 1183Q401 1178 390 1174T367 1169H244L467 1433H633L856 1169Z" />
|
||||
<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954
|
||||
142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM483 1289Q483 1266 474 1246T449 1211T413 1187T369
|
||||
1178Q347 1178 327 1187T292 1211T267 1246T258 1289Q258 1312 267 1333T291 1369T327 1394T369 1403Q392 1403 412 1394T449 1370T474 1333T483 1289ZM842 1289Q842 1266 833 1246T809 1211T773 1187T729 1178Q706 1178 686 1187T650 1211T626 1246T617 1289Q617
|
||||
1312 626 1333T650 1369T685 1394T729 1403Q752 1403 772 1394T808 1370T833 1333T842 1289Z" />
|
||||
<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM418 1449Q451 1449 467 1439T497 1405L646 1163H544Q523 1163 510 1169T483 1191L249 1449H418Z" />
|
||||
<glyph unicode="í" glyph-name="iacute" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM808 1449L575 1191Q561 1176 548 1170T513 1163H407L555 1405Q569 1428 585 1438T634 1449H808Z" />
|
||||
<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM822 1169H703Q682 1169 663 1183L535 1309L518 1326L502 1309L373 1183Q367 1178 356 1174T333 1169H210L433 1433H599L822 1169Z" />
|
||||
<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM450 1289Q450 1266 441 1246T416 1211T380 1187T336 1178Q314 1178 294 1187T259 1211T234 1246T225 1289Q225 1312 234 1333T258 1369T294 1394T336 1403Q359
|
||||
1403 379 1394T416 1370T441 1333T450 1289ZM809 1289Q809 1266 800 1246T776 1211T740 1187T696 1178Q673 1178 653 1187T617 1211T593 1246T584 1289Q584 1312 593 1333T617 1369T652 1394T696 1403Q719 1403 739 1394T775 1370T800 1333T809 1289Z" />
|
||||
<glyph unicode="ð" glyph-name="eth" horiz-adv-x="1106" d="M417 1065Q413 1072 411 1078T408 1091Q408 1113 431 1128L534 1200Q489 1220 439 1237T331 1268Q313 1273 301 1286T288 1323Q288 1338 293 1352L313 1414Q409 1398 499 1368T670 1290L837 1412L872
|
||||
1355Q880 1342 880 1331Q880 1310 858 1294L761 1227Q821 1178 870 1116T955 977T1009 807T1029 604Q1029 461 998 347T906 153T753 30T541 -13Q443 -13 358 20T211 114T112 265T76 466Q76 560 107 643T196 790T336 890T523 927Q623 927 711 884T865 754Q845 890
|
||||
787 985T634 1144L450 1009L417 1065ZM545 125Q616 125 673 152T771 233T835 370T861 564Q845 607 819 647T756 719T669 769T557 788Q482 788 426 763T331 695T274 592T254 464Q254 383 277 320T340 213T432 148T545 125Z" />
|
||||
<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="1112" d="M146 0V1013H252Q290 1013 300 976L314 866Q380 939 461 984T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146ZM675
|
||||
1325Q711 1325 730 1346T751 1411H859Q859 1364 847 1325T811 1257T755 1214T682 1198Q647 1198 617 1212T559 1244T508 1275T461 1290Q389 1290 387 1202H276Q276 1250 289 1289T326 1357T383 1401T455 1417Q490 1417 520 1403T578 1371T628 1340T675 1325Z" />
|
||||
<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM458 1449Q491 1449 507 1439T537 1405L686 1163H584Q563 1163 550 1169T523 1191L289 1449H458Z" />
|
||||
<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM848 1449L615 1191Q601 1176 588 1170T553 1163H447L595 1405Q609 1428 625 1438T674 1449H848Z" />
|
||||
<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM863 1169H744Q723 1169 704 1183L576 1309L559 1326L543 1309L414 1183Q408 1178 397 1174T374 1169H251L474 1433H640L863
|
||||
1169Z" />
|
||||
<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM668 1325Q704 1325 723 1346T744 1411H852Q852 1364 840 1325T804 1257T748 1214T675 1198Q640 1198 610 1212T552 1244T501
|
||||
1275T454 1290Q382 1290 380 1202H269Q269 1250 282 1289T319 1357T376 1401T448 1417Q483 1417 513 1403T571 1371T621 1340T668 1325Z" />
|
||||
<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM490 1289Q490 1266 481 1246T456 1211T420 1187T376 1178Q354 1178 334 1187T299 1211T274 1246T265 1289Q265 1312
|
||||
274 1333T298 1369T334 1394T376 1403Q399 1403 419 1394T456 1370T481 1333T490 1289ZM849 1289Q849 1266 840 1246T816 1211T780 1187T736 1178Q713 1178 693 1187T657 1211T633 1246T624 1289Q624 1312 633 1333T657 1369T692 1394T736 1403Q759 1403 779 1394T815
|
||||
1370T840 1333T849 1289Z" />
|
||||
<glyph unicode="÷" glyph-name="divide" horiz-adv-x="1160" d="M100 739H1058V604H100V739ZM454 1026Q454 1052 463 1075T489 1115T528 1142T578 1152Q604 1152 626 1142T666 1115T693 1075T703 1026Q703 999 693 977T666 937T627 911T578 901Q551 901 529
|
||||
910T490 937T464 976T454 1026ZM454 314Q454 340 463 363T489 403T528 430T578 440Q604 440 626 430T666 403T693 363T703 314Q703 287 693 265T666 225T627 199T578 189Q551 189 529 198T490 225T464 264T454 314Z" />
|
||||
<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="1112" d="M912 884Q973 816 1006 721T1039 507Q1039 387 1006 291T910 127T758 23T557 -14Q481 -14 416 3T296 52L241 -22Q219 -51 190 -63T131 -76H64L209 120Q143 189 108 286T73 507Q73 626 107 722T204
|
||||
887T356 992T557 1029Q636 1029 703 1010T827 956L895 1047Q915 1074 931 1085T979 1097H1069L912 884ZM246 506Q246 346 305 249L741 839Q668 895 557 895Q481 895 423 868T326 791T266 669T246 506ZM557 120Q632 120 689 146T786 223T846 344T866 506Q866 657
|
||||
814 753L381 168Q451 120 557 120Z" />
|
||||
<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM452 1449Q485
|
||||
1449 501 1439T531 1405L680 1163H578Q557 1163 544 1169T517 1191L283 1449H452Z" />
|
||||
<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM842 1449L609
|
||||
1191Q595 1176 582 1170T547 1163H441L589 1405Q603 1428 619 1438T668 1449H842Z" />
|
||||
<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM857
|
||||
1169H738Q717 1169 698 1183L570 1309L553 1326L537 1309L408 1183Q402 1178 391 1174T368 1169H245L468 1433H634L857 1169Z" />
|
||||
<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM484
|
||||
1289Q484 1266 475 1246T450 1211T414 1187T370 1178Q348 1178 328 1187T293 1211T268 1246T259 1289Q259 1312 268 1333T292 1369T328 1394T370 1403Q393 1403 413 1394T450 1370T475 1333T484 1289ZM843 1289Q843 1266 834 1246T810 1211T774 1187T730 1178Q707
|
||||
1178 687 1187T651 1211T627 1246T618 1289Q618 1312 627 1333T651 1369T686 1394T730 1403Q753 1403 773 1394T809 1370T834 1333T843 1289Z" />
|
||||
<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443
|
||||
-299ZM825 1449L592 1191Q578 1176 565 1170T530 1163H424L572 1405Q586 1428 602 1438T651 1449H825Z" />
|
||||
<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="1104" d="M146 -343V1473H324V866Q387 940 469 984T656 1029Q743 1029 814 996T935 898T1012 736T1039 513Q1039 401 1009 305T923 138T786 27T602 -14Q507 -14 441 20T324 118V-343H146ZM597 887Q510
|
||||
887 445 847T324 734V244Q373 178 431 151T562 124Q703 124 779 225T855 513Q855 612 838 683T787 799T706 866T597 887Z" />
|
||||
<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443
|
||||
-299ZM467 1289Q467 1266 458 1246T433 1211T397 1187T353 1178Q331 1178 311 1187T276 1211T251 1246T242 1289Q242 1312 251 1333T275 1369T311 1394T353 1403Q376 1403 396 1394T433 1370T458 1333T467 1289ZM826 1289Q826 1266 817 1246T793 1211T757 1187T713
|
||||
1178Q690 1178 670 1187T634 1211T610 1246T601 1289Q601 1312 610 1333T634 1369T669 1394T713 1403Q736 1403 756 1394T792 1370T817 1333T826 1289Z" />
|
||||
<glyph unicode="–" glyph-name="endash" horiz-adv-x="1112" d="M156 655H956V525H156V655Z" />
|
||||
<glyph unicode="—" glyph-name="emdash" horiz-adv-x="1642" d="M156 655H1486V525H156V655Z" />
|
||||
<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="424" d="M114 1012Q85 1060 72 1108T58 1205Q58 1295 102 1377T227 1529L282 1495Q290 1490 292 1484T295 1472Q295 1458 285 1448Q269 1428 254 1406T227 1360T208 1308T201 1251Q201 1219 210
|
||||
1185T243 1113Q250 1102 250 1090Q250 1066 223 1056L114 1012Z" />
|
||||
<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="424" d="M271 1508Q300 1460 313 1412T326 1316Q326 1225 282 1143T158 991L103 1025Q95 1030 93 1036T90 1048Q90 1062 100 1072Q116 1091 131 1113T158 1160T177 1212T184 1269Q184 1301 175
|
||||
1335T142 1407Q135 1418 135 1429Q135 1453 162 1464L271 1508Z" />
|
||||
<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="424" d="M271 241Q300 193 313 145T326 49Q326 -42 282 -124T158 -276L103 -242Q95 -237 93 -231T90 -219Q90 -205 100 -195Q116 -176 131 -154T158 -107T177 -55T184 2Q184 34 175 68T142
|
||||
140Q135 151 135 162Q135 186 162 197L271 241Z" />
|
||||
<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="728" d="M114 1012Q85 1060 72 1108T58 1205Q58 1295 102 1377T227 1529L282 1495Q290 1490 292 1484T295 1472Q295 1458 285 1448Q269 1428 254 1406T227 1360T208 1308T201 1251Q201 1219
|
||||
210 1185T243 1113Q250 1102 250 1090Q250 1066 223 1056L114 1012ZM418 1012Q389 1060 376 1108T362 1205Q362 1295 406 1377T531 1529L586 1495Q594 1490 596 1484T599 1472Q599 1458 589 1448Q573 1428 558 1406T531 1360T512 1308T505 1251Q505 1219 514 1185T547
|
||||
1113Q554 1102 554 1090Q554 1066 527 1056L418 1012Z" />
|
||||
<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="728" d="M271 1508Q300 1460 313 1412T326 1316Q326 1225 282 1143T158 991L103 1025Q95 1030 93 1036T90 1048Q90 1062 100 1072Q116 1091 131 1113T158 1160T177 1212T184 1269Q184 1301
|
||||
175 1335T142 1407Q135 1418 135 1429Q135 1453 162 1464L271 1508ZM575 1508Q604 1460 617 1412T630 1316Q630 1225 586 1143T462 991L407 1025Q399 1030 397 1036T394 1048Q394 1062 404 1072Q420 1091 435 1113T462 1160T481 1212T488 1269Q488 1301 479 1335T446
|
||||
1407Q439 1418 439 1429Q439 1453 466 1464L575 1508Z" />
|
||||
<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="728" d="M271 241Q300 193 313 145T326 49Q326 -42 282 -124T158 -276L103 -242Q95 -237 93 -231T90 -219Q90 -205 100 -195Q116 -176 131 -154T158 -107T177 -55T184 2Q184 34 175 68T142 140Q135
|
||||
151 135 162Q135 186 162 197L271 241ZM575 241Q604 193 617 145T630 49Q630 -42 586 -124T462 -276L407 -242Q399 -237 397 -231T394 -219Q394 -205 404 -195Q420 -176 435 -154T462 -107T481 -55T488 2Q488 34 479 68T446 140Q439 151 439 162Q439 186 466 197L575
|
||||
241Z" />
|
||||
<glyph unicode="•" glyph-name="bullet" horiz-adv-x="1160" d="M208 595Q208 672 237 740T317 858T434 938T578 968Q655 968 723 939T841 859T921 740T951 595Q951 518 922 451T842 333T723 254T578 224Q502 224 435 253T317 333T238 450T208 595Z" />
|
||||
<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="632" d="M138 518V541L387 930L445 902Q459 895 466 884T473 860Q473 843 463 827L304 566Q290 542 276 529Q291 515 304 493L463 232Q468 224 470 215T473 198Q473 170 445 157L387 129L138 518Z" />
|
||||
<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="632" d="M485 541V518L236 129L178 157Q150 170 150 198Q150 215 160 232L319 493Q332 517 346 529Q334 540 319 566L160 827Q150 844 150 861Q150 889 178 902L236 930L485 541Z" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 78 KiB |
BIN
static/font/font/lato-v15-latin-regular.ttf
Normal file
BIN
static/font/font/lato-v15-latin-regular.ttf
Normal file
Binary file not shown.
BIN
static/font/font/lato-v15-latin-regular.woff
Normal file
BIN
static/font/font/lato-v15-latin-regular.woff
Normal file
Binary file not shown.
BIN
static/font/font/lato-v15-latin-regular.woff2
Normal file
BIN
static/font/font/lato-v15-latin-regular.woff2
Normal file
Binary file not shown.
BIN
static/font/fonts/Tiresias_Infofont.ttf
Normal file
BIN
static/font/fonts/Tiresias_Infofont.ttf
Normal file
Binary file not shown.
BIN
static/font/fonts/Tiresias_PCfont.ttf
Normal file
BIN
static/font/fonts/Tiresias_PCfont.ttf
Normal file
Binary file not shown.
BIN
static/font/lato-v15-latin-regular.eot
Normal file
BIN
static/font/lato-v15-latin-regular.eot
Normal file
Binary file not shown.
435
static/font/lato-v15-latin-regular.svg
Normal file
435
static/font/lato-v15-latin-regular.svg
Normal file
|
@ -0,0 +1,435 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<defs >
|
||||
<font id="Lato" horiz-adv-x="1042" ><font-face
|
||||
font-family="Lato"
|
||||
units-per-em="2000"
|
||||
panose-1="2 15 5 2 2 2 4 3 2 3"
|
||||
ascent="1974"
|
||||
descent="-426"
|
||||
alphabetic="0" />
|
||||
<glyph unicode=" " glyph-name="space" horiz-adv-x="386" />
|
||||
<glyph unicode="!" glyph-name="exclam" horiz-adv-x="686" d="M430 1433V861Q430 816 429 773T424 687T417 598T406 500H285Q279 552 275 597T267 686T263 773T261 861V1433H430ZM218 110Q218 136 227 159T253 199T293 226T342 236Q368 236 391 226T431 199T457
|
||||
159T467 110Q467 83 458 61T431 21T391 -5T342 -15Q316 -15 293 -6T254 21T228 60T218 110Z" />
|
||||
<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="794" d="M307 1433V1143L291 988Q288 956 274 939T229 921Q203 921 189 938T168 988L152 1143V1433H307ZM640 1433V1143L624 988Q621 956 607 939T562 921Q536 921 522 938T501 988L485 1143V1433H640Z" />
|
||||
<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1160" d="M790 423L706 0H625Q602 0 586 17T570 61Q570 65 570 68T572 77L643 423H396L325 68Q317 31 295 16T243 0H164L249 423H103Q80 423 67 434T54 474Q54 479 54 485T56 497L64 554H268L333 880H101L114
|
||||
954Q119 983 137 997T194 1011H352L424 1369Q430 1399 451 1416T503 1433H583L499 1011H746L830 1433H909Q934 1433 950 1418T967 1379Q967 1371 966 1366L893 1011H1105L1092 936Q1087 907 1069 894T1012 880H874L809 554H988Q1012 554 1025 543T1038 502Q1038
|
||||
497 1038 492T1036 480L1027 423H790ZM415 554H662L727 880H480L415 554Z" />
|
||||
<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1160" d="M498 -12Q377 -1 278 47T106 171L159 253Q166 264 179 271T206 278Q225 278 249 259T308 216T391 168T508 137L545 668Q475 689 408 715T287 784T201 891T168 1053Q168 1126 196 1195T279 1319T414
|
||||
1407T598 1446L608 1590Q610 1609 623 1624T658 1639H724L710 1441Q815 1428 891 1387T1027 1288L984 1222Q964 1192 938 1192Q924 1192 904 1204T854 1233T787 1266T700 1290L667 806Q739 784 809 758T935 691T1025 589T1060 435Q1060 345 1030 266T943 127T802
|
||||
30T611 -14L599 -190Q597 -209 584 -223T549 -238H483L498 -12ZM891 407Q891 457 873 493T822 555T747 600T655 635L621 137Q686 143 736 165T821 223T873 304T891 407ZM336 1071Q336 1023 353 988T400 925T470 878T557 842L587 1293Q522 1287 475 1267T397 1217T351
|
||||
1150T336 1071Z" />
|
||||
<glyph unicode="%" glyph-name="percent" horiz-adv-x="1572" d="M707 1087Q707 1003 681 937T612 825T510 755T389 731Q321 731 264 755T163 824T96 936T72 1087Q72 1173 96 1240T163 1353T263 1423T389 1447Q456 1447 514 1423T615 1353T682 1240T707 1087ZM568
|
||||
1087Q568 1153 554 1199T516 1274T459 1317T389 1330Q352 1330 320 1317T263 1275T226 1199T212 1087Q212 1022 225 977T263 903T319 862T389 849Q426 849 458 861T515 902T554 976T568 1087ZM1208 1397Q1221 1414 1235 1423T1274 1433H1402L355 29Q345 16 331
|
||||
8T298 0H166L1208 1397ZM1499 338Q1499 254 1473 188T1404 77T1303 7T1182 -17Q1114 -17 1057 7T956 76T889 188T865 338Q865 424 889 491T956 605T1056 675T1182 699Q1249 699 1307 675T1408 605T1475 492T1499 338ZM1361 338Q1361 404 1347 450T1309 526T1252
|
||||
568T1182 581Q1145 581 1113 568T1056 526T1019 451T1005 338Q1005 273 1018 228T1056 155T1112 114T1182 101Q1219 101 1251 113T1308 154T1347 228T1361 338Z" />
|
||||
<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1406" d="M660 1449Q739 1449 804 1424T916 1356T991 1259T1023 1143L912 1121Q907 1120 903 1120Q890 1120 879 1127T862 1152Q855 1178 840 1206T800 1257T741 1295T660 1310Q610 1310 570 1294T502
|
||||
1250T458 1183T442 1099Q442 1064 450 1032T476 968T520 901T585 828L997 409Q1035 476 1057 549T1088 697Q1090 716 1100 727T1128 738H1238Q1236 623 1201 512T1100 304L1400 0H1228Q1199 0 1181 7T1141 36L997 181Q903 90 781 37T511 -16Q431 -16 354 11T217
|
||||
89T119 215T82 382Q82 452 105 514T170 630T269 725T394 797Q333 874 304 947T275 1098Q275 1171 301 1235T378 1346T499 1421T660 1449ZM263 396Q263 331 287 282T350 198T439 147T541 129Q653 129 742 170T899 279L476 706Q370 649 317 570T263 396Z" />
|
||||
<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="460" d="M307 1433V1143L291 988Q288 956 274 939T229 921Q203 921 189 938T168 988L152 1143V1433H307Z" />
|
||||
<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="600" d="M289 629Q289 415 344 214T503 -171Q509 -182 511 -190T513 -206Q513 -220 506 -229T488 -245L409 -293Q334 -178 282 -65T197 162T149 391T134 629Q134 750 149 866T196 1095T281 1322T409 1551L488
|
||||
1502Q499 1495 506 1486T513 1463Q513 1448 503 1429Q398 1247 344 1045T289 629Z" />
|
||||
<glyph unicode=")" glyph-name="parenright" horiz-adv-x="600" d="M298 629Q298 843 244 1045T84 1429Q74 1448 74 1463Q74 1477 81 1486T99 1502L178 1551Q253 1435 305 1322T390 1096T438 866T453 629Q453 507 438 392T391 162T306 -65T178 -293L99 -245Q88
|
||||
-238 81 -229T74 -206Q74 -198 76 -190T84 -171Q188 12 243 213T298 629Z" />
|
||||
<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="800" d="M354 863V1060Q354 1079 356 1096T366 1129Q346 1104 313 1084L141 985L97 1060L269 1160Q305 1181 342 1184Q322 1186 305 1191T269 1209L96 1310L140 1385L313 1285Q348 1265 370 1233Q361 1251
|
||||
358 1269T354 1308V1506H442V1309Q442 1268 428 1237Q439 1252 452 1263T483 1285L655 1384L699 1309L527 1209Q510 1198 494 1192T459 1184Q477 1182 493 1177T527 1160L700 1059L656 984L483 1084Q465 1095 451 1106T426 1133Q442 1100 442 1061V863H354Z" />
|
||||
<glyph unicode="+" glyph-name="plus" horiz-adv-x="1160" d="M651 1166V739H1058V604H651V174H505V604H100V739H505V1166H651Z" />
|
||||
<glyph unicode="," glyph-name="comma" horiz-adv-x="424" d="M94 123Q94 146 102 166T126 202T164 227T212 236Q242 236 265 225T304 195T328 150T336 94Q336 49 323 1T286 -95T227 -188T146 -271L116 -242Q103 -230 103 -214Q103 -201 117 -187Q127 -176 142
|
||||
-158T174 -115T203 -62T223 0H210Q184 0 163 9T127 34T103 73T94 123Z" />
|
||||
<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="694" d="M100 675H594V524H100V675Z" />
|
||||
<glyph unicode="." glyph-name="period" horiz-adv-x="424" d="M88 110Q88 136 97 159T123 199T163 226T212 236Q238 236 261 226T301 199T327 159T337 110Q337 83 328 61T301 21T261 -5T212 -15Q186 -15 163 -6T124 21T98 60T88 110Z" />
|
||||
<glyph unicode="/" glyph-name="slash" horiz-adv-x="746" d="M161 -21Q147 -56 120 -73T63 -90H-12L589 1407Q602 1439 626 1456T683 1473H758L161 -21Z" />
|
||||
<glyph unicode="0" glyph-name="zero" horiz-adv-x="1160" d="M1100 716Q1100 528 1060 391T949 163T784 29T579 -15Q469 -15 375 29T210 163T100 390T60 716Q60 904 100 1042T210 1270T374 1405T579 1449Q688 1449 783 1405T949 1271T1059 1042T1100 716ZM915
|
||||
716Q915 880 888 991T814 1171T706 1268T579 1298Q513 1298 452 1269T345 1171T272 992T244 716Q244 552 271 441T345 262T452 165T579 135Q645 135 706 164T813 262T887 441T915 716Z" />
|
||||
<glyph unicode="1" glyph-name="one" horiz-adv-x="1160" d="M287 136H595V1113Q595 1157 598 1202L342 983Q332 975 322 972T303 968Q288 968 276 974T258 990L202 1067L628 1436H773V136H1055V0H287V136Z" />
|
||||
<glyph unicode="2" glyph-name="two" horiz-adv-x="1160" d="M601 1449Q692 1449 771 1422T907 1344T998 1218T1031 1050Q1031 970 1007 902T942 772T848 651T734 531L357 145Q397 156 438 162T517 169H997Q1026 169 1043 152T1060 108V0H104V61Q104 80 111 100T136
|
||||
137L595 598Q652 656 699 709T779 817T831 926T849 1045Q849 1108 829 1155T774 1234T692 1280T591 1296Q537 1296 491 1280T410 1236T350 1168T315 1082Q307 1053 291 1040T249 1027Q244 1027 239 1027T226 1029L133 1045Q147 1143 187 1218T288 1345T429 1422T601
|
||||
1449Z" />
|
||||
<glyph unicode="3" glyph-name="three" horiz-adv-x="1160" d="M620 1449Q711 1449 788 1423T920 1349T1007 1233T1038 1082Q1038 1014 1021 961T971 867T892 798T789 753Q929 716 999 629T1070 411Q1070 312 1033 233T930 99T779 14T593 -16Q479 -16 398 12T261
|
||||
91T169 209T108 358L184 390Q205 399 226 399Q246 399 261 391T285 364Q287 360 289 356T293 346Q307 317 327 281T381 212T465 158T591 136Q666 136 722 160T816 224T873 311T892 406Q892 464 877 512T821 595T709 650T525 670V799Q616 800 680 819T786 871T845
|
||||
950T864 1052Q864 1114 845 1160T791 1236T711 1281T610 1296Q556 1296 510 1280T429 1236T369 1168T333 1082Q325 1053 309 1040T268 1027Q263 1027 258 1027T245 1029L152 1045Q166 1143 206 1218T307 1345T448 1422T620 1449Z" />
|
||||
<glyph unicode="4" glyph-name="four" horiz-adv-x="1160" d="M903 517H1120V415Q1120 399 1111 388T1081 377H903V0H746V377H111Q91 377 77 388T58 417L40 508L737 1433H903V517ZM746 1108Q746 1134 747 1164T754 1226L233 517H746V1108Z" />
|
||||
<glyph unicode="5" glyph-name="five" horiz-adv-x="1160" d="M978 1355Q978 1317 954 1293T873 1268H423L357 892Q469 916 564 916Q676 916 761 883T905 792T992 655T1022 483Q1022 369 982 277T873 120T709 19T506 -16Q443 -16 385 -4T277 30T184 78T108 135L162
|
||||
211Q180 237 210 237Q229 237 254 222T316 187T400 153T516 137Q591 137 651 161T753 229T819 336T842 475Q842 542 823 596T764 688T665 747T527 768Q473 768 415 759T295 730L183 763L299 1433H978V1355Z" />
|
||||
<glyph unicode="6" glyph-name="six" horiz-adv-x="1160" d="M650 878Q736 878 813 850T948 767T1040 633T1074 451Q1074 352 1038 267T938 119T782 20T582 -16Q474 -16 387 18T237 116T142 270T108 473Q108 567 150 673T283 901L646 1390Q660 1408 685 1420T742
|
||||
1433H900L403 804Q454 839 516 858T650 878ZM280 442Q280 373 300 316T358 218T452 155T579 132Q651 132 709 155T808 219T872 316T895 438Q895 508 873 564T811 660T715 721T592 742Q520 742 462 718T364 652T302 556T280 442Z" />
|
||||
<glyph unicode="7" glyph-name="seven" horiz-adv-x="1160" d="M1084 1433V1353Q1084 1319 1077 1297T1061 1260L468 63Q455 37 432 19T370 0H243L845 1182Q858 1207 871 1228T902 1268H154Q137 1268 124 1281T110 1312V1433H1084Z" />
|
||||
<glyph unicode="8" glyph-name="eight" horiz-adv-x="1160" d="M579 -16Q472 -16 383 12T230 94T131 222T96 392Q96 530 168 619T374 747Q261 789 204 872T146 1072Q146 1151 177 1220T265 1340T401 1420T579 1449Q676 1449 756 1420T893 1340T981 1220T1012 1072Q1012
|
||||
956 954 873T784 747Q918 709 990 620T1062 392Q1062 298 1027 223T928 94T775 13T579 -16ZM579 126Q649 126 704 145T798 200T857 285T878 395Q878 469 854 521T788 607T692 655T579 671Q520 671 466 656T371 607T305 522T280 395Q280 335 300 286T359 201T453
|
||||
146T579 126ZM579 814Q649 814 698 835T779 892T824 974T838 1069Q838 1119 822 1163T773 1240T692 1292T579 1311Q515 1311 467 1292T386 1240T337 1163T320 1069Q320 1020 334 974T379 893T459 836T579 814Z" />
|
||||
<glyph unicode="9" glyph-name="nine" horiz-adv-x="1160" d="M549 588Q468 588 396 615T268 694T181 823T148 999Q148 1093 183 1175T281 1318T431 1414T622 1449Q725 1449 809 1415T953 1320T1045 1174T1078 986Q1078 924 1067 869T1033 760T981 655T911 546L562
|
||||
42Q549 23 525 12T470 0H306L742 571Q764 600 783 626T819 678Q764 634 695 611T549 588ZM907 1007Q907 1074 886 1128T826 1221T736 1279T620 1300Q554 1300 500 1279T407 1219T347 1128T326 1012Q326 944 345 891T401 800T490 744T608 725Q680 725 735 748T829
|
||||
811T887 901T907 1007Z" />
|
||||
<glyph unicode=":" glyph-name="colon" horiz-adv-x="504" d="M128 110Q128 136 137 159T163 199T203 226T252 236Q278 236 301 226T341 199T367 159T377 110Q377 83 368 61T341 21T301 -5T252 -15Q226 -15 203 -6T164 21T138 60T128 110ZM128 860Q128 886 137
|
||||
909T163 949T203 976T252 986Q278 986 301 976T341 949T367 909T377 860Q377 833 368 811T341 771T301 745T252 735Q226 735 203 744T164 771T138 810T128 860Z" />
|
||||
<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="504" d="M134 123Q134 146 142 166T166 202T204 227T252 236Q282 236 305 225T344 195T368 150T376 94Q376 49 363 1T326 -95T267 -188T186 -271L156 -242Q143 -230 143 -214Q143 -201 157 -187Q167 -176
|
||||
182 -158T214 -115T243 -62T263 0H250Q224 0 203 9T167 34T143 73T134 123ZM128 860Q128 886 137 909T163 949T203 976T252 986Q278 986 301 976T341 949T367 909T377 860Q377 833 368 811T341 771T301 745T252 735Q226 735 203 744T164 771T138 810T128 860Z"
|
||||
/>
|
||||
<glyph unicode="<" glyph-name="less" horiz-adv-x="1160" d="M148 710L922 1111V984Q922 967 914 955T886 932L437 704Q417 693 395 686T347 672Q372 667 394 659T437 641L886 414Q906 404 914 391T922 362V234L148 636V710Z" />
|
||||
<glyph unicode="=" glyph-name="equal" horiz-adv-x="1160" d="M150 574H1009V439H150V574ZM150 909H1009V774H150V909Z" />
|
||||
<glyph unicode=">" glyph-name="greater" horiz-adv-x="1160" d="M238 234V362Q238 378 246 391T274 414L723 641Q743 651 764 659T811 672Q786 678 765 685T723 704L274 932Q254 942 246 954T238 984V1111L1011 710V636L238 234Z" />
|
||||
<glyph unicode="?" glyph-name="question" horiz-adv-x="796" d="M34 1305Q65 1334 102 1360T184 1406T280 1437T392 1449Q471 1449 538 1426T655 1361T732 1259T760 1124Q760 1048 738 993T681 897T605 825T529 767T468 713T438 653L420 500H298L286 666V677Q286
|
||||
719 308 751T365 812T439 869T513 932T570 1011T593 1115Q593 1158 576 1193T530 1252T462 1290T377 1303Q316 1303 273 1288T199 1255T151 1222T120 1207Q95 1207 81 1230L34 1305ZM230 110Q230 136 239 159T265 199T305 226T354 236Q380 236 403 226T443 199T469
|
||||
159T479 110Q479 83 470 61T443 21T403 -5T354 -15Q328 -15 305 -6T266 21T240 60T230 110Z" />
|
||||
<glyph unicode="@" glyph-name="at" horiz-adv-x="1644" d="M1167 186Q1089 186 1040 223T978 339Q920 258 852 223T706 188Q646 188 602 208T529 265T485 352T470 460Q470 545 502 631T599 787T758 901T979 945Q1046 945 1096 935T1192 904L1099 543Q1080 468
|
||||
1080 419Q1080 383 1089 360T1113 323T1149 304T1193 299Q1242 299 1286 327T1363 406T1416 528T1436 687Q1436 825 1392 929T1270 1102T1087 1206T859 1241Q725 1241 608 1190T404 1049T267 836T217 568Q217 398 270 270T416 54T633 -77T901 -121Q1053 -121 1169
|
||||
-88T1371 -4Q1386 5 1398 5Q1419 5 1429 -19L1454 -85Q1347 -157 1211 -198T901 -239Q728 -239 579 -184T321 -26T149 228T86 568Q86 677 113 778T191 966T311 1126T467 1250T652 1330T859 1359Q951 1359 1039 1339T1205 1280T1350 1184T1463 1052T1537 886T1564
|
||||
687Q1564 579 1534 488T1450 329T1324 224T1167 186ZM741 306Q772 306 803 316T864 351T918 419T960 527L1036 822Q997 831 951 831Q876 831 814 800T706 717T636 600T610 465Q610 393 643 350T741 306Z" />
|
||||
<glyph unicode="A" glyph-name="A" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532Z" />
|
||||
<glyph unicode="B" glyph-name="B" horiz-adv-x="1294" d="M174 0V1433H631Q763 1433 858 1407T1015 1333T1106 1216T1136 1059Q1136 1006 1120 957T1070 866T986 791T867 737Q1024 706 1104 624T1184 408Q1184 317 1151 242T1053 113T895 30T681 0H174ZM368 653V154H678Q761
|
||||
154 820 173T918 226T975 308T993 413Q993 524 915 588T677 653H368ZM368 791H624Q706 791 766 809T865 859T924 936T943 1036Q943 1162 867 1221T631 1280H368V791Z" />
|
||||
<glyph unicode="C" glyph-name="C" horiz-adv-x="1370" d="M1184 296Q1200 296 1213 283L1289 200Q1201 98 1076 41T773 -16Q618 -16 492 37T277 187T139 419T90 716Q90 878 142 1013T290 1245T517 1395T810 1449Q968 1449 1082 1400T1286 1267L1223 1178Q1216
|
||||
1168 1207 1162T1181 1155Q1168 1155 1154 1164T1119 1188T1072 1218T1008 1248T922 1271T809 1281Q694 1281 599 1242T434 1129T327 951T288 716Q288 582 326 477T431 300T589 189T785 151Q849 151 900 158T994 182T1075 222T1151 281Q1168 296 1184 296Z" />
|
||||
<glyph unicode="D" glyph-name="D" horiz-adv-x="1506" d="M1416 716Q1416 555 1365 423T1221 197T998 52T710 0H174V1433H710Q868 1433 998 1382T1221 1236T1365 1009T1416 716ZM1217 716Q1217 848 1181 952T1079 1128T919 1238T710 1276H369V157H710Q825 157
|
||||
919 195T1079 304T1181 480T1217 716Z" />
|
||||
<glyph unicode="E" glyph-name="E" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057Z" />
|
||||
<glyph unicode="F" glyph-name="F" horiz-adv-x="1132" d="M1057 1433V1275H369V774H957V616H369V0H174V1433H1057Z" />
|
||||
<glyph unicode="G" glyph-name="G" horiz-adv-x="1468" d="M813 141Q871 141 919 146T1011 163T1092 189T1168 225V541H946Q927 541 916 552T904 579V689H1344V139Q1290 100 1232 71T1107 23T964 -6T799 -16Q643 -16 513 37T289 187T143 419T90 716Q90 880 141
|
||||
1015T288 1246T519 1396T823 1449Q908 1449 981 1437T1116 1401T1232 1344T1331 1268L1276 1180Q1259 1153 1232 1153Q1216 1153 1197 1164Q1172 1178 1141 1198T1066 1236T961 1268T817 1281Q696 1281 598 1242T431 1129T325 951T288 716Q288 580 326 474T435
|
||||
293T601 180T813 141Z" />
|
||||
<glyph unicode="H" glyph-name="H" horiz-adv-x="1512" d="M1336 0H1141V652H369V0H174V1433H369V794H1141V1433H1336V0Z" />
|
||||
<glyph unicode="I" glyph-name="I" horiz-adv-x="614" d="M404 0H210V1433H404V0Z" />
|
||||
<glyph unicode="J" glyph-name="J" horiz-adv-x="888" d="M713 495Q713 375 684 280T597 120T455 19T262 -16Q165 -16 60 12Q62 41 65 69T71 126Q73 143 83 153T115 164Q133 164 163 155T243 146Q309 146 360 166T447 228T501 335T520 491V1433H713V495Z" />
|
||||
<glyph unicode="K" glyph-name="K" horiz-adv-x="1362" d="M387 805H460Q498 805 520 814T563 847L1040 1387Q1062 1412 1082 1422T1135 1433H1300L754 816Q733 793 715 777T675 751Q703 742 724 724T768 679L1338 0H1170Q1151 0 1138 3T1116 11T1098 24T1082
|
||||
41L587 610Q576 622 567 630T545 645T516 653T475 656H387V0H194V1433H387V805Z" />
|
||||
<glyph unicode="L" glyph-name="L" horiz-adv-x="1028" d="M368 163H988V0H174V1433H368V163Z" />
|
||||
<glyph unicode="M" glyph-name="M" horiz-adv-x="1840" d="M879 518Q893 494 903 468T924 414Q934 442 945 467T970 519L1455 1400Q1468 1423 1482 1428T1522 1433H1665V0H1495V1053Q1495 1074 1496 1098T1499 1147L1008 251Q983 206 938 206H910Q865 206 840
|
||||
251L338 1150Q341 1124 342 1099T344 1053V0H174V1433H317Q343 1433 357 1428T384 1400L879 518V518Z" />
|
||||
<glyph unicode="N" glyph-name="N" horiz-adv-x="1512" d="M274 1433Q300 1433 312 1427T341 1400L1171 320Q1168 346 1167 370T1166 418V1433H1336V0H1238Q1215 0 1200 8T1169 35L340 1114Q342 1089 343 1065T344 1021V0H174V1433H274V1433Z" />
|
||||
<glyph unicode="O" glyph-name="O" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 716ZM1306
|
||||
716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716Z" />
|
||||
<glyph unicode="P" glyph-name="P" horiz-adv-x="1222" d="M387 536V0H194V1433H617Q753 1433 853 1402T1020 1312T1118 1172T1151 989Q1151 889 1116 806T1014 663T846 570T617 536H387ZM387 690H617Q700 690 763 712T870 773T935 868T957 989Q957 1126 873 1203T617
|
||||
1280H387V690Z" />
|
||||
<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1596" d="M1505 716Q1505 615 1485 524T1425 355T1330 212T1204 101L1572 -296H1412Q1376 -296 1348 -286T1297 -251L1045 23Q988 5 927 -5T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287
|
||||
1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270
|
||||
479T1306 716Z" />
|
||||
<glyph unicode="R" glyph-name="R" horiz-adv-x="1288" d="M387 598V0H194V1433H599Q735 1433 834 1406T997 1326T1093 1201T1124 1036Q1124 960 1100 894T1031 776T920 686T771 630Q807 609 835 569L1253 0H1081Q1028 0 1003 41L631 553Q614 577 594 587T534
|
||||
598H387ZM387 739H590Q675 739 739 759T847 817T913 907T935 1022Q935 1150 851 1215T599 1280H387V739Z" />
|
||||
<glyph unicode="S" glyph-name="S" horiz-adv-x="1060" d="M908 1209Q899 1194 889 1187T863 1179Q846 1179 824 1196T767 1233T684 1271T566 1288Q501 1288 451 1271T368 1223T317 1153T300 1065Q300 1005 329 966T407 898T517 850T643 807T769 758T879 688T957
|
||||
585T987 435Q987 341 955 259T862 115T711 19T507 -16Q368 -16 254 34T58 171L114 263Q122 274 133 281T159 289Q180 289 207 267T274 217T372 168T513 145Q582 145 636 164T727 217T785 300T805 407Q805 472 776 513T698 583T589 630T463 670T337 718T227 788T150
|
||||
895T120 1055Q120 1131 149 1202T235 1328T373 1416T563 1449Q683 1449 782 1411T955 1301L908 1209Z" />
|
||||
<glyph unicode="T" glyph-name="T" horiz-adv-x="1180" d="M1150 1433V1270H687V0H493V1270H28V1433H1150Z" />
|
||||
<glyph unicode="U" glyph-name="U" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452 269T571
|
||||
185T731 154Z" />
|
||||
<glyph unicode="V" glyph-name="V" horiz-adv-x="1360" d="M8 1433H163Q189 1433 205 1420T229 1387L634 376Q648 342 659 302T682 219Q691 262 701 302T726 376L1129 1387Q1136 1404 1153 1418T1195 1433H1351L767 0H592L8 1433Z" />
|
||||
<glyph unicode="W" glyph-name="W" horiz-adv-x="2038" d="M14 1433H175Q201 1433 218 1420T241 1387L537 391Q545 364 551 333T564 268Q571 302 578 333T594 391L931 1387Q937 1404 954 1418T997 1433H1053Q1079 1433 1095 1420T1119 1387L1454 391Q1472 339
|
||||
1486 272Q1492 305 1497 335T1510 391L1807 1387Q1812 1405 1829 1419T1872 1433H2023L1576 0H1402L1039 1093Q1028 1124 1019 1165Q1014 1145 1010 1127T1000 1093L635 0H461L14 1433Z" />
|
||||
<glyph unicode="X" glyph-name="X" horiz-adv-x="1286" d="M507 736L34 1433H227Q248 1433 258 1426T276 1406L650 832Q657 853 671 878L1024 1402Q1033 1416 1043 1424T1069 1433H1254L779 745L1270 0H1078Q1056 0 1044 11T1023 37L639 638Q632 617 621 598L247
|
||||
37Q238 23 227 12T194 0H14L507 736Z" />
|
||||
<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1258" d="M726 570V0H533V570L8 1433H178Q204 1433 219 1420T245 1388L573 831Q593 796 606 765T631 704Q642 735 655 766T688 831L1015 1388Q1024 1404 1039 1418T1080 1433H1252L726 570Z" />
|
||||
<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1248" d="M1172 1433V1361Q1172 1327 1151 1297L340 158H1158V0H86V76Q86 106 105 133L917 1275H124V1433H1172Z" />
|
||||
<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="600" d="M142 -289V1533H510V1463Q510 1441 497 1429T461 1416H292V-171H461Q483 -171 496 -183T510 -219V-289H142Z" />
|
||||
<glyph unicode="\" glyph-name="backslash" horiz-adv-x="750" d="M-20 1473H56Q89 1473 113 1456T150 1407L751 -90H676Q647 -90 619 -73T578 -21L-20 1473Z" />
|
||||
<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="600" d="M90 -219Q90 -199 103 -185T139 -171H308V1416H139Q117 1416 104 1429T90 1463V1533H458V-289H90V-219Z" />
|
||||
<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1160" d="M516 1433H631L989 787H860Q843 787 831 797T811 821L615 1173Q602 1196 593 1217T576 1260Q562 1216 539 1173L345 821Q337 807 326 797T294 787H158L516 1433Z" />
|
||||
<glyph unicode="_" glyph-name="underscore" horiz-adv-x="788" d="M788 -165V-285H0V-165H788Z" />
|
||||
<glyph unicode="`" glyph-name="grave" horiz-adv-x="614" d="M207 1449Q240 1449 256 1439T286 1405L435 1163H333Q312 1163 299 1169T272 1191L38 1449H207Z" />
|
||||
<glyph unicode="a" glyph-name="a" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450 887
|
||||
406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276 192T311
|
||||
145T363 118T428 109Z" />
|
||||
<glyph unicode="b" glyph-name="b" horiz-adv-x="1118" d="M152 0V1473H331V867Q394 940 475 984T662 1029Q750 1029 821 996T942 898T1019 736T1046 513Q1046 401 1016 305T930 138T792 27T608 -14Q510 -14 442 24T322 130L313 38Q305 0 267 0H152ZM604 887Q517
|
||||
887 452 847T331 734V244Q379 178 437 151T568 124Q710 124 786 225T862 513Q862 612 845 683T794 799T713 866T604 887Z" />
|
||||
<glyph unicode="c" glyph-name="c" horiz-adv-x="934" d="M837 833Q829 822 821 816T798 810Q783 810 766 822T721 850T656 877T561 890Q487 890 430 864T335 787T277 666T257 507Q257 415 278 344T337 224T429 150T552 124Q617 124 659 139T729 174T775 208T811
|
||||
224Q834 224 845 207L895 142Q829 61 730 24T521 -14Q426 -14 345 21T203 122T109 286T74 507Q74 620 105 716T197 881T347 990T551 1029Q657 1029 739 995T884 897L837 833Z" />
|
||||
<glyph unicode="d" glyph-name="d" horiz-adv-x="1118" d="M859 0Q821 0 811 37L795 160Q730 81 647 34T455 -14Q368 -14 297 19T176 118T99 280T72 503Q72 615 102 711T188 879T326 990T510 1031Q603 1031 669 1000T787 911V1473H965V0H859ZM514 130Q601 130
|
||||
666 170T787 283V773Q738 839 680 865T550 892Q408 892 332 791T256 503Q256 404 273 334T323 218T404 151T514 130Z" />
|
||||
<glyph unicode="e" glyph-name="e" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954 142Q921
|
||||
102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898Z" />
|
||||
<glyph unicode="f" glyph-name="f" horiz-adv-x="674" d="M186 0V861L74 874Q53 879 40 889T26 920V993H186V1091Q186 1178 210 1245T280 1359T390 1430T534 1454Q602 1454 660 1434L656 1345Q655 1325 639 1321T594 1317H563Q517 1317 480 1305T415 1266T374
|
||||
1195T359 1086V993H652V864H365V0H186Z" />
|
||||
<glyph unicode="g" glyph-name="g" horiz-adv-x="1022" d="M487 1030Q553 1030 610 1016T715 973H990V907Q990 874 948 865L833 849Q867 784 867 704Q867 630 839 570T760 466T640 400T487 377Q416 377 353 394Q321 374 305 351T288 306Q288 270 317 252T394 225T503
|
||||
215T627 209T752 193T861 157T938 88T967 -26Q967 -91 935 -152T841 -260T692 -336T493 -365Q382 -365 299 -343T160 -284T78 -199T50 -97Q50 -22 97 30T228 114Q185 134 160 167T134 257Q134 279 142 302T166 349T207 393T263 430Q188 472 146 541T103 704Q103
|
||||
778 131 838T211 941T332 1007T487 1030ZM803 -55Q803 -17 782 6T725 41T642 60T543 68T437 74T334 85Q277 58 242 19T206 -74Q206 -108 223 -137T277 -188T367 -222T496 -235Q568 -235 625 -222T721 -185T782 -128T803 -55ZM487 495Q541 495 582 510T652 552T694
|
||||
616T708 699Q708 792 652 847T487 902Q380 902 324 847T267 699Q267 654 281 617T324 552T393 510T487 495Z" />
|
||||
<glyph unicode="h" glyph-name="h" horiz-adv-x="1112" d="M146 0V1473H324V877Q389 946 468 987T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146Z" />
|
||||
<glyph unicode="i" glyph-name="i" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM384 1331Q384 1305 374 1283T346 1243T305 1215T256 1205Q230 1205 208 1215T168 1242T140 1282T130 1331Q130 1357 140 1380T167 1421T207 1449T256 1459Q282 1459 305 1449T345
|
||||
1422T373 1381T384 1331Z" />
|
||||
<glyph unicode="j" glyph-name="j" horiz-adv-x="508" d="M344 1013V-75Q344 -136 328 -188T278 -280T189 -341T58 -364Q25 -364 -2 -359T-56 -344L-48 -248Q-46 -235 -39 -232T-17 -228Q-9 -228 0 -228T22 -229Q100 -229 133 -193T166 -75V1013H344ZM384 1331Q384
|
||||
1305 374 1283T346 1243T305 1215T256 1205Q230 1205 208 1215T168 1242T140 1282T130 1331Q130 1357 140 1380T167 1421T207 1449T256 1459Q282 1459 305 1449T345 1422T373 1381T384 1331Z" />
|
||||
<glyph unicode="k" glyph-name="k" horiz-adv-x="1048" d="M331 1473V606H377Q397 606 410 611T439 634L759 977Q774 993 789 1003T829 1013H991L618 616Q604 599 591 586T560 563Q578 551 592 536T620 500L1016 0H856Q834 0 819 8T789 35L456 450Q441 471 426
|
||||
477T381 484H331V0H152V1473H331Z" />
|
||||
<glyph unicode="l" glyph-name="l" horiz-adv-x="512" d="M344 1473V0H166V1473H344Z" />
|
||||
<glyph unicode="m" glyph-name="m" horiz-adv-x="1642" d="M146 0V1013H252Q290 1013 300 976L313 872Q369 941 438 985T600 1029Q703 1029 766 972T858 818Q879 873 913 913T991 979T1082 1017T1181 1029Q1261 1029 1323 1004T1429 929T1496 809T1519 645V0H1341V645Q1341
|
||||
764 1289 825T1138 887Q1094 887 1055 872T985 826T938 751T920 645V0H742V645Q742 767 693 827T550 887Q484 887 428 852T324 755V0H146Z" />
|
||||
<glyph unicode="n" glyph-name="n" horiz-adv-x="1112" d="M146 0V1013H252Q290 1013 300 976L314 866Q380 939 461 984T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146Z" />
|
||||
<glyph unicode="o" glyph-name="o" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556 125Q706
|
||||
125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125Z" />
|
||||
<glyph unicode="p" glyph-name="p" horiz-adv-x="1104" d="M146 -343V1013H252Q290 1013 300 976L315 856Q380 935 463 983T656 1031Q743 1031 814 998T935 899T1012 736T1039 513Q1039 401 1009 305T923 138T786 27T602 -14Q508 -14 442 17T324 105V-343H146ZM597
|
||||
887Q510 887 445 847T324 734V244Q373 178 431 151T562 124Q703 124 779 225T855 513Q855 612 838 683T787 799T706 866T597 887Z" />
|
||||
<glyph unicode="q" glyph-name="q" horiz-adv-x="1118" d="M965 1013V-343H787V150Q723 76 642 31T455 -14Q368 -14 297 19T176 118T99 280T72 503Q72 615 102 711T188 879T326 990T510 1031Q608 1031 676 996T799 897L811 976Q821 1013 859 1013H965ZM514 130Q601
|
||||
130 666 170T787 283V773Q739 837 680 864T550 892Q408 892 332 791T256 503Q256 404 273 334T323 218T404 151T514 130Z" />
|
||||
<glyph unicode="r" glyph-name="r" horiz-adv-x="806" d="M146 0V1013H248Q277 1013 288 1002T303 964L315 806Q367 912 443 971T623 1031Q665 1031 699 1022T762 995L739 862Q732 837 708 837Q694 837 665 846T584 856Q491 856 429 802T324 645V0H146Z" />
|
||||
<glyph unicode="s" glyph-name="s" horiz-adv-x="868" d="M726 846Q714 824 689 824Q674 824 655 835T609 859T543 884T453 896Q408 896 372 885T311 853T272 807T258 749Q258 710 280 684T340 639T424 606T520 575T617 538T701 488T760 415T783 310Q783 240 758
|
||||
181T684 78T564 9T400 -16Q294 -16 208 18T62 107L104 175Q112 188 123 195T152 202Q170 202 190 188T238 157T307 126T409 112Q461 112 500 125T565 162T603 215T616 279Q616 321 594 348T534 395T450 429T353 460T256 496T171 548T112 624T89 735Q89 793 113
|
||||
846T183 940T296 1005T449 1029Q549 1029 628 998T766 911L726 846Z" />
|
||||
<glyph unicode="t" glyph-name="t" horiz-adv-x="746" d="M453 -16Q333 -16 269 51T204 244V864H82Q66 864 55 873T44 903V974L210 995L251 1308Q253 1323 264 1332T292 1342H382V993H672V864H382V256Q382 192 413 161T493 130Q521 130 541 137T577 154T602 170T621
|
||||
178Q635 178 646 161L698 76Q652 33 587 9T453 -16Z" />
|
||||
<glyph unicode="u" glyph-name="u" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300Z" />
|
||||
<glyph unicode="v" glyph-name="v" horiz-adv-x="1024" d="M18 1013H164Q185 1013 199 1002T219 976L476 324Q490 288 498 252T513 181Q521 216 530 252T553 324L813 976Q819 992 832 1002T866 1013H1005L592 0H431L18 1013Z" />
|
||||
<glyph unicode="w" glyph-name="w" horiz-adv-x="1532" d="M14 1013H154Q176 1013 190 1002T209 976L403 324Q411 288 418 255T430 187Q438 221 448 254T469 324L683 980Q688 995 700 1005T732 1015H809Q829 1015 842 1005T860 980L1069 324Q1080 289 1088 255T1105
|
||||
188Q1110 221 1118 257T1135 324L1333 976Q1338 992 1352 1002T1385 1013H1519L1191 0H1050Q1024 0 1014 34L790 721Q782 744 777 767T767 814Q762 791 757 767T744 720L517 34Q506 0 476 0H342L14 1013Z" />
|
||||
<glyph unicode="x" glyph-name="x" horiz-adv-x="1008" d="M383 519L42 1013H213Q235 1013 245 1006T263 986L511 606Q520 634 537 662L755 982Q765 996 775 1004T800 1013H964L623 529L978 0H807Q785 0 773 11T752 37L497 434Q490 405 476 382L240 37Q230 23
|
||||
219 12T187 0H28L383 519Z" />
|
||||
<glyph unicode="y" glyph-name="y" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443 -299Z" />
|
||||
<glyph unicode="z" glyph-name="z" horiz-adv-x="924" d="M853 937Q853 918 846 901T828 869L280 139H833V0H70V74Q70 87 76 104T95 138L646 873H101V1013H853V937Z" />
|
||||
<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="600" d="M181 425Q181 488 146 528T44 569V676Q111 676 146 716T181 820Q181 870 173 919T156 1017T138 1116T130 1218Q130 1287 150 1345T212 1445T315 1510T459 1533H512V1454Q512 1434 498 1425T472
|
||||
1416H452Q375 1416 331 1366T286 1229Q286 1173 293 1121T309 1020T325 921T332 822Q332 784 321 752T290 694T242 650T181 622Q214 613 241 595T289 550T321 492T332 423Q332 373 325 324T309 226T293 124T286 16Q286 -71 330 -121T452 -171H472Q484 -171 498
|
||||
-180T512 -209V-289H459Q377 -289 316 -266T213 -200T151 -100T130 27Q130 79 138 128T155 227T173 326T181 425Z" />
|
||||
<glyph unicode="|" glyph-name="bar" horiz-adv-x="600" d="M230 1533H368V-343H230V1533Z" />
|
||||
<glyph unicode="}" glyph-name="braceright" horiz-adv-x="600" d="M419 425Q419 375 427 326T444 228T462 129T470 27Q470 -42 449 -100T387 -200T285 -265T141 -289H88V-209Q88 -189 102 -180T128 -171H148Q225 -171 269 -121T314 16Q314 72 307 124T291 225T275
|
||||
324T268 423Q268 460 279 492T310 550T358 594T419 622Q386 631 359 649T311 693T279 751T268 822Q268 872 275 921T291 1019T307 1121T314 1229Q314 1315 270 1365T148 1416H128Q116 1416 102 1425T88 1454V1533H141Q223 1533 284 1510T387 1445T449 1345T470
|
||||
1218Q470 1166 462 1116T445 1017T427 919T419 820Q419 756 454 716T556 676V569Q489 569 454 529T419 425Z" />
|
||||
<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1160" d="M759 613Q824 613 860 655T898 768H1042Q1042 701 1024 645T971 549T885 487T770 465Q718 465 667 481T569 516T478 552T399 569Q334 569 298 527T260 414H116Q116 481 134 537T187 633T272
|
||||
695T388 718Q440 718 491 702T589 666T680 630T759 613Z" />
|
||||
<glyph unicode=" " glyph-name="uni00A0" horiz-adv-x="386" />
|
||||
<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="686" d="M262 -343V198Q262 243 263 285T268 371T275 461T286 559H407Q413 507 417 461T425 372T429 286T431 198V-343H262ZM218 904Q218 931 227 953T254 993T293 1019T343 1029Q369 1029 391 1020T431
|
||||
993T458 954T468 904Q468 878 458 855T431 815T392 788T343 778Q316 778 294 788T254 815T228 855T218 904Z" />
|
||||
<glyph unicode="¢" glyph-name="cent" horiz-adv-x="1160" d="M561 -11Q469 -1 392 38T258 144T170 301T138 506Q138 617 171 710T267 873T422 982T633 1026L645 1205Q647 1225 660 1239T695 1254H761L745 1021Q827 1009 893 978T1013 897L967 835Q959 824
|
||||
952 819T930 813Q918 813 902 821T863 842T809 866T735 885L683 123Q746 127 788 142T860 175T909 206T944 220Q955 220 964 216T978 204L1026 141Q966 69 874 32T674 -12L662 -187Q660 -206 647 -220T612 -235H546L561 -11ZM315 506Q315 344 382 248T571 129L623
|
||||
889Q547 883 490 855T393 777T335 659T315 506Z" />
|
||||
<glyph unicode="£" glyph-name="sterling" horiz-adv-x="1160" d="M52 672Q52 698 68 716T113 734H247V995Q247 1089 274 1171T356 1315T493 1412T685 1448Q763 1448 823 1429T931 1375T1012 1296T1071 1199L999 1153Q989 1147 979 1145T958 1142Q944 1142
|
||||
932 1147T908 1167Q888 1192 868 1215T822 1256T763 1284T685 1295Q622 1295 574 1274T494 1214T446 1120T430 997V734H871V662Q871 644 856 629T819 614H430V371Q430 296 402 242T323 142Q352 147 380 150T439 154H1115V78Q1115 64 1110 51T1094 26T1070 7T1038
|
||||
0H74V115Q108 125 139 142T194 184T232 244T247 325V614H52V672Z" />
|
||||
<glyph unicode="¤" glyph-name="currency" horiz-adv-x="1160" d="M223 672Q223 729 239 779T285 874L132 1027L223 1117L374 965Q418 996 470 1013T580 1030Q637 1030 688 1014T782 967L935 1120L1024 1029L873 877Q904 833 921 782T938 672Q938 615 922
|
||||
564T876 470L1028 319L937 227L785 379Q741 349 689 332T580 315Q523 315 473 331T378 377L225 224L136 315L287 467Q257 511 240 562T223 672ZM355 672Q355 626 372 586T421 515T492 466T580 448Q627 448 668 466T740 514T789 585T807 672Q807 719 789 760T741
|
||||
832T669 880T580 898Q533 898 493 881T421 832T373 760T355 672Z" />
|
||||
<glyph unicode="¥" glyph-name="yen" horiz-adv-x="1160" d="M146 625H452L44 1433H193Q219 1433 234 1421T260 1388L536 822Q550 787 560 758T577 700Q584 729 593 758T616 822L891 1388Q899 1405 915 1419T957 1433H1107L698 625H1005V523H665V418H1005V315H665V0H486V315H146V418H486V523H146V625Z"
|
||||
/>
|
||||
<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="600" d="M230 1533H368V739H230V1533ZM230 452H368V-343H230V452Z" />
|
||||
<glyph unicode="§" glyph-name="section" horiz-adv-x="1006" d="M817 1265Q805 1243 780 1243Q765 1243 746 1254T700 1278T634 1303T544 1315Q496 1315 458 1303T393 1269T352 1220T338 1161Q338 1123 362 1095T426 1043T517 998T620 953T724 903T814 840T878
|
||||
758T903 651Q903 570 864 507T741 405Q790 368 821 319T852 201Q852 131 827 72T754 -31T634 -100T470 -125Q364 -125 278 -91T132 -2L173 66Q181 79 192 86T221 93Q239 93 259 79T308 48T379 16T485 2Q535 2 574 14T641 49T682 103T696 172Q696 217 671 250T605
|
||||
308T512 355T405 398T298 445T205 506T139 587T114 698Q114 776 157 838T293 936Q243 974 212 1026T180 1154Q180 1212 204 1265T274 1359T387 1423T540 1447Q640 1447 719 1416T857 1330L817 1265ZM272 726Q272 675 307 640T396 576T517 521T645 463Q699 489 723
|
||||
526T747 611Q747 647 732 675T691 726T630 768T556 804T474 839T392 877Q326 847 299 811T272 726Z" />
|
||||
<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="614" d="M239 1289Q239 1266 230 1246T205 1211T169 1187T125 1178Q103 1178 83 1187T48 1211T23 1246T14 1289Q14 1312 23 1333T47 1369T83 1394T125 1403Q148 1403 168 1394T205 1370T230 1333T239
|
||||
1289ZM598 1289Q598 1266 589 1246T565 1211T529 1187T485 1178Q462 1178 442 1187T406 1211T382 1246T373 1289Q373 1312 382 1333T406 1369T441 1394T485 1403Q508 1403 528 1394T564 1370T589 1333T598 1289Z" />
|
||||
<glyph unicode="©" glyph-name="copyright" horiz-adv-x="1596" d="M1030 463Q1038 468 1043 471T1055 475Q1066 475 1070 472T1080 463L1141 399Q1084 333 1001 297T802 260Q704 260 624 294T486 389T397 534T365 718Q365 819 399 903T495 1048T639 1142T821
|
||||
1176Q929 1176 1005 1142T1138 1053L1092 988Q1087 982 1079 976T1059 970Q1045 970 1030 981T989 1005T926 1030T829 1042Q759 1042 703 1020T607 955T546 853T524 718Q524 641 545 581T605 479T696 417T811 395Q859 395 892 401T949 417T991 439T1030 463ZM68
|
||||
716Q68 817 94 910T167 1085T282 1233T430 1348T604 1422T798 1448Q899 1448 992 1422T1167 1348T1315 1234T1429 1086T1503 911T1529 716Q1529 616 1503 523T1430 348T1315 201T1167 86T993 12T798 -14Q697 -14 604 12T430 86T282 200T168 348T94 522T68 716ZM168
|
||||
716Q168 627 190 545T253 392T351 262T478 163T629 99T798 76Q930 76 1045 126T1246 262T1381 465T1431 716Q1431 805 1409 888T1345 1042T1247 1173T1119 1273T968 1338T798 1361Q666 1361 551 1311T351 1173T217 968T168 716Z" />
|
||||
<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="684" d="M596 840H536Q518 840 509 845T492 869L480 918Q456 897 433 881T385 854T332 837T270 831Q232 831 200 841T143 871T106 922T92 993Q92 1027 111 1060T174 1120T290 1164T470 1184V1221Q470
|
||||
1284 441 1314T355 1344Q317 1344 292 1335T249 1316T216 1297T185 1288Q171 1288 161 1295T146 1313L124 1355Q176 1404 236 1427T370 1450Q424 1450 466 1433T537 1386T581 1314T596 1221V840ZM309 923Q360 923 397 942T470 996V1101Q400 1099 352 1091T273 1069T230
|
||||
1038T217 999Q217 957 243 940T309 923Z" />
|
||||
<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="926" d="M138 518V541L387 930L445 902Q459 895 466 884T473 860Q473 843 463 827L304 566Q290 542 276 529Q291 515 304 493L463 232Q468 224 470 215T473 198Q473 170 445 157L387 129L138
|
||||
518ZM434 518V541L683 930L741 902Q755 895 762 884T769 860Q769 843 759 827L600 566Q586 542 572 529Q587 515 600 493L759 232Q764 224 766 215T769 198Q769 170 741 157L683 129L434 518Z" />
|
||||
<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="1160" d="M148 739H1008V315H857V604H148V739Z" />
|
||||
<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="694" d="M100 675H594V524H100V675Z" />
|
||||
<glyph unicode="®" glyph-name="registered" horiz-adv-x="1596" d="M68 716Q68 817 94 910T167 1085T282 1233T430 1348T604 1422T798 1448Q899 1448 992 1422T1167 1348T1315 1234T1429 1086T1503 911T1529 716Q1529 616 1503 523T1430 348T1315 201T1167
|
||||
86T993 12T798 -14Q697 -14 604 12T430 86T282 200T168 348T94 522T68 716ZM168 716Q168 627 190 545T253 392T351 262T478 163T629 99T798 76Q930 76 1045 126T1246 262T1381 465T1431 716Q1431 805 1409 888T1345 1042T1247 1173T1119 1273T968 1338T798 1361Q666
|
||||
1361 551 1311T351 1173T217 968T168 716ZM654 626V272H498V1164H786Q958 1164 1041 1102T1124 917Q1124 823 1071 757T911 666Q928 656 940 641T964 606L1192 272H1044Q1011 272 995 297L794 599Q785 612 773 619T734 626H654ZM654 740H770Q825 740 863 750T925
|
||||
781T959 830T970 897Q970 934 961 962T930 1008T873 1035T786 1044H654V740Z" />
|
||||
<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="614" d="M20 1348H594V1231H20V1348Z" />
|
||||
<glyph unicode="°" glyph-name="degree" horiz-adv-x="794" d="M70 1128Q70 1195 95 1254T164 1356T267 1425T396 1450Q465 1450 524 1425T628 1357T697 1254T722 1128Q722 1062 697 1004T628 902T525 833T396 807Q327 807 268 832T164 901T95 1003T70 1128ZM197
|
||||
1127Q197 1085 212 1049T254 985T317 943T396 927Q438 927 474 942T537 985T579 1048T594 1127Q594 1169 579 1206T537 1270T474 1313T396 1329Q354 1329 318 1314T254 1271T212 1206T197 1127Z" />
|
||||
<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="1160" d="M651 1202V826H1058V690H651V322H505V690H100V826H505V1202H651ZM100 215H1058V80H100V215Z" />
|
||||
<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="664" d="M346 1637Q398 1637 440 1622T513 1580T559 1515T576 1429Q576 1389 564 1355T530 1289T482 1229T425 1170L263 1005Q286 1011 309 1015T354 1019H549Q570 1019 581 1008T593 977V900H82V943Q82
|
||||
956 87 970T104 996L325 1215Q350 1240 372 1266T410 1318T435 1371T445 1425Q445 1476 415 1503T340 1531Q294 1531 266 1507T223 1441Q215 1427 206 1419T179 1411Q175 1411 171 1411T161 1413L90 1425Q105 1531 174 1584T346 1637Z" />
|
||||
<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="664" d="M354 1637Q405 1637 446 1623T516 1583T562 1523T578 1449Q578 1321 459 1276Q525 1257 559 1218T594 1117Q594 1062 573 1020T518 950T438 907T344 892Q287 892 245 904T173 941T121
|
||||
1002T84 1085L139 1109Q154 1115 168 1115Q197 1115 208 1092Q214 1079 223 1063T247 1033T283 1010T337 1000Q368 1000 391 1010T431 1035T455 1071T463 1112Q463 1142 455 1163T427 1199T375 1220T295 1227V1314Q382 1315 417 1345T453 1427Q453 1477 424 1503T347
|
||||
1529Q299 1529 271 1506T230 1442Q222 1426 214 1419T190 1411Q186 1411 182 1411T172 1413L105 1425Q112 1478 134 1517T188 1583T263 1623T354 1637Z" />
|
||||
<glyph unicode="´" glyph-name="acute" horiz-adv-x="614" d="M597 1449L364 1191Q350 1176 337 1170T302 1163H196L344 1405Q358 1428 374 1438T423 1449H597Z" />
|
||||
<glyph unicode="µ" glyph-name="mu" horiz-adv-x="1112" d="M300 1013V355Q300 246 354 186T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q730 74 660 40T502 6Q428 6 372 31T277 103Q284 61 287 18T290 -64V-343H201Q163 -343
|
||||
143 -323T122 -267V1013H300Z" />
|
||||
<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="1338" d="M1302 1433V1280H1083V-201H926V1280H649V-201H492V660Q388 660 305 690T164 773T74 897T42 1049Q42 1135 73 1205T163 1326T305 1405T492 1433H1302Z" />
|
||||
<glyph unicode="·" glyph-name="middot" horiz-adv-x="546" d="M124 593Q124 624 135 652T167 700T215 732T272 744Q303 744 331 732T379 700T411 652T423 593Q423 563 411 536T379 489T331 457T272 445Q242 445 215 456T168 488T136 536T124 593Z" />
|
||||
<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="614" d="M172 -247Q178 -247 186 -250T205 -258T232 -266T269 -270Q311 -270 332 -254T354 -211Q354 -192 343 -179T312 -157T261 -142T193 -131L236 10H348L324 -70Q414 -90 454 -124T495 -213Q495
|
||||
-245 479 -270T435 -314T366 -341T278 -351Q237 -351 200 -343T132 -320L149 -265Q155 -247 172 -247Z" />
|
||||
<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="664" d="M173 985H320V1425L324 1468L217 1380Q205 1371 191 1371Q168 1371 159 1385L120 1441L342 1631H450V985H580V900H173V985Z" />
|
||||
<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="762" d="M382 1449Q452 1449 508 1428T605 1366T667 1269T689 1140Q689 1068 667 1010T605 912T509 850T382 828Q311 828 254 849T157 911T94 1010T72 1140Q72 1211 94 1268T156 1366T254 1427T382
|
||||
1449ZM382 934Q466 934 507 986T549 1139Q549 1239 508 1291T382 1343Q295 1343 254 1291T212 1139Q212 1039 253 987T382 934Z" />
|
||||
<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="926" d="M236 129L178 157Q150 170 150 198Q150 215 160 232L319 493Q332 517 346 529Q334 540 319 566L160 827Q150 844 150 861Q150 889 178 902L236 930L485 541V518L236 129ZM781 541V518L532
|
||||
129L474 157Q446 170 446 198Q446 215 456 232L615 493Q628 517 642 529Q630 540 615 566L456 827Q446 844 446 861Q446 889 474 902L532 930L781 541Z" />
|
||||
<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="1424" d="M1295 267H1404V202Q1404 191 1397 184T1377 176H1295V0H1186V176H880Q862 176 852 184T839 204L829 261L1171 729H1295V267ZM155 788H302V1228L306 1271L199 1183Q187 1174 173 1174Q150
|
||||
1174 141 1188L102 1244L324 1434H432V788H562V703H155V788ZM1186 508Q1186 527 1187 549T1191 594L950 267H1186V508ZM434 53Q415 22 393 11T342 0H266L1084 1372Q1102 1401 1125 1417T1180 1433H1257L434 53Z" />
|
||||
<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="1424" d="M1126 737Q1178 737 1220 722T1293 680T1339 615T1356 529Q1356 489 1344 455T1310 389T1262 329T1205 270L1043 105Q1066 111 1089 115T1134 119H1329Q1350 119 1361 108T1373 77V0H862V43Q862
|
||||
56 867 70T884 96L1105 315Q1130 340 1152 366T1190 418T1215 471T1225 525Q1225 576 1195 603T1120 631Q1074 631 1046 607T1003 541Q995 527 986 519T959 511Q955 511 951 511T941 513L870 525Q885 631 954 684T1126 737ZM155 788H302V1228L306 1271L199 1183Q187
|
||||
1174 173 1174Q150 1174 141 1188L102 1244L324 1434H432V788H562V703H155V788ZM390 53Q371 22 349 11T298 0H222L1040 1372Q1058 1401 1081 1417T1136 1433H1213L390 53Z" />
|
||||
<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="1426" d="M1296 267H1405V202Q1405 191 1398 184T1378 176H1296V0H1187V176H881Q863 176 853 184T840 204L830 261L1172 729H1296V267ZM338 1440Q389 1440 430 1426T500 1386T546 1326T562 1252Q562
|
||||
1124 443 1079Q509 1060 543 1021T578 920Q578 865 557 823T502 753T422 710T328 695Q271 695 229 707T157 744T105 805T68 888L123 912Q138 918 152 918Q181 918 192 895Q198 882 207 866T231 836T267 813T321 803Q352 803 375 813T415 838T439 874T447 915Q447
|
||||
945 439 966T411 1002T359 1023T279 1030V1117Q366 1118 401 1148T437 1230Q437 1280 408 1306T331 1332Q283 1332 255 1309T214 1245Q206 1229 198 1222T174 1214Q170 1214 166 1214T156 1216L89 1228Q96 1281 118 1320T172 1386T247 1426T338 1440ZM1187 508Q1187
|
||||
527 1188 549T1192 594L951 267H1187V508ZM439 53Q420 22 398 11T347 0H271L1089 1372Q1107 1401 1130 1417T1185 1433H1262L439 53Z" />
|
||||
<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="796" d="M770 -212Q739 -241 702 -267T620 -313T524 -344T412 -356Q333 -356 266 -334T149 -271T72 -171T44 -37Q44 39 66 92T123 183T199 248T275 299T336 347T366 405L384 559H506L518 392V380Q518
|
||||
336 496 305T439 249T365 201T291 147T234 77T211 -22Q211 -66 228 -100T274 -159T342 -197T427 -210Q488 -210 531 -195T605 -162T654 -129T685 -114Q699 -114 707 -120T723 -137L770 -212ZM324 903Q324 929 333 952T359 992T399 1019T448 1029Q474 1029 497 1019T537
|
||||
992T563 952T573 903Q573 876 564 854T537 814T497 788T448 778Q422 778 399 787T360 814T334 853T324 903Z" />
|
||||
<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM520
|
||||
1782Q552 1782 568 1776T604 1749L815 1546H676Q655 1546 643 1549T614 1565L319 1782H520Z" />
|
||||
<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM1021
|
||||
1782L727 1566Q710 1554 697 1550T663 1546H525L736 1749Q746 1759 754 1765T772 1775T792 1780T820 1782H1021Z" />
|
||||
<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414
|
||||
532ZM1006 1546H871Q859 1546 845 1549T822 1559L692 1654Q684 1658 680 1662Q672 1656 668 1654L538 1559Q529 1553 515 1550T489 1546H354L592 1756H768L1006 1546Z" />
|
||||
<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM801
|
||||
1663Q836 1663 854 1683T874 1741H972Q972 1698 961 1662T929 1600T877 1559T806 1544Q771 1544 739 1557T678 1585T622 1614T572 1627Q538 1627 520 1606T500 1548H400Q400 1591 411 1627T444 1690T497 1731T568 1746Q603 1746 635 1733T696 1705T751 1676T801
|
||||
1663Z" />
|
||||
<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM578
|
||||
1666Q578 1644 569 1625T545 1590T510 1567T466 1558Q445 1558 426 1566T391 1590T367 1624T358 1666Q358 1689 367 1709T391 1745T425 1769T466 1778Q489 1778 509 1769T545 1745T569 1710T578 1666ZM1004 1666Q1004 1644 995 1625T971 1590T936 1567T894 1558Q871
|
||||
1558 851 1566T816 1590T793 1624T784 1666Q784 1689 792 1709T816 1745T851 1769T894 1778Q916 1778 936 1769T971 1745T995 1710T1004 1666Z" />
|
||||
<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM489
|
||||
1659Q489 1698 504 1731T545 1787T605 1824T677 1837Q716 1837 750 1824T811 1788T853 1731T868 1659Q868 1621 853 1589T812 1534T751 1498T677 1485Q639 1485 605 1498T546 1534T505 1589T489 1659ZM578 1659Q578 1616 605 1588T679 1559Q724 1559 751 1587T779
|
||||
1659Q779 1704 752 1732T679 1760Q632 1760 605 1732T578 1659Z" />
|
||||
<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="1858" d="M733 1433H1754V1275H1005L1065 799H1624V647H1084L1145 158H1754V0H982L933 392H377L198 45Q187 25 169 13T124 0H-24L733 1433ZM450 532H915L821 1285Q809 1244 795 1210T766 1144L450 532Z" />
|
||||
<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="1370" d="M643 -247Q649 -247 657 -250T676 -258T703 -266T740 -270Q782 -270 803 -254T825 -211Q825 -192 814 -179T783 -157T732 -142T664 -131L700 -13Q561 -1 448 57T256 211T133 435T90 716Q90
|
||||
878 142 1013T290 1245T517 1395T810 1449Q968 1449 1082 1400T1286 1267L1223 1178Q1216 1168 1207 1162T1181 1155Q1168 1155 1154 1164T1119 1188T1072 1218T1008 1248T922 1271T809 1281Q694 1281 599 1242T434 1129T327 951T288 716Q288 582 326 477T431 300T589
|
||||
189T785 151Q849 151 900 158T994 182T1075 222T1151 281Q1168 296 1184 296Q1200 296 1213 283L1289 200Q1206 103 1090 47T811 -15L795 -70Q885 -90 925 -124T966 -213Q966 -245 950 -270T906 -314T837 -341T749 -351Q708 -351 671 -343T603 -320L620 -265Q626
|
||||
-247 643 -247Z" />
|
||||
<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM468 1782Q500 1782 516 1776T552 1749L763 1546H624Q603 1546 591 1549T562 1565L267 1782H468Z" />
|
||||
<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM969 1782L675 1566Q658 1554 645 1550T611 1546H473L684 1749Q694 1759 702 1765T720 1775T740 1780T768 1782H969Z" />
|
||||
<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM954 1546H819Q807 1546 793 1549T770 1559L640 1654Q632 1658 628 1662Q620 1656 616 1654L486 1559Q477 1553 463 1550T437
|
||||
1546H302L540 1756H716L954 1546Z" />
|
||||
<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM526 1666Q526 1644 517 1625T493 1590T458 1567T414 1558Q393 1558 374 1566T339 1590T315 1624T306 1666Q306 1689 315
|
||||
1709T339 1745T373 1769T414 1778Q437 1778 457 1769T493 1745T517 1710T526 1666ZM952 1666Q952 1644 943 1625T919 1590T884 1567T842 1558Q819 1558 799 1566T764 1590T741 1624T732 1666Q732 1689 740 1709T764 1745T799 1769T842 1778Q864 1778 884 1769T919
|
||||
1745T943 1710T952 1666Z" />
|
||||
<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM405 1782Q437 1782 453 1776T489 1749L700 1546H561Q540 1546 528 1549T499 1565L204 1782H405Z" />
|
||||
<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM906 1782L612 1566Q595 1554 582 1550T548 1546H410L621 1749Q631 1759 639 1765T657 1775T677 1780T705 1782H906Z" />
|
||||
<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM635 1546H500Q488 1546 474 1549T451 1559L321 1654Q313 1658 309 1662Q301 1656 297 1654L167 1559Q158 1553 144 1550T118 1546H-17L221 1756H397L635 1546Z" />
|
||||
<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM206 1666Q206 1644 197 1625T173 1590T138 1567T94 1558Q73 1558 54 1566T19 1590T-5 1624T-14 1666Q-14 1689 -5 1709T19 1745T53 1769T94 1778Q117 1778 137 1769T173
|
||||
1745T197 1710T206 1666ZM632 1666Q632 1644 623 1625T599 1590T564 1567T522 1558Q499 1558 479 1566T444 1590T421 1624T412 1666Q412 1689 420 1709T444 1745T479 1769T522 1778Q544 1778 564 1769T599 1745T623 1710T632 1666Z" />
|
||||
<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="1578" d="M50 780H247V1433H782Q940 1433 1070 1382T1294 1236T1438 1009T1489 716Q1489 555 1438 423T1294 197T1071 52T782 0H247V666H50V780ZM1290 716Q1290 848 1254 952T1152 1128T992 1238T782 1276H441V780H822V666H441V157H782Q898
|
||||
157 992 195T1152 304T1254 480T1290 716Z" />
|
||||
<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="1512" d="M274 1433Q300 1433 312 1427T341 1400L1171 320Q1168 346 1167 370T1166 418V1433H1336V0H1238Q1215 0 1200 8T1169 35L340 1114Q342 1089 343 1065T344 1021V0H174V1433H274V1433ZM901 1663Q936
|
||||
1663 954 1683T974 1741H1072Q1072 1698 1061 1662T1029 1600T977 1559T906 1544Q871 1544 839 1557T778 1585T722 1614T672 1627Q638 1627 620 1606T600 1548H500Q500 1591 511 1627T544 1690T597 1731T668 1746Q703 1746 735 1733T796 1705T851 1676T901 1663Z"
|
||||
/>
|
||||
<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM640 1782Q672 1782 688 1776T724 1749L935 1546H796Q775
|
||||
1546 763 1549T734 1565L439 1782H640Z" />
|
||||
<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM1141 1782L847 1566Q830 1554 817 1550T783 1546H645L856
|
||||
1749Q866 1759 874 1765T892 1775T912 1780T940 1782H1141Z" />
|
||||
<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM1126 1546H991Q979 1546 965 1549T942 1559L812 1654Q804
|
||||
1658 800 1662Q792 1656 788 1654L658 1559Q649 1553 635 1550T609 1546H474L712 1756H888L1126 1546Z" />
|
||||
<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM921 1663Q956 1663 974 1683T994 1741H1092Q1092 1698 1081
|
||||
1662T1049 1600T997 1559T926 1544Q891 1544 859 1557T798 1585T742 1614T692 1627Q658 1627 640 1606T620 1548H520Q520 1591 531 1627T564 1690T617 1731T688 1746Q723 1746 755 1733T816 1705T871 1676T921 1663Z" />
|
||||
<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505
|
||||
716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM698 1666Q698 1644 689 1625T665 1590T630 1567T586 1558Q565
|
||||
1558 546 1566T511 1590T487 1624T478 1666Q478 1689 487 1709T511 1745T545 1769T586 1778Q609 1778 629 1769T665 1745T689 1710T698 1666ZM1124 1666Q1124 1644 1115 1625T1091 1590T1056 1567T1014 1558Q991 1558 971 1566T936 1590T913 1624T904 1666Q904
|
||||
1689 912 1709T936 1745T971 1769T1014 1778Q1036 1778 1056 1769T1091 1745T1115 1710T1124 1666Z" />
|
||||
<glyph unicode="×" glyph-name="multiply" horiz-adv-x="1160" d="M1017 1014L673 670L1027 317L932 221L578 575L221 219L126 315L482 671L137 1016L232 1112L577 766L921 1110L1017 1014Z" />
|
||||
<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q690 -15 596 9T423 82L323 -54Q301 -83 272 -96T214 -109H136L327 151Q215 249 154 393T92 716Q92 877 143 1011T287 1243T510 1395T798
|
||||
1449Q913 1449 1013 1420T1196 1337L1278 1448Q1298 1475 1314 1486T1362 1498H1462L1290 1263Q1393 1165 1449 1026T1505 716ZM290 716Q290 581 327 476T434 297L1093 1196Q1033 1238 959 1259T798 1281Q683 1281 589 1242T429 1131T326 953T290 716ZM1306 716Q1306
|
||||
842 1274 942T1181 1115L526 223Q642 153 798 153Q914 153 1008 191T1168 302T1270 479T1306 716Z" />
|
||||
<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452
|
||||
269T571 185T731 154ZM570 1782Q602 1782 618 1776T654 1749L865 1546H726Q705 1546 693 1549T664 1565L369 1782H570Z" />
|
||||
<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452
|
||||
269T571 185T731 154ZM1071 1782L777 1566Q760 1554 747 1550T713 1546H575L786 1749Q796 1759 804 1765T822 1775T842 1780T870 1782H1071Z" />
|
||||
<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378
|
||||
398T452 269T571 185T731 154ZM1056 1546H921Q909 1546 895 1549T872 1559L742 1654Q734 1658 730 1662Q722 1656 718 1654L588 1559Q579 1553 565 1550T539 1546H404L642 1756H818L1056 1546Z" />
|
||||
<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378
|
||||
398T452 269T571 185T731 154ZM628 1666Q628 1644 619 1625T595 1590T560 1567T516 1558Q495 1558 476 1566T441 1590T417 1624T408 1666Q408 1689 417 1709T441 1745T475 1769T516 1778Q539 1778 559 1769T595 1745T619 1710T628 1666ZM1054 1666Q1054 1644 1045
|
||||
1625T1021 1590T986 1567T944 1558Q921 1558 901 1566T866 1590T843 1624T834 1666Q834 1689 842 1709T866 1745T901 1769T944 1778Q966 1778 986 1769T1021 1745T1045 1710T1054 1666Z" />
|
||||
<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="1258" d="M726 570V0H533V570L8 1433H178Q204 1433 219 1420T245 1388L573 831Q593 796 606 765T631 704Q642 735 655 766T688 831L1015 1388Q1024 1404 1039 1418T1080 1433H1252L726 570ZM971 1782L677
|
||||
1566Q660 1554 647 1550T613 1546H475L686 1749Q696 1759 704 1765T722 1775T742 1780T770 1782H971Z" />
|
||||
<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="1222" d="M387 272V0H194V1433H387V1169H617Q753 1169 853 1138T1020 1048T1118 908T1151 725Q1151 625 1116 542T1014 399T846 306T617 272H387ZM387 426H617Q700 426 763 448T870 509T935 604T957 725Q957
|
||||
862 873 939T617 1016H387V426Z" />
|
||||
<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="1218" d="M673 1454Q776 1454 851 1424T976 1348T1048 1246T1072 1140Q1072 1080 1051 1037T997 961T928 903T858 854T805 805T783 747Q783 708 809 682T876 634T962 588T1049 529T1115 443T1142
|
||||
314Q1142 236 1114 175T1035 72T918 7T771 -16Q674 -16 595 18T456 107L497 175Q505 188 516 195T545 202Q563 202 583 188T630 157T695 126T786 112Q830 112 865 125T924 162T962 217T975 286Q975 342 947 377T877 437T786 484T695 534T625 604T597 712Q597 765
|
||||
619 804T675 875T748 934T820 991T876 1056T899 1140Q899 1172 887 1204T846 1263T774 1305T666 1322Q598 1322 543 1301T448 1238T387 1133T365 986V0H186V992Q186 1096 220 1181T319 1327T473 1421T673 1454Z" />
|
||||
<glyph unicode="à" glyph-name="agrave" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450
|
||||
887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276
|
||||
192T311 145T363 118T428 109ZM428 1449Q461 1449 477 1439T507 1405L656 1163H554Q533 1163 520 1169T493 1191L259 1449H428Z" />
|
||||
<glyph unicode="á" glyph-name="aacute" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450
|
||||
887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276
|
||||
192T311 145T363 118T428 109ZM818 1449L585 1191Q571 1176 558 1170T523 1163H417L565 1405Q579 1428 595 1438T644 1449H818Z" />
|
||||
<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515
|
||||
887Q450 887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263
|
||||
221 276 192T311 145T363 118T428 109ZM833 1169H714Q693 1169 674 1183L546 1309L529 1326L513 1309L384 1183Q378 1178 367 1174T344 1169H221L444 1433H610L833 1169Z" />
|
||||
<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450
|
||||
887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276
|
||||
192T311 145T363 118T428 109ZM638 1325Q674 1325 693 1346T714 1411H822Q822 1364 810 1325T774 1257T718 1214T645 1198Q610 1198 580 1212T522 1244T471 1275T424 1290Q352 1290 350 1202H239Q239 1250 252 1289T289 1357T346 1401T418 1417Q453 1417 483 1403T541
|
||||
1371T591 1340T638 1325Z" />
|
||||
<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515
|
||||
887Q450 887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263
|
||||
221 276 192T311 145T363 118T428 109ZM460 1289Q460 1266 451 1246T426 1211T390 1187T346 1178Q324 1178 304 1187T269 1211T244 1246T235 1289Q235 1312 244 1333T268 1369T304 1394T346 1403Q369 1403 389 1394T426 1370T451 1333T460 1289ZM819 1289Q819 1266
|
||||
810 1246T786 1211T750 1187T706 1178Q683 1178 663 1187T627 1211T603 1246T594 1289Q594 1312 603 1333T627 1369T662 1394T706 1403Q729 1403 749 1394T785 1370T810 1333T819 1289Z" />
|
||||
<glyph unicode="å" glyph-name="aring" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450
|
||||
887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276
|
||||
192T311 145T363 118T428 109ZM328 1315Q328 1357 344 1391T387 1450T451 1488T527 1502Q568 1502 604 1489T669 1450T713 1391T729 1315Q729 1274 713 1240T669 1182T605 1145T527 1131Q487 1131 451 1144T388 1182T344 1240T328 1315ZM428 1315Q428 1271 455
|
||||
1243T529 1215Q574 1215 601 1243T629 1315Q629 1360 602 1388T529 1416Q482 1416 455 1388T428 1315Z" />
|
||||
<glyph unicode="æ" glyph-name="ae" horiz-adv-x="1632" d="M1166 1029Q1248 1029 1318 997T1440 904T1521 756T1551 556Q1551 515 1543 501T1510 486H883Q887 395 910 328T971 215T1062 148T1180 126Q1249 126 1295 140T1371 173T1421 205T1456 220Q1470
|
||||
220 1479 216T1494 203L1541 142Q1508 102 1465 73T1372 24T1269 -4T1164 -14Q1047 -14 952 42T801 215Q774 153 731 109T634 37T522 -3T403 -16Q334 -16 277 1T179 54T115 142T92 267Q92 327 125 385T231 489T424 564T715 598V648Q715 766 665 829T515 892Q450
|
||||
892 406 875T329 836T273 798T226 780Q208 780 195 789T173 813L141 870Q225 951 315 991T519 1031Q639 1031 712 980T818 838Q872 926 958 977T1166 1029ZM715 486Q592 481 506 464T366 418T288 354T263 276Q263 189 313 149T444 109Q501 109 550 127T636 182T694
|
||||
274T715 403V486ZM1159 898Q1098 898 1050 878T968 818T913 723T885 597H1393Q1393 662 1378 717T1332 813T1259 875T1159 898Z" />
|
||||
<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="934" d="M400 -247Q406 -247 414 -250T433 -258T460 -266T497 -270Q539 -270 560 -254T582 -211Q582 -192 571 -179T540 -157T489 -142T421 -131L458 -10Q375 1 305 40T183 146T103 303T74 507Q74
|
||||
620 105 716T197 881T347 990T551 1029Q657 1029 739 995T884 897L837 833Q829 822 821 816T798 810Q783 810 766 822T721 850T656 877T561 890Q487 890 430 864T335 787T277 666T257 507Q257 415 278 344T337 224T429 150T552 124Q617 124 659 139T729 174T775
|
||||
208T811 224Q822 224 830 220T845 207L895 142Q836 70 751 33T569 -12L552 -70Q642 -90 682 -124T723 -213Q723 -245 707 -270T663 -314T594 -341T506 -351Q465 -351 428 -343T360 -320L377 -265Q383 -247 400 -247Z" />
|
||||
<glyph unicode="è" glyph-name="egrave" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954
|
||||
142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM451 1449Q484 1449 500 1439T530 1405L679 1163H577Q556
|
||||
1163 543 1169T516 1191L282 1449H451Z" />
|
||||
<glyph unicode="é" glyph-name="eacute" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954
|
||||
142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM841 1449L608 1191Q594 1176 581 1170T546 1163H440L588
|
||||
1405Q602 1428 618 1438T667 1449H841Z" />
|
||||
<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904
|
||||
207L954 142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM856 1169H737Q716 1169 697 1183L569 1309L552
|
||||
1326L536 1309L407 1183Q401 1178 390 1174T367 1169H244L467 1433H633L856 1169Z" />
|
||||
<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954
|
||||
142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM483 1289Q483 1266 474 1246T449 1211T413 1187T369
|
||||
1178Q347 1178 327 1187T292 1211T267 1246T258 1289Q258 1312 267 1333T291 1369T327 1394T369 1403Q392 1403 412 1394T449 1370T474 1333T483 1289ZM842 1289Q842 1266 833 1246T809 1211T773 1187T729 1178Q706 1178 686 1187T650 1211T626 1246T617 1289Q617
|
||||
1312 626 1333T650 1369T685 1394T729 1403Q752 1403 772 1394T808 1370T833 1333T842 1289Z" />
|
||||
<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM418 1449Q451 1449 467 1439T497 1405L646 1163H544Q523 1163 510 1169T483 1191L249 1449H418Z" />
|
||||
<glyph unicode="í" glyph-name="iacute" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM808 1449L575 1191Q561 1176 548 1170T513 1163H407L555 1405Q569 1428 585 1438T634 1449H808Z" />
|
||||
<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM822 1169H703Q682 1169 663 1183L535 1309L518 1326L502 1309L373 1183Q367 1178 356 1174T333 1169H210L433 1433H599L822 1169Z" />
|
||||
<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM450 1289Q450 1266 441 1246T416 1211T380 1187T336 1178Q314 1178 294 1187T259 1211T234 1246T225 1289Q225 1312 234 1333T258 1369T294 1394T336 1403Q359
|
||||
1403 379 1394T416 1370T441 1333T450 1289ZM809 1289Q809 1266 800 1246T776 1211T740 1187T696 1178Q673 1178 653 1187T617 1211T593 1246T584 1289Q584 1312 593 1333T617 1369T652 1394T696 1403Q719 1403 739 1394T775 1370T800 1333T809 1289Z" />
|
||||
<glyph unicode="ð" glyph-name="eth" horiz-adv-x="1106" d="M417 1065Q413 1072 411 1078T408 1091Q408 1113 431 1128L534 1200Q489 1220 439 1237T331 1268Q313 1273 301 1286T288 1323Q288 1338 293 1352L313 1414Q409 1398 499 1368T670 1290L837 1412L872
|
||||
1355Q880 1342 880 1331Q880 1310 858 1294L761 1227Q821 1178 870 1116T955 977T1009 807T1029 604Q1029 461 998 347T906 153T753 30T541 -13Q443 -13 358 20T211 114T112 265T76 466Q76 560 107 643T196 790T336 890T523 927Q623 927 711 884T865 754Q845 890
|
||||
787 985T634 1144L450 1009L417 1065ZM545 125Q616 125 673 152T771 233T835 370T861 564Q845 607 819 647T756 719T669 769T557 788Q482 788 426 763T331 695T274 592T254 464Q254 383 277 320T340 213T432 148T545 125Z" />
|
||||
<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="1112" d="M146 0V1013H252Q290 1013 300 976L314 866Q380 939 461 984T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146ZM675
|
||||
1325Q711 1325 730 1346T751 1411H859Q859 1364 847 1325T811 1257T755 1214T682 1198Q647 1198 617 1212T559 1244T508 1275T461 1290Q389 1290 387 1202H276Q276 1250 289 1289T326 1357T383 1401T455 1417Q490 1417 520 1403T578 1371T628 1340T675 1325Z" />
|
||||
<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM458 1449Q491 1449 507 1439T537 1405L686 1163H584Q563 1163 550 1169T523 1191L289 1449H458Z" />
|
||||
<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM848 1449L615 1191Q601 1176 588 1170T553 1163H447L595 1405Q609 1428 625 1438T674 1449H848Z" />
|
||||
<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM863 1169H744Q723 1169 704 1183L576 1309L559 1326L543 1309L414 1183Q408 1178 397 1174T374 1169H251L474 1433H640L863
|
||||
1169Z" />
|
||||
<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM668 1325Q704 1325 723 1346T744 1411H852Q852 1364 840 1325T804 1257T748 1214T675 1198Q640 1198 610 1212T552 1244T501
|
||||
1275T454 1290Q382 1290 380 1202H269Q269 1250 282 1289T319 1357T376 1401T448 1417Q483 1417 513 1403T571 1371T621 1340T668 1325Z" />
|
||||
<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556
|
||||
125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM490 1289Q490 1266 481 1246T456 1211T420 1187T376 1178Q354 1178 334 1187T299 1211T274 1246T265 1289Q265 1312
|
||||
274 1333T298 1369T334 1394T376 1403Q399 1403 419 1394T456 1370T481 1333T490 1289ZM849 1289Q849 1266 840 1246T816 1211T780 1187T736 1178Q713 1178 693 1187T657 1211T633 1246T624 1289Q624 1312 633 1333T657 1369T692 1394T736 1403Q759 1403 779 1394T815
|
||||
1370T840 1333T849 1289Z" />
|
||||
<glyph unicode="÷" glyph-name="divide" horiz-adv-x="1160" d="M100 739H1058V604H100V739ZM454 1026Q454 1052 463 1075T489 1115T528 1142T578 1152Q604 1152 626 1142T666 1115T693 1075T703 1026Q703 999 693 977T666 937T627 911T578 901Q551 901 529
|
||||
910T490 937T464 976T454 1026ZM454 314Q454 340 463 363T489 403T528 430T578 440Q604 440 626 430T666 403T693 363T703 314Q703 287 693 265T666 225T627 199T578 189Q551 189 529 198T490 225T464 264T454 314Z" />
|
||||
<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="1112" d="M912 884Q973 816 1006 721T1039 507Q1039 387 1006 291T910 127T758 23T557 -14Q481 -14 416 3T296 52L241 -22Q219 -51 190 -63T131 -76H64L209 120Q143 189 108 286T73 507Q73 626 107 722T204
|
||||
887T356 992T557 1029Q636 1029 703 1010T827 956L895 1047Q915 1074 931 1085T979 1097H1069L912 884ZM246 506Q246 346 305 249L741 839Q668 895 557 895Q481 895 423 868T326 791T266 669T246 506ZM557 120Q632 120 689 146T786 223T846 344T866 506Q866 657
|
||||
814 753L381 168Q451 120 557 120Z" />
|
||||
<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM452 1449Q485
|
||||
1449 501 1439T531 1405L680 1163H578Q557 1163 544 1169T517 1191L283 1449H452Z" />
|
||||
<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM842 1449L609
|
||||
1191Q595 1176 582 1170T547 1163H441L589 1405Q603 1428 619 1438T668 1449H842Z" />
|
||||
<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM857
|
||||
1169H738Q717 1169 698 1183L570 1309L553 1326L537 1309L408 1183Q402 1178 391 1174T368 1169H245L468 1433H634L857 1169Z" />
|
||||
<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM484
|
||||
1289Q484 1266 475 1246T450 1211T414 1187T370 1178Q348 1178 328 1187T293 1211T268 1246T259 1289Q259 1312 268 1333T292 1369T328 1394T370 1403Q393 1403 413 1394T450 1370T475 1333T484 1289ZM843 1289Q843 1266 834 1246T810 1211T774 1187T730 1178Q707
|
||||
1178 687 1187T651 1211T627 1246T618 1289Q618 1312 627 1333T651 1369T686 1394T730 1403Q753 1403 773 1394T809 1370T834 1333T843 1289Z" />
|
||||
<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443
|
||||
-299ZM825 1449L592 1191Q578 1176 565 1170T530 1163H424L572 1405Q586 1428 602 1438T651 1449H825Z" />
|
||||
<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="1104" d="M146 -343V1473H324V866Q387 940 469 984T656 1029Q743 1029 814 996T935 898T1012 736T1039 513Q1039 401 1009 305T923 138T786 27T602 -14Q507 -14 441 20T324 118V-343H146ZM597 887Q510
|
||||
887 445 847T324 734V244Q373 178 431 151T562 124Q703 124 779 225T855 513Q855 612 838 683T787 799T706 866T597 887Z" />
|
||||
<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443
|
||||
-299ZM467 1289Q467 1266 458 1246T433 1211T397 1187T353 1178Q331 1178 311 1187T276 1211T251 1246T242 1289Q242 1312 251 1333T275 1369T311 1394T353 1403Q376 1403 396 1394T433 1370T458 1333T467 1289ZM826 1289Q826 1266 817 1246T793 1211T757 1187T713
|
||||
1178Q690 1178 670 1187T634 1211T610 1246T601 1289Q601 1312 610 1333T634 1369T669 1394T713 1403Q736 1403 756 1394T792 1370T817 1333T826 1289Z" />
|
||||
<glyph unicode="–" glyph-name="endash" horiz-adv-x="1112" d="M156 655H956V525H156V655Z" />
|
||||
<glyph unicode="—" glyph-name="emdash" horiz-adv-x="1642" d="M156 655H1486V525H156V655Z" />
|
||||
<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="424" d="M114 1012Q85 1060 72 1108T58 1205Q58 1295 102 1377T227 1529L282 1495Q290 1490 292 1484T295 1472Q295 1458 285 1448Q269 1428 254 1406T227 1360T208 1308T201 1251Q201 1219 210
|
||||
1185T243 1113Q250 1102 250 1090Q250 1066 223 1056L114 1012Z" />
|
||||
<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="424" d="M271 1508Q300 1460 313 1412T326 1316Q326 1225 282 1143T158 991L103 1025Q95 1030 93 1036T90 1048Q90 1062 100 1072Q116 1091 131 1113T158 1160T177 1212T184 1269Q184 1301 175
|
||||
1335T142 1407Q135 1418 135 1429Q135 1453 162 1464L271 1508Z" />
|
||||
<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="424" d="M271 241Q300 193 313 145T326 49Q326 -42 282 -124T158 -276L103 -242Q95 -237 93 -231T90 -219Q90 -205 100 -195Q116 -176 131 -154T158 -107T177 -55T184 2Q184 34 175 68T142
|
||||
140Q135 151 135 162Q135 186 162 197L271 241Z" />
|
||||
<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="728" d="M114 1012Q85 1060 72 1108T58 1205Q58 1295 102 1377T227 1529L282 1495Q290 1490 292 1484T295 1472Q295 1458 285 1448Q269 1428 254 1406T227 1360T208 1308T201 1251Q201 1219
|
||||
210 1185T243 1113Q250 1102 250 1090Q250 1066 223 1056L114 1012ZM418 1012Q389 1060 376 1108T362 1205Q362 1295 406 1377T531 1529L586 1495Q594 1490 596 1484T599 1472Q599 1458 589 1448Q573 1428 558 1406T531 1360T512 1308T505 1251Q505 1219 514 1185T547
|
||||
1113Q554 1102 554 1090Q554 1066 527 1056L418 1012Z" />
|
||||
<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="728" d="M271 1508Q300 1460 313 1412T326 1316Q326 1225 282 1143T158 991L103 1025Q95 1030 93 1036T90 1048Q90 1062 100 1072Q116 1091 131 1113T158 1160T177 1212T184 1269Q184 1301
|
||||
175 1335T142 1407Q135 1418 135 1429Q135 1453 162 1464L271 1508ZM575 1508Q604 1460 617 1412T630 1316Q630 1225 586 1143T462 991L407 1025Q399 1030 397 1036T394 1048Q394 1062 404 1072Q420 1091 435 1113T462 1160T481 1212T488 1269Q488 1301 479 1335T446
|
||||
1407Q439 1418 439 1429Q439 1453 466 1464L575 1508Z" />
|
||||
<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="728" d="M271 241Q300 193 313 145T326 49Q326 -42 282 -124T158 -276L103 -242Q95 -237 93 -231T90 -219Q90 -205 100 -195Q116 -176 131 -154T158 -107T177 -55T184 2Q184 34 175 68T142 140Q135
|
||||
151 135 162Q135 186 162 197L271 241ZM575 241Q604 193 617 145T630 49Q630 -42 586 -124T462 -276L407 -242Q399 -237 397 -231T394 -219Q394 -205 404 -195Q420 -176 435 -154T462 -107T481 -55T488 2Q488 34 479 68T446 140Q439 151 439 162Q439 186 466 197L575
|
||||
241Z" />
|
||||
<glyph unicode="•" glyph-name="bullet" horiz-adv-x="1160" d="M208 595Q208 672 237 740T317 858T434 938T578 968Q655 968 723 939T841 859T921 740T951 595Q951 518 922 451T842 333T723 254T578 224Q502 224 435 253T317 333T238 450T208 595Z" />
|
||||
<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="632" d="M138 518V541L387 930L445 902Q459 895 466 884T473 860Q473 843 463 827L304 566Q290 542 276 529Q291 515 304 493L463 232Q468 224 470 215T473 198Q473 170 445 157L387 129L138 518Z" />
|
||||
<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="632" d="M485 541V518L236 129L178 157Q150 170 150 198Q150 215 160 232L319 493Q332 517 346 529Q334 540 319 566L160 827Q150 844 150 861Q150 889 178 902L236 930L485 541Z" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 78 KiB |
BIN
static/font/lato-v15-latin-regular.ttf
Normal file
BIN
static/font/lato-v15-latin-regular.ttf
Normal file
Binary file not shown.
BIN
static/font/lato-v15-latin-regular.woff
Normal file
BIN
static/font/lato-v15-latin-regular.woff
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue