Compare commits
No commits in common. "main" and "show-everyone-by-default" have entirely different histories.
main
...
show-every
25
.drone.yml
|
@ -1,26 +1,13 @@
|
||||||
---
|
---
|
||||||
kind: pipeline
|
pipeline:
|
||||||
name: default
|
build:
|
||||||
|
image: golang:stretch
|
||||||
node:
|
|
||||||
nix-daemon: 1
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build
|
|
||||||
image: nixpkgs/nix:nixos-22.05
|
|
||||||
commands:
|
commands:
|
||||||
- nix build --extra-experimental-features nix-command --extra-experimental-features flakes .
|
- go get -d -v
|
||||||
|
- go build -v
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
- custom
|
|
||||||
- push
|
|
||||||
- pull_request
|
|
||||||
- tag
|
|
||||||
- cron
|
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: 7fc9d4362327e769e2454229ceb91f587eb11755f1f96207f733e41cc650f693
|
hmac: 38948cd073f3a0b73ab7bb13ba1b5e18c64c02976abfd6dcd5bf7a4c34197e8c
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
1
.envrc
|
@ -1 +0,0 @@
|
||||||
use flake
|
|
3
.gitignore
vendored
|
@ -1,6 +1,3 @@
|
||||||
guichet
|
guichet
|
||||||
guichet.static
|
guichet.static
|
||||||
config.json
|
config.json
|
||||||
result
|
|
||||||
.direnv/
|
|
||||||
password
|
|
||||||
|
|
10
LICENSE
|
@ -31,7 +31,7 @@ these rights or asking you to surrender the rights. Therefore, you have
|
||||||
certain responsibilities if you distribute copies of the software, or if
|
certain responsibilities if you distribute copies of the software, or if
|
||||||
you modify it: responsibilities to respect the freedom of others.
|
you modify it: responsibilities to respect the freedom of others.
|
||||||
|
|
||||||
For exemple, if you distribute copies of such a program, whether
|
For example, if you distribute copies of such a program, whether
|
||||||
gratis or for a fee, you must pass on to the recipients the same
|
gratis or for a fee, you must pass on to the recipients the same
|
||||||
freedoms that you received. You must make sure that they, too, receive
|
freedoms that you received. You must make sure that they, too, receive
|
||||||
or can get the source code. And you must show them these terms so they
|
or can get the source code. And you must show them these terms so they
|
||||||
|
@ -137,7 +137,7 @@ work) run the object code and to modify the work, including scripts to
|
||||||
control those activities. However, it does not include the work's
|
control those activities. However, it does not include the work's
|
||||||
System Libraries, or general-purpose tools or generally available free
|
System Libraries, or general-purpose tools or generally available free
|
||||||
programs which are used unmodified in performing those activities but
|
programs which are used unmodified in performing those activities but
|
||||||
which are not part of the work. For exemple, Corresponding Source
|
which are not part of the work. For example, Corresponding Source
|
||||||
includes interface definition files associated with source files for
|
includes interface definition files associated with source files for
|
||||||
the work, and the source code for shared libraries and dynamically
|
the work, and the source code for shared libraries and dynamically
|
||||||
linked subprograms that the work is specifically designed to require,
|
linked subprograms that the work is specifically designed to require,
|
||||||
|
@ -323,7 +323,7 @@ fixed term (regardless of how the transaction is characterized), the
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
Corresponding Source conveyed under this section must be accompanied
|
||||||
by the Installation Information. But this requirement does not apply
|
by the Installation Information. But this requirement does not apply
|
||||||
if neither you nor any third party retains the ability to install
|
if neither you nor any third party retains the ability to install
|
||||||
modified object code on the User Product (for exemple, the work has
|
modified object code on the User Product (for example, the work has
|
||||||
been installed in ROM).
|
been installed in ROM).
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
The requirement to provide Installation Information does not include a
|
||||||
|
@ -461,7 +461,7 @@ Corresponding Source of the work from the predecessor in interest, if
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
the predecessor has it or can get it with reasonable efforts.
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
You may not impose any further restrictions on the exercise of the
|
||||||
rights granted or affirmed under this License. For exemple, you may
|
rights granted or affirmed under this License. For example, you may
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
not impose a license fee, royalty, or other charge for exercise of
|
||||||
rights granted under this License, and you may not initiate litigation
|
rights granted under this License, and you may not initiate litigation
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||||
|
@ -544,7 +544,7 @@ otherwise) that contradict the conditions of this License, they do not
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
excuse you from the conditions of this License. If you cannot convey a
|
||||||
covered work so as to satisfy simultaneously your obligations under this
|
covered work so as to satisfy simultaneously your obligations under this
|
||||||
License and any other pertinent obligations, then as a consequence you may
|
License and any other pertinent obligations, then as a consequence you may
|
||||||
not convey it at all. For exemple, if you agree to terms that obligate you
|
not convey it at all. For example, if you agree to terms that obligate you
|
||||||
to collect a royalty for further conveying from those to whom you convey
|
to collect a royalty for further conveying from those to whom you convey
|
||||||
the Program, the only way you could satisfy both those terms and this
|
the Program, the only way you could satisfy both those terms and this
|
||||||
License would be to refrain entirely from conveying the Program.
|
License would be to refrain entirely from conveying the Program.
|
||||||
|
|
5
Makefile
|
@ -1,8 +1,5 @@
|
||||||
BIN=guichet
|
BIN=guichet
|
||||||
SRC=main.go model.go view.go controller.go utils.go model-user.go model-passwd.go view-admin.go view-home.go view-invite.go view-login.go view-passwd.go view-user.go utils-http.go utils-ldap.go utils-config.go directory.go garage.go picture.go session.go utils-ssha.go
|
SRC=main.go ssha.go profile.go admin.go invite.go directory.go picture.go
|
||||||
|
|
||||||
# ssha.go profile.go admin.go invite.go directory.go utils.go picture.go login.go config.go http-utils.go home.go model-user.go gpas.go session.go model.go view.go controller.go utils-ldap.go
|
|
||||||
|
|
||||||
DOCKER=lxpz/guichet_amd64
|
DOCKER=lxpz/guichet_amd64
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
18
README.md
|
@ -1,6 +1,6 @@
|
||||||
# Guichet
|
# Guichet
|
||||||
|
|
||||||
[![Build Status](https://drone.resdigita.org/api/badges/Deuxfleurs/guichet/status.svg?ref=refs/heads/main)](https://drone.resdigita.org/Deuxfleurs/guichet)
|
[![Build Status](https://drone.deuxfleurs.fr/api/badges/Deuxfleurs/guichet/status.svg?ref=refs/heads/main)](https://drone.deuxfleurs.fr/Deuxfleurs/guichet)
|
||||||
|
|
||||||
Guichet is a simple LDAP web interface for the following tasks:
|
Guichet is a simple LDAP web interface for the following tasks:
|
||||||
|
|
||||||
|
@ -10,11 +10,11 @@ Guichet is a simple LDAP web interface for the following tasks:
|
||||||
|
|
||||||
Guichet works well with the [Bottin](https://bottin.eu) LDAP server.
|
Guichet works well with the [Bottin](https://bottin.eu) LDAP server.
|
||||||
Currently, Guichet's templates are only in French as it has been created for
|
Currently, Guichet's templates are only in French as it has been created for
|
||||||
the [Deuxfleurs](https://resdigita.org) collective.
|
the [Deuxfleurs](https://deuxfleurs.fr) collective.
|
||||||
We would gladly merge a pull request with an English transaltion !
|
We would gladly merge a pull request with an English transaltion !
|
||||||
|
|
||||||
A Docker image is provided on the [Docker hub](https://hub.docker.com/r/lxpz/guichet_amd64).
|
A Docker image is provided on the [Docker hub](https://hub.docker.com/r/lxpz/guichet_amd64).
|
||||||
An exemple for running Guichet on a Nomad cluster can be found in `guichet.hcl.exemple`.
|
An example for running Guichet on a Nomad cluster can be found in `guichet.hcl.example`.
|
||||||
|
|
||||||
Guichet takes a single command line argument, `-config <filename>`, which is the
|
Guichet takes a single command line argument, `-config <filename>`, which is the
|
||||||
path to its config file (defaults to `./config.json`).
|
path to its config file (defaults to `./config.json`).
|
||||||
|
@ -34,7 +34,7 @@ Then, run `make` in the root of the repo.
|
||||||
## Configuration of Guichet
|
## Configuration of Guichet
|
||||||
|
|
||||||
Guichet is configured using a simple JSON config file which is a dictionnary whose keys
|
Guichet is configured using a simple JSON config file which is a dictionnary whose keys
|
||||||
are described below. An exemple is provided in a further section.
|
are described below. An example is provided in a further section.
|
||||||
|
|
||||||
### HTTP listen address
|
### HTTP listen address
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ Invitation codes are created as temporary LDAP objects in a special folder.
|
||||||
- `group_can_invite`: the LDAP DN of a group whose members are allowed to send invitations to new users
|
- `group_can_invite`: the LDAP DN of a group whose members are allowed to send invitations to new users
|
||||||
- `invitation_base_dn`: the LDAP folder in which invitation codes are stored
|
- `invitation_base_dn`: the LDAP folder in which invitation codes are stored
|
||||||
- `invitation_name_attr`: just use `cn`
|
- `invitation_name_attr`: just use `cn`
|
||||||
- `invited_mail_format`: automatically set the invited user's email to this string, where `{}` is replaced by the created username (ex: `{}@resdigita.org`)
|
- `invited_mail_format`: automatically set the invited user's email to this string, where `{}` is replaced by the created username (ex: `{}@deuxfleurs.fr`)
|
||||||
- `invited_auto_groups` (list of strings): a list of DNs of LDAP groups
|
- `invited_auto_groups` (list of strings): a list of DNs of LDAP groups
|
||||||
|
|
||||||
#### Email configuration
|
#### Email configuration
|
||||||
|
@ -78,14 +78,14 @@ Guichet can send an invitation link by email. To do so, an SMTP server must be c
|
||||||
- `mail_from`: the sender email address for the invitation message
|
- `mail_from`: the sender email address for the invitation message
|
||||||
- `web_address`: the base web address of the Guichet service (used for building the invitation link)
|
- `web_address`: the base web address of the Guichet service (used for building the invitation link)
|
||||||
|
|
||||||
## exemple configuration
|
## Example configuration
|
||||||
|
|
||||||
This is a subset of the configuration we use on Deuxfleurs:
|
This is a subset of the configuration we use on Deuxfleurs:
|
||||||
|
|
||||||
```
|
```
|
||||||
{
|
{
|
||||||
"http_bind_addr": ":9991",
|
"http_bind_addr": ":9991",
|
||||||
"ldap_server_addr": "ldap://bottin2.service.2.cluster.resdigita.org:389",
|
"ldap_server_addr": "ldap://bottin2.service.2.cluster.deuxfleurs.fr:389",
|
||||||
|
|
||||||
"base_dn": "dc=deuxfleurs,dc=fr",
|
"base_dn": "dc=deuxfleurs,dc=fr",
|
||||||
"user_base_dn": "ou=users,dc=deuxfleurs,dc=fr",
|
"user_base_dn": "ou=users,dc=deuxfleurs,dc=fr",
|
||||||
|
@ -99,7 +99,7 @@ This is a subset of the configuration we use on Deuxfleurs:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Here is an exemple of Bottin ACLs that may be used to support Guichet invitations:
|
Here is an example of Bottin ACLs that may be used to support Guichet invitations:
|
||||||
|
|
||||||
```
|
```
|
||||||
"acl": [
|
"acl": [
|
||||||
|
@ -127,5 +127,5 @@ Here is an exemple of Bottin ACLs that may be used to support Guichet invitation
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
Consult [this directory](https://git.resdigita.org/Deuxfleurs/infrastructure/src/branch/main/app/directory/config)
|
Consult [this directory](https://git.deuxfleurs.fr/Deuxfleurs/infrastructure/src/branch/main/app/directory/config)
|
||||||
to view the full configuration in use on Deuxfleurs.
|
to view the full configuration in use on Deuxfleurs.
|
||||||
|
|
676
admin.go
Normal file
|
@ -0,0 +1,676 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"html/template"
|
||||||
|
"net/http"
|
||||||
|
"regexp"
|
||||||
|
"sort"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/go-ldap/ldap/v3"
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
)
|
||||||
|
|
||||||
|
func checkAdminLogin(w http.ResponseWriter, r *http.Request) *LoginStatus {
|
||||||
|
login := checkLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if !login.CanAdmin {
|
||||||
|
http.Error(w, "Not authorized to perform administrative operations.", http.StatusUnauthorized)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return login
|
||||||
|
}
|
||||||
|
|
||||||
|
type EntryList []*ldap.Entry
|
||||||
|
|
||||||
|
func (d EntryList) Len() int {
|
||||||
|
return len(d)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d EntryList) Swap(i, j int) {
|
||||||
|
d[i], d[j] = d[j], d[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d EntryList) Less(i, j int) bool {
|
||||||
|
return d[i].DN < d[j].DN
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdminUsersTplData struct {
|
||||||
|
Login *LoginStatus
|
||||||
|
UserNameAttr string
|
||||||
|
UserBaseDN string
|
||||||
|
Users EntryList
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleAdminUsers(w http.ResponseWriter, r *http.Request) {
|
||||||
|
templateAdminUsers := template.Must(template.ParseFiles("templates/layout.html", "templates/admin_users.html"))
|
||||||
|
|
||||||
|
login := checkAdminLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
searchRequest := ldap.NewSearchRequest(
|
||||||
|
config.UserBaseDN,
|
||||||
|
ldap.ScopeSingleLevel, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
fmt.Sprintf("(&(objectClass=organizationalPerson))"),
|
||||||
|
[]string{config.UserNameAttr, "dn", "displayname", "givenname", "sn", "mail"},
|
||||||
|
nil)
|
||||||
|
|
||||||
|
sr, err := login.conn.Search(searchRequest)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data := &AdminUsersTplData{
|
||||||
|
Login: login,
|
||||||
|
UserNameAttr: config.UserNameAttr,
|
||||||
|
UserBaseDN: config.UserBaseDN,
|
||||||
|
Users: EntryList(sr.Entries),
|
||||||
|
}
|
||||||
|
sort.Sort(data.Users)
|
||||||
|
|
||||||
|
templateAdminUsers.Execute(w, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdminGroupsTplData struct {
|
||||||
|
Login *LoginStatus
|
||||||
|
GroupNameAttr string
|
||||||
|
GroupBaseDN string
|
||||||
|
Groups EntryList
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleAdminGroups(w http.ResponseWriter, r *http.Request) {
|
||||||
|
templateAdminGroups := template.Must(template.ParseFiles("templates/layout.html", "templates/admin_groups.html"))
|
||||||
|
|
||||||
|
login := checkAdminLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
searchRequest := ldap.NewSearchRequest(
|
||||||
|
config.GroupBaseDN,
|
||||||
|
ldap.ScopeSingleLevel, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
fmt.Sprintf("(&(objectClass=groupOfNames))"),
|
||||||
|
[]string{config.GroupNameAttr, "dn", "description"},
|
||||||
|
nil)
|
||||||
|
|
||||||
|
sr, err := login.conn.Search(searchRequest)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data := &AdminGroupsTplData{
|
||||||
|
Login: login,
|
||||||
|
GroupNameAttr: config.GroupNameAttr,
|
||||||
|
GroupBaseDN: config.GroupBaseDN,
|
||||||
|
Groups: EntryList(sr.Entries),
|
||||||
|
}
|
||||||
|
sort.Sort(data.Groups)
|
||||||
|
|
||||||
|
templateAdminGroups.Execute(w, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
type AdminLDAPTplData struct {
|
||||||
|
DN string
|
||||||
|
|
||||||
|
Path []PathItem
|
||||||
|
Children []Child
|
||||||
|
CanAddChild bool
|
||||||
|
Props map[string]*PropValues
|
||||||
|
CanDelete bool
|
||||||
|
|
||||||
|
HasMembers bool
|
||||||
|
Members []EntryName
|
||||||
|
PossibleNewMembers []EntryName
|
||||||
|
HasGroups bool
|
||||||
|
Groups []EntryName
|
||||||
|
PossibleNewGroups []EntryName
|
||||||
|
|
||||||
|
ListMemGro map[string]string
|
||||||
|
|
||||||
|
Error string
|
||||||
|
Success bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type EntryName struct {
|
||||||
|
DN string
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
type Child struct {
|
||||||
|
DN string
|
||||||
|
Identifier string
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
type PathItem struct {
|
||||||
|
DN string
|
||||||
|
Identifier string
|
||||||
|
Active bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type PropValues struct {
|
||||||
|
Name string
|
||||||
|
Values []string
|
||||||
|
Editable bool
|
||||||
|
Deletable bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleAdminLDAP(w http.ResponseWriter, r *http.Request) {
|
||||||
|
templateAdminLDAP := template.Must(template.ParseFiles("templates/layout.html", "templates/admin_ldap.html"))
|
||||||
|
|
||||||
|
login := checkAdminLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
dn := mux.Vars(r)["dn"]
|
||||||
|
|
||||||
|
dError := ""
|
||||||
|
dSuccess := false
|
||||||
|
|
||||||
|
// Build path
|
||||||
|
path := []PathItem{
|
||||||
|
PathItem{
|
||||||
|
DN: config.BaseDN,
|
||||||
|
Identifier: config.BaseDN,
|
||||||
|
Active: dn == config.BaseDN,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
len_base_dn := len(strings.Split(config.BaseDN, ","))
|
||||||
|
dn_split := strings.Split(dn, ",")
|
||||||
|
dn_last_attr := strings.Split(dn_split[0], "=")[0]
|
||||||
|
for i := len_base_dn + 1; i <= len(dn_split); i++ {
|
||||||
|
path = append(path, PathItem{
|
||||||
|
DN: strings.Join(dn_split[len(dn_split)-i:len(dn_split)], ","),
|
||||||
|
Identifier: dn_split[len(dn_split)-i],
|
||||||
|
Active: i == len(dn_split),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle modification operation
|
||||||
|
if r.Method == "POST" {
|
||||||
|
r.ParseForm()
|
||||||
|
action := strings.Join(r.Form["action"], "")
|
||||||
|
if action == "modify" {
|
||||||
|
attr := strings.Join(r.Form["attr"], "")
|
||||||
|
values := strings.Split(strings.Join(r.Form["values"], ""), "\n")
|
||||||
|
values_filtered := []string{}
|
||||||
|
for _, v := range values {
|
||||||
|
v2 := strings.TrimSpace(v)
|
||||||
|
if v2 != "" {
|
||||||
|
values_filtered = append(values_filtered, v2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(values_filtered) == 0 {
|
||||||
|
dError = "Refusing to delete attribute."
|
||||||
|
} else {
|
||||||
|
modify_request := ldap.NewModifyRequest(dn, nil)
|
||||||
|
modify_request.Replace(attr, values_filtered)
|
||||||
|
|
||||||
|
err := login.conn.Modify(modify_request)
|
||||||
|
if err != nil {
|
||||||
|
dError = err.Error()
|
||||||
|
} else {
|
||||||
|
dSuccess = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if action == "add" {
|
||||||
|
attr := strings.Join(r.Form["attr"], "")
|
||||||
|
values := strings.Split(strings.Join(r.Form["values"], ""), "\n")
|
||||||
|
values_filtered := []string{}
|
||||||
|
for _, v := range values {
|
||||||
|
v2 := strings.TrimSpace(v)
|
||||||
|
if v2 != "" {
|
||||||
|
values_filtered = append(values_filtered, v2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
modify_request := ldap.NewModifyRequest(dn, nil)
|
||||||
|
modify_request.Add(attr, values_filtered)
|
||||||
|
|
||||||
|
err := login.conn.Modify(modify_request)
|
||||||
|
if err != nil {
|
||||||
|
dError = err.Error()
|
||||||
|
} else {
|
||||||
|
dSuccess = true
|
||||||
|
}
|
||||||
|
} else if action == "delete" {
|
||||||
|
attr := strings.Join(r.Form["attr"], "")
|
||||||
|
|
||||||
|
modify_request := ldap.NewModifyRequest(dn, nil)
|
||||||
|
modify_request.Replace(attr, []string{})
|
||||||
|
|
||||||
|
err := login.conn.Modify(modify_request)
|
||||||
|
if err != nil {
|
||||||
|
dError = err.Error()
|
||||||
|
} else {
|
||||||
|
dSuccess = true
|
||||||
|
}
|
||||||
|
} else if action == "delete-from-group" {
|
||||||
|
group := strings.Join(r.Form["group"], "")
|
||||||
|
modify_request := ldap.NewModifyRequest(group, nil)
|
||||||
|
modify_request.Delete("member", []string{dn})
|
||||||
|
|
||||||
|
err := login.conn.Modify(modify_request)
|
||||||
|
if err != nil {
|
||||||
|
dError = err.Error()
|
||||||
|
} else {
|
||||||
|
dSuccess = true
|
||||||
|
}
|
||||||
|
} else if action == "add-to-group" {
|
||||||
|
group := strings.Join(r.Form["group"], "")
|
||||||
|
modify_request := ldap.NewModifyRequest(group, nil)
|
||||||
|
modify_request.Add("member", []string{dn})
|
||||||
|
|
||||||
|
err := login.conn.Modify(modify_request)
|
||||||
|
if err != nil {
|
||||||
|
dError = err.Error()
|
||||||
|
} else {
|
||||||
|
dSuccess = true
|
||||||
|
}
|
||||||
|
} else if action == "delete-member" {
|
||||||
|
member := strings.Join(r.Form["member"], "")
|
||||||
|
modify_request := ldap.NewModifyRequest(dn, nil)
|
||||||
|
modify_request.Delete("member", []string{member})
|
||||||
|
|
||||||
|
err := login.conn.Modify(modify_request)
|
||||||
|
if err != nil {
|
||||||
|
dError = err.Error()
|
||||||
|
} else {
|
||||||
|
dSuccess = true
|
||||||
|
}
|
||||||
|
} else if action == "delete-object" {
|
||||||
|
del_request := ldap.NewDelRequest(dn, nil)
|
||||||
|
err := login.conn.Del(del_request)
|
||||||
|
if err != nil {
|
||||||
|
dError = err.Error()
|
||||||
|
} else {
|
||||||
|
http.Redirect(w, r, "/admin/ldap/"+strings.Join(dn_split[1:], ","), http.StatusFound)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get object and parse it
|
||||||
|
searchRequest := ldap.NewSearchRequest(
|
||||||
|
dn,
|
||||||
|
ldap.ScopeBaseObject, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
fmt.Sprintf("(objectclass=*)"),
|
||||||
|
[]string{},
|
||||||
|
nil)
|
||||||
|
|
||||||
|
sr, err := login.conn.Search(searchRequest)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(sr.Entries) != 1 {
|
||||||
|
http.Error(w, fmt.Sprintf("Object not found: %s", dn), http.StatusNotFound)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
object := sr.Entries[0]
|
||||||
|
|
||||||
|
// Read object properties and prepare appropriate form fields
|
||||||
|
props := make(map[string]*PropValues)
|
||||||
|
for _, attr := range object.Attributes {
|
||||||
|
name_lower := strings.ToLower(attr.Name)
|
||||||
|
if name_lower != dn_last_attr {
|
||||||
|
if existing, ok := props[name_lower]; ok {
|
||||||
|
existing.Values = append(existing.Values, attr.Values...)
|
||||||
|
} else {
|
||||||
|
editable := true
|
||||||
|
for _, restricted := range []string{
|
||||||
|
"creatorsname", "modifiersname", "createtimestamp",
|
||||||
|
"modifytimestamp", "entryuuid",
|
||||||
|
} {
|
||||||
|
if strings.EqualFold(attr.Name, restricted) {
|
||||||
|
editable = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deletable := true
|
||||||
|
for _, restricted := range []string{"objectclass", "structuralobjectclass"} {
|
||||||
|
if strings.EqualFold(attr.Name, restricted) {
|
||||||
|
deletable = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
props[name_lower] = &PropValues{
|
||||||
|
Name: attr.Name,
|
||||||
|
Values: attr.Values,
|
||||||
|
Editable: editable,
|
||||||
|
Deletable: deletable,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check objectclass to determine object type
|
||||||
|
objectClass := []string{}
|
||||||
|
if val, ok := props["objectclass"]; ok {
|
||||||
|
objectClass = val.Values
|
||||||
|
}
|
||||||
|
hasMembers, hasGroups, isOrganization := false, false, false
|
||||||
|
for _, oc := range objectClass {
|
||||||
|
if strings.EqualFold(oc, "organizationalperson") || strings.EqualFold(oc, "person") {
|
||||||
|
hasGroups = true
|
||||||
|
}
|
||||||
|
if strings.EqualFold(oc, "groupOfNames") {
|
||||||
|
hasMembers = true
|
||||||
|
}
|
||||||
|
if strings.EqualFold(oc, "organization") {
|
||||||
|
isOrganization = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse member list and prepare form section
|
||||||
|
members_dn := []string{}
|
||||||
|
if mp, ok := props["member"]; ok {
|
||||||
|
members_dn = mp.Values
|
||||||
|
delete(props, "member")
|
||||||
|
}
|
||||||
|
|
||||||
|
members := []EntryName{}
|
||||||
|
possibleNewMembers := []EntryName{}
|
||||||
|
if len(members_dn) > 0 || hasMembers {
|
||||||
|
// Lookup all existing users in the server
|
||||||
|
// to know the DN -> display name correspondance
|
||||||
|
searchRequest = ldap.NewSearchRequest(
|
||||||
|
config.UserBaseDN,
|
||||||
|
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
fmt.Sprintf("(objectClass=organizationalPerson)"),
|
||||||
|
[]string{"dn", "displayname", "description"},
|
||||||
|
nil)
|
||||||
|
sr, err = login.conn.Search(searchRequest)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
userMap := make(map[string]string)
|
||||||
|
for _, ent := range sr.Entries {
|
||||||
|
userMap[ent.DN] = ent.GetAttributeValue("displayname")
|
||||||
|
if userMap[ent.DN] == "" {
|
||||||
|
userMap[ent.DN] = ent.GetAttributeValue("description")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Select members with their name and remove them from map
|
||||||
|
for _, memdn := range members_dn {
|
||||||
|
members = append(members, EntryName{
|
||||||
|
DN: memdn,
|
||||||
|
Name: userMap[memdn],
|
||||||
|
})
|
||||||
|
delete(userMap, memdn)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create list of members that can be added
|
||||||
|
for dn, name := range userMap {
|
||||||
|
entry := EntryName{
|
||||||
|
DN: dn,
|
||||||
|
Name: name,
|
||||||
|
}
|
||||||
|
if entry.Name == "" {
|
||||||
|
entry.Name = entry.DN
|
||||||
|
}
|
||||||
|
possibleNewMembers = append(possibleNewMembers, entry)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse group list and prepare form section
|
||||||
|
groups_dn := []string{}
|
||||||
|
if gp, ok := props["memberof"]; ok {
|
||||||
|
groups_dn = gp.Values
|
||||||
|
delete(props, "memberof")
|
||||||
|
}
|
||||||
|
|
||||||
|
groups := []EntryName{}
|
||||||
|
possibleNewGroups := []EntryName{}
|
||||||
|
if len(groups_dn) > 0 || hasGroups {
|
||||||
|
// Lookup all existing groups in the server
|
||||||
|
// to know the DN -> display name correspondance
|
||||||
|
searchRequest = ldap.NewSearchRequest(
|
||||||
|
config.GroupBaseDN,
|
||||||
|
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
fmt.Sprintf("(objectClass=groupOfNames)"),
|
||||||
|
[]string{"dn", "description"},
|
||||||
|
nil)
|
||||||
|
sr, err = login.conn.Search(searchRequest)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
groupMap := make(map[string]string)
|
||||||
|
for _, ent := range sr.Entries {
|
||||||
|
groupMap[ent.DN] = ent.GetAttributeValue("displayname")
|
||||||
|
if groupMap[ent.DN] == "" {
|
||||||
|
groupMap[ent.DN] = ent.GetAttributeValue("description")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate list of current groups
|
||||||
|
for _, grpdn := range groups_dn {
|
||||||
|
groups = append(groups, EntryName{
|
||||||
|
DN: grpdn,
|
||||||
|
Name: groupMap[grpdn],
|
||||||
|
})
|
||||||
|
delete(groupMap, grpdn)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate list of possible new groups
|
||||||
|
for dn, name := range groupMap {
|
||||||
|
entry := EntryName{
|
||||||
|
DN: dn,
|
||||||
|
Name: name,
|
||||||
|
}
|
||||||
|
if entry.Name == "" {
|
||||||
|
entry.Name = entry.DN
|
||||||
|
}
|
||||||
|
possibleNewGroups = append(possibleNewGroups, entry)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get children
|
||||||
|
searchRequest = ldap.NewSearchRequest(
|
||||||
|
dn,
|
||||||
|
ldap.ScopeSingleLevel, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
fmt.Sprintf("(objectclass=*)"),
|
||||||
|
[]string{"dn", "displayname", "description"},
|
||||||
|
nil)
|
||||||
|
|
||||||
|
sr, err = login.conn.Search(searchRequest)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
sort.Sort(EntryList(sr.Entries))
|
||||||
|
|
||||||
|
children := []Child{}
|
||||||
|
for _, item := range sr.Entries {
|
||||||
|
name := item.GetAttributeValue("displayname")
|
||||||
|
if name == "" {
|
||||||
|
name = item.GetAttributeValue("description")
|
||||||
|
}
|
||||||
|
children = append(children, Child{
|
||||||
|
DN: item.DN,
|
||||||
|
Identifier: strings.Split(item.DN, ",")[0],
|
||||||
|
Name: name,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run template, finally!
|
||||||
|
templateAdminLDAP.Execute(w, &AdminLDAPTplData{
|
||||||
|
DN: dn,
|
||||||
|
|
||||||
|
Path: path,
|
||||||
|
Children: children,
|
||||||
|
Props: props,
|
||||||
|
CanAddChild: dn_last_attr == "ou" || isOrganization,
|
||||||
|
CanDelete: dn != config.BaseDN && len(children) == 0,
|
||||||
|
|
||||||
|
HasMembers: len(members) > 0 || hasMembers,
|
||||||
|
Members: members,
|
||||||
|
PossibleNewMembers: possibleNewMembers,
|
||||||
|
HasGroups: len(groups) > 0 || hasGroups,
|
||||||
|
Groups: groups,
|
||||||
|
PossibleNewGroups: possibleNewGroups,
|
||||||
|
|
||||||
|
Error: dError,
|
||||||
|
Success: dSuccess,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
type CreateData struct {
|
||||||
|
SuperDN string
|
||||||
|
Path []PathItem
|
||||||
|
Template string
|
||||||
|
|
||||||
|
IdType string
|
||||||
|
IdValue string
|
||||||
|
DisplayName string
|
||||||
|
Description string
|
||||||
|
StructuralObjectClass string
|
||||||
|
ObjectClass string
|
||||||
|
|
||||||
|
Error string
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleAdminCreate(w http.ResponseWriter, r *http.Request) {
|
||||||
|
templateAdminCreate := template.Must(template.ParseFiles("templates/layout.html", "templates/admin_create.html"))
|
||||||
|
|
||||||
|
login := checkAdminLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
template := mux.Vars(r)["template"]
|
||||||
|
super_dn := mux.Vars(r)["super_dn"]
|
||||||
|
|
||||||
|
// Check that base DN exists
|
||||||
|
searchRequest := ldap.NewSearchRequest(
|
||||||
|
super_dn,
|
||||||
|
ldap.ScopeBaseObject, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
fmt.Sprintf("(objectclass=*)"),
|
||||||
|
[]string{},
|
||||||
|
nil)
|
||||||
|
|
||||||
|
sr, err := login.conn.Search(searchRequest)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(sr.Entries) != 1 {
|
||||||
|
http.Error(w, fmt.Sprintf("Parent object %s does not exist", super_dn), http.StatusNotFound)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build path
|
||||||
|
path := []PathItem{
|
||||||
|
PathItem{
|
||||||
|
DN: config.BaseDN,
|
||||||
|
Identifier: config.BaseDN,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
len_base_dn := len(strings.Split(config.BaseDN, ","))
|
||||||
|
dn_split := strings.Split(super_dn, ",")
|
||||||
|
for i := len_base_dn + 1; i <= len(dn_split); i++ {
|
||||||
|
path = append(path, PathItem{
|
||||||
|
DN: strings.Join(dn_split[len(dn_split)-i:len(dn_split)], ","),
|
||||||
|
Identifier: dn_split[len(dn_split)-i],
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle data
|
||||||
|
data := &CreateData{
|
||||||
|
SuperDN: super_dn,
|
||||||
|
Path: path,
|
||||||
|
}
|
||||||
|
data.Template = template
|
||||||
|
if template == "user" {
|
||||||
|
data.IdType = config.UserNameAttr
|
||||||
|
data.StructuralObjectClass = "inetOrgPerson"
|
||||||
|
data.ObjectClass = "inetOrgPerson\norganizationalPerson\nperson\ntop"
|
||||||
|
} else if template == "group" {
|
||||||
|
data.IdType = config.UserNameAttr
|
||||||
|
data.StructuralObjectClass = "groupOfNames"
|
||||||
|
data.ObjectClass = "groupOfNames\ntop"
|
||||||
|
} else if template == "ou" {
|
||||||
|
data.IdType = "ou"
|
||||||
|
data.StructuralObjectClass = "organizationalUnit"
|
||||||
|
data.ObjectClass = "organizationalUnit\ntop"
|
||||||
|
} else {
|
||||||
|
data.IdType = "cn"
|
||||||
|
data.ObjectClass = "top"
|
||||||
|
data.Template = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.Method == "POST" {
|
||||||
|
r.ParseForm()
|
||||||
|
if data.Template == "" {
|
||||||
|
data.IdType = strings.TrimSpace(strings.Join(r.Form["idtype"], ""))
|
||||||
|
data.StructuralObjectClass = strings.TrimSpace(strings.Join(r.Form["soc"], ""))
|
||||||
|
data.ObjectClass = strings.Join(r.Form["oc"], "")
|
||||||
|
}
|
||||||
|
data.IdValue = strings.TrimSpace(strings.Join(r.Form["idvalue"], ""))
|
||||||
|
data.DisplayName = strings.TrimSpace(strings.Join(r.Form["displayname"], ""))
|
||||||
|
data.Description = strings.TrimSpace(strings.Join(r.Form["description"], ""))
|
||||||
|
|
||||||
|
object_class := []string{}
|
||||||
|
for _, oc := range strings.Split(data.ObjectClass, "\n") {
|
||||||
|
x := strings.TrimSpace(oc)
|
||||||
|
if x != "" {
|
||||||
|
object_class = append(object_class, x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(object_class) == 0 {
|
||||||
|
data.Error = "No object class specified"
|
||||||
|
} else if match, err := regexp.MatchString("^[a-z]+$", data.IdType); err != nil || !match {
|
||||||
|
data.Error = "Invalid identifier type"
|
||||||
|
} else if len(data.IdValue) == 0 {
|
||||||
|
data.Error = "No identifier specified"
|
||||||
|
} else if match, err := regexp.MatchString("^[\\d\\w_-]+$", data.IdValue); err != nil || !match {
|
||||||
|
data.Error = "Invalid identifier"
|
||||||
|
} else {
|
||||||
|
dn := data.IdType + "=" + data.IdValue + "," + super_dn
|
||||||
|
req := ldap.NewAddRequest(dn, nil)
|
||||||
|
req.Attribute("objectclass", object_class)
|
||||||
|
if data.StructuralObjectClass != "" {
|
||||||
|
req.Attribute("structuralobjectclass", []string{data.StructuralObjectClass})
|
||||||
|
}
|
||||||
|
if data.DisplayName != "" {
|
||||||
|
req.Attribute("displayname", []string{data.DisplayName})
|
||||||
|
}
|
||||||
|
if data.Description != "" {
|
||||||
|
req.Attribute("description", []string{data.Description})
|
||||||
|
}
|
||||||
|
|
||||||
|
err := login.conn.Add(req)
|
||||||
|
if err != nil {
|
||||||
|
data.Error = err.Error()
|
||||||
|
} else {
|
||||||
|
http.Redirect(w, r, "/admin/ldap/"+dn, http.StatusFound)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
templateAdminCreate.Execute(w, data)
|
||||||
|
}
|
|
@ -2,38 +2,30 @@
|
||||||
"http_bind_addr": ":9991",
|
"http_bind_addr": ":9991",
|
||||||
"ldap_server_addr": "ldap://127.0.0.1:389",
|
"ldap_server_addr": "ldap://127.0.0.1:389",
|
||||||
|
|
||||||
"base_dn": "dc=bottin,dc=eu",
|
"base_dn": "dc=example,dc=com",
|
||||||
"user_base_dn": "ou=users,dc=bottin,dc=eu",
|
"user_base_dn": "ou=users,dc=example,dc=com",
|
||||||
"user_name_attr": "cn",
|
"user_name_attr": "uid",
|
||||||
"group_base_dn": "ou=groups,dc=bottin,dc=eu",
|
"group_base_dn": "ou=groups,dc=example,dc=com",
|
||||||
"group_name_attr": "cn",
|
"group_name_attr": "gid",
|
||||||
|
|
||||||
"invitation_base_dn": "ou=invitations,dc=bottin,dc=eu",
|
"invitation_base_dn": "ou=invitations,dc=example,dc=com",
|
||||||
"invitation_name_attr": "cn",
|
"invitation_name_attr": "cn",
|
||||||
"invited_mail_format": "{}@exemple.com",
|
"invited_mail_format": "{}@example.com",
|
||||||
"invited_auto_groups": [
|
"invited_auto_groups": [
|
||||||
"cn=email,ou=groups,dc=bottin,dc=eu"
|
"cn=email,ou=groups,dc=example,dc=com"
|
||||||
],
|
],
|
||||||
|
|
||||||
"web_address": "http://guichet.localhost:9991",
|
"web_address": "https://guichet.example.com",
|
||||||
"mail_from": "welcome@exemple.com",
|
"mail_from": "welcome@example.com",
|
||||||
"smtp_server": "smtp.exemple.com",
|
"smtp_server": "smtp.example.com",
|
||||||
"smtp_username": "guichet",
|
"smtp_username": "guichet",
|
||||||
"smtp_password": "",
|
"smtp_password": "",
|
||||||
|
|
||||||
"admin_account": "cn=admin,dc=bottin,dc=eu",
|
"admin_account": "uid=admin,dc=example,dc=com",
|
||||||
"group_can_admin": "gid=admin,ou=groups,dc=bottin,dc=eu",
|
"group_can_admin": "gid=admin,ou=groups,dc=example,dc=com",
|
||||||
"group_can_invite": "",
|
"group_can_invite": ""
|
||||||
|
|
||||||
"mailing_list_base_dn": "ou=mailings,dc=resdigita,dc=org",
|
"s3_endpoint": "garage.example.com",
|
||||||
"mailing_list_name_attr": "cn",
|
|
||||||
"mailing_list_guest_user_base_dn": ""
|
|
||||||
|
|
||||||
|
|
||||||
"s3_admin_endpoint": "localhost:3903",
|
|
||||||
"s3_admin_token": "GlXP43PWH3LuvEGSNxKYzZCyUss8VqZmarBU+HUlrxw=",
|
|
||||||
|
|
||||||
"s3_endpoint": "localhost",
|
|
||||||
"s3_access_key": "",
|
"s3_access_key": "",
|
||||||
"s3_secret_key": "",
|
"s3_secret_key": "",
|
||||||
"s3_region": "garage",
|
"s3_region": "garage",
|
||||||
|
|
111
controller.go
|
@ -1,111 +0,0 @@
|
||||||
/*
|
|
||||||
Routes the requests to the app
|
|
||||||
*/
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
)
|
|
||||||
|
|
||||||
type ConfigFile struct {
|
|
||||||
HttpBindAddr string `json:"http_bind_addr"`
|
|
||||||
LdapServerAddr string `json:"ldap_server_addr"`
|
|
||||||
LdapTLS bool `json:"ldap_tls"`
|
|
||||||
|
|
||||||
BaseDN string `json:"base_dn"`
|
|
||||||
UserBaseDN string `json:"user_base_dn"`
|
|
||||||
UserNameAttr string `json:"user_name_attr"`
|
|
||||||
GroupBaseDN string `json:"group_base_dn"`
|
|
||||||
GroupNameAttr string `json:"group_name_attr"`
|
|
||||||
|
|
||||||
MailingBaseDN string `json:"mailing_list_base_dn"`
|
|
||||||
MailingNameAttr string `json:"mailing_list_name_attr"`
|
|
||||||
MailingGuestsBaseDN string `json:"mailing_list_guest_user_base_dn"`
|
|
||||||
|
|
||||||
InvitationBaseDN string `json:"invitation_base_dn"`
|
|
||||||
InvitationNameAttr string `json:"invitation_name_attr"`
|
|
||||||
InvitedMailFormat string `json:"invited_mail_format"`
|
|
||||||
InvitedAutoGroups []string `json:"invited_auto_groups"`
|
|
||||||
|
|
||||||
WebAddress string `json:"web_address"`
|
|
||||||
MailFrom string `json:"mail_from"`
|
|
||||||
SMTPServer string `json:"smtp_server"`
|
|
||||||
SMTPUsername string `json:"smtp_username"`
|
|
||||||
SMTPPassword string `json:"smtp_password"`
|
|
||||||
|
|
||||||
AdminAccount string `json:"admin_account"`
|
|
||||||
GroupCanInvite string `json:"group_can_invite"`
|
|
||||||
GroupCanAdmin string `json:"group_can_admin"`
|
|
||||||
|
|
||||||
S3AdminEndpoint string `json:"s3_admin_endpoint"`
|
|
||||||
S3AdminToken string `json:"s3_admin_token"`
|
|
||||||
|
|
||||||
S3Endpoint string `json:"s3_endpoint"`
|
|
||||||
S3AccessKey string `json:"s3_access_key"`
|
|
||||||
S3SecretKey string `json:"s3_secret_key"`
|
|
||||||
S3Region string `json:"s3_region"`
|
|
||||||
S3Bucket string `json:"s3_bucket"`
|
|
||||||
|
|
||||||
Org string `json:"org"`
|
|
||||||
DomainName string `json:"domain_name"`
|
|
||||||
NewUserDN string `json:"new_user_dn"`
|
|
||||||
NewUserPassword string `json:"new_user_password"`
|
|
||||||
NewUsersBaseDN string `json:"new_users_base_dn"`
|
|
||||||
NewUserDefaultDomain string `json:"new_user_default_domain"`
|
|
||||||
}
|
|
||||||
|
|
||||||
var staticPath = "./static"
|
|
||||||
|
|
||||||
/*
|
|
||||||
Create the different routes
|
|
||||||
*/
|
|
||||||
func makeGVRouter() (*mux.Router, error) {
|
|
||||||
r := mux.NewRouter()
|
|
||||||
r.HandleFunc("/", handleHome)
|
|
||||||
|
|
||||||
r.HandleFunc("/session/logout", handleLogout)
|
|
||||||
|
|
||||||
r.HandleFunc("/user", handleUser)
|
|
||||||
r.HandleFunc("/user/new", handleInviteNewAccount)
|
|
||||||
r.HandleFunc("/user/wait", handleUserWait)
|
|
||||||
r.HandleFunc("/user/mail", handleUserMail)
|
|
||||||
|
|
||||||
r.HandleFunc("/picture/{name}", handleDownloadPicture)
|
|
||||||
|
|
||||||
r.HandleFunc("/passwd", handlePasswd)
|
|
||||||
r.HandleFunc("/passwd/lost", handleLostPassword)
|
|
||||||
r.HandleFunc("/passwd/lost/{code}", handleFoundPassword)
|
|
||||||
|
|
||||||
r.HandleFunc("/admin", handleHome)
|
|
||||||
r.HandleFunc("/admin/activate", handleAdminActivateUsers)
|
|
||||||
r.HandleFunc("/admin/unactivate/{cn}", handleAdminUnactivateUser)
|
|
||||||
r.HandleFunc("/admin/activate/{cn}", handleAdminActivateUser)
|
|
||||||
r.HandleFunc("/admin/users", handleAdminUsers)
|
|
||||||
r.HandleFunc("/admin/groups", handleAdminGroups)
|
|
||||||
r.HandleFunc("/admin/ldap/{dn}", handleAdminLDAP)
|
|
||||||
r.HandleFunc("/admin/create/{template}/{super_dn}", handleAdminCreate)
|
|
||||||
|
|
||||||
// r.HandleFunc("/directory/search", handleDirectorySearch)
|
|
||||||
// r.HandleFunc("/directory", handleDirectory)
|
|
||||||
// r.HandleFunc("/garage/key", handleGarageKey)
|
|
||||||
// r.HandleFunc("/garage/website", handleGarageWebsiteList)
|
|
||||||
// r.HandleFunc("/garage/website/new", handleGarageWebsiteNew)
|
|
||||||
// r.HandleFunc("/garage/website/b/{bucket}", handleGarageWebsiteInspect)
|
|
||||||
|
|
||||||
// r.HandleFunc("/user/send_code", handleInviteSendCode)
|
|
||||||
|
|
||||||
// r.HandleFunc("/invitation/{code}", handleInvitationCode)
|
|
||||||
|
|
||||||
// r.HandleFunc("/admin-mailing", handleAdminMailing)
|
|
||||||
// r.HandleFunc("/admin/mailing/{id}", handleAdminMailingList)
|
|
||||||
|
|
||||||
staticFiles := http.FileServer(http.Dir(staticPath))
|
|
||||||
r.Handle("/static/{file:.*}", http.StripPrefix("/static/", staticFiles))
|
|
||||||
|
|
||||||
// log.Printf("Starting HTTP server on %s", config.HttpBindAddr)
|
|
||||||
err := http.ListenAndServe(config.HttpBindAddr, logRequest(r))
|
|
||||||
|
|
||||||
return r, err
|
|
||||||
}
|
|
17
directory.go
|
@ -13,7 +13,7 @@ const FIELD_NAME_PROFILE_PICTURE = "profilePicture"
|
||||||
const FIELD_NAME_DIRECTORY_VISIBILITY = "directoryVisibility"
|
const FIELD_NAME_DIRECTORY_VISIBILITY = "directoryVisibility"
|
||||||
|
|
||||||
func handleDirectory(w http.ResponseWriter, r *http.Request) {
|
func handleDirectory(w http.ResponseWriter, r *http.Request) {
|
||||||
templateDirectory := getTemplate("directory.html")
|
templateDirectory := template.Must(template.ParseFiles("templates/layout.html", "templates/directory.html"))
|
||||||
|
|
||||||
login := checkLogin(w, r)
|
login := checkLogin(w, r)
|
||||||
if login == nil {
|
if login == nil {
|
||||||
|
@ -23,8 +23,21 @@ func handleDirectory(w http.ResponseWriter, r *http.Request) {
|
||||||
templateDirectory.Execute(w, nil)
|
templateDirectory.Execute(w, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SearchResult struct {
|
||||||
|
DN string
|
||||||
|
Id string
|
||||||
|
DisplayName string
|
||||||
|
Email string
|
||||||
|
Description string
|
||||||
|
ProfilePicture string
|
||||||
|
}
|
||||||
|
|
||||||
|
type SearchResults struct {
|
||||||
|
Results []SearchResult
|
||||||
|
}
|
||||||
|
|
||||||
func handleDirectorySearch(w http.ResponseWriter, r *http.Request) {
|
func handleDirectorySearch(w http.ResponseWriter, r *http.Request) {
|
||||||
templateDirectoryResults := template.Must(template.ParseFiles(templatePath + "/directory_results.html"))
|
templateDirectoryResults := template.Must(template.ParseFiles("templates/directory_results.html"))
|
||||||
|
|
||||||
//Get input value by user
|
//Get input value by user
|
||||||
r.ParseMultipartForm(1024)
|
r.ParseMultipartForm(1024)
|
||||||
|
|
79
flake.lock
|
@ -1,79 +0,0 @@
|
||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"gomod2nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"utils": "utils"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1655245309,
|
|
||||||
"narHash": "sha256-d/YPoQ/vFn1+GTmSdvbSBSTOai61FONxB4+Lt6w/IVI=",
|
|
||||||
"owner": "tweag",
|
|
||||||
"repo": "gomod2nix",
|
|
||||||
"rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "tweag",
|
|
||||||
"repo": "gomod2nix",
|
|
||||||
"rev": "40d32f82fc60d66402eb0972e6e368aeab3faf58",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1653581809,
|
|
||||||
"narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "83658b28fe638a170a19b8933aa008b30640fbd1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1669764884,
|
|
||||||
"narHash": "sha256-1qWR/5+WtqxSedrFbUbM3zPMO7Ec2CGWaxtK4z4DdvY=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "0244e143dc943bcf661fdaf581f01eb0f5000fcf",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "0244e143dc943bcf661fdaf581f01eb0f5000fcf",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"gomod2nix": "gomod2nix",
|
|
||||||
"nixpkgs": "nixpkgs_2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"utils": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1653893745,
|
|
||||||
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "root",
|
|
||||||
"version": 7
|
|
||||||
}
|
|
46
flake.nix
|
@ -1,46 +0,0 @@
|
||||||
{
|
|
||||||
description = "A simple LDAP web interface for Bottin";
|
|
||||||
|
|
||||||
inputs.nixpkgs.url =
|
|
||||||
"github:nixos/nixpkgs/0244e143dc943bcf661fdaf581f01eb0f5000fcf";
|
|
||||||
inputs.gomod2nix.url =
|
|
||||||
"github:tweag/gomod2nix/40d32f82fc60d66402eb0972e6e368aeab3faf58";
|
|
||||||
|
|
||||||
outputs = { self, nixpkgs, gomod2nix }:
|
|
||||||
let
|
|
||||||
pkgs = import nixpkgs {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
overlays = [
|
|
||||||
(self: super: {
|
|
||||||
gomod = super.callPackage "${gomod2nix}/builder/" { };
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
src = ./.;
|
|
||||||
bottin = pkgs.gomod.buildGoApplication {
|
|
||||||
pname = "guichet";
|
|
||||||
version = "0.1.0";
|
|
||||||
src = src;
|
|
||||||
modules = ./gomod2nix.toml;
|
|
||||||
|
|
||||||
CGO_ENABLED = 0;
|
|
||||||
|
|
||||||
ldflags = [
|
|
||||||
"-X main.templatePath=${src + "/templates"}"
|
|
||||||
"-X main.staticPath=${src + "/static"}"
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = with pkgs.lib; {
|
|
||||||
description = "A simple LDAP web interface for Bottin";
|
|
||||||
homepage = "https://git.deuxfleurs.fr/Deuxfleurs/guichet";
|
|
||||||
license = licenses.gpl3Plus;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
packages.x86_64-linux.bottin = bottin;
|
|
||||||
packages.x86_64-linux.default = bottin;
|
|
||||||
|
|
||||||
devShell.x86_64-linux = pkgs.mkShell { nativeBuildInputs = [ pkgs.go ]; };
|
|
||||||
};
|
|
||||||
}
|
|
252
garage.go
|
@ -1,252 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
garage "git.deuxfleurs.fr/garage-sdk/garage-admin-sdk-golang"
|
|
||||||
"github.com/go-ldap/ldap/v3"
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
)
|
|
||||||
|
|
||||||
func gadmin() (*garage.APIClient, context.Context) {
|
|
||||||
// Set Host and other parameters
|
|
||||||
configuration := garage.NewConfiguration()
|
|
||||||
configuration.Host = config.S3AdminEndpoint
|
|
||||||
|
|
||||||
// We can now generate a client
|
|
||||||
client := garage.NewAPIClient(configuration)
|
|
||||||
|
|
||||||
// Authentication is handled through the context pattern
|
|
||||||
ctx := context.WithValue(context.Background(), garage.ContextAccessToken, config.S3AdminToken)
|
|
||||||
return client, ctx
|
|
||||||
}
|
|
||||||
|
|
||||||
func grgCreateKey(name string) (*garage.KeyInfo, error) {
|
|
||||||
client, ctx := gadmin()
|
|
||||||
|
|
||||||
kr := garage.AddKeyRequest{Name: &name}
|
|
||||||
resp, _, err := client.KeyApi.AddKey(ctx).AddKeyRequest(kr).Execute()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("%+v\n", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return resp, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func grgGetKey(accessKey string) (*garage.KeyInfo, error) {
|
|
||||||
client, ctx := gadmin()
|
|
||||||
|
|
||||||
resp, _, err := client.KeyApi.GetKey(ctx, accessKey).Execute()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("%+v\n", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return resp, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func grgCreateWebsite(gkey, bucket string) (*garage.BucketInfo, error) {
|
|
||||||
client, ctx := gadmin()
|
|
||||||
|
|
||||||
br := garage.NewCreateBucketRequest()
|
|
||||||
br.SetGlobalAlias(bucket)
|
|
||||||
|
|
||||||
// Create Bucket
|
|
||||||
binfo, _, err := client.BucketApi.CreateBucket(ctx).CreateBucketRequest(*br).Execute()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("%+v\n", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Allow user's key
|
|
||||||
ar := garage.AllowBucketKeyRequest{
|
|
||||||
BucketId: *binfo.Id,
|
|
||||||
AccessKeyId: gkey,
|
|
||||||
Permissions: *garage.NewAllowBucketKeyRequestPermissions(true, true, true),
|
|
||||||
}
|
|
||||||
binfo, _, err = client.BucketApi.AllowBucketKey(ctx).AllowBucketKeyRequest(ar).Execute()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("%+v\n", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Expose website and set quota
|
|
||||||
wr := garage.NewUpdateBucketRequestWebsiteAccess()
|
|
||||||
wr.SetEnabled(true)
|
|
||||||
wr.SetIndexDocument("index.html")
|
|
||||||
wr.SetErrorDocument("error.html")
|
|
||||||
|
|
||||||
qr := garage.NewUpdateBucketRequestQuotas()
|
|
||||||
qr.SetMaxSize(1024 * 1024 * 50) // 50MB
|
|
||||||
qr.SetMaxObjects(10000) //10k objects
|
|
||||||
|
|
||||||
ur := garage.NewUpdateBucketRequest()
|
|
||||||
ur.SetWebsiteAccess(*wr)
|
|
||||||
ur.SetQuotas(*qr)
|
|
||||||
|
|
||||||
binfo, _, err = client.BucketApi.UpdateBucket(ctx, *binfo.Id).UpdateBucketRequest(*ur).Execute()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("%+v\n", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return updated binfo
|
|
||||||
return binfo, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func grgGetBucket(bid string) (*garage.BucketInfo, error) {
|
|
||||||
client, ctx := gadmin()
|
|
||||||
|
|
||||||
resp, _, err := client.BucketApi.GetBucketInfo(ctx, bid).Execute()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("%+v\n", err)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return resp, nil
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func checkLoginAndS3(w http.ResponseWriter, r *http.Request) (*LoginStatus, *garage.KeyInfo, error) {
|
|
||||||
login := checkLogin(w, r)
|
|
||||||
if login == nil {
|
|
||||||
return nil, nil, errors.New("LDAP login failed")
|
|
||||||
}
|
|
||||||
|
|
||||||
keyID := login.UserEntry.GetAttributeValue("garage_s3_access_key")
|
|
||||||
if keyID == "" {
|
|
||||||
keyPair, err := grgCreateKey(login.Info.Username)
|
|
||||||
if err != nil {
|
|
||||||
return login, nil, err
|
|
||||||
}
|
|
||||||
modify_request := ldap.NewModifyRequest(login.Info.DN, nil)
|
|
||||||
modify_request.Replace("garage_s3_access_key", []string{*keyPair.AccessKeyId})
|
|
||||||
// @FIXME compatibility feature for bagage (SFTP+webdav)
|
|
||||||
// you can remove it once bagage will be updated to fetch the key from garage directly
|
|
||||||
// or when bottin will be able to dynamically fetch it.
|
|
||||||
modify_request.Replace("garage_s3_secret_key", []string{*keyPair.SecretAccessKey})
|
|
||||||
err = login.conn.Modify(modify_request)
|
|
||||||
return login, keyPair, err
|
|
||||||
}
|
|
||||||
// Note: we could simply return the login info, but LX asked we do not
|
|
||||||
// store the secrets in LDAP in the future.
|
|
||||||
keyPair, err := grgGetKey(keyID)
|
|
||||||
return login, keyPair, err
|
|
||||||
}
|
|
||||||
|
|
||||||
type keyView struct {
|
|
||||||
Status *LoginStatus
|
|
||||||
Key *garage.KeyInfo
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleGarageKey(w http.ResponseWriter, r *http.Request) {
|
|
||||||
login, s3key, err := checkLoginAndS3(w, r)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
view := keyView{Status: login, Key: s3key}
|
|
||||||
|
|
||||||
tKey := getTemplate("garage/key.html")
|
|
||||||
tKey.Execute(w, &view)
|
|
||||||
}
|
|
||||||
|
|
||||||
type webListView struct {
|
|
||||||
Status *LoginStatus
|
|
||||||
Key *garage.KeyInfo
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleGarageWebsiteList(w http.ResponseWriter, r *http.Request) {
|
|
||||||
login, s3key, err := checkLoginAndS3(w, r)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
view := webListView{Status: login, Key: s3key}
|
|
||||||
|
|
||||||
tWebsiteList := getTemplate("garage/website/list.html")
|
|
||||||
tWebsiteList.Execute(w, &view)
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleGarageWebsiteNew(w http.ResponseWriter, r *http.Request) {
|
|
||||||
_, s3key, err := checkLoginAndS3(w, r)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
tWebsiteNew := getTemplate("garage/website/new.html")
|
|
||||||
if r.Method == "POST" {
|
|
||||||
r.ParseForm()
|
|
||||||
log.Println(r.Form)
|
|
||||||
|
|
||||||
bucket := strings.Join(r.Form["bucket"], "")
|
|
||||||
if bucket == "" {
|
|
||||||
bucket = strings.Join(r.Form["bucket2"], "")
|
|
||||||
}
|
|
||||||
if bucket == "" {
|
|
||||||
log.Println("Form empty")
|
|
||||||
// @FIXME we need to return the error to the user
|
|
||||||
tWebsiteNew.Execute(w, nil)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
binfo, err := grgCreateWebsite(*s3key.AccessKeyId, bucket)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
// @FIXME we need to return the error to the user
|
|
||||||
tWebsiteNew.Execute(w, nil)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
http.Redirect(w, r, "/garage/website/b/"+*binfo.Id, http.StatusFound)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
tWebsiteNew.Execute(w, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
type webInspectView struct {
|
|
||||||
Status *LoginStatus
|
|
||||||
Key *garage.KeyInfo
|
|
||||||
Bucket *garage.BucketInfo
|
|
||||||
IndexDoc string
|
|
||||||
ErrorDoc string
|
|
||||||
MaxObjects int64
|
|
||||||
MaxSize int64
|
|
||||||
UsedSizePct float64
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleGarageWebsiteInspect(w http.ResponseWriter, r *http.Request) {
|
|
||||||
login, s3key, err := checkLoginAndS3(w, r)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
bucketId := mux.Vars(r)["bucket"]
|
|
||||||
binfo, err := grgGetBucket(bucketId)
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
wc := binfo.GetWebsiteConfig()
|
|
||||||
q := binfo.GetQuotas()
|
|
||||||
|
|
||||||
view := webInspectView{
|
|
||||||
Status: login,
|
|
||||||
Key: s3key,
|
|
||||||
Bucket: binfo,
|
|
||||||
IndexDoc: (&wc).GetIndexDocument(),
|
|
||||||
ErrorDoc: (&wc).GetErrorDocument(),
|
|
||||||
MaxObjects: (&q).GetMaxObjects(),
|
|
||||||
MaxSize: (&q).GetMaxSize(),
|
|
||||||
}
|
|
||||||
|
|
||||||
tWebsiteInspect := getTemplate("garage/website/inspect.html")
|
|
||||||
tWebsiteInspect.Execute(w, &view)
|
|
||||||
}
|
|
35
go.mod
|
@ -1,37 +1,18 @@
|
||||||
module git.deuxfleurs.fr/Deuxfleurs/guichet
|
module deuxfleurs.fr/Deuxfleurs/guichet
|
||||||
|
|
||||||
go 1.18
|
go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
git.deuxfleurs.fr/garage-sdk/garage-admin-sdk-golang v0.0.0-20230131081355-c965fe7f7dc9
|
github.com/emersion/go-sasl v0.0.0-20191210011802-430746ea8b9b
|
||||||
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21
|
github.com/emersion/go-smtp v0.12.1
|
||||||
github.com/emersion/go-smtp v0.17.0
|
github.com/go-ldap/ldap v3.0.3+incompatible
|
||||||
github.com/go-ldap/ldap/v3 v3.1.6
|
github.com/go-ldap/ldap/v3 v3.1.6
|
||||||
github.com/google/uuid v1.1.1
|
github.com/google/uuid v1.1.1
|
||||||
github.com/gorilla/mux v1.7.3
|
github.com/gorilla/mux v1.7.3
|
||||||
github.com/gorilla/sessions v1.2.0
|
github.com/gorilla/sessions v1.2.0
|
||||||
github.com/jsimonetti/pwscheme v0.0.0-20220125093853-4d9895f5db73
|
|
||||||
github.com/minio/minio-go/v7 v7.0.0
|
github.com/minio/minio-go/v7 v7.0.0
|
||||||
|
github.com/sirupsen/logrus v1.6.0
|
||||||
|
github.com/stretchr/objx v0.1.1 // indirect
|
||||||
|
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6
|
||||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
|
|
||||||
)
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/go-asn1-ber/asn1-ber v1.3.1 // indirect
|
|
||||||
github.com/golang/protobuf v1.4.2 // indirect
|
|
||||||
github.com/gorilla/securecookie v1.1.1 // indirect
|
|
||||||
github.com/json-iterator/go v1.1.10 // indirect
|
|
||||||
github.com/klauspost/cpuid v1.2.3 // indirect
|
|
||||||
github.com/minio/md5-simd v1.1.0 // indirect
|
|
||||||
github.com/minio/sha256-simd v0.1.1 // indirect
|
|
||||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect
|
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect
|
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202 // indirect
|
|
||||||
golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558 // indirect
|
|
||||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642 // indirect
|
|
||||||
golang.org/x/text v0.3.3 // indirect
|
|
||||||
google.golang.org/appengine v1.6.6 // indirect
|
|
||||||
google.golang.org/protobuf v1.25.0 // indirect
|
|
||||||
gopkg.in/ini.v1 v1.57.0 // indirect
|
|
||||||
)
|
)
|
||||||
|
|
386
go.sum
|
@ -1,121 +1,20 @@
|
||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
|
||||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
|
||||||
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
|
|
||||||
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
|
|
||||||
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
|
|
||||||
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
|
|
||||||
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
|
|
||||||
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
|
|
||||||
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
|
|
||||||
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
|
|
||||||
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
|
|
||||||
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
|
|
||||||
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
|
|
||||||
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
|
|
||||||
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
|
||||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
|
||||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
|
||||||
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
|
|
||||||
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
|
|
||||||
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
|
|
||||||
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
|
|
||||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
|
||||||
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
|
|
||||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
|
||||||
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
|
|
||||||
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
|
|
||||||
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
|
|
||||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
|
||||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
|
||||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
|
||||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
|
||||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
|
||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
|
||||||
git.deuxfleurs.fr/garage-sdk/garage-admin-sdk-golang v0.0.0-20230131081355-c965fe7f7dc9 h1:ERg8KCpIKym98EOKa8Gq0NSBxsasD3sqb/R0gg1wOzU=
|
|
||||||
git.deuxfleurs.fr/garage-sdk/garage-admin-sdk-golang v0.0.0-20230131081355-c965fe7f7dc9/go.mod h1:TlSL6QVxozmdRaSgP6Akspi0HCJv4HAkkq3Dldru4GM=
|
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
|
||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
|
||||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
github.com/emersion/go-sasl v0.0.0-20190817083125-240c8404624e/go.mod h1:G/dpzLu16WtQpBfQ/z3LYiYJn3ZhKSGWn83fyoyQe/k=
|
github.com/emersion/go-sasl v0.0.0-20190817083125-240c8404624e/go.mod h1:G/dpzLu16WtQpBfQ/z3LYiYJn3ZhKSGWn83fyoyQe/k=
|
||||||
github.com/emersion/go-sasl v0.0.0-20191210011802-430746ea8b9b h1:uhWtEWBHgop1rqEk2klKaxPAkVDCXexai6hSuRQ7Nvs=
|
github.com/emersion/go-sasl v0.0.0-20191210011802-430746ea8b9b h1:uhWtEWBHgop1rqEk2klKaxPAkVDCXexai6hSuRQ7Nvs=
|
||||||
github.com/emersion/go-sasl v0.0.0-20191210011802-430746ea8b9b/go.mod h1:G/dpzLu16WtQpBfQ/z3LYiYJn3ZhKSGWn83fyoyQe/k=
|
github.com/emersion/go-sasl v0.0.0-20191210011802-430746ea8b9b/go.mod h1:G/dpzLu16WtQpBfQ/z3LYiYJn3ZhKSGWn83fyoyQe/k=
|
||||||
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21 h1:OJyUGMJTzHTd1XQp98QTaHernxMYzRaOasRir9hUlFQ=
|
|
||||||
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ=
|
|
||||||
github.com/emersion/go-smtp v0.12.1 h1:1R8BDqrR2HhlGwgFYcOi+BVTvK1bMjAB65QcVpJ5sNA=
|
github.com/emersion/go-smtp v0.12.1 h1:1R8BDqrR2HhlGwgFYcOi+BVTvK1bMjAB65QcVpJ5sNA=
|
||||||
github.com/emersion/go-smtp v0.12.1/go.mod h1:SD9V/xa4ndMw77lR3Mf7htkp8RBNYuPh9UeuBs9tpUQ=
|
github.com/emersion/go-smtp v0.12.1/go.mod h1:SD9V/xa4ndMw77lR3Mf7htkp8RBNYuPh9UeuBs9tpUQ=
|
||||||
github.com/emersion/go-smtp v0.17.0 h1:tq90evlrcyqRfE6DSXaWVH54oX6OuZOQECEmhWBMEtI=
|
|
||||||
github.com/emersion/go-smtp v0.17.0/go.mod h1:qm27SGYgoIPRot6ubfQ/GpiPy/g3PaZAVRxiO/sDUgQ=
|
|
||||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
|
||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
|
||||||
github.com/go-asn1-ber/asn1-ber v1.3.1 h1:gvPdv/Hr++TRFCl0UbPFHC54P9N9jgsRPnmnr419Uck=
|
github.com/go-asn1-ber/asn1-ber v1.3.1 h1:gvPdv/Hr++TRFCl0UbPFHC54P9N9jgsRPnmnr419Uck=
|
||||||
github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
|
github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
|
||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
github.com/go-ldap/ldap v3.0.3+incompatible h1:HTeSZO8hWMS1Rgb2Ziku6b8a7qRIZZMHjsvuZyatzwk=
|
||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
github.com/go-ldap/ldap v3.0.3+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc=
|
||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
|
||||||
github.com/go-ldap/ldap/v3 v3.1.6 h1:VTihvB7egSAvU6KOagaiA/EvgJMR2jsjRAVIho2ydBo=
|
github.com/go-ldap/ldap/v3 v3.1.6 h1:VTihvB7egSAvU6KOagaiA/EvgJMR2jsjRAVIho2ydBo=
|
||||||
github.com/go-ldap/ldap/v3 v3.1.6/go.mod h1:5Zun81jBTabRaI8lzN7E1JjyEl1g6zI6u9pd8luAK4Q=
|
github.com/go-ldap/ldap/v3 v3.1.6/go.mod h1:5Zun81jBTabRaI8lzN7E1JjyEl1g6zI6u9pd8luAK4Q=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
|
||||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
|
||||||
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
|
||||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
|
||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
|
||||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
|
||||||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
|
||||||
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
|
||||||
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
|
||||||
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
|
||||||
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
|
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
|
||||||
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
|
||||||
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
|
||||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
|
||||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
|
||||||
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
|
|
||||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
|
||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=
|
|
||||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
|
||||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
|
||||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
|
||||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
|
||||||
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
|
||||||
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
|
||||||
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
|
||||||
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
|
||||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
|
||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
|
||||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
|
||||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
|
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||||
github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
|
github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
|
||||||
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
|
@ -123,24 +22,15 @@ github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyC
|
||||||
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
||||||
github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ=
|
github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ=
|
||||||
github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
||||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
|
||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
|
||||||
github.com/jsimonetti/pwscheme v0.0.0-20220125093853-4d9895f5db73 h1:ZhC4QngptYaGx53+ph1RjxcH8fkCozBaY+935TNX4i8=
|
|
||||||
github.com/jsimonetti/pwscheme v0.0.0-20220125093853-4d9895f5db73/go.mod h1:t0Q9JvoMTfTYdAWIk2MF69iz+Qpdk9D+PgVu6fVmaDI=
|
|
||||||
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
|
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
|
||||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
|
||||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
|
||||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
|
||||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
|
||||||
github.com/klauspost/cpuid v1.2.3 h1:CCtW0xUnWGVINKvE/WWOYKdsPV6mawAtvQuSl8guwQs=
|
github.com/klauspost/cpuid v1.2.3 h1:CCtW0xUnWGVINKvE/WWOYKdsPV6mawAtvQuSl8guwQs=
|
||||||
github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
|
||||||
github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4=
|
github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4=
|
||||||
github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
|
github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw=
|
||||||
github.com/minio/minio-go/v7 v7.0.0 h1:99hRCmsmMi+hKK93C26iPnRQebTsdK8GEx8Xb4XLr7I=
|
github.com/minio/minio-go/v7 v7.0.0 h1:99hRCmsmMi+hKK93C26iPnRQebTsdK8GEx8Xb4XLr7I=
|
||||||
|
@ -155,279 +45,33 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLD
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
|
||||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
|
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
|
|
||||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||||
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs=
|
|
||||||
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
|
||||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
|
||||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
|
||||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
|
||||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
|
||||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6 h1:Sy5bstxEqwwbYs6n0/pBuxKENqOeZUgD45Gp3Q3pqLg=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
|
||||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
|
||||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
|
||||||
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
|
|
||||||
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
|
|
||||||
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
|
||||||
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
|
||||||
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
|
||||||
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
|
||||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
|
||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
|
||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
|
||||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
|
|
||||||
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
|
||||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
|
||||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
|
||||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
|
||||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
|
||||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
|
||||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
|
||||||
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190522155817-f3200d17e092 h1:4QSRKanuywn15aTZvI/mIDEgPQpswuFndXpOj3rKEco=
|
||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
||||||
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
||||||
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
||||||
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
||||||
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
|
||||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
|
||||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA=
|
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558 h1:D7nTwh4J0i+5mW4Zjzn5omvlr6YBcWywE6KOcatyNxY=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc=
|
||||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8=
|
||||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642 h1:B6caxRw+hozq68X2MY7jEpZh/cr4/aHLv9xU8Kkadrw=
|
|
||||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|
||||||
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
|
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
|
||||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
|
||||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
|
||||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
|
||||||
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
|
||||||
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
|
||||||
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
|
|
||||||
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
|
||||||
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
|
||||||
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
|
||||||
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
|
||||||
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
|
||||||
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
|
||||||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
|
||||||
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
|
|
||||||
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
|
||||||
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
|
|
||||||
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
|
||||||
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
|
||||||
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
|
||||||
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
|
||||||
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
|
||||||
google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
|
||||||
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
|
||||||
google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
|
||||||
google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
|
||||||
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
|
||||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
|
||||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
|
||||||
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
|
|
||||||
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
|
||||||
google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc=
|
|
||||||
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
|
||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
|
||||||
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
|
||||||
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
|
||||||
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
|
||||||
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
|
||||||
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
|
||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
|
||||||
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
|
|
||||||
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
|
||||||
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
|
||||||
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
|
||||||
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
|
||||||
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
|
||||||
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
|
|
||||||
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
|
|
||||||
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
|
||||||
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
|
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
|
||||||
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
|
|
||||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
|
||||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
|
||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
|
||||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
|
||||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
|
||||||
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
|
||||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
|
||||||
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
|
||||||
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
|
|
||||||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
|
||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
|
||||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
|
||||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
|
||||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
|
||||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
|
||||||
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
|
|
||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
|
||||||
gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww=
|
gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww=
|
||||||
gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
||||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
||||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
|
||||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
|
||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
|
||||||
|
|
111
gomod2nix.toml
|
@ -1,111 +0,0 @@
|
||||||
schema = 3
|
|
||||||
|
|
||||||
[mod]
|
|
||||||
[mod."github.com/davecgh/go-spew"]
|
|
||||||
version = "v1.1.1"
|
|
||||||
hash = "sha256-nhzSUrE1fCkN0+RL04N4h8jWmRFPPPWbCuDc7Ss0akI="
|
|
||||||
[mod."github.com/dustin/go-humanize"]
|
|
||||||
version = "v1.0.0"
|
|
||||||
hash = "sha256-gy4G1PnHD9iw2MitHX6y1y93qr3C9IncmXL7ttUMDs8="
|
|
||||||
[mod."github.com/emersion/go-sasl"]
|
|
||||||
version = "v0.0.0-20191210011802-430746ea8b9b"
|
|
||||||
hash = "sha256-bADpAn0ZhlTTsEB3MsG8J31cQjTtHTzohX/wkL1aMIc="
|
|
||||||
[mod."github.com/emersion/go-smtp"]
|
|
||||||
version = "v0.12.1"
|
|
||||||
hash = "sha256-fiss5y7chfHv80vIQ9Xwx3J+3qLMA63EOP4OG3DxAtI="
|
|
||||||
[mod."github.com/go-asn1-ber/asn1-ber"]
|
|
||||||
version = "v1.3.1"
|
|
||||||
hash = "sha256-Alh6bUq9HoBDhY+n6W7xNBto/dUMxPGvucA6guarrjc="
|
|
||||||
[mod."github.com/go-ldap/ldap/v3"]
|
|
||||||
version = "v3.1.6"
|
|
||||||
hash = "sha256-UPUdYKOoCQWgl2Onbq1Oql7XU4TeYQA/+j4atwhdKbE="
|
|
||||||
[mod."github.com/google/gofuzz"]
|
|
||||||
version = "v1.0.0"
|
|
||||||
hash = "sha256-ZvgcSQt4kMwS6nvPp3jrlCHSH3bky1oBD6kytnEa5GM="
|
|
||||||
[mod."github.com/google/uuid"]
|
|
||||||
version = "v1.1.1"
|
|
||||||
hash = "sha256-66PXC/RCPUyhS9PhkIPQFR3tbM2zZYDNPGXN7JJj3UE="
|
|
||||||
[mod."github.com/gopherjs/gopherjs"]
|
|
||||||
version = "v0.0.0-20181017120253-0766667cb4d1"
|
|
||||||
hash = "sha256-AuXnjjoLbFZ85Oi8sldH117MBh+yCUB9HU5Y5syJ7Lg="
|
|
||||||
[mod."github.com/gorilla/mux"]
|
|
||||||
version = "v1.7.3"
|
|
||||||
hash = "sha256-YZSIN7Ua+hPqSIrT+tiRz3aFqJ1EWHvwee+PptpHI28="
|
|
||||||
[mod."github.com/gorilla/securecookie"]
|
|
||||||
version = "v1.1.1"
|
|
||||||
hash = "sha256-IBBYWfdOuXvQsb01DaA8tBizCfAE1J2KLXIn3W+NeJk="
|
|
||||||
[mod."github.com/gorilla/sessions"]
|
|
||||||
version = "v1.2.0"
|
|
||||||
hash = "sha256-4V7yd/vf03CEsb3pz5dbLWwv7t9QgKkEhVXtc1/z5s8="
|
|
||||||
[mod."github.com/jsimonetti/pwscheme"]
|
|
||||||
version = "v0.0.0-20220125093853-4d9895f5db73"
|
|
||||||
hash = "sha256-YF3RKU/4CWvLPgGzUd7Hk/2+41OUFuRWZgzQuqcsKg0="
|
|
||||||
[mod."github.com/json-iterator/go"]
|
|
||||||
version = "v1.1.10"
|
|
||||||
hash = "sha256-jdS2C0WsgsWREBSj+YUzSqdZofMfUMecaOQ/lB9Mu6k="
|
|
||||||
[mod."github.com/jtolds/gls"]
|
|
||||||
version = "v4.20.0+incompatible"
|
|
||||||
hash = "sha256-Zu5naRjnwOYBzRv0CYhIZTizA0AajzOg7mJrL7Bo/cw="
|
|
||||||
[mod."github.com/klauspost/cpuid"]
|
|
||||||
version = "v1.2.3"
|
|
||||||
hash = "sha256-1IBlONMxKVgudV/mzNrFZB60z8w4xFjVbEU2DoIAoeg="
|
|
||||||
[mod."github.com/konsorten/go-windows-terminal-sequences"]
|
|
||||||
version = "v1.0.3"
|
|
||||||
hash = "sha256-9HojTXKv7b3HiEhYaKXDxraEfvU5vrg47FbCjTRpOvs="
|
|
||||||
[mod."github.com/minio/md5-simd"]
|
|
||||||
version = "v1.1.0"
|
|
||||||
hash = "sha256-jJbDwg7KlLB991wj1U6y+kJKOUxKVGQrDbM3nY+6qxE="
|
|
||||||
[mod."github.com/minio/minio-go/v7"]
|
|
||||||
version = "v7.0.0"
|
|
||||||
hash = "sha256-xWAELgH6mWVGKFEe2gbzvigJDNk+ELmegJe09KvUqvY="
|
|
||||||
[mod."github.com/minio/sha256-simd"]
|
|
||||||
version = "v0.1.1"
|
|
||||||
hash = "sha256-HpcuLTnpcyKe0ua2MN/ysK5cXdrwquDjrx4Y2dG6W2s="
|
|
||||||
[mod."github.com/mitchellh/go-homedir"]
|
|
||||||
version = "v1.1.0"
|
|
||||||
hash = "sha256-oduBKXHAQG8X6aqLEpqZHs5DOKe84u6WkBwi4W6cv3k="
|
|
||||||
[mod."github.com/modern-go/concurrent"]
|
|
||||||
version = "v0.0.0-20180228061459-e0a39a4cb421"
|
|
||||||
hash = "sha256-+bdeHUArnpkk4eMQIwXm9K249NkpwAjoTrXrGn/4VUE="
|
|
||||||
[mod."github.com/modern-go/reflect2"]
|
|
||||||
version = "v0.0.0-20180701023420-4b7aa43c6742"
|
|
||||||
hash = "sha256-RyIwgrPwtd4lNjLGkBVxRvu5IdXLDqf5F69QWLm0zLw="
|
|
||||||
[mod."github.com/nfnt/resize"]
|
|
||||||
version = "v0.0.0-20180221191011-83c6a9932646"
|
|
||||||
hash = "sha256-yvPV+HlDOyJsiwAcVHQkmtw8DHSXyw+cXHkigXm8rAA="
|
|
||||||
[mod."github.com/pmezard/go-difflib"]
|
|
||||||
version = "v1.0.0"
|
|
||||||
hash = "sha256-/FtmHnaGjdvEIKAJtrUfEhV7EVo5A/eYrtdnUkuxLDA="
|
|
||||||
[mod."github.com/sirupsen/logrus"]
|
|
||||||
version = "v1.6.0"
|
|
||||||
hash = "sha256-4v27X4yyl52BtZcZEnDe0tfvOaEq+TCcp7R8HBzreDM="
|
|
||||||
[mod."github.com/smartystreets/assertions"]
|
|
||||||
version = "v0.0.0-20180927180507-b2de0cb4f26d"
|
|
||||||
hash = "sha256-PoE+VQEnzJogI/mDBJ6dTCCR217nFjHfYWXQt9Vr9MQ="
|
|
||||||
[mod."github.com/smartystreets/goconvey"]
|
|
||||||
version = "v0.0.0-20190330032615-68dc04aab96a"
|
|
||||||
hash = "sha256-HD+AZE1agl1pVbQTFUKLKtjg3XdVSVLwRSu4u+UVV2M="
|
|
||||||
[mod."github.com/stretchr/objx"]
|
|
||||||
version = "v0.1.0"
|
|
||||||
hash = "sha256-az0Vd4MG3JXfaYbj0Q6AOmNkrXgmXDeQm8+BBiDXmdA="
|
|
||||||
[mod."github.com/stretchr/testify"]
|
|
||||||
version = "v1.3.0"
|
|
||||||
hash = "sha256-+mSebBNccNcxbY462iKTNTWmd5ZuUkUqFebccn3EtIA="
|
|
||||||
[mod."golang.org/x/crypto"]
|
|
||||||
version = "v0.0.0-20200214034016-1d94cc7ab1c6"
|
|
||||||
hash = "sha256-fWTzdDxt/1E8Jx7b6tmYEVqqJs5FoVVya9aEK9gDbdY="
|
|
||||||
[mod."golang.org/x/net"]
|
|
||||||
version = "v0.0.0-20190522155817-f3200d17e092"
|
|
||||||
hash = "sha256-KkNNFr+wx/pf7lSLN2ygwkQ9oCZQuef+hCtEjEX+gJE="
|
|
||||||
[mod."golang.org/x/sys"]
|
|
||||||
version = "v0.0.0-20200223170610-d5e6a3e2c0ae"
|
|
||||||
hash = "sha256-IvG2XSER2dyrVfhYieEpHcp28LOz4FrjQqN0SCeFOek="
|
|
||||||
[mod."golang.org/x/text"]
|
|
||||||
version = "v0.3.0"
|
|
||||||
hash = "sha256-0FFbaxF1ZuAQF3sCcA85e8MO6prFeHint36inija4NY="
|
|
||||||
[mod."golang.org/x/tools"]
|
|
||||||
version = "v0.0.0-20190328211700-ab21143f2384"
|
|
||||||
hash = "sha256-OcjaTxx6C/cbnUZLN2ArTrOBlBCijWJVUPaMgK67MkY="
|
|
||||||
[mod."gopkg.in/ini.v1"]
|
|
||||||
version = "v1.57.0"
|
|
||||||
hash = "sha256-WSjX+qHJ1Rf4FRMTs7udQwEBkIo+z8+EK3uB5CebrZ4="
|
|
|
@ -1,16 +0,0 @@
|
||||||
# Intégration de Guichet dans un environnement de dev/test
|
|
||||||
|
|
||||||
## Dev process
|
|
||||||
|
|
||||||
On utilise `docker compose` pour mettre en place l'infrastructure dont dépend Guichet, que l'on développe. (On rajoutera Garage dedans plus tard.)
|
|
||||||
|
|
||||||
On ne met pas Guichet dans le `compose` pour pouvoir itérer plus rapidement : un `go build` et on a la nouvelle version, sans avoir restart les dépendances (Bottin, Consul...).
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
* Bien récupérer le password `admin` dans les logs de 1er lancement de Bottin : il ne sera pas réaffiché.
|
|
||||||
* Identifiant de l'admin sur Guichet : `cn=admin,dc=bottin,dc=eu` because il n'est pas dans `ou=users,dc=bottin,dc=eu` qui est l'organisation par défaut dans laquelle on va chercher les utilisateurs.
|
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
* Bridger Garage/S3 (pour le moment ne sert que pour les avatars dans l'annuaire)
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"suffix": "dc=bottin,dc=eu",
|
|
||||||
"bind": "bottin:389",
|
|
||||||
"consul_host": "consul:8500",
|
|
||||||
"acl": [
|
|
||||||
"ANONYMOUS::bind:*,ou=users,dc=bottin,dc=eu:",
|
|
||||||
"ANONYMOUS::bind:cn=admin,dc=bottin,dc=eu:",
|
|
||||||
"*,dc=bottin,dc=eu::read:*:* !userpassword",
|
|
||||||
"*::read modify:SELF:*",
|
|
||||||
"cn=admin,dc=bottin,dc=eu::read add modify delete:*:*",
|
|
||||||
"*:cn=admin,ou=groups,dc=bottin,dc=eu:read add modify delete:*:*"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
metadata_dir = "/tmp/meta"
|
|
||||||
data_dir = "/tmp/data"
|
|
||||||
db_engine = "lmdb"
|
|
||||||
|
|
||||||
replication_mode = "none"
|
|
||||||
|
|
||||||
rpc_bind_addr = "[::]:3901"
|
|
||||||
rpc_public_addr = "127.0.0.1:3901"
|
|
||||||
rpc_secret = "93086c2378eecea1cc9e83ee0554a8c510359215168774a396dcb5a01f88dd79"
|
|
||||||
|
|
||||||
[s3_api]
|
|
||||||
s3_region = "garage"
|
|
||||||
api_bind_addr = "[::]:3900"
|
|
||||||
root_domain = ".s3.garage.localhost"
|
|
||||||
|
|
||||||
[s3_web]
|
|
||||||
bind_addr = "[::]:3902"
|
|
||||||
root_domain = ".web.garage.localhost"
|
|
||||||
index = "index.html"
|
|
||||||
|
|
||||||
[k2v_api]
|
|
||||||
api_bind_addr = "[::]:3904"
|
|
||||||
|
|
||||||
[admin]
|
|
||||||
api_bind_addr = "0.0.0.0:3903"
|
|
||||||
admin_token = "GlXP43PWH3LuvEGSNxKYzZCyUss8VqZmarBU+HUlrxw="
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"http_bind_addr": ":9991",
|
|
||||||
"ldap_server_addr": "ldap://127.0.0.1:389",
|
|
||||||
|
|
||||||
"base_dn": "dc=bottin,dc=eu",
|
|
||||||
"user_base_dn": "ou=users,dc=bottin,dc=eu",
|
|
||||||
"user_name_attr": "cn",
|
|
||||||
"group_base_dn": "ou=groups,dc=bottin,dc=eu",
|
|
||||||
"group_name_attr": "cn",
|
|
||||||
|
|
||||||
"invitation_base_dn": "ou=invitations,dc=bottin,dc=eu",
|
|
||||||
"invitation_name_attr": "cn",
|
|
||||||
"invited_mail_format": "{}@bottin.eu",
|
|
||||||
"invited_auto_groups": [
|
|
||||||
"cn=email,ou=groups,dc=bottin,dc=eu"
|
|
||||||
],
|
|
||||||
|
|
||||||
"web_address": "https://guichet.bottin.eu",
|
|
||||||
"mail_from": "welcome@bottin.eu",
|
|
||||||
"smtp_server": "smtp.bottin.eu",
|
|
||||||
"smtp_username": "guichet",
|
|
||||||
"smtp_password": "",
|
|
||||||
|
|
||||||
"admin_account": "cn=admin,dc=bottin,dc=eu",
|
|
||||||
"group_can_admin": "gid=admin,ou=groups,dc=bottin,dc=eu",
|
|
||||||
"group_can_invite": "",
|
|
||||||
|
|
||||||
"s3_endpoint": "garage.bottin.eu",
|
|
||||||
"s3_access_key": "",
|
|
||||||
"s3_secret_key": "",
|
|
||||||
"s3_region": "garage",
|
|
||||||
"s3_bucket": "bottin-pictures"
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
version: '3'
|
|
||||||
services:
|
|
||||||
consul:
|
|
||||||
image: consul
|
|
||||||
restart: "always"
|
|
||||||
expose:
|
|
||||||
- 8500
|
|
||||||
bottin:
|
|
||||||
image: dxflrs/bottin:dnp41vp8w24h4mbh0xg1mybzr1f46k41
|
|
||||||
command: "-config /etc/bottin.json"
|
|
||||||
restart: "always"
|
|
||||||
depends_on: ["consul"]
|
|
||||||
ports:
|
|
||||||
- "389:389"
|
|
||||||
volumes:
|
|
||||||
- "./config/bottin.json:/etc/bottin.json"
|
|
||||||
garage:
|
|
||||||
image: dxflrs/garage:v0.8.2
|
|
||||||
ports:
|
|
||||||
- "3900:3900"
|
|
||||||
- "3902:3902"
|
|
||||||
- "3903:3903"
|
|
||||||
- "3904:3904"
|
|
||||||
volumes:
|
|
||||||
- "./config/garage.toml:/etc/garage.toml"
|
|
341
invite.go
Normal file
|
@ -0,0 +1,341 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"crypto/rand"
|
||||||
|
"encoding/binary"
|
||||||
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
|
"html/template"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/emersion/go-sasl"
|
||||||
|
"github.com/emersion/go-smtp"
|
||||||
|
"github.com/go-ldap/ldap/v3"
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"golang.org/x/crypto/argon2"
|
||||||
|
)
|
||||||
|
|
||||||
|
var EMAIL_REGEXP = regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
|
||||||
|
|
||||||
|
func checkInviterLogin(w http.ResponseWriter, r *http.Request) *LoginStatus {
|
||||||
|
login := checkLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if !login.CanInvite {
|
||||||
|
http.Error(w, "Not authorized to invite new users.", http.StatusUnauthorized)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return login
|
||||||
|
}
|
||||||
|
|
||||||
|
// New account creation directly from interface
|
||||||
|
|
||||||
|
func handleInviteNewAccount(w http.ResponseWriter, r *http.Request) {
|
||||||
|
login := checkInviterLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
handleNewAccount(w, r, login.conn, login.Info.DN)
|
||||||
|
}
|
||||||
|
|
||||||
|
// New account creation using code
|
||||||
|
|
||||||
|
func handleInvitationCode(w http.ResponseWriter, r *http.Request) {
|
||||||
|
code := mux.Vars(r)["code"]
|
||||||
|
code_id, code_pw := readCode(code)
|
||||||
|
|
||||||
|
l := ldapOpen(w)
|
||||||
|
if l == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
inviteDn := config.InvitationNameAttr + "=" + code_id + "," + config.InvitationBaseDN
|
||||||
|
err := l.Bind(inviteDn, code_pw)
|
||||||
|
if err != nil {
|
||||||
|
templateInviteInvalidCode := template.Must(template.ParseFiles("templates/layout.html", "templates/invite_invalid_code.html"))
|
||||||
|
templateInviteInvalidCode.Execute(w, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
sReq := ldap.NewSearchRequest(
|
||||||
|
inviteDn,
|
||||||
|
ldap.ScopeBaseObject, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
fmt.Sprintf("(objectclass=*)"),
|
||||||
|
[]string{"dn", "creatorsname"},
|
||||||
|
nil)
|
||||||
|
sr, err := l.Search(sReq)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(sr.Entries) != 1 {
|
||||||
|
http.Error(w, fmt.Sprintf("Expected 1 entry, got %d", len(sr.Entries)), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
invitedBy := sr.Entries[0].GetAttributeValue("creatorsname")
|
||||||
|
|
||||||
|
if handleNewAccount(w, r, l, invitedBy) {
|
||||||
|
del_req := ldap.NewDelRequest(inviteDn, nil)
|
||||||
|
err = l.Del(del_req)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Could not delete invitation %s: %s", inviteDn, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Common functions for new account
|
||||||
|
|
||||||
|
type NewAccountData struct {
|
||||||
|
Username string
|
||||||
|
DisplayName string
|
||||||
|
GivenName string
|
||||||
|
Surname string
|
||||||
|
|
||||||
|
ErrorUsernameTaken bool
|
||||||
|
ErrorInvalidUsername bool
|
||||||
|
ErrorPasswordTooShort bool
|
||||||
|
ErrorPasswordMismatch bool
|
||||||
|
ErrorMessage string
|
||||||
|
WarningMessage string
|
||||||
|
Success bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleNewAccount(w http.ResponseWriter, r *http.Request, l *ldap.Conn, invitedBy string) bool {
|
||||||
|
templateInviteNewAccount := template.Must(template.ParseFiles("templates/layout.html", "templates/invite_new_account.html"))
|
||||||
|
|
||||||
|
data := &NewAccountData{}
|
||||||
|
|
||||||
|
if r.Method == "POST" {
|
||||||
|
r.ParseForm()
|
||||||
|
|
||||||
|
data.Username = strings.TrimSpace(strings.Join(r.Form["username"], ""))
|
||||||
|
data.DisplayName = strings.TrimSpace(strings.Join(r.Form["displayname"], ""))
|
||||||
|
data.GivenName = strings.TrimSpace(strings.Join(r.Form["givenname"], ""))
|
||||||
|
data.Surname = strings.TrimSpace(strings.Join(r.Form["surname"], ""))
|
||||||
|
|
||||||
|
password1 := strings.Join(r.Form["password"], "")
|
||||||
|
password2 := strings.Join(r.Form["password2"], "")
|
||||||
|
|
||||||
|
tryCreateAccount(l, data, password1, password2, invitedBy)
|
||||||
|
}
|
||||||
|
|
||||||
|
templateInviteNewAccount.Execute(w, data)
|
||||||
|
return data.Success
|
||||||
|
}
|
||||||
|
|
||||||
|
func tryCreateAccount(l *ldap.Conn, data *NewAccountData, pass1 string, pass2 string, invitedBy string) {
|
||||||
|
// Check if username is correct
|
||||||
|
if match, err := regexp.MatchString("^[a-zA-Z0-9._-]+$", data.Username); !(err == nil && match) {
|
||||||
|
data.ErrorInvalidUsername = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if user exists
|
||||||
|
userDn := config.UserNameAttr + "=" + data.Username + "," + config.UserBaseDN
|
||||||
|
searchRq := ldap.NewSearchRequest(
|
||||||
|
userDn,
|
||||||
|
ldap.ScopeBaseObject, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
"(objectclass=*)",
|
||||||
|
[]string{"dn"},
|
||||||
|
nil)
|
||||||
|
|
||||||
|
sr, err := l.Search(searchRq)
|
||||||
|
if err != nil {
|
||||||
|
data.ErrorMessage = err.Error()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(sr.Entries) > 0 {
|
||||||
|
data.ErrorUsernameTaken = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that password is long enough
|
||||||
|
if len(pass1) < 8 {
|
||||||
|
data.ErrorPasswordTooShort = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if pass1 != pass2 {
|
||||||
|
data.ErrorPasswordMismatch = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Actually create user
|
||||||
|
req := ldap.NewAddRequest(userDn, nil)
|
||||||
|
req.Attribute("objectclass", []string{"inetOrgPerson", "organizationalPerson", "person", "top"})
|
||||||
|
req.Attribute("structuralobjectclass", []string{"inetOrgPerson"})
|
||||||
|
req.Attribute("userpassword", []string{SSHAEncode([]byte(pass1))})
|
||||||
|
req.Attribute("invitedby", []string{invitedBy})
|
||||||
|
if len(data.DisplayName) > 0 {
|
||||||
|
req.Attribute("displayname", []string{data.DisplayName})
|
||||||
|
}
|
||||||
|
if len(data.GivenName) > 0 {
|
||||||
|
req.Attribute("givenname", []string{data.GivenName})
|
||||||
|
}
|
||||||
|
if len(data.Surname) > 0 {
|
||||||
|
req.Attribute("sn", []string{data.Surname})
|
||||||
|
}
|
||||||
|
if len(config.InvitedMailFormat) > 0 {
|
||||||
|
email := strings.ReplaceAll(config.InvitedMailFormat, "{}", data.Username)
|
||||||
|
req.Attribute("mail", []string{email})
|
||||||
|
}
|
||||||
|
|
||||||
|
err = l.Add(req)
|
||||||
|
if err != nil {
|
||||||
|
data.ErrorMessage = err.Error()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, group := range config.InvitedAutoGroups {
|
||||||
|
req := ldap.NewModifyRequest(group, nil)
|
||||||
|
req.Add("member", []string{userDn})
|
||||||
|
err = l.Modify(req)
|
||||||
|
if err != nil {
|
||||||
|
data.WarningMessage += fmt.Sprintf("Cannot add to %s: %s\n", group, err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
data.Success = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---- Code generation ----
|
||||||
|
|
||||||
|
type SendCodeData struct {
|
||||||
|
ErrorMessage string
|
||||||
|
ErrorInvalidEmail bool
|
||||||
|
Success bool
|
||||||
|
CodeDisplay string
|
||||||
|
CodeSentTo string
|
||||||
|
WebBaseAddress string
|
||||||
|
}
|
||||||
|
|
||||||
|
type CodeMailFields struct {
|
||||||
|
From string
|
||||||
|
To string
|
||||||
|
Code string
|
||||||
|
InviteFrom string
|
||||||
|
WebBaseAddress string
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleInviteSendCode(w http.ResponseWriter, r *http.Request) {
|
||||||
|
templateInviteSendCode := template.Must(template.ParseFiles("templates/layout.html", "templates/invite_send_code.html"))
|
||||||
|
|
||||||
|
login := checkInviterLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data := &SendCodeData{
|
||||||
|
WebBaseAddress: config.WebAddress,
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.Method == "POST" {
|
||||||
|
r.ParseForm()
|
||||||
|
|
||||||
|
choice := strings.Join(r.Form["choice"], "")
|
||||||
|
sendto := strings.Join(r.Form["sendto"], "")
|
||||||
|
|
||||||
|
if choice == "display" || choice == "send" {
|
||||||
|
trySendCode(login, choice, sendto, data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
templateInviteSendCode.Execute(w, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
func trySendCode(login *LoginStatus, choice string, sendto string, data *SendCodeData) {
|
||||||
|
// Generate code
|
||||||
|
code, code_id, code_pw := genCode()
|
||||||
|
|
||||||
|
// Create invitation object in database
|
||||||
|
inviteDn := config.InvitationNameAttr + "=" + code_id + "," + config.InvitationBaseDN
|
||||||
|
req := ldap.NewAddRequest(inviteDn, nil)
|
||||||
|
req.Attribute("userpassword", []string{SSHAEncode([]byte(code_pw))})
|
||||||
|
req.Attribute("objectclass", []string{"top", "invitationCode"})
|
||||||
|
|
||||||
|
err := login.conn.Add(req)
|
||||||
|
if err != nil {
|
||||||
|
data.ErrorMessage = err.Error()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we want to display it, do so
|
||||||
|
if choice == "display" {
|
||||||
|
data.Success = true
|
||||||
|
data.CodeDisplay = code
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, we are sending a mail
|
||||||
|
if !EMAIL_REGEXP.MatchString(sendto) {
|
||||||
|
data.ErrorInvalidEmail = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
templateMail := template.Must(template.ParseFiles("templates/invite_mail.txt"))
|
||||||
|
buf := bytes.NewBuffer([]byte{})
|
||||||
|
templateMail.Execute(buf, &CodeMailFields{
|
||||||
|
To: sendto,
|
||||||
|
From: config.MailFrom,
|
||||||
|
InviteFrom: login.WelcomeName(),
|
||||||
|
Code: code,
|
||||||
|
WebBaseAddress: config.WebAddress,
|
||||||
|
})
|
||||||
|
|
||||||
|
log.Printf("Sending mail to: %s", sendto)
|
||||||
|
var auth sasl.Client = nil
|
||||||
|
if config.SMTPUsername != "" {
|
||||||
|
auth = sasl.NewPlainClient("", config.SMTPUsername, config.SMTPPassword)
|
||||||
|
}
|
||||||
|
err = smtp.SendMail(config.SMTPServer, auth, config.MailFrom, []string{sendto}, buf)
|
||||||
|
if err != nil {
|
||||||
|
data.ErrorMessage = err.Error()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Printf("Mail sent.")
|
||||||
|
|
||||||
|
data.Success = true
|
||||||
|
data.CodeSentTo = sendto
|
||||||
|
}
|
||||||
|
|
||||||
|
func genCode() (code string, code_id string, code_pw string) {
|
||||||
|
random := make([]byte, 32)
|
||||||
|
n, err := rand.Read(random)
|
||||||
|
if err != nil || n != 32 {
|
||||||
|
log.Fatalf("Could not generate random bytes: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
a := binary.BigEndian.Uint32(random[0:4])
|
||||||
|
b := binary.BigEndian.Uint32(random[4:8])
|
||||||
|
c := binary.BigEndian.Uint32(random[8:12])
|
||||||
|
|
||||||
|
code = fmt.Sprintf("%03d-%03d-%03d", a%1000, b%1000, c%1000)
|
||||||
|
code_id, code_pw = readCode(code)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func readCode(code string) (code_id string, code_pw string) {
|
||||||
|
// Strip everything that is not a digit
|
||||||
|
code_digits := ""
|
||||||
|
for _, c := range code {
|
||||||
|
if c >= '0' && c <= '9' {
|
||||||
|
code_digits = code_digits + string(c)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
id_hash := argon2.IDKey([]byte(code_digits), []byte("Guichet ID"), 2, 64*1024, 4, 32)
|
||||||
|
pw_hash := argon2.IDKey([]byte(code_digits), []byte("Guichet PW"), 2, 64*1024, 4, 32)
|
||||||
|
|
||||||
|
code_id = hex.EncodeToString(id_hash[:8])
|
||||||
|
code_pw = hex.EncodeToString(pw_hash[:16])
|
||||||
|
return
|
||||||
|
}
|
387
main.go
|
@ -1,32 +1,100 @@
|
||||||
/*
|
|
||||||
Guichet provides a user-management system around an LDAP Directory
|
|
||||||
|
|
||||||
Oriniated with deuxfleurs.fr and advanced by resdigita.com
|
|
||||||
*/
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
// "crypto/tls"
|
"crypto/tls"
|
||||||
|
"encoding/json"
|
||||||
// "encoding/json"
|
|
||||||
"flag"
|
"flag"
|
||||||
// "fmt"
|
"fmt"
|
||||||
// "io/ioutil"
|
"html/template"
|
||||||
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
// "os"
|
"github.com/go-ldap/ldap/v3"
|
||||||
// "strings"
|
"github.com/gorilla/mux"
|
||||||
|
|
||||||
"github.com/gorilla/sessions"
|
"github.com/gorilla/sessions"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ConfigFile struct {
|
||||||
|
HttpBindAddr string `json:"http_bind_addr"`
|
||||||
|
LdapServerAddr string `json:"ldap_server_addr"`
|
||||||
|
LdapTLS bool `json:"ldap_tls"`
|
||||||
|
|
||||||
|
BaseDN string `json:"base_dn"`
|
||||||
|
UserBaseDN string `json:"user_base_dn"`
|
||||||
|
UserNameAttr string `json:"user_name_attr"`
|
||||||
|
GroupBaseDN string `json:"group_base_dn"`
|
||||||
|
GroupNameAttr string `json:"group_name_attr"`
|
||||||
|
|
||||||
|
InvitationBaseDN string `json:"invitation_base_dn"`
|
||||||
|
InvitationNameAttr string `json:"invitation_name_attr"`
|
||||||
|
InvitedMailFormat string `json:"invited_mail_format"`
|
||||||
|
InvitedAutoGroups []string `json:"invited_auto_groups"`
|
||||||
|
|
||||||
|
WebAddress string `json:"web_address"`
|
||||||
|
MailFrom string `json:"mail_from"`
|
||||||
|
SMTPServer string `json:"smtp_server"`
|
||||||
|
SMTPUsername string `json:"smtp_username"`
|
||||||
|
SMTPPassword string `json:"smtp_password"`
|
||||||
|
|
||||||
|
AdminAccount string `json:"admin_account"`
|
||||||
|
GroupCanInvite string `json:"group_can_invite"`
|
||||||
|
GroupCanAdmin string `json:"group_can_admin"`
|
||||||
|
|
||||||
|
S3Endpoint string `json:"s3_endpoint"`
|
||||||
|
S3AccessKey string `json:"s3_access_key"`
|
||||||
|
S3SecretKey string `json:"s3_secret_key"`
|
||||||
|
S3Region string `json:"s3_region"`
|
||||||
|
S3Bucket string `json:"s3_bucket"`
|
||||||
|
}
|
||||||
|
|
||||||
|
var configFlag = flag.String("config", "./config.json", "Configuration file path")
|
||||||
|
|
||||||
|
var config *ConfigFile
|
||||||
|
|
||||||
const SESSION_NAME = "guichet_session"
|
const SESSION_NAME = "guichet_session"
|
||||||
|
|
||||||
var store sessions.Store = nil
|
var store sessions.Store = nil
|
||||||
|
|
||||||
func main() {
|
func readConfig() ConfigFile {
|
||||||
|
// Default configuration values for certain fields
|
||||||
|
config_file := ConfigFile{
|
||||||
|
HttpBindAddr: ":9991",
|
||||||
|
LdapServerAddr: "ldap://127.0.0.1:389",
|
||||||
|
|
||||||
|
UserNameAttr: "uid",
|
||||||
|
GroupNameAttr: "gid",
|
||||||
|
|
||||||
|
InvitationNameAttr: "cn",
|
||||||
|
InvitedAutoGroups: []string{},
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := os.Stat(*configFlag)
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
log.Fatalf("Could not find Guichet configuration file at %s. Please create this file, for example starting with config.json.example and customizing it for your deployment.", *configFlag)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes, err := ioutil.ReadFile(*configFlag)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = json.Unmarshal(bytes, &config_file)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return config_file
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
config_file := readConfig()
|
config_file := readConfig()
|
||||||
|
@ -38,8 +106,297 @@ func main() {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
store = sessions.NewCookieStore(session_key)
|
store = sessions.NewCookieStore(session_key)
|
||||||
_, err = makeGVRouter()
|
|
||||||
|
r := mux.NewRouter()
|
||||||
|
r.HandleFunc("/", handleHome)
|
||||||
|
r.HandleFunc("/logout", handleLogout)
|
||||||
|
|
||||||
|
r.HandleFunc("/profile", handleProfile)
|
||||||
|
r.HandleFunc("/passwd", handlePasswd)
|
||||||
|
r.HandleFunc("/picture/{name}", handleDownloadPicture)
|
||||||
|
|
||||||
|
r.HandleFunc("/directory/search", handleDirectorySearch)
|
||||||
|
r.HandleFunc("/directory", handleDirectory)
|
||||||
|
|
||||||
|
r.HandleFunc("/invite/new_account", handleInviteNewAccount)
|
||||||
|
r.HandleFunc("/invite/send_code", handleInviteSendCode)
|
||||||
|
r.HandleFunc("/invitation/{code}", handleInvitationCode)
|
||||||
|
|
||||||
|
r.HandleFunc("/admin/users", handleAdminUsers)
|
||||||
|
r.HandleFunc("/admin/groups", handleAdminGroups)
|
||||||
|
r.HandleFunc("/admin/ldap/{dn}", handleAdminLDAP)
|
||||||
|
r.HandleFunc("/admin/create/{template}/{super_dn}", handleAdminCreate)
|
||||||
|
|
||||||
|
staticfiles := http.FileServer(http.Dir("static"))
|
||||||
|
r.Handle("/static/{file:.*}", http.StripPrefix("/static/", staticfiles))
|
||||||
|
|
||||||
|
log.Printf("Starting HTTP server on %s", config.HttpBindAddr)
|
||||||
|
err = http.ListenAndServe(config.HttpBindAddr, logRequest(r))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Cannot start http server: ", err)
|
log.Fatal("Cannot start http server: ", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type LoginInfo struct {
|
||||||
|
Username string
|
||||||
|
DN string
|
||||||
|
Password string
|
||||||
|
}
|
||||||
|
|
||||||
|
type LoginStatus struct {
|
||||||
|
Info *LoginInfo
|
||||||
|
conn *ldap.Conn
|
||||||
|
UserEntry *ldap.Entry
|
||||||
|
CanAdmin bool
|
||||||
|
CanInvite bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (login *LoginStatus) WelcomeName() string {
|
||||||
|
ret := login.UserEntry.GetAttributeValue("givenname")
|
||||||
|
if ret == "" {
|
||||||
|
ret = login.UserEntry.GetAttributeValue("displayname")
|
||||||
|
}
|
||||||
|
if ret == "" {
|
||||||
|
ret = login.Info.Username
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
func logRequest(handler http.Handler) http.Handler {
|
||||||
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
log.Printf("%s %s %s\n", r.RemoteAddr, r.Method, r.URL)
|
||||||
|
handler.ServeHTTP(w, r)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func checkLogin(w http.ResponseWriter, r *http.Request) *LoginStatus {
|
||||||
|
var login_info *LoginInfo
|
||||||
|
|
||||||
|
session, err := store.Get(r, SESSION_NAME)
|
||||||
|
if err == nil {
|
||||||
|
username, ok := session.Values["login_username"]
|
||||||
|
password, ok2 := session.Values["login_password"]
|
||||||
|
user_dn, ok3 := session.Values["login_dn"]
|
||||||
|
|
||||||
|
if ok && ok2 && ok3 {
|
||||||
|
login_info = &LoginInfo{
|
||||||
|
DN: user_dn.(string),
|
||||||
|
Username: username.(string),
|
||||||
|
Password: password.(string),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if login_info == nil {
|
||||||
|
login_info = handleLogin(w, r)
|
||||||
|
if login_info == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
l := ldapOpen(w)
|
||||||
|
if l == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err = l.Bind(login_info.DN, login_info.Password)
|
||||||
|
if err != nil {
|
||||||
|
delete(session.Values, "login_username")
|
||||||
|
delete(session.Values, "login_password")
|
||||||
|
delete(session.Values, "login_dn")
|
||||||
|
|
||||||
|
err = session.Save(r, w)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return checkLogin(w, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
loginStatus := &LoginStatus{
|
||||||
|
Info: login_info,
|
||||||
|
conn: l,
|
||||||
|
}
|
||||||
|
|
||||||
|
requestKind := "(objectClass=organizationalPerson)"
|
||||||
|
if strings.EqualFold(login_info.DN, config.AdminAccount) {
|
||||||
|
requestKind = "(objectclass=*)"
|
||||||
|
}
|
||||||
|
searchRequest := ldap.NewSearchRequest(
|
||||||
|
login_info.DN,
|
||||||
|
ldap.ScopeBaseObject, ldap.NeverDerefAliases, 0, 0, false,
|
||||||
|
requestKind,
|
||||||
|
[]string{
|
||||||
|
"dn",
|
||||||
|
"displayname",
|
||||||
|
"givenname",
|
||||||
|
"sn",
|
||||||
|
"mail",
|
||||||
|
"memberof",
|
||||||
|
"description",
|
||||||
|
FIELD_NAME_DIRECTORY_VISIBILITY,
|
||||||
|
FIELD_NAME_PROFILE_PICTURE,
|
||||||
|
},
|
||||||
|
nil)
|
||||||
|
|
||||||
|
sr, err := l.Search(searchRequest)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(sr.Entries) != 1 {
|
||||||
|
http.Error(w, fmt.Sprintf("Unable to find entry for %s", login_info.DN), http.StatusInternalServerError)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
loginStatus.UserEntry = sr.Entries[0]
|
||||||
|
|
||||||
|
loginStatus.CanAdmin = strings.EqualFold(loginStatus.Info.DN, config.AdminAccount)
|
||||||
|
loginStatus.CanInvite = false
|
||||||
|
for _, attr := range loginStatus.UserEntry.Attributes {
|
||||||
|
if strings.EqualFold(attr.Name, "memberof") {
|
||||||
|
for _, group := range attr.Values {
|
||||||
|
if config.GroupCanInvite != "" && strings.EqualFold(group, config.GroupCanInvite) {
|
||||||
|
loginStatus.CanInvite = true
|
||||||
|
}
|
||||||
|
if config.GroupCanAdmin != "" && strings.EqualFold(group, config.GroupCanAdmin) {
|
||||||
|
loginStatus.CanAdmin = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return loginStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
func ldapOpen(w http.ResponseWriter) *ldap.Conn {
|
||||||
|
l, err := ldap.DialURL(config.LdapServerAddr)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if config.LdapTLS {
|
||||||
|
err = l.StartTLS(&tls.Config{InsecureSkipVerify: true})
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
|
||||||
|
// Page handlers ----
|
||||||
|
|
||||||
|
type HomePageData struct {
|
||||||
|
Login *LoginStatus
|
||||||
|
BaseDN string
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleHome(w http.ResponseWriter, r *http.Request) {
|
||||||
|
templateHome := template.Must(template.ParseFiles("templates/layout.html", "templates/home.html"))
|
||||||
|
|
||||||
|
login := checkLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data := &HomePageData{
|
||||||
|
Login: login,
|
||||||
|
BaseDN: config.BaseDN,
|
||||||
|
}
|
||||||
|
|
||||||
|
templateHome.Execute(w, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleLogout(w http.ResponseWriter, r *http.Request) {
|
||||||
|
session, err := store.Get(r, SESSION_NAME)
|
||||||
|
if err != nil {
|
||||||
|
session, _ = store.New(r, SESSION_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
delete(session.Values, "login_username")
|
||||||
|
delete(session.Values, "login_password")
|
||||||
|
delete(session.Values, "login_dn")
|
||||||
|
|
||||||
|
err = session.Save(r, w)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
http.Redirect(w, r, "/", http.StatusFound)
|
||||||
|
}
|
||||||
|
|
||||||
|
type LoginFormData struct {
|
||||||
|
Username string
|
||||||
|
WrongUser bool
|
||||||
|
WrongPass bool
|
||||||
|
ErrorMessage string
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleLogin(w http.ResponseWriter, r *http.Request) *LoginInfo {
|
||||||
|
templateLogin := template.Must(template.ParseFiles("templates/layout.html", "templates/login.html"))
|
||||||
|
|
||||||
|
if r.Method == "GET" {
|
||||||
|
templateLogin.Execute(w, LoginFormData{})
|
||||||
|
return nil
|
||||||
|
} else if r.Method == "POST" {
|
||||||
|
r.ParseForm()
|
||||||
|
|
||||||
|
username := strings.Join(r.Form["username"], "")
|
||||||
|
password := strings.Join(r.Form["password"], "")
|
||||||
|
user_dn := fmt.Sprintf("%s=%s,%s", config.UserNameAttr, username, config.UserBaseDN)
|
||||||
|
if strings.EqualFold(username, config.AdminAccount) {
|
||||||
|
user_dn = username
|
||||||
|
}
|
||||||
|
|
||||||
|
l := ldapOpen(w)
|
||||||
|
if l == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err := l.Bind(user_dn, password)
|
||||||
|
if err != nil {
|
||||||
|
data := &LoginFormData{
|
||||||
|
Username: username,
|
||||||
|
}
|
||||||
|
if ldap.IsErrorWithCode(err, ldap.LDAPResultInvalidCredentials) {
|
||||||
|
data.WrongPass = true
|
||||||
|
} else if ldap.IsErrorWithCode(err, ldap.LDAPResultNoSuchObject) {
|
||||||
|
data.WrongUser = true
|
||||||
|
} else {
|
||||||
|
data.ErrorMessage = err.Error()
|
||||||
|
}
|
||||||
|
templateLogin.Execute(w, data)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Successfully logged in, save it to session
|
||||||
|
session, err := store.Get(r, SESSION_NAME)
|
||||||
|
if err != nil {
|
||||||
|
session, _ = store.New(r, SESSION_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
session.Values["login_username"] = username
|
||||||
|
session.Values["login_password"] = password
|
||||||
|
session.Values["login_dn"] = user_dn
|
||||||
|
|
||||||
|
err = session.Save(r, w)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return &LoginInfo{
|
||||||
|
DN: user_dn,
|
||||||
|
Username: username,
|
||||||
|
Password: password,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
http.Error(w, "Unsupported method", http.StatusBadRequest)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
179
model-passwd.go
|
@ -1,179 +0,0 @@
|
||||||
/*
|
|
||||||
gpas is GVoisin password reset
|
|
||||||
*/
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"html/template"
|
|
||||||
"log"
|
|
||||||
|
|
||||||
// "github.com/emersion/go-sasl"
|
|
||||||
// "github.com/emersion/go-smtp"
|
|
||||||
"net/smtp"
|
|
||||||
|
|
||||||
"github.com/go-ldap/ldap/v3"
|
|
||||||
// "strings"
|
|
||||||
b64 "encoding/base64"
|
|
||||||
)
|
|
||||||
|
|
||||||
// type InvitationAccount struct {
|
|
||||||
// UID string
|
|
||||||
// Password string
|
|
||||||
// BaseDN string
|
|
||||||
// }
|
|
||||||
|
|
||||||
// var EMAIL_REGEXP := regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
|
|
||||||
|
|
||||||
func passwordLost(user User, config *ConfigFile, ldapConn *ldap.Conn) error {
|
|
||||||
if user.CN == "" && user.Mail == "" && user.OtherMailbox == "" {
|
|
||||||
return errors.New("Il n'y a pas de quoi identifier l'utilisateur")
|
|
||||||
}
|
|
||||||
searchFilter := "(|"
|
|
||||||
if user.CN != "" {
|
|
||||||
searchFilter += "(cn=" + user.UID + ")"
|
|
||||||
}
|
|
||||||
if user.Mail != "" {
|
|
||||||
searchFilter += "(mail=" + user.Mail + ")"
|
|
||||||
}
|
|
||||||
if user.OtherMailbox != "" {
|
|
||||||
searchFilter += "(carLicense=" + user.OtherMailbox + ")"
|
|
||||||
}
|
|
||||||
searchFilter += ")"
|
|
||||||
searchReq := ldap.NewSearchRequest(config.UserBaseDN, ldap.ScopeSingleLevel, ldap.NeverDerefAliases, 0, 0, false, searchFilter, []string{"cn", "uid", "mail", "carLicense", "sn", "displayName", "givenName"}, nil)
|
|
||||||
searchRes, err := ldapConn.Search(searchReq)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("passwordLost search : %v %v", err, ldapConn)
|
|
||||||
log.Printf("passwordLost search : %v", searchReq)
|
|
||||||
log.Printf("passwordLost search : %v", searchRes)
|
|
||||||
log.Printf("passwordLost search: %v", user)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if len(searchRes.Entries) == 0 {
|
|
||||||
log.Printf("Il n'y a pas d'utilisateur qui correspond %v", searchReq)
|
|
||||||
return errors.New("Il n'y a pas d'utilisateur qui correspond")
|
|
||||||
}
|
|
||||||
// log.Printf("passwordLost 58 : %v", user)
|
|
||||||
// log.Printf("passwordLost 59 : %v", searchRes.Entries[0])
|
|
||||||
// log.Printf("passwordLost 60 : %v", searchRes.Entries[0].GetAttributeValue("cn"))
|
|
||||||
// log.Printf("passwordLost 61 : %v", searchRes.Entries[0].GetAttributeValue("uid"))
|
|
||||||
// log.Printf("passwordLost 62 : %v", searchRes.Entries[0].GetAttributeValue("mail"))
|
|
||||||
// log.Printf("passwordLost 63 : %v", searchRes.Entries[0].GetAttributeValue("carLicense"))
|
|
||||||
// Préparation du courriel à envoyer
|
|
||||||
user.Password = suggestPassword()
|
|
||||||
code := b64.URLEncoding.EncodeToString([]byte(user.UID + ";" + user.Password))
|
|
||||||
|
|
||||||
user.DN = "uid=" + searchRes.Entries[0].GetAttributeValue("cn") + "," + config.InvitationBaseDN
|
|
||||||
user.UID = searchRes.Entries[0].GetAttributeValue("cn")
|
|
||||||
user.CN = searchRes.Entries[0].GetAttributeValue("cn")
|
|
||||||
user.Mail = searchRes.Entries[0].GetAttributeValue("mail")
|
|
||||||
user.OtherMailbox = searchRes.Entries[0].GetAttributeValue("carLicense")
|
|
||||||
/* Check for outstanding invitation */
|
|
||||||
searchReq = ldap.NewSearchRequest(config.InvitationBaseDN, ldap.ScopeSingleLevel,
|
|
||||||
ldap.NeverDerefAliases, 0, 0, false, "(uid="+user.UID+")", []string{"seeAlso"}, nil)
|
|
||||||
searchRes, err = ldapConn.Search(searchReq)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf(fmt.Sprintf("passwordLost (Check existing invitation) : %v", err))
|
|
||||||
log.Printf(fmt.Sprintf("passwordLost (Check existing invitation) : %v", user))
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// if len(searchRes.Entries) == 0 {
|
|
||||||
/* Add the invitation */
|
|
||||||
addReq := ldap.NewAddRequest(
|
|
||||||
"uid="+user.UID+","+config.InvitationBaseDN,
|
|
||||||
nil)
|
|
||||||
addReq.Attribute("objectClass", []string{"top", "account", "simpleSecurityObject"})
|
|
||||||
addReq.Attribute("uid", []string{user.UID})
|
|
||||||
addReq.Attribute("userPassword", []string{suggestPassword()})
|
|
||||||
addReq.Attribute("seeAlso", []string{config.UserNameAttr + "=" + user.UID + "," + config.UserBaseDN})
|
|
||||||
err = ldapConn.Add(addReq)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("passwordLost 83 : %v", err)
|
|
||||||
log.Printf("passwordLost 84 : %v", user)
|
|
||||||
|
|
||||||
log.Printf("passwordLost 84 : %v", addReq)
|
|
||||||
// // log.Printf("passwordLost 85 : %v", searchRes.Entries[0]))
|
|
||||||
// // For some reason I get here even if the entry exists already
|
|
||||||
// return err
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
ldapNewConn, err := openNewUserLdap(config)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("passwordLost openNewUserLdap : %v", err)
|
|
||||||
}
|
|
||||||
err = passwd(user, config, ldapNewConn)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("passwordLost passwd : %v", err)
|
|
||||||
log.Printf("passwordLost passwd : %v", user)
|
|
||||||
log.Printf("passwordLost passwd : %v", searchRes.Entries[0])
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
templateMail := template.Must(template.ParseFiles(templatePath + "/passwd/lost_password_email.txt"))
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
|
||||||
templateMail.Execute(buf, &CodeMailFields{
|
|
||||||
To: user.OtherMailbox,
|
|
||||||
From: config.MailFrom,
|
|
||||||
InviteFrom: user.UID,
|
|
||||||
Code: code,
|
|
||||||
WebBaseAddress: config.WebAddress,
|
|
||||||
})
|
|
||||||
// message := []byte("Hi " + user.OtherMailbox)
|
|
||||||
log.Printf("Sending mail to: %s", user.OtherMailbox)
|
|
||||||
// var auth sasl.Client = nil
|
|
||||||
// if config.SMTPUsername != "" {
|
|
||||||
// auth = sasl.NewPlainClient("", config.SMTPUsername, config.SMTPPassword)
|
|
||||||
// }
|
|
||||||
message := buf.Bytes()
|
|
||||||
auth := smtp.PlainAuth("", config.SMTPUsername, config.SMTPPassword, config.SMTPServer)
|
|
||||||
log.Printf("auth: %v", auth)
|
|
||||||
err = smtp.SendMail(config.SMTPServer+":587", auth, config.SMTPUsername, []string{user.OtherMailbox}, message)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("email send error %v", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
log.Printf("Mail sent.")
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func passwordFound(user User, config *ConfigFile, ldapConn *ldap.Conn) (string, error) {
|
|
||||||
l, err := openLdap(config)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("passwordFound openLdap %v", err)
|
|
||||||
// log.Printf("passwordFound openLdap Config : %v", config)
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if user.DN == "" && user.UID != "" {
|
|
||||||
user.DN = "uid=" + user.UID + "," + config.InvitationBaseDN
|
|
||||||
}
|
|
||||||
err = l.Bind(user.DN, user.Password)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("passwordFound l.Bind %v", err)
|
|
||||||
log.Printf("passwordFound l.Bind %v", user.DN)
|
|
||||||
log.Printf("passwordFound l.Bind %v", user.UID)
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
searchReq := ldap.NewSearchRequest(user.DN, ldap.ScopeBaseObject,
|
|
||||||
ldap.NeverDerefAliases, 0, 0, false, "(uid="+user.UID+")", []string{"seeAlso"}, nil)
|
|
||||||
var searchRes *ldap.SearchResult
|
|
||||||
searchRes, err = ldapConn.Search(searchReq)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("passwordFound %v", err)
|
|
||||||
log.Printf("passwordFound %v", searchReq)
|
|
||||||
log.Printf("passwordFound %v", ldapConn)
|
|
||||||
log.Printf("passwordFound %v", searchRes)
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
if len(searchRes.Entries) == 0 {
|
|
||||||
log.Printf("passwordFound %v", err)
|
|
||||||
log.Printf("passwordFound %v", searchReq)
|
|
||||||
log.Printf("passwordFound %v", ldapConn)
|
|
||||||
log.Printf("passwordFound %v", searchRes)
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
delReq := ldap.NewDelRequest("uid="+user.CN+","+config.InvitationBaseDN, nil)
|
|
||||||
ldapConn.Del(delReq)
|
|
||||||
return searchRes.Entries[0].GetAttributeValue("seeAlso"), err
|
|
||||||
}
|
|
187
model-user.go
|
@ -1,187 +0,0 @@
|
||||||
/*
|
|
||||||
Model-User handles everything having to do with the user.
|
|
||||||
*/
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/go-ldap/ldap/v3"
|
|
||||||
)
|
|
||||||
|
|
||||||
func get(user User, config *ConfigFile, ldapConn *ldap.Conn) (*User, error) {
|
|
||||||
searchReq := ldap.NewSearchRequest(
|
|
||||||
user.DN,
|
|
||||||
ldap.ScopeBaseObject,
|
|
||||||
ldap.NeverDerefAliases,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
"(objectClass=*)",
|
|
||||||
[]string{
|
|
||||||
"cn",
|
|
||||||
"givenName",
|
|
||||||
"displayName",
|
|
||||||
"uid",
|
|
||||||
"sn",
|
|
||||||
"mail",
|
|
||||||
"description",
|
|
||||||
"carLicense",
|
|
||||||
},
|
|
||||||
nil)
|
|
||||||
searchRes, err := ldapConn.Search(searchReq)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("get User : %v", err)
|
|
||||||
log.Printf("get User : %v", searchReq)
|
|
||||||
log.Printf("get User : %v", searchRes)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
userEntry := searchRes.Entries[0]
|
|
||||||
resUser := User{
|
|
||||||
DN: user.DN,
|
|
||||||
GivenName: searchRes.Entries[0].GetAttributeValue("givenName"),
|
|
||||||
DisplayName: searchRes.Entries[0].GetAttributeValue("displayName"),
|
|
||||||
Description: searchRes.Entries[0].GetAttributeValue("description"),
|
|
||||||
SN: searchRes.Entries[0].GetAttributeValue("sn"),
|
|
||||||
UID: searchRes.Entries[0].GetAttributeValue("uid"),
|
|
||||||
CN: searchRes.Entries[0].GetAttributeValue("cn"),
|
|
||||||
Mail: searchRes.Entries[0].GetAttributeValue("mail"),
|
|
||||||
OtherMailbox: searchRes.Entries[0].GetAttributeValue("carLicense"),
|
|
||||||
CanAdmin: strings.EqualFold(user.DN, config.AdminAccount),
|
|
||||||
CanInvite: true,
|
|
||||||
UserEntry: userEntry,
|
|
||||||
}
|
|
||||||
searchReq.BaseDN = config.GroupCanAdmin
|
|
||||||
searchReq.Filter = "(member=" + user.DN + ")"
|
|
||||||
searchRes, err = ldapConn.Search(searchReq)
|
|
||||||
if err == nil {
|
|
||||||
if len(searchRes.Entries) > 0 {
|
|
||||||
resUser.CanAdmin = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return &resUser, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Adds a new user
|
|
||||||
func add(user User, config *ConfigFile, ldapConn *ldap.Conn) error {
|
|
||||||
log.Printf(fmt.Sprint("Adding New User"))
|
|
||||||
// LDAP Add Object
|
|
||||||
dn := user.DN
|
|
||||||
req := ldap.NewAddRequest(dn, nil)
|
|
||||||
req.Attribute("objectClass", []string{"top", "person", "organizationalPerson", "inetOrgPerson"})
|
|
||||||
if user.DisplayName != "" {
|
|
||||||
req.Attribute("displayName", []string{user.DisplayName})
|
|
||||||
}
|
|
||||||
if user.GivenName != "" {
|
|
||||||
req.Attribute("givenName", []string{user.GivenName})
|
|
||||||
}
|
|
||||||
if user.Mail != "" {
|
|
||||||
req.Attribute("mail", []string{user.Mail})
|
|
||||||
}
|
|
||||||
if user.UID != "" {
|
|
||||||
req.Attribute("uid", []string{user.UID})
|
|
||||||
}
|
|
||||||
// if user.Member != "" {
|
|
||||||
// req.Attribute("member", []string{user.Member})
|
|
||||||
// }
|
|
||||||
if user.SN != "" {
|
|
||||||
req.Attribute("sn", []string{user.SN})
|
|
||||||
}
|
|
||||||
if user.OtherMailbox != "" {
|
|
||||||
req.Attribute("carLicense", []string{user.OtherMailbox})
|
|
||||||
}
|
|
||||||
if user.Description != "" {
|
|
||||||
req.Attribute("description", []string{user.Description})
|
|
||||||
}
|
|
||||||
// Add the User
|
|
||||||
// err := ldapConn.Add(req)
|
|
||||||
// var ldapNewConn *ldap.Conn
|
|
||||||
ldapNewConn, err := openNewUserLdap(config)
|
|
||||||
err = ldapNewConn.Add(req)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf(fmt.Sprintf("add(User) ldapconn.Add: %v", err))
|
|
||||||
log.Printf(fmt.Sprintf("add(User) ldapconn.Add: %v", req))
|
|
||||||
log.Printf(fmt.Sprintf("add(User) ldapconn.Add: %v", user))
|
|
||||||
//return err
|
|
||||||
}
|
|
||||||
// passwordModifyRequest := ldap.NewPasswordModifyRequest(user.DN, "", user.Password)
|
|
||||||
// _, err = ldapConn.PasswordModify(passwordModifyRequest)
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Send the email
|
|
||||||
|
|
||||||
newUserLdapConn, _ := openNewUserLdap(config)
|
|
||||||
user.OtherMailbox = ""
|
|
||||||
err = passwordLost(user, config, newUserLdapConn)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("add User PasswordLost %v", err)
|
|
||||||
log.Printf("add User PasswordLost %v", newUserLdapConn)
|
|
||||||
}
|
|
||||||
|
|
||||||
// sendMailTplData := SendMailTplData{
|
|
||||||
// From: "alice@resdigita.org",
|
|
||||||
// To: user.OtherMailbox,
|
|
||||||
// RelTemplatePath: "user/new.email.txt",
|
|
||||||
// EmailContentVars: EmailContentVarsTplData{
|
|
||||||
// InviteFrom: "alice@resdigita.org",
|
|
||||||
// SendAddress: "https://www.gvoisins.org",
|
|
||||||
// Code: "...",
|
|
||||||
// },
|
|
||||||
// }
|
|
||||||
// err = sendMail(sendMailTplData)
|
|
||||||
// if err != nil {
|
|
||||||
// log.Printf("add(user) sendMail: %v", err)
|
|
||||||
// log.Printf("add(user) sendMail: %v", user)
|
|
||||||
// log.Printf("add(user) sendMail: %v", sendMailTplData)
|
|
||||||
// }
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func modify(user User, config *ConfigFile, ldapConn *ldap.Conn) error {
|
|
||||||
modify_request := ldap.NewModifyRequest(user.DN, nil)
|
|
||||||
previousUser, err := get(user, config, ldapConn)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
replaceIfContent(modify_request, "displayName", user.DisplayName, previousUser.DisplayName)
|
|
||||||
replaceIfContent(modify_request, "givenName", user.GivenName, previousUser.GivenName)
|
|
||||||
replaceIfContent(modify_request, "sn", user.SN, previousUser.SN)
|
|
||||||
replaceIfContent(modify_request, "carLicense", user.OtherMailbox, user.OtherMailbox)
|
|
||||||
replaceIfContent(modify_request, "description", user.Description, previousUser.Description)
|
|
||||||
err = ldapConn.Modify(modify_request)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf(fmt.Sprintf("71: %v", err))
|
|
||||||
log.Printf(fmt.Sprintf("72: %v", modify_request))
|
|
||||||
log.Printf(fmt.Sprintf("73: %v", user))
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func passwd(user User, config *ConfigFile, ldapConn *ldap.Conn) error {
|
|
||||||
passwordModifyRequest := ldap.NewPasswordModifyRequest(user.DN, "", user.Password)
|
|
||||||
_, err := ldapConn.PasswordModify(passwordModifyRequest)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf(fmt.Sprintf("model-user passwd : %v %v", err, ldapConn))
|
|
||||||
log.Printf(fmt.Sprintf("model-user passwd : %v", user))
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func bind(user User, config *ConfigFile, ldapConn *ldap.Conn) error {
|
|
||||||
return ldapConn.Bind(user.DN, user.Password)
|
|
||||||
}
|
|
||||||
|
|
||||||
// func encodePassword(inPassword string) (string, error) {
|
|
||||||
// utf16 := unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM)
|
|
||||||
// return utf16.NewEncoder().String("\"" + inPassword + "\"")
|
|
||||||
// // if err != nil {
|
|
||||||
// // log.Printf("Error encoding password: %s", err)
|
|
||||||
// // return err
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// }
|
|
31
model.go
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
Centralises the models used in this application
|
|
||||||
*/
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/go-ldap/ldap/v3"
|
|
||||||
)
|
|
||||||
|
|
||||||
/*
|
|
||||||
Represents a user
|
|
||||||
*/
|
|
||||||
type User struct {
|
|
||||||
DN string
|
|
||||||
CN string
|
|
||||||
GivenName string
|
|
||||||
DisplayName string
|
|
||||||
Mail string
|
|
||||||
SN string
|
|
||||||
UID string
|
|
||||||
Description string
|
|
||||||
Password string
|
|
||||||
OtherMailbox string
|
|
||||||
CanAdmin bool
|
|
||||||
CanInvite bool
|
|
||||||
UserEntry *ldap.Entry
|
|
||||||
SeeAlso string
|
|
||||||
}
|
|
||||||
|
|
||||||
type EntryList []*ldap.Entry
|
|
|
@ -43,7 +43,7 @@ func newMinioClient() (*minio.Client, error) {
|
||||||
return minioCLient, nil
|
return minioCLient, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Upload image through guichet server.
|
//Upload image through guichet server.
|
||||||
func uploadProfilePicture(w http.ResponseWriter, r *http.Request, login *LoginStatus) (string, error) {
|
func uploadProfilePicture(w http.ResponseWriter, r *http.Request, login *LoginStatus) (string, error) {
|
||||||
file, _, err := r.FormFile("image")
|
file, _, err := r.FormFile("image")
|
||||||
|
|
||||||
|
|
136
profile.go
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"html/template"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/go-ldap/ldap/v3"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ProfileTplData struct {
|
||||||
|
Status *LoginStatus
|
||||||
|
ErrorMessage string
|
||||||
|
Success bool
|
||||||
|
Mail string
|
||||||
|
DisplayName string
|
||||||
|
GivenName string
|
||||||
|
Surname string
|
||||||
|
Visibility string
|
||||||
|
Description string
|
||||||
|
ProfilePicture string
|
||||||
|
}
|
||||||
|
|
||||||
|
func handleProfile(w http.ResponseWriter, r *http.Request) {
|
||||||
|
templateProfile := template.Must(template.ParseFiles("templates/layout.html", "templates/profile.html"))
|
||||||
|
|
||||||
|
login := checkLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data := &ProfileTplData{
|
||||||
|
Status: login,
|
||||||
|
ErrorMessage: "",
|
||||||
|
Success: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
data.Mail = login.UserEntry.GetAttributeValue("mail")
|
||||||
|
data.DisplayName = login.UserEntry.GetAttributeValue("displayname")
|
||||||
|
data.GivenName = login.UserEntry.GetAttributeValue("givenname")
|
||||||
|
data.Surname = login.UserEntry.GetAttributeValue("sn")
|
||||||
|
data.Visibility = login.UserEntry.GetAttributeValue(FIELD_NAME_DIRECTORY_VISIBILITY)
|
||||||
|
data.Description = login.UserEntry.GetAttributeValue("description")
|
||||||
|
data.ProfilePicture = login.UserEntry.GetAttributeValue(FIELD_NAME_PROFILE_PICTURE)
|
||||||
|
|
||||||
|
if r.Method == "POST" {
|
||||||
|
//5MB maximum size files
|
||||||
|
r.ParseMultipartForm(5 << 20)
|
||||||
|
|
||||||
|
data.DisplayName = strings.TrimSpace(strings.Join(r.Form["display_name"], ""))
|
||||||
|
data.GivenName = strings.TrimSpace(strings.Join(r.Form["given_name"], ""))
|
||||||
|
data.Surname = strings.TrimSpace(strings.Join(r.Form["surname"], ""))
|
||||||
|
data.Description = strings.Trim(strings.Join(r.Form["description"], ""), "")
|
||||||
|
visible := strings.TrimSpace(strings.Join(r.Form["visibility"], ""))
|
||||||
|
if visible != "" {
|
||||||
|
visible = "on"
|
||||||
|
}
|
||||||
|
data.Visibility = visible
|
||||||
|
|
||||||
|
profilePicture, err := uploadProfilePicture(w, r, login)
|
||||||
|
if err != nil {
|
||||||
|
data.ErrorMessage = err.Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
if profilePicture != "" {
|
||||||
|
data.ProfilePicture = profilePicture
|
||||||
|
}
|
||||||
|
|
||||||
|
modify_request := ldap.NewModifyRequest(login.Info.DN, nil)
|
||||||
|
modify_request.Replace("displayname", []string{data.DisplayName})
|
||||||
|
modify_request.Replace("givenname", []string{data.GivenName})
|
||||||
|
modify_request.Replace("sn", []string{data.Surname})
|
||||||
|
modify_request.Replace("description", []string{data.Description})
|
||||||
|
modify_request.Replace(FIELD_NAME_DIRECTORY_VISIBILITY, []string{data.Visibility})
|
||||||
|
if data.ProfilePicture != "" {
|
||||||
|
modify_request.Replace(FIELD_NAME_PROFILE_PICTURE, []string{data.ProfilePicture})
|
||||||
|
}
|
||||||
|
|
||||||
|
err = login.conn.Modify(modify_request)
|
||||||
|
if err != nil {
|
||||||
|
data.ErrorMessage = err.Error()
|
||||||
|
} else {
|
||||||
|
data.Success = true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
templateProfile.Execute(w, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
type PasswdTplData struct {
|
||||||
|
Status *LoginStatus
|
||||||
|
ErrorMessage string
|
||||||
|
TooShortError bool
|
||||||
|
NoMatchError bool
|
||||||
|
Success bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func handlePasswd(w http.ResponseWriter, r *http.Request) {
|
||||||
|
templatePasswd := template.Must(template.ParseFiles("templates/layout.html", "templates/passwd.html"))
|
||||||
|
|
||||||
|
login := checkLogin(w, r)
|
||||||
|
if login == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data := &PasswdTplData{
|
||||||
|
Status: login,
|
||||||
|
ErrorMessage: "",
|
||||||
|
Success: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.Method == "POST" {
|
||||||
|
r.ParseForm()
|
||||||
|
|
||||||
|
password := strings.Join(r.Form["password"], "")
|
||||||
|
password2 := strings.Join(r.Form["password2"], "")
|
||||||
|
|
||||||
|
if len(password) < 8 {
|
||||||
|
data.TooShortError = true
|
||||||
|
} else if password2 != password {
|
||||||
|
data.NoMatchError = true
|
||||||
|
} else {
|
||||||
|
modify_request := ldap.NewModifyRequest(login.Info.DN, nil)
|
||||||
|
modify_request.Replace("userpassword", []string{SSHAEncode([]byte(password))})
|
||||||
|
err := login.conn.Modify(modify_request)
|
||||||
|
if err != nil {
|
||||||
|
data.ErrorMessage = err.Error()
|
||||||
|
} else {
|
||||||
|
data.Success = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
templatePasswd.Execute(w, data)
|
||||||
|
}
|
176
session.go
|
@ -1,176 +0,0 @@
|
||||||
/*
|
|
||||||
Handles session login and lougout with HTTP stuff
|
|
||||||
*/
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"log"
|
|
||||||
"net/http"
|
|
||||||
)
|
|
||||||
|
|
||||||
func checkLogin(w http.ResponseWriter, r *http.Request) *LoginStatus {
|
|
||||||
var login_info *LoginInfo
|
|
||||||
l, err := ldapOpen(w)
|
|
||||||
if l == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
session, err := store.Get(r, SESSION_NAME)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("checkLogin ldapOpen : %v", err)
|
|
||||||
log.Printf("checkLogin ldapOpen : %v", session)
|
|
||||||
log.Printf("checkLogin ldapOpen : %v", session.Values)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
username, ok := session.Values["login_username"]
|
|
||||||
password, ok2 := session.Values["login_password"]
|
|
||||||
user_dn, ok3 := session.Values["login_dn"]
|
|
||||||
|
|
||||||
if ok && ok2 && ok3 {
|
|
||||||
login_info = &LoginInfo{
|
|
||||||
DN: user_dn.(string),
|
|
||||||
Username: username.(string),
|
|
||||||
Password: password.(string),
|
|
||||||
}
|
|
||||||
err = bind(User{
|
|
||||||
DN: login_info.DN,
|
|
||||||
Password: login_info.Password,
|
|
||||||
}, config, l)
|
|
||||||
if err != nil {
|
|
||||||
delete(session.Values, "login_username")
|
|
||||||
delete(session.Values, "login_password")
|
|
||||||
delete(session.Values, "login_dn")
|
|
||||||
|
|
||||||
err = session.Save(r, w)
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return checkLogin(w, r)
|
|
||||||
}
|
|
||||||
ldapUser, err := get(User{
|
|
||||||
DN: login_info.DN,
|
|
||||||
CN: login_info.Username,
|
|
||||||
}, config, l)
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
userEntry := ldapUser.UserEntry
|
|
||||||
loginStatus := LoginStatus{
|
|
||||||
Info: login_info,
|
|
||||||
conn: l,
|
|
||||||
UserEntry: userEntry,
|
|
||||||
Common: NestedCommonTplData{
|
|
||||||
CanAdmin: ldapUser.CanAdmin,
|
|
||||||
CanInvite: ldapUser.CanInvite,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return &loginStatus
|
|
||||||
} else {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
requestKind := "(objectClass=organizationalPerson)"
|
|
||||||
if strings.EqualFold(login_info.DN, config.AdminAccount) {
|
|
||||||
requestKind = "(objectclass=*)"
|
|
||||||
}
|
|
||||||
searchRequest := ldap.NewSearchRequest(
|
|
||||||
login_info.DN,
|
|
||||||
ldap.ScopeBaseObject, ldap.NeverDerefAliases, 0, 0, false,
|
|
||||||
requestKind,
|
|
||||||
[]string{
|
|
||||||
"dn",
|
|
||||||
"displayname",
|
|
||||||
"givenname",
|
|
||||||
"sn",
|
|
||||||
"mail",
|
|
||||||
"cn",
|
|
||||||
"memberof",
|
|
||||||
"description",
|
|
||||||
"garage_s3_access_key",
|
|
||||||
},
|
|
||||||
nil)
|
|
||||||
// FIELD_NAME_DIRECTORY_VISIBILITY,
|
|
||||||
// FIELD_NAME_PROFILE_PICTURE,
|
|
||||||
|
|
||||||
sr, err := l.Search(searchRequest)
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(sr.Entries) != 1 {
|
|
||||||
http.Error(w, fmt.Sprintf("Unable to find entry for %s", login_info.DN), http.StatusInternalServerError)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
loginStatus.UserEntry = sr.Entries[0]
|
|
||||||
|
|
||||||
loginStatus.CanAdmin = strings.EqualFold(loginStatus.Info.DN, config.AdminAccount)
|
|
||||||
loginStatus.CanInvite = false
|
|
||||||
|
|
||||||
groups := []EntryName{}
|
|
||||||
searchRequest = ldap.NewSearchRequest(
|
|
||||||
config.GroupBaseDN,
|
|
||||||
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
|
|
||||||
fmt.Sprintf("(&(objectClass=groupOfNames)(member=%s))", login_info.DN),
|
|
||||||
[]string{"dn", "displayName", "cn", "description"},
|
|
||||||
nil)
|
|
||||||
// // log.Printf(fmt.Sprintf("708: %v",searchRequest))
|
|
||||||
sr, err = l.Search(searchRequest)
|
|
||||||
// if err != nil {
|
|
||||||
// http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//// log.Printf(fmt.Sprintf("303: %v",sr.Entries))
|
|
||||||
for _, ent := range sr.Entries {
|
|
||||||
// log.Printf(fmt.Sprintf("305: %v",ent.DN))
|
|
||||||
groups = append(groups, EntryName{
|
|
||||||
DN: ent.DN,
|
|
||||||
Name: ent.GetAttributeValue("cn"),
|
|
||||||
})
|
|
||||||
// log.Printf(fmt.Sprintf("310: %v",config.GroupCanInvite))
|
|
||||||
if config.GroupCanInvite != "" && strings.EqualFold(ent.DN, config.GroupCanInvite) {
|
|
||||||
loginStatus.CanInvite = true
|
|
||||||
}
|
|
||||||
// log.Printf(fmt.Sprintf("314: %v",config.GroupCanAdmin))
|
|
||||||
if config.GroupCanAdmin != "" && strings.EqualFold(ent.DN, config.GroupCanAdmin) {
|
|
||||||
loginStatus.CanAdmin = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// for _, attr := range loginStatus.UserEntry.Attributes {
|
|
||||||
// if strings.EqualFold(attr.Name, "memberof") {
|
|
||||||
// for _, group := range attr.Values {
|
|
||||||
// if config.GroupCanInvite != "" && strings.EqualFold(group, config.GroupCanInvite) {
|
|
||||||
// loginStatus.CanInvite = true
|
|
||||||
// }
|
|
||||||
// if config.GroupCanAdmin != "" && strings.EqualFold(group, config.GroupCanAdmin) {
|
|
||||||
// loginStatus.CanAdmin = true
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
return loginStatus
|
|
||||||
*/
|
|
||||||
|
|
||||||
func logout(w http.ResponseWriter, r *http.Request) error {
|
|
||||||
session, err := store.Get(r, SESSION_NAME)
|
|
||||||
if err != nil {
|
|
||||||
session, _ = store.New(r, SESSION_NAME)
|
|
||||||
// return err
|
|
||||||
} else {
|
|
||||||
delete(session.Values, "login_username")
|
|
||||||
delete(session.Values, "login_password")
|
|
||||||
delete(session.Values, "login_dn")
|
|
||||||
|
|
||||||
err = session.Save(r, w)
|
|
||||||
}
|
|
||||||
|
|
||||||
// return err
|
|
||||||
return nil
|
|
||||||
}
|
|
37
ssha.go
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/rand"
|
||||||
|
"crypto/sha1"
|
||||||
|
"encoding/base64"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Encode encodes the []byte of raw password
|
||||||
|
func SSHAEncode(rawPassPhrase []byte) string {
|
||||||
|
hash := makeSSHAHash(rawPassPhrase, makeSalt())
|
||||||
|
b64 := base64.StdEncoding.EncodeToString(hash)
|
||||||
|
return fmt.Sprintf("{ssha}%s", b64)
|
||||||
|
}
|
||||||
|
|
||||||
|
// makeSalt make a 32 byte array containing random bytes.
|
||||||
|
func makeSalt() []byte {
|
||||||
|
sbytes := make([]byte, 32)
|
||||||
|
_, err := rand.Read(sbytes)
|
||||||
|
if err != nil {
|
||||||
|
log.Panicf("Could not read random bytes: %s", err)
|
||||||
|
}
|
||||||
|
return sbytes
|
||||||
|
}
|
||||||
|
|
||||||
|
// makeSSHAHash make hasing using SHA-1 with salt. This is not the final output though. You need to append {SSHA} string with base64 of this hash.
|
||||||
|
func makeSSHAHash(passphrase, salt []byte) []byte {
|
||||||
|
sha := sha1.New()
|
||||||
|
sha.Write(passphrase)
|
||||||
|
sha.Write(salt)
|
||||||
|
|
||||||
|
h := sha.Sum(nil)
|
||||||
|
return append(h, salt...)
|
||||||
|
}
|
10
static/css/bootstrap.min.css
vendored
|
@ -1,96 +0,0 @@
|
||||||
:root {
|
|
||||||
/* --color-1: #74b9ff;
|
|
||||||
--color-1: #e84393;
|
|
||||||
--color-1: #6c5ce7;
|
|
||||||
--color-1: #00b894;
|
|
||||||
--color-1: #fdcb6e;
|
|
||||||
--color-1: #006266;
|
|
||||||
--color-1: #1B1464; */
|
|
||||||
--slate-blue: #6c5ce7ff;
|
|
||||||
--mountain-meadow: #00b894ff;
|
|
||||||
--rose-bonbon: #e84393ff;
|
|
||||||
--maximum-yellow-red: #fdcb6eff;
|
|
||||||
--midnight-blue: #1b1464ff;
|
|
||||||
--french-sky-blue: #74b9ff;
|
|
||||||
--skobeloff: #006266;
|
|
||||||
--white: white;
|
|
||||||
--color-whiteish: #eee;
|
|
||||||
--color-blackish: #222;
|
|
||||||
--gradient-top: linear-gradient(0deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-right: linear-gradient(90deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom: linear-gradient(180deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-left: linear-gradient(270deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-top-right: linear-gradient(45deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom-right: linear-gradient(135deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-top-left: linear-gradient(225deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom-left: linear-gradient(315deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-radial: radial-gradient(#6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--color-primary: var(--slate-blue);
|
|
||||||
--color-primary-light: var(--french-sky-blue);
|
|
||||||
--color-primary-dark: var(--midnight-blue);
|
|
||||||
--color-secondary-light: var(--maximum-yellow-red);
|
|
||||||
--color-secondary-dark: var(--maximum-yellow-red);
|
|
||||||
--color-secondary: var(--maximum-yellow-red);
|
|
||||||
--color-tertiary-light: var(--mountain-meadow);
|
|
||||||
--color-tertiary: var(--mountain-meadow);
|
|
||||||
--color-tertiary-dark: var(--skobeloff);
|
|
||||||
--color-background: var(--color-whiteish);
|
|
||||||
--color-background-inverted: var(--color-primary-dark);
|
|
||||||
--color-text: var(--midnight-blue);
|
|
||||||
--color-text-inverted: var(--color-whiteish);
|
|
||||||
--color-link: var(--midnight-blue);
|
|
||||||
--color-link-inverted: var(--rose-bonbon);
|
|
||||||
--gv-highlight-color: var(--color-tertiary);
|
|
||||||
--color-highlight: var(--color-tertiary);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
--color-link-hover: var(--rose-bonbon);
|
|
||||||
--color-link-hover-inverted: var(--maximum-yellow-red);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* @media (prefers-color-scheme: dark) {
|
|
||||||
:root {
|
|
||||||
--color-background: var(--color-primary-dark);
|
|
||||||
--color-text: var(--white);
|
|
||||||
--color-text-inverted: var(--black);
|
|
||||||
--color-link: var(--color-primary-light);
|
|
||||||
--color-link-inverted: var(--color-primary-dark);
|
|
||||||
|
|
||||||
--gv-highlight-color: var(--color-primary-dark);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
|
|
||||||
.darkmode {
|
|
||||||
--color-background: var(--color-primary-dark);
|
|
||||||
--color-text: var(--color-whiteish);
|
|
||||||
--color-text-inverted: var(--color-primary-dark);
|
|
||||||
--color-link: var(--color-link-inverted);
|
|
||||||
--color-link-inverted: var(--color-primary-light);
|
|
||||||
--color-link-hover: var(--maximum-yellow-red);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
:root {
|
|
||||||
--title-font-family: serif;
|
|
||||||
--body-font-family: sans-serif;
|
|
||||||
--body-width: 80%;
|
|
||||||
--body-background: lightgrey;
|
|
||||||
--content-background: white;
|
|
||||||
--menu-background: blue;
|
|
||||||
--menu-foreground: white;
|
|
||||||
}
|
|
||||||
F7F5F6
|
|
||||||
91ADEF
|
|
||||||
E3435F
|
|
||||||
987F8F
|
|
||||||
263C6A
|
|
||||||
|
|
||||||
F0F3F3
|
|
||||||
879BB6
|
|
||||||
F5BA18
|
|
||||||
B33E54
|
|
||||||
272534
|
|
||||||
*/
|
|
|
@ -1,76 +0,0 @@
|
||||||
:root {
|
|
||||||
--color-lesartsvoisins: #f0494d;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
font-family: fengardoneue;
|
|
||||||
color: var(--color-text);
|
|
||||||
background-color: var(--color-background);
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
color: var(--color-link);
|
|
||||||
}
|
|
||||||
h1, h2, h3, h4, h5, h6, nav {
|
|
||||||
font-family: lack;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
hr {
|
|
||||||
border-style: none;
|
|
||||||
border-bottom: 1px solid var(--color-text);
|
|
||||||
}
|
|
||||||
button.toggle-darkmode {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left:0;
|
|
||||||
z-index: 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
img.richtext-image.full-width {
|
|
||||||
max-width: 100%;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
img.richtext-image.left {
|
|
||||||
max-width: 50%;
|
|
||||||
float: left;
|
|
||||||
padding: 0 1rem 0 0 ;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
img.richtext-image.right {
|
|
||||||
max-width: 50%;
|
|
||||||
float: right;
|
|
||||||
padding: 0 0 0 1rem ;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
a:hover {
|
|
||||||
color: var(--color-link-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
img.lesgv.hero {
|
|
||||||
margin: 0 auto;
|
|
||||||
max-height: 35vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.card {
|
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.card-header {
|
|
||||||
transform: rotate(180deg);
|
|
||||||
writing-mode: vertical-lr;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.darkmode div.card-header {
|
|
||||||
color: var(--color-text-inverted);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 700px) {
|
|
||||||
div.card {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
div.card-header {
|
|
||||||
transform: unset;
|
|
||||||
writing-mode: unset;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
.card {
|
|
||||||
overflow: hidden;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: space-between;
|
|
||||||
min-width: 20rem;
|
|
||||||
}
|
|
||||||
.card-header img {
|
|
||||||
width: 100%;
|
|
||||||
height: 14rem;
|
|
||||||
object-fit: cover;
|
|
||||||
border-radius: 1rem;
|
|
||||||
}
|
|
||||||
.card-body {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
min-height: 250px;
|
|
||||||
height: --webkit-fill-available;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-body {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.article h3 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.author {
|
|
||||||
float:right;
|
|
||||||
}
|
|
||||||
.tag {
|
|
||||||
background: var(--color-text);
|
|
||||||
border-radius: 0.25em;
|
|
||||||
margin: 0;
|
|
||||||
color: var(--color-background);
|
|
||||||
padding: 2px 10px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.tag-teal {
|
|
||||||
background-color: #47bcd4;
|
|
||||||
}
|
|
||||||
.tag-purple {
|
|
||||||
background-color: #5e76bf;
|
|
||||||
}
|
|
||||||
.tag-pink {
|
|
||||||
background-color: #cd5b9f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.author img {
|
|
||||||
border-radius: 50%;
|
|
||||||
width: 4rem;
|
|
||||||
height: 4rem;
|
|
||||||
/* margin-right: 2rem; */
|
|
||||||
}
|
|
||||||
.user-info p {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.user-info p small {
|
|
||||||
color: var(--color-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
div.author {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
div.tags {
|
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 1000px) {
|
|
||||||
.card {
|
|
||||||
min-width: 14rem;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
ul.breadcrumb {
|
|
||||||
padding: 10px 16px;
|
|
||||||
list-style: none;
|
|
||||||
/* background-color: #d8d0c2; */
|
|
||||||
background-color: var(--color-text);
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
color: var(--color-background);
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
ul.breadcrumb li {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
ul.breadcrumb li+li:before {
|
|
||||||
padding: 8px;
|
|
||||||
color: var(--color-link-inverted);
|
|
||||||
content: "/\00a0";
|
|
||||||
}
|
|
||||||
ul.breadcrumb li a {
|
|
||||||
color: var(--color-link-inverted);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
ul.breadcrumb li a:hover {
|
|
||||||
color: var(--color-background);
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
|
@ -1,235 +0,0 @@
|
||||||
#menuToggle
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
/* top: 50px;
|
|
||||||
left: 50px; */
|
|
||||||
float: left;
|
|
||||||
top: 1rem;
|
|
||||||
left: 1rem;
|
|
||||||
|
|
||||||
z-index: 600;
|
|
||||||
|
|
||||||
-webkit-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuToggle a
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
color: var(--color-link);
|
|
||||||
|
|
||||||
transition: color 0.3s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuToggle a:hover
|
|
||||||
{
|
|
||||||
color: var(--color-link-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu ul.submenu {
|
|
||||||
display: none;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 50;
|
|
||||||
float: left;
|
|
||||||
background: var(--color-background);
|
|
||||||
list-style-type: none;
|
|
||||||
padding-right: 1rem;
|
|
||||||
padding-left: 1rem;
|
|
||||||
padding-top: 1rem;
|
|
||||||
border-radius: 0 0 1rem 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#menu ul.submenu li {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu li:hover ul.submenu {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#menuToggle input
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
width: 40px;
|
|
||||||
height: 32px;
|
|
||||||
position: absolute;
|
|
||||||
/* top: -7px;
|
|
||||||
left: -5px; */
|
|
||||||
right: 3rem;
|
|
||||||
top: 1.25rem;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
opacity: 0; /* hide this */
|
|
||||||
z-index: 800; /* and place it over the hamburger */
|
|
||||||
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuToggle div.burger {
|
|
||||||
float: right;
|
|
||||||
margin-right: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Just a quick hamburger
|
|
||||||
*/
|
|
||||||
#menuToggle div.burger span
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
width: 2rem;
|
|
||||||
height: 0.25rem;
|
|
||||||
margin-bottom: 0.25rem;
|
|
||||||
position: relative;
|
|
||||||
background: var(--color-text);
|
|
||||||
border-radius: 0.2rem;
|
|
||||||
z-index: 1;
|
|
||||||
/* transform-origin: -4px 0px; */
|
|
||||||
transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0), background 0.5s cubic-bezier(0.77,0.2,0.05,1.0), opacity 0.55s ease;
|
|
||||||
right: 1rem;
|
|
||||||
top: 1rem;
|
|
||||||
/* display: block;
|
|
||||||
width: 33px;
|
|
||||||
height: 4px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
background: var(--color-text);
|
|
||||||
border-radius: 3px;
|
|
||||||
|
|
||||||
z-index: 1;
|
|
||||||
|
|
||||||
transform-origin: 4px 0px;
|
|
||||||
|
|
||||||
transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
|
|
||||||
background 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
|
|
||||||
opacity 0.55s ease; */
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuToggle div.burger span:first-child
|
|
||||||
{
|
|
||||||
transform-origin: 0% 0%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menuToggle div.burger span:nth-last-child(2)
|
|
||||||
{
|
|
||||||
transform-origin: 0% 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Transform all the slices of hamburger
|
|
||||||
* into a crossmark.
|
|
||||||
*/
|
|
||||||
#menuToggle input:checked ~ div.burger span
|
|
||||||
{
|
|
||||||
opacity: 1;
|
|
||||||
transform: rotate(-45deg) translate(-0.05rem, -0.1rem);
|
|
||||||
background: var(--color-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* body.darkmode #menuToggle input:checked ~ span {
|
|
||||||
background: var(--color-secondary-dark);
|
|
||||||
} */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* But let's hide the middle one.
|
|
||||||
*/
|
|
||||||
#menuToggle input:checked ~ div.burger span:nth-last-child(3)
|
|
||||||
{
|
|
||||||
opacity: 0;
|
|
||||||
transform: rotate(0deg) scale(0.2, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Ohyeah and the last one should go the other direction
|
|
||||||
*/
|
|
||||||
#menuToggle input:checked ~ div.burger span:nth-last-child(2)
|
|
||||||
{
|
|
||||||
transform: rotate(45deg) translate(-0.1rem, -0.2rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Make this absolute positioned
|
|
||||||
* at the top left of the screen
|
|
||||||
*/
|
|
||||||
#menu
|
|
||||||
{
|
|
||||||
/* position: absolute; */
|
|
||||||
justify-content: space-between;
|
|
||||||
visibility: hidden;
|
|
||||||
/* width: 300px;
|
|
||||||
margin: -100px 0 0 -50px;
|
|
||||||
padding: 50px;
|
|
||||||
padding-top: 125px; */
|
|
||||||
|
|
||||||
margin: 0.5rem 1rem 0 1rem;
|
|
||||||
background: var(--color-background);
|
|
||||||
opacity: 0.9;
|
|
||||||
border: 1px solid;
|
|
||||||
border-radius: 1em;
|
|
||||||
list-style-type: none;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
/* to stop flickering of text in safari */
|
|
||||||
|
|
||||||
|
|
||||||
/* transform-origin: 0% 0%;
|
|
||||||
transform: translate(-120%, 0); */
|
|
||||||
transform: visibility 1s linear;
|
|
||||||
transition-property: visibility;
|
|
||||||
|
|
||||||
|
|
||||||
/* transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0); */
|
|
||||||
padding-left: 0;
|
|
||||||
padding: 1rem;
|
|
||||||
/* left: 3rem; */
|
|
||||||
visibility: hidden;
|
|
||||||
opacity: 0;
|
|
||||||
|
|
||||||
|
|
||||||
top: -1rem;
|
|
||||||
display: flex;
|
|
||||||
/* grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; */
|
|
||||||
column-gap: 1rem;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu li
|
|
||||||
{
|
|
||||||
padding: 0 0 0.5rem 0;
|
|
||||||
font-size-adjust: 130%;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* And let's slide it in from the left
|
|
||||||
*/
|
|
||||||
#menuToggle input:checked ~ ul
|
|
||||||
{
|
|
||||||
visibility: visible;
|
|
||||||
opacity: 0.9;
|
|
||||||
transition: visibility 0s linear 0s, opacity 300ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 1200px) {
|
|
||||||
#menu
|
|
||||||
{
|
|
||||||
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 800px) {
|
|
||||||
#menu
|
|
||||||
{
|
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
|
||||||
#menu
|
|
||||||
{
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,158 +0,0 @@
|
||||||
div.container,
|
|
||||||
div.posts {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
|
||||||
margin: 1rem 1rem;
|
|
||||||
gap: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
margin: 1rem auto;
|
|
||||||
width: 90vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card {
|
|
||||||
min-width: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.lesgv-footer {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.agenda-item {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.agenda-item img {
|
|
||||||
width: 100%;
|
|
||||||
max-height: 14rem;
|
|
||||||
object-fit: cover;
|
|
||||||
border-radius: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.agenda-item a.left img {
|
|
||||||
width: 50%;
|
|
||||||
float: left;
|
|
||||||
padding: 0 1rem 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.agenda-item a.right img {
|
|
||||||
width: 50%;
|
|
||||||
float: right;
|
|
||||||
padding: 0 0 0 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.agenda-item p {
|
|
||||||
margin-block-end: 0.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.agenda-item-date-lieu {
|
|
||||||
padding-left: 0;
|
|
||||||
padding-top:0;
|
|
||||||
margin-top: -0.5rem;
|
|
||||||
}
|
|
||||||
ul.agenda-item-date-lieu li {
|
|
||||||
padding: 0 1rem 0 0;
|
|
||||||
display: inline-block;
|
|
||||||
font-size: small;
|
|
||||||
}
|
|
||||||
.apropos {
|
|
||||||
grid-row-start: 1;
|
|
||||||
grid-row-end: 2;
|
|
||||||
|
|
||||||
}
|
|
||||||
.agenda {
|
|
||||||
grid-area: 1 / 2 / 3 / 4;
|
|
||||||
border: var(--color-text);
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 1px;
|
|
||||||
padding: 0 0.5rem;
|
|
||||||
border-top: unset;
|
|
||||||
border-bottom: unset;
|
|
||||||
border-radius: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.agenda h2 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.posts div.card:nth-child(3) {
|
|
||||||
grid-area: 2 / 1 / 4 / 2;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(4) {
|
|
||||||
grid-area: 3 / 2 / 4 / 4;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(6) {
|
|
||||||
grid-area: 4 / 2 / 5 / 4;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(4) div.card-body{
|
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(6) div.card-body {
|
|
||||||
flex-direction: row-reverse;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(4) img,
|
|
||||||
div.posts div.card:nth-child(6) img {
|
|
||||||
width: 14rem;
|
|
||||||
padding: 0 0 0 0;
|
|
||||||
margin: 1rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 800px) {
|
|
||||||
div.posts {
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
}
|
|
||||||
.agenda {
|
|
||||||
grid-area: 1 / 2 / 3 / 3;
|
|
||||||
}
|
|
||||||
div.lesgv-footer {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(3) {
|
|
||||||
grid-area: unset;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(4) {
|
|
||||||
grid-area: unset;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(6) {
|
|
||||||
grid-area: unset;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(4) div.card-body{
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(6) div.card-body {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
div.posts div.card:nth-child(4) img,
|
|
||||||
div.posts div.card:nth-child(6) img {
|
|
||||||
width: unset;
|
|
||||||
padding: unset;
|
|
||||||
}
|
|
||||||
.agenda-item a.right img,
|
|
||||||
.agenda-item a.left img {
|
|
||||||
width: 100%;
|
|
||||||
float: unset;
|
|
||||||
padding: 0 0 0 0;
|
|
||||||
border-radius: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 550px) {
|
|
||||||
div.posts {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
.apropos {
|
|
||||||
grid-area: 1 / 1 / 2 / 2;
|
|
||||||
}
|
|
||||||
.agenda {
|
|
||||||
grid-area: 2 / 1 / 3 / 2;
|
|
||||||
border: var(--color-text);
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 1px;
|
|
||||||
padding: 0 0.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,270 +0,0 @@
|
||||||
body {
|
|
||||||
margin: 0 auto;
|
|
||||||
max-width: 1300px;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
div.enclosing-grid {
|
|
||||||
display: grid;
|
|
||||||
}
|
|
||||||
div.enclosing-grid img {
|
|
||||||
scale: 90%;
|
|
||||||
}
|
|
||||||
.TL {
|
|
||||||
grid-area: 1 / 1 / 2 / 4;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-start;
|
|
||||||
margin-bottom: -4rem;
|
|
||||||
}
|
|
||||||
.TL img {
|
|
||||||
display: inline-block;
|
|
||||||
align-self: flex-start;
|
|
||||||
}
|
|
||||||
.TR {
|
|
||||||
grid-area: 1 / 3 / 2 / 8;
|
|
||||||
z-index: 11;
|
|
||||||
display: flex;
|
|
||||||
width: 100%;
|
|
||||||
justify-content: flex-end;
|
|
||||||
margin-bottom: -4rem;
|
|
||||||
}
|
|
||||||
.TR img {
|
|
||||||
display: inline-block;
|
|
||||||
align-self: flex-start;
|
|
||||||
}
|
|
||||||
.HH {
|
|
||||||
grid-area: 2 / 1 / 3 / 7 ;
|
|
||||||
z-index: 15;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 1rem 1rem 0 0;
|
|
||||||
width: fit-content;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
.HH a {
|
|
||||||
align-self: center;
|
|
||||||
}
|
|
||||||
.HH a img {
|
|
||||||
max-width: 100vw;
|
|
||||||
height: auto;
|
|
||||||
padding: 0 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ML {
|
|
||||||
grid-area: 2 / 1 / 6 / 2;
|
|
||||||
z-index: 20;
|
|
||||||
}
|
|
||||||
.ML img {
|
|
||||||
margin-top: -75%;
|
|
||||||
}
|
|
||||||
.CT {
|
|
||||||
grid-area: 3 / 2 / 6 / 5;
|
|
||||||
z-index: 36;
|
|
||||||
max-width: 86vw;
|
|
||||||
background-color: var(--color-background);
|
|
||||||
padding: 1rem;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 1rem 1rem 0 1rem;
|
|
||||||
}
|
|
||||||
.MR {
|
|
||||||
grid-area: 2 / 5 / 10 / 8;
|
|
||||||
/* grid-area: 2 / 6 / 10 / 9; */
|
|
||||||
z-index: 17;
|
|
||||||
}
|
|
||||||
.FL {
|
|
||||||
grid-area: 6 / 2 / 8 / 4;
|
|
||||||
z-index: 28;
|
|
||||||
margin-left: 4rem;
|
|
||||||
border-radius: 0 0 0 1rem;
|
|
||||||
}
|
|
||||||
.FR {
|
|
||||||
grid-area: 6 / 4 / 8 / 5;
|
|
||||||
z-index: 29;
|
|
||||||
border-radius: 0 0 1rem 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
.FR, .FL {
|
|
||||||
margin-bottom: 4rem;
|
|
||||||
background-color: var(--color-background);
|
|
||||||
padding: 1rem;
|
|
||||||
max-width: 86vw;
|
|
||||||
}
|
|
||||||
.BL {
|
|
||||||
grid-area: 5 / 1 / 9 / 4;
|
|
||||||
z-index: 12;
|
|
||||||
text-align: left;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-start;
|
|
||||||
}
|
|
||||||
.BL a {
|
|
||||||
align-self: flex-end;
|
|
||||||
}
|
|
||||||
.BC {
|
|
||||||
grid-area: 7 / 1 / 9 / 6;
|
|
||||||
z-index: 14;
|
|
||||||
margin-top: 6rem;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.BR {
|
|
||||||
grid-area: 7 / 1 / 9 / 8;
|
|
||||||
z-index: 13;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
.BR img {
|
|
||||||
display: inline-block;
|
|
||||||
align-self: flex-end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.darkmode div.cadre img,
|
|
||||||
.darkmode div.HH img {
|
|
||||||
filter: sepia(0.25) brightness(1.25) contrast(0.75);
|
|
||||||
}
|
|
||||||
div.block-ghost_index_blog {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
gap: 2rem;
|
|
||||||
}
|
|
||||||
body.fait_ma_page_home iframe,
|
|
||||||
div.lesgv-footer iframe,
|
|
||||||
div.enclosing-grid iframe {
|
|
||||||
height: 14rem;
|
|
||||||
width: 100%;
|
|
||||||
padding-right: 0;
|
|
||||||
padding-bottom: 0;
|
|
||||||
border-radius: 1rem;
|
|
||||||
}
|
|
||||||
@media (max-width: 1200px) {
|
|
||||||
.CT {
|
|
||||||
grid-area: 3 / 2 / 6 / 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.FL {
|
|
||||||
grid-area: 6 / 2 / 7 / 6;
|
|
||||||
margin-left: unset;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
.FR {
|
|
||||||
grid-area: 7 / 3 / 8 / 6;
|
|
||||||
border-radius: 0 0 1rem 1rem;
|
|
||||||
}
|
|
||||||
.MR {
|
|
||||||
grid-area: 2 / 6 / 10 / 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media (max-width: 1000px) {
|
|
||||||
div.block-ghost_index_blog{
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
body.fait_ma_page_home iframe,
|
|
||||||
div.lesgv-footer iframe,
|
|
||||||
div.enclosing-grid iframe {
|
|
||||||
padding-right: unset;
|
|
||||||
padding-bottom: unset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media (max-width: 800px) {
|
|
||||||
body {
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
div.enclosing-grid div {
|
|
||||||
scale: 60%;
|
|
||||||
}
|
|
||||||
div.enclosing-grid div.CT,
|
|
||||||
div.enclosing-grid div.HH,
|
|
||||||
div.enclosing-grid div.CT div,
|
|
||||||
div.enclosing-grid div.FL,
|
|
||||||
div.enclosing-grid div.FR{
|
|
||||||
scale: unset;
|
|
||||||
}
|
|
||||||
.HH {
|
|
||||||
grid-area: 2 / 1 / 4 / 8;
|
|
||||||
padding-right: revert;
|
|
||||||
}
|
|
||||||
.CT {
|
|
||||||
grid-area: 4 / 1 / 5 / 8;
|
|
||||||
}
|
|
||||||
.FL {
|
|
||||||
grid-area: 5 / 1 / 6 / 8;
|
|
||||||
border-radius: 0 0 0 0;
|
|
||||||
}
|
|
||||||
.FR {
|
|
||||||
grid-area: 6 / 1 / 7 / 8;
|
|
||||||
}
|
|
||||||
.MR {
|
|
||||||
grid-area: 2 / 3 / 7 / 8;
|
|
||||||
}
|
|
||||||
.BR {
|
|
||||||
grid-area: 5 / 1 / 8 / 8;
|
|
||||||
}
|
|
||||||
.BC {
|
|
||||||
grid-area: 7 / 1 / 8 / 4;
|
|
||||||
}
|
|
||||||
.CT, .FL, .FR {
|
|
||||||
max-width: 83vw;
|
|
||||||
margin: 0 3vw;
|
|
||||||
}
|
|
||||||
div.TL img {
|
|
||||||
position:fixed;
|
|
||||||
left: -12rem;
|
|
||||||
}
|
|
||||||
div.TR img {
|
|
||||||
position:fixed;
|
|
||||||
right: -15rem;
|
|
||||||
}
|
|
||||||
div.ML img {
|
|
||||||
position:fixed;
|
|
||||||
left: -10rem;
|
|
||||||
}
|
|
||||||
div.BC img {
|
|
||||||
position:fixed;
|
|
||||||
bottom: -15rem;
|
|
||||||
}
|
|
||||||
div.MR img {
|
|
||||||
position:absolute;
|
|
||||||
right: -15rem;
|
|
||||||
}
|
|
||||||
div.BL img {
|
|
||||||
position:fixed;
|
|
||||||
left: -10rem;
|
|
||||||
bottom: -22rem;
|
|
||||||
}
|
|
||||||
div.BR img {
|
|
||||||
position:fixed;
|
|
||||||
right: -22rem;
|
|
||||||
bottom: -22rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media print {
|
|
||||||
div.enclosing-grid {
|
|
||||||
margin: 1rem auto;
|
|
||||||
}
|
|
||||||
img {
|
|
||||||
left: unset;
|
|
||||||
right: unset;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
margin-left: 5rem;
|
|
||||||
}
|
|
||||||
.CT {
|
|
||||||
grid-area: 4 / 3 / 5 / 7;
|
|
||||||
}
|
|
||||||
.FL {
|
|
||||||
grid-area: 5 / 2 / 6 / 7;
|
|
||||||
margin-left: unset;
|
|
||||||
}
|
|
||||||
.FR {
|
|
||||||
grid-area: 6 / 3 / 7 / 7;
|
|
||||||
}
|
|
||||||
.BC {
|
|
||||||
grid-area: 7 / 4 / 9 / 5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
:root {
|
|
||||||
/* --color-1: #74b9ff;
|
|
||||||
--color-1: #e84393;
|
|
||||||
--color-1: #6c5ce7;
|
|
||||||
--color-1: #00b894;
|
|
||||||
--color-1: #fdcb6e;
|
|
||||||
--color-1: #006266;
|
|
||||||
--color-1: #1B1464; */
|
|
||||||
--slate-blue: #6c5ce7ff;
|
|
||||||
--mountain-meadow: #00b894ff;
|
|
||||||
--rose-bonbon: #e84393ff;
|
|
||||||
--maximum-yellow-red: #fdcb6eff;
|
|
||||||
--midnight-blue: #1b1464ff;
|
|
||||||
--french-sky-blue: #74b9ff;
|
|
||||||
--skobeloff: #006266;
|
|
||||||
--white: white;
|
|
||||||
--black: black;
|
|
||||||
--gradient-top: linear-gradient(0deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-right: linear-gradient(90deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom: linear-gradient(180deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-left: linear-gradient(270deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-top-right: linear-gradient(45deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom-right: linear-gradient(135deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-top-left: linear-gradient(225deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom-left: linear-gradient(315deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-radial: radial-gradient(#6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--color-primary: var(--slate-blue);
|
|
||||||
--color-primary-light: var(--french-sky-blue);
|
|
||||||
--color-primary-dark: var(--midnight-blue);
|
|
||||||
--color-secondary-light: var(--mountain-meadow);
|
|
||||||
--color-secondary-dark: var(--black);
|
|
||||||
--color-secondary: var(--skobeloff);
|
|
||||||
--color-tertiary-light: var(--white);
|
|
||||||
--color-tertiary: var(--maximum-yellow-red);
|
|
||||||
--color-tertiary-dark: var(--rose-bonbon);
|
|
||||||
--color-background: var(--white);
|
|
||||||
--color-text: var(--black);
|
|
||||||
--color-text-inverted: var(--white);
|
|
||||||
--color-link: var(--color-primary);
|
|
||||||
--color-link-inverted: var(--color-primary-light);
|
|
||||||
--gv-highlight-color: var(--color-primary-light);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
}
|
|
|
@ -1,96 +0,0 @@
|
||||||
:root {
|
|
||||||
/* --color-1: #74b9ff;
|
|
||||||
--color-1: #e84393;
|
|
||||||
--color-1: #6c5ce7;
|
|
||||||
--color-1: #00b894;
|
|
||||||
--color-1: #fdcb6e;
|
|
||||||
--color-1: #006266;
|
|
||||||
--color-1: #1B1464; */
|
|
||||||
--slate-blue: #6c5ce7ff;
|
|
||||||
--mountain-meadow: #00b894ff;
|
|
||||||
--rose-bonbon: #e84393ff;
|
|
||||||
--maximum-yellow-red: #fdcb6eff;
|
|
||||||
--midnight-blue: #1b1464ff;
|
|
||||||
--french-sky-blue: #74b9ff;
|
|
||||||
--skobeloff: #006266;
|
|
||||||
--white: white;
|
|
||||||
--color-whiteish: #eee;
|
|
||||||
--color-blackish: #222;
|
|
||||||
--gradient-top: linear-gradient(0deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-right: linear-gradient(90deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom: linear-gradient(180deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-left: linear-gradient(270deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-top-right: linear-gradient(45deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom-right: linear-gradient(135deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-top-left: linear-gradient(225deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom-left: linear-gradient(315deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-radial: radial-gradient(#6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--color-primary: var(--slate-blue);
|
|
||||||
--color-primary-light: var(--french-sky-blue);
|
|
||||||
--color-primary-dark: var(--midnight-blue);
|
|
||||||
--color-secondary-light: var(--maximum-yellow-red);
|
|
||||||
--color-secondary-dark: var(--maximum-yellow-red);
|
|
||||||
--color-secondary: var(--maximum-yellow-red);
|
|
||||||
--color-tertiary-light: var(--mountain-meadow);
|
|
||||||
--color-tertiary: var(--mountain-meadow);
|
|
||||||
--color-tertiary-dark: var(--skobeloff);
|
|
||||||
--color-background: var(--color-whiteish);
|
|
||||||
--color-background-inverted: var(--color-primary-dark);
|
|
||||||
--color-text: var(--midnight-blue);
|
|
||||||
--color-text-inverted: var(--color-whiteish);
|
|
||||||
--color-link: var(--midnight-blue);
|
|
||||||
--color-link-inverted: var(--rose-bonbon);
|
|
||||||
--gv-highlight-color: var(--color-tertiary);
|
|
||||||
--color-highlight: var(--color-tertiary);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
--color-link-hover: var(--rose-bonbon);
|
|
||||||
--color-link-hover-inverted: var(--maximum-yellow-red);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* @media (prefers-color-scheme: dark) {
|
|
||||||
:root {
|
|
||||||
--color-background: var(--color-primary-dark);
|
|
||||||
--color-text: var(--white);
|
|
||||||
--color-text-inverted: var(--black);
|
|
||||||
--color-link: var(--color-primary-light);
|
|
||||||
--color-link-inverted: var(--color-primary-dark);
|
|
||||||
|
|
||||||
--gv-highlight-color: var(--color-primary-dark);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
|
|
||||||
.darkmode {
|
|
||||||
--color-background: var(--color-primary-dark);
|
|
||||||
--color-text: var(--color-whiteish);
|
|
||||||
--color-text-inverted: var(--color-primary-dark);
|
|
||||||
--color-link: var(--color-link-inverted);
|
|
||||||
--color-link-inverted: var(--color-primary-light);
|
|
||||||
--color-link-hover: var(--maximum-yellow-red);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
:root {
|
|
||||||
--title-font-family: serif;
|
|
||||||
--body-font-family: sans-serif;
|
|
||||||
--body-width: 80%;
|
|
||||||
--body-background: lightgrey;
|
|
||||||
--content-background: white;
|
|
||||||
--menu-background: blue;
|
|
||||||
--menu-foreground: white;
|
|
||||||
}
|
|
||||||
F7F5F6
|
|
||||||
91ADEF
|
|
||||||
E3435F
|
|
||||||
987F8F
|
|
||||||
263C6A
|
|
||||||
|
|
||||||
F0F3F3
|
|
||||||
879BB6
|
|
||||||
F5BA18
|
|
||||||
B33E54
|
|
||||||
272534
|
|
||||||
*/
|
|
|
@ -1,62 +0,0 @@
|
||||||
:root {
|
|
||||||
--color-primary: var(--mountain-meadow);
|
|
||||||
--color-primary-light: var(--maximum-yellow-red);
|
|
||||||
--color-primary-dark: var(--skobeloff);
|
|
||||||
--color-secondary-light: var(--color-whiteish);
|
|
||||||
--color-secondary-dark: var(--color-blackish);
|
|
||||||
--color-secondary: var(--rose-bonbon);
|
|
||||||
--color-tertiary-light: var(--french-sky-blue);
|
|
||||||
--color-tertiary: var(--slate-blue);
|
|
||||||
--color-tertiary-dark: var(--midnight-blue);
|
|
||||||
--color-background: var(--color-whiteish);
|
|
||||||
--color-background-inverted: var(--color-primary-dark);
|
|
||||||
--color-text: var(--color-blackish);
|
|
||||||
--color-text-inverted: var(--color-whiteish);
|
|
||||||
--color-link: var(--color-primary-dark);
|
|
||||||
--color-link-inverted: var(--color-primary-light);
|
|
||||||
--gv-highlight-color: var(--color-seccondary);
|
|
||||||
--color-highlight: var(--color-secondary);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
--color-link-hover: var(--color-secondary);
|
|
||||||
--color-link-hover-inverted: var(--color-primary-light);
|
|
||||||
}
|
|
||||||
.darkmode {
|
|
||||||
--color-background: var(--color-blackish);
|
|
||||||
--color-text: var(--color-whiteish);
|
|
||||||
--color-text-inverted: var(--color-primary-dark);
|
|
||||||
--color-link: var(--color-primary-light);
|
|
||||||
--color-link-inverted: var(--color-primary-dark);
|
|
||||||
--color-link-hover: var(--color-secondary);
|
|
||||||
}
|
|
||||||
div.CT, div.FL, div.FR, div.HH {
|
|
||||||
--color-background: var(--color-blackish);
|
|
||||||
--color-text: var(--color-whiteish);
|
|
||||||
--color-text-inverted: var(--color-primary-dark);
|
|
||||||
--color-link: var(--color-primary-light);
|
|
||||||
--color-link-inverted: var(--color-primary-dark);
|
|
||||||
--color-link-hover: var(--color-secondary);
|
|
||||||
color: var(--color-text);
|
|
||||||
background-color: var(--color-background);
|
|
||||||
}
|
|
||||||
.CT a, .FL a, .FR a, .HH a {
|
|
||||||
color: var(--color-link);
|
|
||||||
}
|
|
||||||
.CT a:hover, .FL a:hover, .FR a:hover, .HH a:hover {
|
|
||||||
color: var(--color-link-hover);
|
|
||||||
}
|
|
||||||
body.darkmode div.CT,
|
|
||||||
body.darkmode div.FL,
|
|
||||||
body.darkmode div.FR,
|
|
||||||
body.darkmode div.HH {
|
|
||||||
--color-background: var(--color-whiteish);
|
|
||||||
--color-background-inverted: var(--color-primary-dark);
|
|
||||||
--color-text: var(--color-blackish);
|
|
||||||
--color-text-inverted: var(--color-whiteish);
|
|
||||||
--color-link: var(--color-primary-dark);
|
|
||||||
--color-link-inverted: var(--color-primary-light);
|
|
||||||
--gv-highlight-color: var(--color-secondary);
|
|
||||||
--color-highlight: var(--color-secondary);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
--color-link-hover: var(--color-secondary);
|
|
||||||
--color-link-hover-inverted: var(--color-primary-light);
|
|
||||||
}
|
|
|
@ -1,133 +0,0 @@
|
||||||
:root {
|
|
||||||
--primary-50: #fee8f3;
|
|
||||||
--primary-100: #fdc6e2;
|
|
||||||
--primary-200: #fca1cf;
|
|
||||||
--primary-300: #fb7bbb;
|
|
||||||
--primary-400: #fa5ead;
|
|
||||||
--primary-500: #f9429e;
|
|
||||||
--primary-600: #f83c96;
|
|
||||||
--primary-700: #f7338c;
|
|
||||||
--primary-800: #f62b82;
|
|
||||||
--primary-900: #f51d70;
|
|
||||||
--primary-A100: #ffffff;
|
|
||||||
--primary-A200: #fff6f9;
|
|
||||||
--primary-A400: #ffc3d9;
|
|
||||||
--primary-A700: #ffaac8;
|
|
||||||
--secondary-50: #fffbee;
|
|
||||||
--secondary-100: #fef4d4;
|
|
||||||
--secondary-200: #feedb7;
|
|
||||||
--secondary-300: #fde69a;
|
|
||||||
--secondary-400: #fce084;
|
|
||||||
--secondary-500: #fcdb6e;
|
|
||||||
--secondary-600: #fcd766;
|
|
||||||
--secondary-700: #fbd25b;
|
|
||||||
--secondary-800: #fbcd51;
|
|
||||||
--secondary-900: #fac43f;
|
|
||||||
--secondary-A100: #ffffff;
|
|
||||||
--secondary-A200: #ffffff;
|
|
||||||
--secondary-A400: #fff6e2;
|
|
||||||
--secondary-A700: #ffefc9;
|
|
||||||
|
|
||||||
--whiteish: #eee;
|
|
||||||
--blackish: #222;
|
|
||||||
|
|
||||||
|
|
||||||
/* --color-1: #74b9ff;
|
|
||||||
--color-1: #e84393;
|
|
||||||
--color-1: #6c5ce7;
|
|
||||||
--color-1: #00b894;
|
|
||||||
--color-1: #fdcb6e;
|
|
||||||
--color-1: #006266;
|
|
||||||
--color-1: #1B1464; */
|
|
||||||
--slate-blue: #6c5ce7ff;
|
|
||||||
--mountain-meadow: #00b894ff;
|
|
||||||
--rose-bonbon: #e84393ff;
|
|
||||||
--maximum-yellow-red: #fdcb6eff;
|
|
||||||
--midnight-blue: #1b1464ff;
|
|
||||||
--french-sky-blue: #74b9ff;
|
|
||||||
--skobeloff: #006266;
|
|
||||||
--white: white;
|
|
||||||
--black: black;
|
|
||||||
--gradient-top: linear-gradient(0deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-right: linear-gradient(90deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom: linear-gradient(180deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-left: linear-gradient(270deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-top-right: linear-gradient(45deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom-right: linear-gradient(135deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-top-left: linear-gradient(225deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-bottom-left: linear-gradient(315deg, #6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--gradient-radial: radial-gradient(#6c5ce7ff, #00b894ff, #e84393ff, #fdcb6eff, #1b1464ff);
|
|
||||||
--color-primary: var(--slate-blue);
|
|
||||||
--color-primary-light: var(--french-sky-blue);
|
|
||||||
--color-primary-dark: var(--midnight-blue);
|
|
||||||
--color-secondary-light: var(--mountain-meadow);
|
|
||||||
--color-secondary-dark: var(--black);
|
|
||||||
--color-secondary: var(--skobeloff);
|
|
||||||
--color-tertiary-light: var(--white);
|
|
||||||
--color-tertiary: var(--maximum-yellow-red);
|
|
||||||
--color-tertiary-dark: var(--rose-bonbon);
|
|
||||||
--color-background: var(--whiteish);
|
|
||||||
--color-text: var(--blackish);
|
|
||||||
--color-text-inverted: var(--whiteish);
|
|
||||||
--color-link: var(--primary-900);
|
|
||||||
--color-link-inverted: var(--primary-100);
|
|
||||||
--color-link-hover: var(--primary-600);
|
|
||||||
--gv-highlight-color: var(--primary-100);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
}
|
|
||||||
/* :root {
|
|
||||||
--color-primary: var(--mountain-meadow);
|
|
||||||
--color-primary-light: var(--maximum-yellow-red);
|
|
||||||
--color-primary-dark: var(--skobeloff);
|
|
||||||
--color-secondary-light: var(--color-whiteish);
|
|
||||||
--color-secondary-dark: var(--color-blackish);
|
|
||||||
--color-secondary: var(--rose-bonbon);
|
|
||||||
--color-tertiary-light: var(--french-sky-blue);
|
|
||||||
--color-tertiary: var(--slate-blue);
|
|
||||||
--color-tertiary-dark: var(--midnight-blue);
|
|
||||||
--color-background: var(--color-whiteish);
|
|
||||||
--color-background-inverted: var(--color-primary-dark);
|
|
||||||
--color-text: var(--color-blackish);
|
|
||||||
--color-text-inverted: var(--color-whiteish);
|
|
||||||
--color-link: var(--color-primary-dark);
|
|
||||||
--color-link-inverted: var(--color-primary-light);
|
|
||||||
--gv-highlight-color: var(--color-seccondary);
|
|
||||||
--color-highlight: var(--color-secondary);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
--color-link-hover: var(--color-secondary);
|
|
||||||
--color-link-hover-inverted: var(--color-primary-light);
|
|
||||||
} */
|
|
||||||
div.CT, div.FL, div.FR, div.HH {
|
|
||||||
--color-background: var(--whiteish);
|
|
||||||
--color-text: var(--blackish);
|
|
||||||
--color-text-inverted: var(--whiteish);
|
|
||||||
--color-link: var(--primary-900);
|
|
||||||
--color-link-inverted: var(--primary-100);
|
|
||||||
--gv-highlight-color: var(--primary-100);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
color: var(--color-text);
|
|
||||||
background-color: var(--color-background);
|
|
||||||
--color-link-hover: var(--primary-500);
|
|
||||||
}
|
|
||||||
.darkmode {
|
|
||||||
--color-background: var(--secondary-200);
|
|
||||||
--color-text: var(--black);
|
|
||||||
--color-text-inverted: var(--blackish);
|
|
||||||
--color-link: var(--primary-600);
|
|
||||||
--color-link-inverted: var(--primary-900);
|
|
||||||
--color-link-hover: var(--primary-400);
|
|
||||||
}
|
|
||||||
body.darkmode div.CT,
|
|
||||||
body.darkmode div.FL,
|
|
||||||
body.darkmode div.FR,
|
|
||||||
body.darkmode div.HH {
|
|
||||||
--color-background: var(--whiteish);
|
|
||||||
--color-text: var(--blackish);
|
|
||||||
--color-text-inverted: var(--whiteish);
|
|
||||||
--color-link: var(--primary-900);
|
|
||||||
--color-link-inverted: var(--primary-100);
|
|
||||||
--gv-highlight-color: var(--primary-100);
|
|
||||||
--gv-background-opacity: 0.9;
|
|
||||||
--color-link-hover: var(--primary-500);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,247 +0,0 @@
|
||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<metadata>
|
|
||||||
This is a custom SVG webfont generated by Font Squirrel.
|
|
||||||
Copyright : Font designed by Loic Sander 2012 Distributed under the terms of the SIL OFL Licence Free for commercial use This font file can me modified at will under the conditions that any modification made is mentionned and clearly stated in the filename or accompanying info in case of further distribution
|
|
||||||
Designer : Loic Sander
|
|
||||||
Foundry : Loic Sander
|
|
||||||
</metadata>
|
|
||||||
<defs>
|
|
||||||
<font id="FengardoNeueBlack" horiz-adv-x="1058" >
|
|
||||||
<font-face units-per-em="2048" ascent="1475" descent="-573" />
|
|
||||||
<missing-glyph horiz-adv-x="450" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="450" />
|
|
||||||
<glyph unicode="	" horiz-adv-x="450" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="450" />
|
|
||||||
<glyph unicode="!" horiz-adv-x="501" d="M31 1452l440 33l-106 -942h-232q-102 868 -102 909zM45 170q0 90 58.5 147.5t146.5 57.5t147.5 -57.5t59.5 -147.5q0 -86 -59.5 -143.5t-147.5 -57.5q-86 0 -145.5 57.5t-59.5 143.5z" />
|
|
||||||
<glyph unicode=""" horiz-adv-x="845" d="M31 1485l338 35l-21 -701h-239q-78 639 -78 666zM459 819q10 639 10 666l346 35l-117 -701h-239z" />
|
|
||||||
<glyph unicode="#" horiz-adv-x="1267" d="M41 293l31 256h190l14 153h-194l29 256h192l29 271h286l-26 -271h153l29 271h287l-27 -271h193l-27 -256h-190l-17 -153h195l-25 -256h-194l-29 -293h-291l29 293h-152l-28 -293h-291l29 293h-195zM551 549h154l14 153h-152z" />
|
|
||||||
<glyph unicode="$" horiz-adv-x="1103" d="M74 520l362 10q0 -156 137 -155q111 0 111 84q0 25 -12.5 43t-45 35.5t-55 25.5t-80 26.5t-79.5 26.5q-162 55 -248 138.5t-86 246.5q0 162 101.5 263.5t266.5 128.5v135l267 69v-213q156 -33 240.5 -135t74.5 -278l-360 -10q0 156 -111 155q-47 0 -76.5 -23.5 t-29.5 -68.5q0 -16 5 -31.5t12 -27t22.5 -22.5t26.5 -18t34.5 -17.5t36 -15.5t43.5 -16.5t43 -15.5q68 -25 109.5 -43t100 -53t91.5 -72t57.5 -94t24.5 -127q0 -143 -95.5 -239.5t-248.5 -127.5v-147l-267 -70v213q-382 60 -372 420z" />
|
|
||||||
<glyph unicode="%" horiz-adv-x="1517" d="M41 1083q0 137 86 223.5t221 86.5q137 0 223 -86t86 -224q0 -133 -90 -219t-219 -86q-135 0 -221 85t-86 220zM289 1085.5q0 -30.5 17.5 -51t44 -20.5t44 20.5t17.5 51t-17.5 51t-44 20.5t-44 -20.5t-17.5 -51zM301 0l690 1454h266l-690 -1454h-266zM860 274 q0 137 86 223.5t221 86.5q137 0 223.5 -86t86.5 -224q0 -133 -90.5 -219t-219.5 -86q-135 0 -221 85t-86 220zM1108 276.5q0 -30.5 17.5 -51t44 -20.5t44 20.5t17.5 51t-17.5 51t-44 20.5t-44 -20.5t-17.5 -51z" />
|
|
||||||
<glyph unicode="&" horiz-adv-x="1325" d="M51 424q0 113 62.5 205t169.5 149q-82 41 -137.5 124t-55.5 183q0 182 148.5 291t351.5 109q225 0 354 -121t129 -350l-358 -10q0 78 -32 120.5t-87 42.5q-57 0 -87 -38.5t-30 -98.5q0 -66 32 -108.5t101 -42.5v-246q-82 0 -127 -44t-45 -122q0 -82 51.5 -131t129.5 -49 q90 0 144 63.5t54 165.5v117h-104v246h579v-246h-106v-86q0 -248 -169 -413t-417 -165t-399.5 123t-151.5 332z" />
|
|
||||||
<glyph unicode="'" horiz-adv-x="403" d="M31 1485l342 35l-45 -701h-240q-57 639 -57 666z" />
|
|
||||||
<glyph unicode="(" horiz-adv-x="755" d="M82 594q0 459 311 797q82 90 152 137l211 -35q-12 -14 -33 -41t-74 -116t-93 -186t-72.5 -245.5t-32.5 -300.5q0 -440 227 -770q39 -57 67 -88l-210 -55q-18 12 -49 34.5t-109 104.5t-137.5 177t-108.5 254t-49 333z" />
|
|
||||||
<glyph unicode=")" horiz-adv-x="755" d="M0 1493l211 35q18 -12 50 -37t112 -112t140 -186t110.5 -262t50.5 -337q0 -127 -24.5 -245t-64.5 -206t-89.5 -164.5t-97.5 -128t-88 -88t-64 -53.5l-25 -18l-211 55q12 12 31.5 35.5t71 106.5t90.5 175.5t70.5 239t31.5 301.5q0 152 -31.5 299.5t-75.5 248.5t-89.5 182 t-75.5 120z" />
|
|
||||||
<glyph unicode="*" horiz-adv-x="872" d="M-25 1116l78 217l254 -100l-31 270l263 13l-29 -283l246 100l69 -231l-262 -47l201 -246l-207 -135l-156 254l-153 -250l-199 133l184 238z" />
|
|
||||||
<glyph unicode="+" horiz-adv-x="1105" d="M51 369v297h338v368h328v-368h338v-297h-338v-379h-328v379h-338z" />
|
|
||||||
<glyph unicode="," horiz-adv-x="501" d="M-10 -242q182 51 221 181l6 28q-78 4 -130 60.5t-52 144.5q0 90 61.5 143.5t141.5 53.5q104 0 163.5 -72t59.5 -184q0 -115 -42 -205t-107.5 -141.5t-129 -79t-123.5 -33.5z" />
|
|
||||||
<glyph unicode="-" horiz-adv-x="579" d="M31 369v297h518v-297h-518z" />
|
|
||||||
<glyph unicode="." horiz-adv-x="509" d="M51 174q0 94 57.5 152.5t145.5 58.5t146.5 -58.5t58.5 -152.5q0 -90 -58.5 -147.5t-146.5 -57.5q-86 0 -144.5 57.5t-58.5 147.5z" />
|
|
||||||
<glyph unicode="/" horiz-adv-x="1019" d="M-10 -205l733 1721h307l-733 -1721h-307z" />
|
|
||||||
<glyph unicode="0" horiz-adv-x="1120" d="M66 387q-4 223 0 340q8 180 141 305t352 125q213 0 350.5 -121t145.5 -305q6 -168 0 -344q-6 -180 -135 -299t-354.5 -119t-360.5 120t-139 298zM430 410q4 -57 40 -95.5t91 -38.5q57 0 89 35t36 97q8 154 0 303q-4 61 -37 100t-88 39q-123 0 -131 -145q-8 -113 0 -295z " />
|
|
||||||
<glyph unicode="1" horiz-adv-x="890" d="M82 0v225l197 47v539h-173l-22 203l418 121l145 -9v-854l203 -47v-225h-768z" />
|
|
||||||
<glyph unicode="2" horiz-adv-x="1062" d="M51 684q-8 211 126 342t345 131q190 0 319.5 -99.5t129.5 -287.5q0 -180 -180 -338q-125 -106 -271 -164l174 19h328v-287h-936l-20 211q37 29 370 295q164 131 164 239q0 47 -24.5 76t-65.5 29q-53 0 -83 -39t-28 -106z" />
|
|
||||||
<glyph unicode="3" horiz-adv-x="1112" d="M41 84l348 20q6 -78 46 -116.5t101.5 -38.5t98.5 46t37 138t-50.5 143.5t-146.5 51.5l-88 -13l-49 162l229 342h-483v307h895l31 -225l-271 -385q135 -27 218 -139.5t83 -267.5q0 -209 -139 -338t-356 -129q-225 0 -361.5 122.5t-142.5 319.5z" />
|
|
||||||
<glyph unicode="4" horiz-adv-x="1155" d="M51 209l309 917l388 82l-306 -921h195l20 297l338 92v-389h129v-277h-129l-10 -338h-348v338h-547z" />
|
|
||||||
<glyph unicode="5" horiz-adv-x="1091" d="M51 74l348 20q12 -145 138 -145q66 0 100.5 54t34.5 144q0 190 -137 191q-39 0 -69 -23.5t-42 -52.5l-295 21l57 843h781v-307h-486l-22 -274q78 39 200 39q164 0 272.5 -107.5t108.5 -322.5q0 -250 -144 -381t-353 -131q-195 0 -339.5 110.5t-152.5 321.5z" />
|
|
||||||
<glyph unicode="6" horiz-adv-x="1150" d="M70 459q-16 303 0 534q16 207 147 334t365 127q213 0 337.5 -105.5t127.5 -314.5l-349 -20q0 61 -31.5 97t-91.5 36q-129 0 -137 -172q-6 -94 -6 -230q12 25 36 52.5t95.5 60.5t165.5 33q162 0 266.5 -121t104.5 -307q0 -233 -141.5 -362.5t-362.5 -129.5 q-219 0 -366.5 130.5t-159.5 357.5zM438 469q12 -193 158 -193q59 0 97 44.5t38 123.5q0 170 -143 170q-70 0 -108 -41t-42 -104z" />
|
|
||||||
<glyph unicode="7" horiz-adv-x="1048" d="M10 819v307h967l41 -256l-510 -1198h-408l494 1147h-584z" />
|
|
||||||
<glyph unicode="8" horiz-adv-x="1110" d="M51 391q0 221 197 336q-88 45 -138.5 129t-50.5 172q0 207 144.5 316.5t355.5 109.5q207 0 349.5 -106.5t142.5 -307.5q0 -88 -54.5 -177t-142.5 -136q98 -31 151.5 -120t53.5 -195q0 -219 -145.5 -331t-364.5 -112q-215 0 -356.5 106.5t-141.5 315.5zM418 430 q0 -76 39 -115t98 -39q57 0 97 39t40 115q0 74 -40 114t-97 40t-97 -40t-40 -114zM428 1012q0 -70 36 -106t91 -36t91 36t36 106q0 68 -36 101.5t-91 33.5t-91 -33.5t-36 -101.5z" />
|
|
||||||
<glyph unicode="9" horiz-adv-x="1167" d="M51 653q0 215 132 359.5t365.5 144.5t372 -132t154.5 -353q20 -268 0 -561q-16 -225 -156.5 -347t-371.5 -122q-207 0 -340 114.5t-141 302.5l348 21q0 -59 41 -95t102 -36q137 0 150 166q6 92 6 215q-47 -133 -254 -133q-176 0 -292 124.5t-116 331.5zM420 666 q0 -182 158 -183q76 0 105.5 46t23.5 118v19q-10 184 -152 184q-59 0 -97 -49t-38 -135z" />
|
|
||||||
<glyph unicode=":" horiz-adv-x="493" d="M61 174q0 94 57.5 152.5t145.5 58.5t146.5 -58.5t58.5 -152.5q0 -90 -58.5 -147.5t-146.5 -57.5q-86 0 -144.5 57.5t-58.5 147.5zM61 766q0 94 57.5 152.5t145.5 58.5t146.5 -58.5t58.5 -152.5q0 -90 -58.5 -147.5t-146.5 -57.5q-86 0 -144.5 57.5t-58.5 147.5z" />
|
|
||||||
<glyph unicode=";" horiz-adv-x="499" d="M-10 -242q182 51 221 181l6 28q-78 4 -130 60.5t-52 144.5q0 90 61.5 143.5t141.5 53.5q104 0 163.5 -72t59.5 -184q0 -115 -42 -205t-107.5 -141.5t-129 -79t-123.5 -33.5zM68 768q0 94 57 152.5t145 58.5t146.5 -58.5t58.5 -152.5q0 -90 -58.5 -147.5t-146.5 -57.5 q-86 0 -144 57.5t-58 147.5z" />
|
|
||||||
<glyph unicode="<" horiz-adv-x="1046" d="M61 442v82l799 514l135 -229l-489 -303l2 -23l485 -327l-157 -219z" />
|
|
||||||
<glyph unicode="=" horiz-adv-x="1048" d="M51 190v287h946v-287h-946zM51 590v287h946v-287h-946z" />
|
|
||||||
<glyph unicode=">" horiz-adv-x="1046" d="M51 164l488 303l-2 27l-484 323l158 219l774 -516v-82l-799 -504z" />
|
|
||||||
<glyph unicode="?" horiz-adv-x="995" d="M43 1024q-8 221 127 341t346 120q184 0 316.5 -104.5t132.5 -288.5q0 -98 -43 -164t-158 -154q-20 -14 -45 -33.5t-39 -31t-32.5 -24.5t-29 -22.5t-21.5 -19.5t-17.5 -17.5t-11.5 -16.5t-7 -16t-2 -15v-46h-190l-13 52q-18 92 12.5 149.5t131.5 159.5q51 55 63 89t12 89 q0 96 -83 96q-41 0 -67 -34.5t-24 -98.5zM266 170q0 90 58.5 147.5t146.5 57.5t147.5 -57.5t59.5 -147.5q0 -86 -59.5 -143.5t-147.5 -57.5q-86 0 -145.5 57.5t-59.5 143.5z" />
|
|
||||||
<glyph unicode="@" horiz-adv-x="1964" d="M41 393q0 451 286.5 735.5t737.5 284.5q178 0 330.5 -48t271.5 -141.5t187.5 -243t68.5 -337.5q0 -270 -146.5 -440t-402.5 -170q-231 0 -315 164q-102 -133 -258 -134q-125 0 -197 88.5t-55 274.5q10 106 43 238q86 332 452 331q242 0 386 -133l-82 -475 q-20 -123 75 -123q74 0 134.5 83t60.5 276q0 246 -146.5 390t-408.5 144q-319 0 -513 -200.5t-194 -536.5q0 -266 166 -420t453 -154q229 0 473 107l80 -184q-115 -90 -284 -135.5t-339 -45.5q-238 0 -431 91.5t-313 276.5t-120 437zM887 424q-12 -94 59 -94q49 0 74 47 l59 323q-27 18 -61 19q-70 0 -92 -84q-25 -92 -39 -211z" />
|
|
||||||
<glyph unicode="A" horiz-adv-x="1243" d="M-10 0l327 1368v86h605l331 -1454h-419l-48 256h-348l-49 -256h-399zM504 584h223l-78 430l-31 188l-30 -188z" />
|
|
||||||
<glyph unicode="B" horiz-adv-x="1214" d="M102 0v1454q281 2 486 2q129 0 225 -15.5t179 -54t126 -112.5t43 -182q0 -119 -80 -206t-200 -120v-6q8 0 33.5 -5t72.5 -25.5t86 -53.5t70 -98.5t31 -151.5q0 -186 -137.5 -307t-444.5 -121zM512 338q2 0 30.5 -1t57.5 -1q164 0 164 139q0 141 -162 141q-20 0 -40.5 -1 t-34.5 -1h-15v-276zM512 860q2 0 37 -1t59 -1q143 0 144 135q0 125 -158 125q-29 0 -54.5 -1t-27.5 -1v-256z" />
|
|
||||||
<glyph unicode="C" horiz-adv-x="1146" d="M66 455q-3 193 -3.5 331.5t3.5 223.5q8 225 167.5 350t380.5 125q109 0 201 -31t164 -90t112 -158q36 -89 36 -200q0 -11 -1 -23l-378 -10q0 86 -36 130t-97.5 44t-99.5 -40t-40 -116q-4 -96 -4 -225t4 -291q6 -168 137 -168q59 0 102.5 46t43.5 128l379 -10 q0 -225 -144.5 -363.5t-390.5 -138.5q-238 0 -385 130.5t-151 355.5z" />
|
|
||||||
<glyph unicode="D" horiz-adv-x="1241" d="M102 0v1454q184 10 381 10q645 0 680 -481q16 -208 16 -363q0 -90 -5 -161q-35 -469 -707 -469zM502 332q2 -4 51 -4q188 0 203 172q8 98 8 212t-8 244q-10 170 -197 170l-57 -4v-790z" />
|
|
||||||
<glyph unicode="E" horiz-adv-x="1052" d="M102 0v1454h869v-338h-459v-215h416v-328h-416v-235h459v-338h-869z" />
|
|
||||||
<glyph unicode="F" horiz-adv-x="995" d="M102 0v1454h883v-338h-473v-276h432v-328h-432v-512h-410z" />
|
|
||||||
<glyph unicode="G" horiz-adv-x="1208" d="M66 455q-3 193 -3.5 331.5t3.5 223.5q8 225 169.5 350t385.5 125q227 0 377 -129q143 -122 143 -348v-25l-379 -10q0 84 -39 129t-102.5 45t-102.5 -42t-43 -114q-5 -122 -5 -251t5 -265q2 -82 44 -125t106 -43q68 0 106.5 41t42.5 111v73h-147v287h538q1 -76 1 -138 q0 -126 -3 -200q-8 -258 -162.5 -385t-388 -127t-388 127.5t-158.5 358.5z" />
|
|
||||||
<glyph unicode="H" horiz-adv-x="1372" d="M102 0v1454h410v-553h348v553h410v-1454h-410v563h-348v-563h-410z" />
|
|
||||||
<glyph unicode="I" horiz-adv-x="614" d="M102 0v1454h410v-1454h-410z" />
|
|
||||||
<glyph unicode="J" horiz-adv-x="1069" d="M2 471l358 10v-11q0 -163 115 -163q102 0 103 164v983h409v-983q0 -242 -144.5 -372t-359.5 -130q-219 0 -356 131q-126 120 -126 332q0 19 1 39z" />
|
|
||||||
<glyph unicode="K" horiz-adv-x="1288" d="M102 0v1454h410v-1454h-410zM522 739l326 715h432l-340 -670l358 -784h-450z" />
|
|
||||||
<glyph unicode="L" horiz-adv-x="956" d="M102 0v1454h410v-1116h424v-338h-834z" />
|
|
||||||
<glyph unicode="M" horiz-adv-x="1572" d="M102 0v1454h400l217 -543l63 -161h4l60 159l237 545h387v-1454h-409l4 637l20 197l-4 2l-77 -199l-170 -371h-129l-162 373l-72 197l-4 -2l20 -201l5 -633h-390z" />
|
|
||||||
<glyph unicode="N" horiz-adv-x="1357" d="M102 0v1454h355l360 -676l49 -137v813h389v-1454h-360l-344 598l-59 168v-766h-390z" />
|
|
||||||
<glyph unicode="O" horiz-adv-x="1232" d="M68 471q-5 123 -5.5 251.5t5.5 262.5q8 238 162.5 369t388 131t387 -131t161.5 -369q4 -121 4 -250.5t-4 -267.5q-6 -238 -161.5 -368t-389 -130t-386 130t-162.5 372zM471 733q0 -176 6 -272q8 -154 139 -154q133 0 142 154q6 127 6 262.5t-6 280.5q-6 143 -139.5 143 t-141.5 -143q-6 -95 -6 -271z" />
|
|
||||||
<glyph unicode="P" horiz-adv-x="1187" d="M102 0v1454q176 2 349 2q123 0 213 -7t195.5 -37t172 -82t111.5 -147.5t45 -226.5q0 -219 -154.5 -353t-410.5 -134l-111 4v-473h-410zM512 788q25 -2 70 -2q86 0 141 41t55 129q0 162 -211 162l-55 -2v-328z" />
|
|
||||||
<glyph unicode="Q" horiz-adv-x="1241" d="M68 471q-5 123 -5.5 251.5t5.5 262.5q8 238 162.5 369t388 131t387 -131t161.5 -369q4 -121 4 -250.5t-4 -267.5q-6 -201 -120.5 -327t-296.5 -158q70 -8 225 -41q184 -37 229 -37t58 2v-256q-35 -47 -111 -47q-145 0 -352 139q-324 217 -428 270q-135 53 -215 170 t-88 289zM471 733q0 -176 6 -272q8 -154 139 -154q133 0 142 154q6 127 6 262.5t-6 280.5q-6 143 -139.5 143t-141.5 -143q-6 -95 -6 -271z" />
|
|
||||||
<glyph unicode="R" horiz-adv-x="1226" d="M113 0v1454q197 4 413 4q150 0 258.5 -16.5t202.5 -59.5t143.5 -125.5t49.5 -205.5q0 -281 -269 -396q55 -31 103 -123q37 -74 95 -206.5t99 -229.5l39 -96h-436l-227 547h-62v-547h-409zM522 834q6 -4 45 -5q205 0 205 156q0 154 -192 154l-58 -2v-303z" />
|
|
||||||
<glyph unicode="S" horiz-adv-x="1185" d="M63 471l379 10q0 -90 46.5 -132t119.5 -42q127 0 127 90q0 49 -58.5 90t-219.5 95q-383 125 -383 446q0 219 153.5 338t376.5 119q229 0 375 -126q136 -118 136 -344q0 -16 -1 -32l-379 -10q0 174 -135 174q-49 0 -83 -23.5t-34 -66.5q0 -57 52.5 -95t226.5 -100 q193 -68 288 -165t95 -289q0 -199 -150.5 -319t-384.5 -120q-154 0 -276.5 50.5t-200.5 166.5q-70 106 -70 254q-1 15 0 31z" />
|
|
||||||
<glyph unicode="T" horiz-adv-x="1040" d="M-10 1116v338h1061v-338h-326v-1116h-410v1116h-325z" />
|
|
||||||
<glyph unicode="U" horiz-adv-x="1239" d="M86 444v1010h391q-2 -113 -2 -488.5t2 -492.5q2 -78 42 -122t103.5 -44t99.5 44t40 122q2 111 2 484.5t-2 496.5h391q3 -259 3 -512.5t-3 -501.5q-2 -221 -158.5 -346t-380.5 -125q-221 0 -373.5 125t-154.5 350z" />
|
|
||||||
<glyph unicode="V" horiz-adv-x="1222" d="M0 1454h430l195 -1057l188 1057h410l-324 -1454h-559z" />
|
|
||||||
<glyph unicode="W" horiz-adv-x="1775" d="M20 1454h431l96 -676l26 -254h7l26 254l115 676h352l125 -676l31 -260h6l25 260l86 676h409l-282 -1454h-429l-122 676l-27 227h-4l-27 -227l-116 -676h-445z" />
|
|
||||||
<glyph unicode="X" horiz-adv-x="1255" d="M0 0l371 752l-371 702h471l164 -387l162 387h440l-369 -711l398 -743h-471l-191 438l-164 -438h-440z" />
|
|
||||||
<glyph unicode="Y" horiz-adv-x="1148" d="M-61 1454h434l164 -420l43 -141l45 141l170 420h415l-436 -913v-541h-409v543z" />
|
|
||||||
<glyph unicode="Z" horiz-adv-x="1089" d="M31 229l530 887h-520v338h995l15 -219l-529 -897h537v-338h-1016z" />
|
|
||||||
<glyph unicode="[" horiz-adv-x="636" d="M51 -287v1803h545v-136l-197 -51v-1429l197 -52v-135h-545z" />
|
|
||||||
<glyph unicode="\" horiz-adv-x="921" d="M-10 1516h307l635 -1721h-303z" />
|
|
||||||
<glyph unicode="]" horiz-adv-x="636" d="M41 -152l197 52v1429l-197 51v136h545v-1803h-545v135z" />
|
|
||||||
<glyph unicode="^" horiz-adv-x="907" d="M10 1085l285 369h334l268 -369h-307l-131 201l-152 -201h-297z" />
|
|
||||||
<glyph unicode="_" horiz-adv-x="925" d="M-10 -72h946v-297h-946v297z" />
|
|
||||||
<glyph unicode="`" horiz-adv-x="604" d="M-20 1454h378l164 -297h-243z" />
|
|
||||||
<glyph unicode="a" d="M61 281q0 102 50.5 162.5t164.5 93.5q137 41 287 69v70q0 72 -55 72q-31 0 -49 -21q-14 -15 -14 -42q0 -9 1 -19l-337 -11q-2 20 -2 39q0 151 102 245q115 105 313 105q180 0 295 -95t115 -271v-324q0 -61 19.5 -79.5t86.5 -18.5v-256q-55 -20 -125 -27q-12 -1 -23 -1 q-60 0 -130 26q-84 31 -123 106h-4q-100 -135 -271 -135q-129 0 -215 88.5t-86 223.5zM430 334q0 -78 68 -78q29 0 47 18.5t18 51.5v118q-45 -10 -80 -22q-53 -18 -53 -88z" />
|
|
||||||
<glyph unicode="b" horiz-adv-x="1042" d="M82 41v1434l369 61v-584q8 10 24.5 25.5t75.5 41t129 25.5q129 0 211 -81.5t86 -225.5q4 -98 4 -201t-4 -210q-6 -164 -139 -260.5t-306 -96.5q-119 0 -231.5 17.5t-165.5 36.5zM451 281q31 -14 77 -15q29 0 53.5 19.5t26.5 52.5q2 78 2 161t-2 171q0 78 -69 78 q-41 0 -64.5 -28t-23.5 -69v-370z" />
|
|
||||||
<glyph unicode="c" horiz-adv-x="958" d="M66 352q-3 90 -3.5 172t3.5 156q8 168 134 266t308 98q201 0 309 -104q96 -92 96 -244q0 -20 -2 -41l-338 -10q2 11 2 22q0 31 -14 52q-18 29 -53 29q-72 0 -74 -82q-3 -76 -3 -154.5t3 -159.5q2 -39 24.5 -62.5t51.5 -23.5q37 0 55 26q15 21 15 52v14l338 -10 q-4 -164 -114 -271.5t-294 -107.5q-195 0 -316.5 101.5t-127.5 281.5z" />
|
|
||||||
<glyph unicode="d" horiz-adv-x="1091" d="M66 303q-3 90 -3.5 182.5t3.5 186.5q8 180 101 276t226 96q127 0 193 -51v482l368 61v-1182q0 -61 19.5 -79.5t87.5 -18.5v-256q-66 -23 -143 -25h-10q-73 0 -145 29q-77 31 -112 96q-2 -6 -8 -14t-27.5 -30.5t-49 -40t-74 -32t-99.5 -14.5q-131 0 -225 88t-102 246z M434 348q4 -82 78 -82q35 0 54.5 20.5t19.5 55.5v328q0 37 -21.5 57.5t-52.5 20.5q-74 0 -78 -78q-3 -81 -3 -161.5t3 -160.5z" />
|
|
||||||
<glyph unicode="e" horiz-adv-x="983" d="M66 352q-3 72 -3.5 146t3.5 151q6 176 134 285.5t316 109.5q178 0 297 -94t119 -268q0 -102 -51.5 -147.5t-175.5 -71.5l-273 -47v-64q0 -39 19.5 -62.5t54.5 -23.5q33 0 53.5 21.5t22.5 60.5l338 -10q-6 -168 -122 -268.5t-292 -100.5q-182 0 -307 98.5t-133 284.5z M432 578q35 2 70 10q37 8 49 23.5t12 60.5q0 76 -63 76q-68 0 -68 -72v-98z" />
|
|
||||||
<glyph unicode="f" horiz-adv-x="679" d="M0 758v256h113v137q0 178 113.5 281.5t281.5 103.5q137 0 233 -55l-47 -262q-51 10 -104 10q-45 0 -77 -24.5t-32 -74.5v-116h197v-256h-197v-758h-368v758h-113z" />
|
|
||||||
<glyph unicode="g" horiz-adv-x="1087" d="M20 -231q0 59 27 89.5t92 49.5l111 24l100 11v10l-67 10q-86 16 -140.5 66.5t-54.5 134.5q0 139 172 213q-162 98 -162 299q0 174 128 271t315 97q47 0 93 -8t66 -16l23 -6h344q6 -51 6 -108q0 -66 -8 -138q-176 8 -223 18v-6q113 -41 112.5 -174t-111 -216t-296.5 -83 q-70 0 -119 10q-33 -14 -33 -41q0 -35 37 -41t156 -21t180 -28q145 -31 227 -115.5t82 -215.5q0 -184 -143 -291t-371 -107q-229 0 -386 82.5t-157 229.5zM391 -172q0 -37 46 -60.5t116 -23.5q76 0 117 23.5t41 62.5q0 68 -97 90l-165 -45q-58 -16 -58 -47zM469 678 q0 -84 72 -84q74 0 73 84q0 80 -73 80q-31 0 -51.5 -20.5t-20.5 -59.5z" />
|
|
||||||
<glyph unicode="h" horiz-adv-x="1069" d="M92 0v1475l369 61v-627h4q82 135 246 135q127 0 206.5 -83.5t79.5 -262.5v-698h-368v645q0 102 -76 103q-51 0 -71.5 -32t-20.5 -61v-655h-369z" />
|
|
||||||
<glyph unicode="i" horiz-adv-x="600" d="M61 1333q0 88 60.5 145.5t148.5 57.5q90 0 150.5 -56.5t60.5 -146.5q0 -86 -61.5 -141t-149.5 -55t-148.5 56t-60.5 140zM82 281v680l369 63v-678q0 -55 29.5 -72.5t88.5 -17.5v-256q-82 -18 -155 -19q-4 0 -8 -1q-70 0 -147 19q-81 19 -129 91t-48 191z" />
|
|
||||||
<glyph unicode="j" horiz-adv-x="606" d="M-20 -256q139 0 139 111v1106l368 63v-1198q0 -106 -35.5 -181t-88 -111t-123.5 -51q-60 -13 -113 -13q-11 0 -22 1q-62 3 -125 17v256zM94 1333q0 88 60.5 145.5t148.5 57.5q90 0 150.5 -56.5t60.5 -146.5q0 -86 -61.5 -141t-149.5 -55t-148.5 56t-60.5 140z" />
|
|
||||||
<glyph unicode="k" horiz-adv-x="1077" d="M92 0v1475l369 61v-1536h-369zM475 535v55l158 252q68 106 136.5 154t166.5 48q37 0 63.5 -4t36.5 -8l8 -6v-256q-45 0 -70.5 -13.5t-51.5 -51.5l-84 -127l112 -240q39 -84 127 -84v-256q-68 -29 -125 -29q-100 0 -181 45t-140 176z" />
|
|
||||||
<glyph unicode="l" horiz-adv-x="600" d="M82 281v1194l369 61v-1190q0 -55 29.5 -72.5t88.5 -17.5v-256q-82 -18 -155 -19q-4 0 -8 -1q-70 0 -147 19q-81 19 -129 91t-48 191z" />
|
|
||||||
<glyph unicode="m" horiz-adv-x="1587" d="M20 758v246q68 31 150 30q174 0 258 -127h8q82 137 256 137q178 0 258 -139h8q92 139 261 139q141 0 219 -92t78 -266v-686h-369v670q0 78 -64 78q-33 0 -55 -27t-24 -59v-662h-369v664q0 84 -60 84q-33 0 -56 -21.5t-27 -52.5v-674h-369v651q0 59 -23 83t-80 24z" />
|
|
||||||
<glyph unicode="n" horiz-adv-x="1095" d="M20 758v246q68 31 150 30q178 0 262 -133h4q90 143 275 143q139 0 226 -90t87 -276v-678h-369v668q0 80 -71 80q-45 0 -67.5 -30t-24.5 -59v-659h-369v651q0 59 -23 83t-80 24z" />
|
|
||||||
<glyph unicode="o" horiz-adv-x="1017" d="M66 338q-3 81 -3.5 165t3.5 171q6 166 132 268t312 102t310 -102t132 -268q3 -78 3 -162.5t-3 -175.5q-6 -166 -130 -266.5t-312 -100.5t-312 100.5t-132 268.5zM434 354q2 -39 23.5 -63.5t52.5 -24.5t51.5 24.5t22.5 63.5q3 73 3 150.5t-3 159.5q-2 35 -22.5 59.5 t-51.5 24.5t-52.5 -25t-23.5 -59q-3 -77 -3 -154.5t3 -155.5z" />
|
|
||||||
<glyph unicode="p" horiz-adv-x="1083" d="M20 758v256q68 12 140 17q10 1 19 1q63 0 129 -28q77 -33 120 -103q4 6 11 15.5t33 34t54.5 44t76.5 34.5t99 15q139 0 224.5 -92t91.5 -260q3 -83 3 -170t-3 -178q-6 -186 -105.5 -280.5t-261.5 -94.5l-159 33v-514h-369v1163q0 57 -24 82t-79 25zM492 350 q0 -39 21.5 -61.5t55.5 -22.5q37 0 58.5 23.5t21.5 58.5v307q0 92 -71 93q-37 0 -61.5 -29t-24.5 -68v-301z" />
|
|
||||||
<glyph unicode="q" horiz-adv-x="1036" d="M66 297q-4 67 -4.5 158t4.5 207q6 188 131 285t317 97q252 0 440 -75v-1481h-368v543q-61 -61 -197 -62q-133 0 -224 87t-99 241zM434 344q2 -35 21.5 -56.5t50.5 -21.5q33 0 56.5 22.5t23.5 53.5v397q-16 8 -72 9q-78 0 -80 -82q-2 -103 -2 -184t2 -138z" />
|
|
||||||
<glyph unicode="r" horiz-adv-x="788" d="M20 758v246q68 31 150 30q219 0 264 -237h6q0 100 58.5 173.5t148.5 73.5q94 0 141 -51l-20 -276q-25 2 -70 2q-98 0 -151 -33t-55 -123v-563h-369v651q0 59 -23 83t-80 24z" />
|
|
||||||
<glyph unicode="s" horiz-adv-x="929" d="M41 338l338 10q2 -37 21.5 -59.5t52.5 -22.5q31 0 49 16.5t18 41.5q0 12 -3 20t-12 15.5t-17.5 12.5t-27 10t-31.5 9t-43 11.5t-50 13.5q-66 18 -110 36.5t-90 50.5t-68.5 83t-22.5 121q0 154 125 245.5t311 91.5q184 0 296 -105q97 -92 98 -231q0 -20 -3 -42l-337 -11 q0 92 -62 93q-59 0 -59 -56q0 -35 29.5 -54.5t113.5 -43.5q72 -20 104.5 -30.5t86 -36t78 -52t44 -74t19.5 -108.5q0 -133 -121 -228.5t-305 -95.5q-178 0 -296 93.5t-126 275.5z" />
|
|
||||||
<glyph unicode="t" horiz-adv-x="772" d="M-10 758v256h141v223l369 61v-284h243v-256h-243v-352q0 -82 39 -118t116 -36q72 0 97 4l10 -256q-88 -31 -223 -31q-80 0 -148.5 18.5t-129 59.5t-95.5 118t-35 181v412h-141z" />
|
|
||||||
<glyph unicode="u" horiz-adv-x="1099" d="M72 358v605l368 61v-653q0 -104 76 -105q33 0 53.5 21.5t24.5 56.5v621l369 59v-670q0 -61 19 -79.5t87 -18.5v-256q-60 -24 -132 -24q-44 0 -92 9q-128 24 -194 113q-12 -20 -30.5 -42.5t-81 -54.5t-140.5 -32q-150 0 -238.5 97t-88.5 292z" />
|
|
||||||
<glyph unicode="v" horiz-adv-x="958" d="M-20 1014h395l80 -455l32 -207h7l36 207l86 455h363l-277 -1014h-436z" />
|
|
||||||
<glyph unicode="w" horiz-adv-x="1529" d="M-10 1014h395l55 -465l17 -158h6l24 156l103 467h352l105 -469l26 -152h10l21 154l63 467h373l-237 -1014h-429l-77 395l-33 223h-8l-31 -223l-86 -395h-414z" />
|
|
||||||
<glyph unicode="x" horiz-adv-x="1034" d="M-20 0l323 506l-321 508h421l125 -275l134 275h385l-302 -506l310 -508h-418l-137 248l-142 -248h-378z" />
|
|
||||||
<glyph unicode="y" horiz-adv-x="985" d="M-10 1014h389l84 -461l29 -180h4l34 180l97 461h368l-483 -1526h-369l170 522z" />
|
|
||||||
<glyph unicode="z" horiz-adv-x="911" d="M51 236l371 501h-371v277h789l12 -258l-354 -480h383v-276h-820z" />
|
|
||||||
<glyph unicode="{" horiz-adv-x="735" d="M20 551v133q135 31 136 166v362q0 104 42 174t104.5 96.5t133 30t132 -14t96.5 -46.5l20 -125q-94 0 -137 -31.5t-43 -138.5v-272q0 -109 -72 -188t-172 -83q100 -6 172 -85.5t72 -188.5v-268q0 -106 43 -138t137 -32l-20 -125q-45 -39 -128 -54.5t-169 -1t-148.5 90 t-62.5 204.5v369q-1 135 -136 166z" />
|
|
||||||
<glyph unicode="|" horiz-adv-x="491" d="M102 -512v2048h287v-2048h-287z" />
|
|
||||||
<glyph unicode="}" horiz-adv-x="735" d="M51 -98q94 0 137 31.5t43 138.5v268q0 109 71 188.5t173 85.5q-102 4 -173 83t-71 188v272q0 106 -43 138t-137 32l21 125q35 29 96 46.5t132 14t133.5 -30t104.5 -96t42 -174.5v-362q0 -135 135 -166v-133q-135 -31 -135 -166v-369q0 -129 -62.5 -204.5t-148.5 -90 t-169 1t-128 54.5z" />
|
|
||||||
<glyph unicode="~" horiz-adv-x="815" d="M52 563q-1 74 49.5 132.5t134.5 58.5q74 0 200.5 -41t149.5 -41q8 0 15 4t12 8t11.5 14.5t8.5 15.5t8 19.5t8 18.5l82 -27q29 -66 32 -139.5t-44 -132t-131 -58.5q-61 0 -197.5 41t-152.5 41q-39 0 -74 -80l-82 27q-29 65 -30 139z" />
|
|
||||||
<glyph unicode="¡" horiz-adv-x="497" d="M27 -471l106 942h232q102 -868 102 -909zM41 844q0 86 59.5 143t147.5 57q86 0 145.5 -57t59.5 -143q0 -90 -58.5 -147.5t-146.5 -57.5t-147.5 57.5t-59.5 147.5z" />
|
|
||||||
<glyph unicode="¢" horiz-adv-x="958" d="M66 352q-6 180 0 328q6 129 85.5 219t208.5 125v141l287 74v-211q135 -33 205 -130t59 -243l-338 -10q6 45 -12 74t-53 29q-72 0 -74 -82q-6 -152 0 -314q2 -39 24.5 -62.5t51.5 -23.5q37 0 55.5 25.5t14.5 66.5l338 -10q-4 -129 -75 -226t-196 -134v-150l-287 -74v224 q-133 33 -211.5 127t-82.5 237z" />
|
|
||||||
<glyph unicode="£" horiz-adv-x="1214" d="M51 543l37 256h133q-2 70 -2 184q0 233 137.5 367.5t360.5 134.5q213 0 337 -132t107 -349l-379 -11q12 154 -86 154q-88 0 -88 -143q0 -41 4 -205h226l-37 -256h-183v-45q0 -121 -88 -219q137 49 236 49h408l-37 -328h-1045l-33 215q6 2 18.5 5t41 17.5t51.5 35t41 60.5 t18 91q0 72 -2 119h-176z" />
|
|
||||||
<glyph unicode="¥" horiz-adv-x="1271" d="M0 1454h434l164 -420l43 -141l45 141l170 420h416l-369 -772h205v-195h-272v-71h272v-195h-272v-221h-410v221h-285v195h285v71h-285v195h219z" />
|
|
||||||
<glyph unicode="¦" horiz-adv-x="491" d="M102 338h287v-850h-287v850zM102 707v829h287v-829h-287z" />
|
|
||||||
<glyph unicode="§" horiz-adv-x="1026" d="M72 139l338 11q2 -37 23.5 -59.5t55.5 -22.5q33 0 52.5 20.5t19.5 46.5q0 35 -43 60.5t-131 60.5q-18 6 -27 10q-131 53 -207.5 122t-76.5 183q0 137 133 211q12 -20 58 -39.5t190 -70.5q-31 -18 -31 -64q0 -25 20.5 -45t45 -32.5t74.5 -34t81 -37.5q68 -35 103.5 -56.5 t85 -64.5t72 -99.5t22.5 -129.5q0 -139 -124 -228.5t-306.5 -89.5t-301 92t-126.5 256zM117 1161q0 145 114.5 234.5t292.5 89.5q176 0 279.5 -91t101.5 -261l-313 -11q0 86 -62 86q-25 0 -40 -17t-15 -46q0 -35 32 -66.5t69.5 -51t111.5 -52.5q125 -55 201 -128t76 -188 q0 -147 -127 -198q-23 25 -68 45t-195 74q27 20 27 65q0 23 -11 41.5t-36 34.5t-49.5 27.5t-68.5 31t-75 35.5q-117 57 -181 136t-64 210z" />
|
|
||||||
<glyph unicode="¨" horiz-adv-x="950" d="M119 1312.5q0 63.5 45 109.5t110 46q63 0 108.5 -46t45.5 -109.5t-45 -108.5t-108.5 -45t-109.5 45t-46 108.5zM522 1312.5q0 63.5 46 109.5t109.5 46t108.5 -46t45 -109.5t-45 -108.5t-108.5 -45t-109.5 45t-46 108.5z" />
|
|
||||||
<glyph unicode="©" horiz-adv-x="1748" d="M113 669.5q0 317.5 222 541t539.5 223.5t540.5 -223.5t223 -541t-223 -539.5t-540.5 -222t-539.5 222t-222 539.5zM358 671.5q0 -239.5 145.5 -394t375.5 -154.5q227 0 370.5 154.5t143.5 394t-143.5 394.5t-370.5 155q-229 0 -375 -155t-146 -394.5zM543 573 q-6 80 0 209q8 139 99 216t243 77q156 0 245 -76.5t87 -216.5l-267 -10q0 102 -76 102q-63 0 -67 -77q-2 -104 0 -226q4 -82 74 -82q39 0 60.5 29t21.5 72l264 -10q-2 -135 -101.5 -214t-246.5 -79q-313 -1 -336 286z" />
|
|
||||||
<glyph unicode="ª" horiz-adv-x="790" d="M51 369v266h688v-266h-688zM51 981q0 68 35 105.5t111 60.5l196 45v41q0 47 -37 47q-47 0 -39 -53l-235 -6q-8 115 73 184.5t212 69.5q119 0 200.5 -62.5t81.5 -175.5v-209q0 -39 13.5 -51t56.5 -12v-166q-37 -14 -86 -18.5t-108.5 14t-84.5 71.5h-2q-23 -37 -69.5 -62.5 t-106.5 -25.5q-96 0 -153.5 56.5t-57.5 146.5zM305 1020q0 -47 45 -47q43 0 43 45v69q-31 -6 -53 -14q-35 -14 -35 -53z" />
|
|
||||||
<glyph unicode="«" horiz-adv-x="1167" d="M20 537v43l461 426l168 -185l-264 -235v-39l258 -279l-174 -180zM539 537v43l460 426l168 -185l-264 -235v-39l258 -279l-174 -180z" />
|
|
||||||
<glyph unicode="¬" horiz-adv-x="1064" d="M51 379v297h963v-676h-328v379h-635z" />
|
|
||||||
<glyph unicode="­" horiz-adv-x="579" d="M31 369v297h518v-297h-518z" />
|
|
||||||
<glyph unicode="®" horiz-adv-x="1628" d="M51 669.5q0 317.5 222.5 541t539.5 223.5t540.5 -223.5t223.5 -541t-223.5 -539.5t-540.5 -222t-539.5 222t-222.5 539.5zM297 671.5q0 -239.5 145.5 -394t374.5 -154.5q227 0 370.5 154.5t143.5 394t-143.5 394.5t-370.5 155q-229 0 -374.5 -155t-145.5 -394.5zM502 307 v748h332q158 0 241.5 -63.5t83.5 -164.5q0 -125 -137 -200q35 -33 41 -49l115 -271h-287l-105 275h-18v-275h-266zM768 723h45q80 0 80 70q0 59 -82 59h-43v-129z" />
|
|
||||||
<glyph unicode="¯" horiz-adv-x="802" d="M102 1116v266h598v-266h-598z" />
|
|
||||||
<glyph unicode="°" horiz-adv-x="675" d="M20 1085.5q0 131.5 92.5 224.5t225.5 93t225 -93t92 -224.5t-92 -224.5t-225 -93t-225.5 93t-92.5 224.5zM256 1085.5q0 -38.5 22.5 -65.5t59.5 -27t59.5 27t22.5 65.5t-22.5 65.5t-59.5 27t-59.5 -27t-22.5 -65.5z" />
|
|
||||||
<glyph unicode="±" horiz-adv-x="1146" d="M123 623v286h287v316h327v-316h287v-286h-287v-295h-327v295h-287zM172 -31v277h799v-277h-799z" />
|
|
||||||
<glyph unicode="²" horiz-adv-x="817" d="M72 973q39 33 132 99.5t126 92.5q76 61 103.5 104.5t27.5 96.5q0 27 -14.5 42t-36.5 15q-68 0 -68 -92l-266 -10q-8 137 87 222t257 85q145 0 231 -73.5t86 -200.5q0 -70 -28.5 -119t-87.5 -102q-47 -41 -193 -119h338v-215h-672z" />
|
|
||||||
<glyph unicode="³" horiz-adv-x="786" d="M51 1044l266 11q0 -72 66 -72q29 0 47.5 21.5t18.5 54.5q0 100 -123 100q-8 0 -64 -6l-16 102l139 138h-305v204h608v-147l-160 -180q90 -2 143.5 -61.5t53.5 -147.5q0 -127 -101.5 -205t-244.5 -78q-139 0 -228.5 66.5t-99.5 199.5z" />
|
|
||||||
<glyph unicode="´" horiz-adv-x="612" d="M82 1157l154 297h409l-321 -297h-242z" />
|
|
||||||
<glyph unicode="µ" horiz-adv-x="1099" d="M72 -512v1475l368 61v-653q0 -104 76 -105q33 0 53.5 21.5t24.5 56.5v621l369 59v-670q0 -61 19 -79.5t87 -18.5v-256q-96 -39 -224 -15.5t-194 113.5q-12 -20 -30.5 -42.5t-81 -54.5t-140.5 -32h-14q55 -100 55 -237v-244h-368z" />
|
|
||||||
<glyph unicode="¶" horiz-adv-x="1165" d="M31 696q0 164 113.5 271.5t322.5 107.5h49v-760h-49q-209 0 -322.5 108.5t-113.5 272.5zM471 0v195h152v983h-152v194h612v-194h-153v-983h153v-195h-612z" />
|
|
||||||
<glyph unicode="·" horiz-adv-x="534" d="M82 522q0 94 57.5 152.5t145.5 58.5t146 -58.5t58 -152.5q0 -90 -58 -147.5t-146 -57.5q-86 0 -144.5 57.5t-58.5 147.5z" />
|
|
||||||
<glyph unicode="¸" horiz-adv-x="661" d="M86 -289h195q0 -23 14 -41t41 -18q45 0 45 49q0 20 -14.5 36.5t-38.5 16.5v185q121 0 194.5 -67t73.5 -167q0 -104 -75 -170.5t-183.5 -66.5t-184 66t-67.5 177z" />
|
|
||||||
<glyph unicode="¹" horiz-adv-x="688" d="M82 799v168l147 24v412h-135l-12 147l305 68l119 -10v-615l151 -24v-170h-575z" />
|
|
||||||
<glyph unicode="º" horiz-adv-x="727" d="M51 369v266h625v-266h-625zM61 1022q-6 102 0 209q6 111 89 177.5t216.5 66.5t216.5 -67t87 -177q6 -96 0 -209q-4 -111 -86 -177.5t-217.5 -66.5t-217.5 66.5t-88 177.5zM317 1032q0 -25 14.5 -42t35 -17t34 17.5t13.5 41.5q6 90 0 193q0 23 -13.5 39t-34 16t-35 -16.5 t-14.5 -38.5q-6 -97 0 -193z" />
|
|
||||||
<glyph unicode="»" horiz-adv-x="1167" d="M0 842l188 194l441 -461v-43l-428 -475l-195 191l252 291v39zM518 842l189 194l440 -461v-43l-428 -475l-195 191l252 291v39z" />
|
|
||||||
<glyph unicode="¼" horiz-adv-x="1886" d="M102 655v168l148 25v412h-135l-13 147l306 68l118 -11v-614l152 -25v-170h-576zM477 0l690 1454h267l-691 -1454h-266zM1040 315l334 504q174 0 305 -10v-440h105v-195h-105v-174h-266v174h-342zM1243 369h170v252z" />
|
|
||||||
<glyph unicode="½" horiz-adv-x="1939" d="M102 655v168l148 25v412h-135l-13 147l306 68l118 -11v-614l152 -25v-170h-576zM477 0l690 1454h267l-691 -1454h-266zM1143 174q39 33 132 99.5t126 93.5q76 61 103.5 104t27.5 96q0 27 -14.5 42.5t-36.5 15.5q-68 0 -68 -93l-266 -10q-8 137 87 222t257 85 q145 0 231 -73.5t86 -200.5q0 -70 -28.5 -119t-87.5 -102q-47 -41 -193 -119h338v-215h-672z" />
|
|
||||||
<glyph unicode="¾" horiz-adv-x="1912" d="M102 901l267 10q0 -72 65 -71q29 0 47.5 21.5t18.5 53.5q0 100 -123 101q-8 0 -64 -6l-16 102l139 137h-305v205h608v-147l-159 -181q90 -2 143 -61t53 -147q0 -127 -101.5 -205t-244.5 -78q-139 0 -228.5 66.5t-99.5 199.5zM512 0l690 1454h266l-690 -1454h-266z M1067 315l334 504q174 0 305 -10v-440h104v-195h-104v-174h-266v174h-342zM1270 369h170v252z" />
|
|
||||||
<glyph unicode="¿" horiz-adv-x="962" d="M-25 -78q0 98 43 164t158 154q20 14 45 33.5t39 30.5t32.5 24.5t29 22.5t21.5 19.5t17.5 17.5t11.5 16.5t7 16.5t2 15v45h190l13 -51q18 -92 -12.5 -149.5t-131.5 -159.5q-51 -55 -63 -88t-12 -90q0 -96 84 -97q41 0 66.5 35t23.5 99l358 10q8 -221 -127 -341t-346 -120 q-184 0 -316.5 104.5t-132.5 288.5zM262 844q0 86 59.5 143t147.5 57q86 0 145.5 -57t59.5 -143q0 -90 -58.5 -147.5t-146.5 -57.5t-147.5 57.5t-59.5 147.5z" />
|
|
||||||
<glyph unicode="À" horiz-adv-x="1243" d="M-10 0l327 1368v86h605l331 -1454h-419l-48 256h-348l-49 -256h-399zM227 1759h389l154 -235h-244zM504 584h223l-78 430l-31 188l-30 -188z" />
|
|
||||||
<glyph unicode="Á" horiz-adv-x="1243" d="M-10 0l327 1368v86h605l331 -1454h-419l-48 256h-348l-49 -256h-399zM502 1528l164 235h399l-322 -235h-241zM504 584h223l-78 430l-31 188l-30 -188z" />
|
|
||||||
<glyph unicode="Â" horiz-adv-x="1243" d="M-10 0l327 1368v86h605l331 -1454h-419l-48 256h-348l-49 -256h-399zM252 1526l201 235h346l186 -235h-297l-70 108l-79 -108h-287zM504 584h223l-78 430l-31 188l-30 -188z" />
|
|
||||||
<glyph unicode="Ã" horiz-adv-x="1243" d="M-10 0l327 1368v86h605l331 -1454h-419l-48 256h-348l-49 -256h-399zM318.5 1681.5q-3.5 59.5 43 104.5t132.5 45q68 0 147.5 -39t110.5 -39q12 0 20 7t12 15.5t10.5 27t10.5 26.5l82 -27q33 -57 35 -117.5t-41 -105.5t-127 -45q-53 0 -143.5 39t-114.5 39q-8 0 -14.5 -2 t-11.5 -7l-8 -9q-3 -3 -8 -13l-8 -14q-2 -4 -7 -15.5t-7 -15.5l-82 27q-28 59 -31.5 118.5zM504 584h223l-78 430l-31 188l-30 -188z" />
|
|
||||||
<glyph unicode="Ä" horiz-adv-x="1243" d="M-10 0l327 1368v86h605l331 -1454h-419l-48 256h-348l-49 -256h-399zM305 1675.5q0 59.5 42 102.5t104 43q57 0 99 -43t42 -102.5t-42 -101.5t-99 -42q-61 0 -103.5 42t-42.5 101.5zM504 584h223l-78 430l-31 188l-30 -188zM664 1675.5q0 59.5 42 102.5t101 43t101 -43 t42 -102.5t-42 -101.5t-101 -42t-101 42t-42 101.5z" />
|
|
||||||
<glyph unicode="Å" horiz-adv-x="1269" d="M-4 0l321 1386l13 68h57q6 -8 21.5 -22.5t78 -37t146.5 -22.5q76 0 136 20.5t83 41.5l20 20h76l332 -1454h-410l-53 266h-375l-57 -266h-389zM385 1648.5q0 92.5 68.5 154t175 61.5t175 -61.5t68.5 -154t-68.5 -154.5t-175 -62t-175 62t-68.5 154.5zM512 594h240l-86 440 l-31 189l-31 -189zM567 1648.5q0 -24.5 17.5 -43t44 -18.5t44 18.5t17.5 43t-17.5 43t-44 18.5t-44 -18.5t-17.5 -43z" />
|
|
||||||
<glyph unicode="Æ" horiz-adv-x="1609" d="M-31 0l488 1454h1071v-338h-387v-215h344v-328h-344v-235h387v-338h-776v246h-287l-76 -246h-420zM565 573h187v601z" />
|
|
||||||
<glyph unicode="Ç" horiz-adv-x="1146" d="M66 455q-6 385 0 555q8 225 167.5 350t380.5 125q109 0 201 -31t164 -90t111.5 -157.5t35.5 -223.5l-378 -10q0 86 -36 130t-97.5 44t-99.5 -40t-40 -116q-8 -193 0 -516q6 -168 137 -168q59 0 102.5 46t43.5 128l379 -10q0 -225 -144.5 -363.5t-390.5 -138.5 q-238 0 -385 130.5t-151 355.5zM319 -268h195q0 -23 14.5 -41.5t40.5 -18.5q45 0 45 49q0 20 -14 37t-39 17v184q121 0 194.5 -66.5t73.5 -166.5q0 -104 -74.5 -171t-183 -67t-184.5 66.5t-68 177.5z" />
|
|
||||||
<glyph unicode="È" horiz-adv-x="1052" d="M102 0v1454h869v-338h-459v-215h416v-328h-416v-235h459v-338h-869zM152 1761h389l153 -235h-243z" />
|
|
||||||
<glyph unicode="É" horiz-adv-x="1052" d="M102 0v1454h869v-338h-459v-215h416v-328h-416v-235h459v-338h-869zM354 1526l164 235h400l-322 -235h-242z" />
|
|
||||||
<glyph unicode="Ê" horiz-adv-x="1052" d="M102 0v1454h869v-338h-459v-215h416v-328h-416v-235h459v-338h-869zM178 1526l201 235h346l186 -235h-297l-69 108l-80 -108h-287z" />
|
|
||||||
<glyph unicode="Ë" horiz-adv-x="1052" d="M102 0v1454h869v-338h-459v-215h416v-328h-416v-235h459v-338h-869zM236 1679.5q0 59.5 41.5 102.5t103.5 43q57 0 99 -43t42 -102.5t-42 -101.5t-99 -42q-61 0 -103 42t-42 101.5zM594 1679.5q0 59.5 42 102.5t101.5 43t101.5 -43t42 -102.5t-42 -101.5t-101.5 -42 t-101.5 42t-42 101.5z" />
|
|
||||||
<glyph unicode="Ì" horiz-adv-x="614" d="M-51 1761h389l154 -235h-244zM102 0v1454h410v-1454h-410z" />
|
|
||||||
<glyph unicode="Í" horiz-adv-x="614" d="M102 0v1454h410v-1454h-410zM145 1526l164 235h400l-322 -235h-242z" />
|
|
||||||
<glyph unicode="Î" horiz-adv-x="614" d="M-63 1526l200 235h346l187 -235h-297l-70 108l-80 -108h-286zM102 0v1454h410v-1454h-410z" />
|
|
||||||
<glyph unicode="Ï" horiz-adv-x="614" d="M-6 1677.5q0 59.5 42 102.5t103 43q57 0 99.5 -43t42.5 -102.5t-42 -101.5t-100 -42q-61 0 -103 42t-42 101.5zM102 0v1454h410v-1454h-410zM352 1677.5q0 59.5 42 102.5t101.5 43t101.5 -43t42 -102.5t-42 -101.5t-101.5 -42t-101.5 42t-42 101.5z" />
|
|
||||||
<glyph unicode="Ð" horiz-adv-x="1261" d="M0 584v272l113 2v596q184 10 381 10q645 0 680 -481q25 -330 10 -524q-35 -469 -707 -469l-364 10v580zM512 332q2 -4 51 -4q188 0 203 172q16 197 0 456q-10 170 -197 170l-57 -4v-262l129 -4v-272l-129 -4v-248z" />
|
|
||||||
<glyph unicode="Ñ" horiz-adv-x="1357" d="M102 0v1454h355l360 -676l49 -137v813h389v-1454h-360l-344 598l-59 168v-766h-390zM370 1683.5q-3 59.5 43 104.5t132 45q66 0 147.5 -39t110.5 -39q12 0 20 7t12.5 15.5t10.5 27t10 26.5l82 -27q33 -57 35 -117.5t-41 -105.5t-127 -45q-53 0 -143.5 39t-114.5 39 q-8 0 -14.5 -2t-11.5 -7l-8 -9q-3 -3 -8 -13l-7 -14q-2 -4 -7.5 -15.5t-7.5 -15.5l-82 27q-28 59 -31 118.5z" />
|
|
||||||
<glyph unicode="Ò" horiz-adv-x="1232" d="M68 471q-10 246 0 514q8 238 162.5 369t388 131t387 -131t161.5 -369q8 -242 0 -518q-6 -238 -161.5 -368t-389 -130t-386 130t-162.5 372zM217 1761h389l154 -235h-244zM471 733q0 -176 6 -272q8 -154 139 -154q133 0 142 154q12 254 0 543q-6 143 -139.5 143 t-141.5 -143q-6 -95 -6 -271z" />
|
|
||||||
<glyph unicode="Ó" horiz-adv-x="1232" d="M68 471q-10 246 0 514q8 238 162.5 369t388 131t387 -131t161.5 -369q8 -242 0 -518q-6 -238 -161.5 -368t-389 -130t-386 130t-162.5 372zM471 733q0 -176 6 -272q8 -154 139 -154q133 0 142 154q12 254 0 543q-6 143 -139.5 143t-141.5 -143q-6 -95 -6 -271zM471 1526 l164 235h399l-321 -235h-242z" />
|
|
||||||
<glyph unicode="Ô" horiz-adv-x="1232" d="M68 471q-10 246 0 514q8 238 162.5 369t388 131t387 -131t161.5 -369q8 -242 0 -518q-6 -238 -161.5 -368t-389 -130t-386 130t-162.5 372zM256 1526l201 235h346l186 -235h-297l-69 108l-80 -108h-287zM471 733q0 -176 6 -272q8 -154 139 -154q133 0 142 154 q12 254 0 543q-6 143 -139.5 143t-141.5 -143q-6 -95 -6 -271z" />
|
|
||||||
<glyph unicode="Õ" horiz-adv-x="1232" d="M68 471q-10 246 0 514q8 238 162.5 369t388 131t387 -131t161.5 -369q8 -242 0 -518q-6 -238 -161.5 -368t-389 -130t-386 130t-162.5 372zM318.5 1681.5q-3.5 59.5 43 104.5t132.5 45q68 0 147.5 -39t110.5 -39q12 0 20 7t12 15.5t10.5 27t10.5 26.5l82 -27 q33 -57 35 -117.5t-41 -105.5t-127 -45q-53 0 -143.5 39t-114.5 39q-8 0 -14.5 -2t-11.5 -7l-8 -9q-3 -3 -8 -13l-8 -14q-2 -4 -7 -15.5t-7 -15.5l-82 27q-28 59 -31.5 118.5zM471 733q0 -176 6 -272q8 -154 139 -154q133 0 142 154q12 254 0 543q-6 143 -139.5 143 t-141.5 -143q-6 -95 -6 -271z" />
|
|
||||||
<glyph unicode="Ö" horiz-adv-x="1232" d="M68 471q-10 246 0 514q8 238 162.5 369t388 131t387 -131t161.5 -369q8 -242 0 -518q-6 -238 -161.5 -368t-389 -130t-386 130t-162.5 372zM303 1677.5q0 59.5 42 102.5t104 43q57 0 99 -43t42 -102.5t-42 -101.5t-99 -42q-61 0 -103.5 42t-42.5 101.5zM471 733 q0 -176 6 -272q8 -154 139 -154q133 0 142 154q12 254 0 543q-6 143 -139.5 143t-141.5 -143q-6 -95 -6 -271zM662 1677.5q0 59.5 41.5 102.5t101 43t101.5 -43t42 -102.5t-42 -101.5t-101.5 -42t-101 42t-41.5 101.5z" />
|
|
||||||
<glyph unicode="×" horiz-adv-x="1110" d="M51 203l293 289l-287 278l222 231l286 -292l299 295l195 -203l-291 -289l289 -281l-221 -231l-291 297l-293 -297z" />
|
|
||||||
<glyph unicode="Ø" horiz-adv-x="1263" d="M31 -31l139 203q-90 123 -96 299q-10 246 0 514q8 238 162.5 369t388.5 131q178 0 313 -80l59 80h215l-133 -207q88 -125 95 -293q8 -242 0 -518q-6 -238 -162 -368t-389 -130q-176 0 -312 76l-55 -76h-225zM477 608l266 475q-33 63 -118 64q-133 0 -142 -143 q-10 -142 -6 -396zM514 356q35 -49 109 -49q133 0 141 154q4 72 4 336z" />
|
|
||||||
<glyph unicode="Ù" horiz-adv-x="1239" d="M86 444v1010h391q-2 -113 -2 -488.5t2 -492.5q2 -78 42 -122t103.5 -44t99.5 44t40 122q2 111 2 484.5t-2 496.5h391q6 -518 0 -1014q-2 -221 -158.5 -346t-380.5 -125q-221 0 -373.5 125t-154.5 350zM207 1761h389l154 -235h-244z" />
|
|
||||||
<glyph unicode="Ú" horiz-adv-x="1239" d="M86 444v1010h391q-2 -113 -2 -488.5t2 -492.5q2 -78 42 -122t103.5 -44t99.5 44t40 122q2 111 2 484.5t-2 496.5h391q6 -518 0 -1014q-2 -221 -158.5 -346t-380.5 -125q-221 0 -373.5 125t-154.5 350zM485 1526l164 235h400l-322 -235h-242z" />
|
|
||||||
<glyph unicode="Û" horiz-adv-x="1239" d="M86 444v1010h391q-2 -113 -2 -488.5t2 -492.5q2 -78 42 -122t103.5 -44t99.5 44t40 122q2 111 2 484.5t-2 496.5h391q6 -518 0 -1014q-2 -221 -158.5 -346t-380.5 -125q-221 0 -373.5 125t-154.5 350zM256 1526l201 235h346l186 -235h-297l-69 108l-80 -108h-287z" />
|
|
||||||
<glyph unicode="Ü" horiz-adv-x="1239" d="M86 444v1010h391q-2 -113 -2 -488.5t2 -492.5q2 -78 42 -122t103.5 -44t99.5 44t40 122q2 111 2 484.5t-2 496.5h391q6 -518 0 -1014q-2 -221 -158.5 -346t-380.5 -125q-221 0 -373.5 125t-154.5 350zM309 1679.5q0 59.5 42 102.5t104 43q57 0 99 -43t42 -102.5 t-42 -101.5t-99 -42q-61 0 -103.5 42t-42.5 101.5zM668 1679.5q0 59.5 42 102.5t101 43t101 -43t42 -102.5t-42 -101.5t-101 -42t-101 42t-42 101.5z" />
|
|
||||||
<glyph unicode="Ý" horiz-adv-x="1189" d="M-41 1454h434l164 -420l43 -141l45 141l170 420h416l-436 -913v-541h-410v543zM467 1526l164 235h399l-321 -235h-242z" />
|
|
||||||
<glyph unicode="Þ" horiz-adv-x="1198" d="M102 0v1454h410v-205h154q254 0 393 -146.5t139 -346.5q0 -199 -133 -344.5t-371 -145.5h-182v-266h-410zM512 594h111q80 0 122.5 44t42.5 120q0 154 -170 153h-106v-317z" />
|
|
||||||
<glyph unicode="ß" horiz-adv-x="1159" d="M92 0v1081q0 215 153.5 335t366.5 120q193 0 323 -97.5t130 -275.5q0 -82 -25.5 -119.5t-103.5 -91.5q-119 -80 -229 -135q154 29 272.5 -51t126.5 -254q4 -82 0 -176q-6 -168 -117.5 -257t-298.5 -89q-68 0 -143 12v258q20 -4 74 -4q113 0 116 82q4 78 0 147 q-2 53 -57 79t-113 14v366q92 74 115 98.5t23 63.5q0 133 -113 133q-59 0 -95 -36t-36 -95v-1108h-369z" />
|
|
||||||
<glyph unicode="à" d="M61 281q0 102 50.5 162.5t164.5 93.5q137 41 287 69v70q0 72 -55 72q-31 0 -49.5 -20.5t-12.5 -61.5l-337 -11q-14 178 100.5 283.5t312.5 105.5q180 0 295 -95t115 -271v-324q0 -61 19.5 -79.5t86.5 -18.5v-256q-55 -20 -124.5 -26.5t-153.5 24.5t-123 106h-4 q-100 -135 -271 -135q-129 0 -215 88.5t-86 223.5zM150 1454h378l164 -297h-243zM430 334q0 -78 68 -78q29 0 47 18.5t18 51.5v118q-45 -10 -80 -22q-53 -18 -53 -88z" />
|
|
||||||
<glyph unicode="á" d="M61 281q0 102 50.5 162.5t164.5 93.5q137 41 287 69v70q0 72 -55 72q-31 0 -49.5 -20.5t-12.5 -61.5l-337 -11q-14 178 100.5 283.5t312.5 105.5q180 0 295 -95t115 -271v-324q0 -61 19.5 -79.5t86.5 -18.5v-256q-55 -20 -124.5 -26.5t-153.5 24.5t-123 106h-4 q-100 -135 -271 -135q-129 0 -215 88.5t-86 223.5zM352 1157l154 297h409l-321 -297h-242zM430 334q0 -78 68 -78q29 0 47 18.5t18 51.5v118q-45 -10 -80 -22q-53 -18 -53 -88z" />
|
|
||||||
<glyph unicode="â" d="M61 281q0 102 50.5 162.5t164.5 93.5q137 41 287 69v70q0 72 -55 72q-31 0 -49.5 -20.5t-12.5 -61.5l-337 -11q-14 178 100.5 283.5t312.5 105.5q180 0 295 -95t115 -271v-324q0 -61 19.5 -79.5t86.5 -18.5v-256q-55 -20 -124.5 -26.5t-153.5 24.5t-123 106h-4 q-100 -135 -271 -135q-129 0 -215 88.5t-86 223.5zM104 1116l242 297h326l227 -297h-307l-90 129l-101 -129h-297zM430 334q0 -78 68 -78q29 0 47 18.5t18 51.5v118q-45 -10 -80 -22q-53 -18 -53 -88z" />
|
|
||||||
<glyph unicode="ã" d="M61 281q0 102 50.5 162.5t164.5 93.5q137 41 287 69v70q0 72 -55 72q-31 0 -49.5 -20.5t-12.5 -61.5l-337 -11q-14 178 100.5 283.5t312.5 105.5q180 0 295 -95t115 -271v-324q0 -61 19.5 -79.5t86.5 -18.5v-256q-55 -20 -124.5 -26.5t-153.5 24.5t-123 106h-4 q-100 -135 -271 -135q-129 0 -215 88.5t-86 223.5zM179 1309.5q-1 66.5 46 117t127 50.5t181.5 -44t128.5 -44q16 0 24 11t16.5 38.5t12.5 36.5l82 -27q29 -66 31.5 -132.5t-41.5 -116.5t-123 -50q-68 0 -177.5 44t-132.5 44q-10 0 -18 -5t-14.5 -15.5t-10.5 -18.5 t-11 -24.5t-9 -22.5l-82 27q-29 65 -30 131.5zM430 334q0 -78 68 -78q29 0 47 18.5t18 51.5v118q-45 -10 -80 -22q-53 -18 -53 -88z" />
|
|
||||||
<glyph unicode="ä" d="M61 281q0 102 50.5 162.5t164.5 93.5q137 41 287 69v70q0 72 -55 72q-31 0 -49.5 -20.5t-12.5 -61.5l-337 -11q-14 178 100.5 283.5t312.5 105.5q180 0 295 -95t115 -271v-324q0 -61 19.5 -79.5t86.5 -18.5v-256q-55 -20 -124.5 -26.5t-153.5 24.5t-123 106h-4 q-100 -135 -271 -135q-129 0 -215 88.5t-86 223.5zM152 1300.5q0 63.5 45 109.5t110 46q63 0 108.5 -46t45.5 -109.5t-45 -108.5t-108.5 -45t-109.5 45t-46 108.5zM430 334q0 -78 68 -78q29 0 47 18.5t18 51.5v118q-45 -10 -80 -22q-53 -18 -53 -88zM555 1300.5 q0 63.5 46 109.5t109.5 46t108.5 -46t45 -109.5t-45 -108.5t-108.5 -45t-109.5 45t-46 108.5z" />
|
|
||||||
<glyph unicode="å" d="M61 281q0 102 50.5 162.5t164.5 93.5q137 41 287 69v70q0 72 -55 72q-31 0 -49.5 -20.5t-12.5 -61.5l-337 -11q-14 178 100.5 283.5t312.5 105.5q180 0 295 -95t115 -271v-324q0 -61 19.5 -79.5t86.5 -18.5v-256q-55 -20 -124.5 -26.5t-153.5 24.5t-123 106h-4 q-100 -135 -271 -135q-129 0 -215 88.5t-86 223.5zM264 1321q0 92 68.5 153.5t175 61.5t175.5 -61.5t69 -153.5t-69 -154.5t-175.5 -62.5t-175 62.5t-68.5 154.5zM430 334q0 -78 68 -78q29 0 47 18.5t18 51.5v118q-45 -10 -80 -22q-53 -18 -53 -88zM446 1321q0 -25 17.5 -43 t44.5 -18t44 18t17 43t-17 43t-44 18t-44.5 -18t-17.5 -43z" />
|
|
||||||
<glyph unicode="æ" horiz-adv-x="1476" d="M61 281q0 104 50.5 164.5t164.5 91.5q61 16 133 30.5t113 20.5l41 6v82q0 72 -55 72q-31 0 -49.5 -20.5t-12.5 -61.5l-337 -11q-14 178 100.5 283.5t312.5 105.5q145 0 246 -63q102 63 242 63q176 0 295.5 -94t119.5 -264q0 -102 -51 -142t-176 -71t-272 -45v-76 q0 -53 35.5 -74.5t73.5 -2t40 72.5l338 -10q-6 -168 -121.5 -268.5t-292.5 -100.5q-229 0 -337 146q-98 -145 -300 -146q-129 0 -215 88.5t-86 223.5zM430 334q0 -78 68 -78q29 0 47 18.5t18 51.5v116q-45 -8 -80 -20q-53 -18 -53 -88zM926 588q35 2 69 10q37 8 49.5 22.5 t12.5 51.5q0 76 -64 76q-68 0 -67 -72v-88z" />
|
|
||||||
<glyph unicode="ç" horiz-adv-x="958" d="M65.5 352q-6.5 180 0.5 328q8 168 134 266t308 98q201 0 309.5 -104t93.5 -285l-338 -10q6 45 -12 74t-53 29q-72 0 -74 -82q-6 -152 0 -314q2 -39 24.5 -62.5t51.5 -23.5q37 0 55.5 25.5t14.5 66.5l338 -10q-4 -164 -114 -271.5t-294 -107.5q-195 0 -316.5 101.5 t-128 281.5zM231 -268h195q0 -23 14.5 -41.5t40.5 -18.5q45 0 45 49q0 20 -14 37t-39 17v184q121 0 194.5 -66.5t73.5 -166.5q0 -104 -74.5 -171t-183 -67t-184.5 66.5t-68 177.5z" />
|
|
||||||
<glyph unicode="è" horiz-adv-x="983" d="M66 352q-6 143 0 297q6 176 134 285.5t316 109.5q178 0 297 -94t119 -268q0 -102 -51.5 -147.5t-175.5 -71.5l-273 -47v-64q0 -39 19.5 -62.5t54.5 -23.5q33 0 53.5 21.5t22.5 60.5l338 -10q-6 -168 -122 -268.5t-292 -100.5q-182 0 -307 98.5t-133 284.5zM86 1454h379 l164 -297h-244zM432 578q35 2 70 10q37 8 49 23.5t12 60.5q0 76 -63 76q-68 0 -68 -72v-98z" />
|
|
||||||
<glyph unicode="é" horiz-adv-x="983" d="M66 352q-6 143 0 297q6 176 134 285.5t316 109.5q178 0 297 -94t119 -268q0 -102 -51.5 -147.5t-175.5 -71.5l-273 -47v-64q0 -39 19.5 -62.5t54.5 -23.5q33 0 53.5 21.5t22.5 60.5l338 -10q-6 -168 -122 -268.5t-292 -100.5q-182 0 -307 98.5t-133 284.5zM326 1157 l153 297h410l-322 -297h-241zM432 578q35 2 70 10q37 8 49 23.5t12 60.5q0 76 -63 76q-68 0 -68 -72v-98z" />
|
|
||||||
<glyph unicode="ê" horiz-adv-x="983" d="M66 352q-6 143 0 297q6 176 134 285.5t316 109.5q178 0 297 -94t119 -268q0 -102 -51.5 -147.5t-175.5 -71.5l-273 -47v-64q0 -39 19.5 -62.5t54.5 -23.5q33 0 53.5 21.5t22.5 60.5l338 -10q-6 -168 -122 -268.5t-292 -100.5q-182 0 -307 98.5t-133 284.5zM96 1116 l242 297h326l227 -297h-307l-90 129l-101 -129h-297zM432 578q35 2 70 10q37 8 49 23.5t12 60.5q0 76 -63 76q-68 0 -68 -72v-98z" />
|
|
||||||
<glyph unicode="ë" horiz-adv-x="983" d="M66 352q-6 143 0 297q6 176 134 285.5t316 109.5q178 0 297 -94t119 -268q0 -102 -51.5 -147.5t-175.5 -71.5l-273 -47v-64q0 -39 19.5 -62.5t54.5 -23.5q33 0 53.5 21.5t22.5 60.5l338 -10q-6 -168 -122 -268.5t-292 -100.5q-182 0 -307 98.5t-133 284.5zM141 1280 q0 63 46 109.5t109.5 46.5t109 -46.5t45.5 -109.5t-45.5 -108.5t-109 -45.5t-109.5 45.5t-46 108.5zM432 578q35 2 70 10q37 8 49 23.5t12 60.5q0 76 -63 76q-68 0 -68 -72v-98zM545 1280q0 63 45 109.5t110 46.5q63 0 108.5 -46.5t45.5 -109.5t-45 -108.5t-108.5 -45.5 t-109.5 45.5t-46 108.5z" />
|
|
||||||
<glyph unicode="ì" horiz-adv-x="600" d="M-100 1454h379l163 -297h-243zM82 281v680l369 63v-678q0 -55 29.5 -72.5t88.5 -17.5v-256q-82 -18 -155.5 -19t-154.5 18t-129 91t-48 191z" />
|
|
||||||
<glyph unicode="í" horiz-adv-x="600" d="M82 281v680l369 63v-678q0 -55 29.5 -72.5t88.5 -17.5v-256q-82 -18 -155.5 -19t-154.5 18t-129 91t-48 191zM113 1157l153 297h410l-322 -297h-241z" />
|
|
||||||
<glyph unicode="î" horiz-adv-x="600" d="M-121 1116l242 297h325l228 -297h-307l-91 129l-100 -129h-297zM82 281v680l369 63v-678q0 -55 29.5 -72.5t88.5 -17.5v-256q-82 -18 -155.5 -19t-154.5 18t-129 91t-48 191z" />
|
|
||||||
<glyph unicode="ï" horiz-adv-x="600" d="M-74 1280q0 63 45 109.5t111 46.5q63 0 108.5 -46.5t45.5 -109.5t-45.5 -108.5t-109 -45.5t-109.5 45.5t-46 108.5zM82 281v680l369 63v-678q0 -55 29.5 -72.5t88.5 -17.5v-256q-82 -18 -155.5 -19t-154.5 18t-129 91t-48 191zM330 1280q0 63 46 109.5t109.5 46.5 t108.5 -46.5t45 -109.5t-45 -108.5t-108.5 -45.5t-109.5 45.5t-46 108.5z" />
|
|
||||||
<glyph unicode="ð" horiz-adv-x="1038" d="M63 1118l291 187q-104 94 -243 151l229 60q106 -14 217 -80l125 80h272l-268 -175q266 -244 266 -675q6 -160 0 -349q-6 -162 -133 -255t-313 -93q-184 0 -308 90.5t-132 249.5q-6 115 0 301q6 178 103 270.5t234 92.5q102 0 164 -41q-33 150 -112 262l-117 -76h-275z M434 326q2 -37 24.5 -58.5t51.5 -21.5q27 0 49.5 21.5t24.5 58.5q8 160 2 292q-2 37 -22.5 57.5t-51.5 20.5q-74 0 -78 -78q-6 -145 0 -292z" />
|
|
||||||
<glyph unicode="ñ" horiz-adv-x="1095" d="M20 758v246q68 31 150 30q178 0 262 -133h4q90 143 275 143q139 0 226 -90t87 -276v-678h-369v668q0 80 -71 80q-45 0 -67.5 -30t-24.5 -59v-659h-369v651q0 59 -23 83t-80 24zM228 1309.5q-1 66.5 46.5 117t127 50.5t181 -44t128.5 -44q16 0 24 11t16.5 38.5t12.5 36.5 l82 -27q29 -66 32 -132.5t-41 -116.5t-124 -50q-68 0 -177.5 44t-132.5 44q-10 0 -18 -5t-14 -15.5t-10.5 -18.5t-11.5 -24.5t-9 -22.5l-82 27q-29 65 -30 131.5z" />
|
|
||||||
<glyph unicode="ò" horiz-adv-x="1017" d="M66 338q-6 162 0 336q6 166 132 268t312 102t310 -102t132 -268q6 -156 0 -338q-6 -166 -130 -266.5t-312 -100.5t-312 100.5t-132 268.5zM84 1454h379l164 -297h-244zM434 354q2 -39 23.5 -63.5t52.5 -24.5t51.5 24.5t22.5 63.5q6 145 0 310q-2 35 -22.5 59.5 t-51.5 24.5t-52.5 -25t-23.5 -59q-6 -154 0 -310z" />
|
|
||||||
<glyph unicode="ó" horiz-adv-x="1017" d="M66 338q-6 162 0 336q6 166 132 268t312 102t310 -102t132 -268q6 -156 0 -338q-6 -166 -130 -266.5t-312 -100.5t-312 100.5t-132 268.5zM377 1159l153 297h410l-322 -297h-241zM434 354q2 -39 23.5 -63.5t52.5 -24.5t51.5 24.5t22.5 63.5q6 145 0 310q-2 35 -22.5 59.5 t-51.5 24.5t-52.5 -25t-23.5 -59q-6 -154 0 -310z" />
|
|
||||||
<glyph unicode="ô" horiz-adv-x="1017" d="M66 338q-6 162 0 336q6 166 132 268t312 102t310 -102t132 -268q6 -156 0 -338q-6 -166 -130 -266.5t-312 -100.5t-312 100.5t-132 268.5zM115 1116l241 297h326l227 -297h-307l-90 129l-100 -129h-297zM434 354q2 -39 23.5 -63.5t52.5 -24.5t51.5 24.5t22.5 63.5 q6 145 0 310q-2 35 -22.5 59.5t-51.5 24.5t-52.5 -25t-23.5 -59q-6 -154 0 -310z" />
|
|
||||||
<glyph unicode="õ" horiz-adv-x="1017" d="M66 338q-6 162 0 336q6 166 132 268t312 102t310 -102t132 -268q6 -156 0 -338q-6 -166 -130 -266.5t-312 -100.5t-312 100.5t-132 268.5zM185 1309.5q-1 66.5 46.5 117t127 50.5t181 -44t128.5 -44q16 0 24 11t16.5 38.5t12.5 36.5l82 -27q29 -66 32 -132.5t-41 -116.5 t-124 -50q-68 0 -177.5 44t-132.5 44q-10 0 -18 -5t-14 -15.5t-10.5 -18.5t-11.5 -24.5t-9 -22.5l-82 27q-29 65 -30 131.5zM434 354q2 -39 23.5 -63.5t52.5 -24.5t51.5 24.5t22.5 63.5q6 145 0 310q-2 35 -22.5 59.5t-51.5 24.5t-52.5 -25t-23.5 -59q-6 -154 0 -310z" />
|
|
||||||
<glyph unicode="ö" horiz-adv-x="1017" d="M66 338q-6 162 0 336q6 166 132 268t312 102t310 -102t132 -268q6 -156 0 -338q-6 -166 -130 -266.5t-312 -100.5t-312 100.5t-132 268.5zM154 1280q0 63 46 109.5t109.5 46.5t108.5 -46.5t45 -109.5t-45 -108.5t-108.5 -45.5t-109.5 45.5t-46 108.5zM434 354 q2 -39 23.5 -63.5t52.5 -24.5t51.5 24.5t22.5 63.5q6 145 0 310q-2 35 -22.5 59.5t-51.5 24.5t-52.5 -25t-23.5 -59q-6 -154 0 -310zM557 1280q0 63 45 109.5t111 46.5q63 0 108 -46.5t45 -109.5t-45 -108.5t-108.5 -45.5t-109.5 45.5t-46 108.5z" />
|
|
||||||
<glyph unicode="÷" horiz-adv-x="1048" d="M51 369v297h946v-297h-946zM328 113q0 88 55 144t137 56t138.5 -56t56.5 -144q0 -84 -56.5 -139.5t-138.5 -55.5q-80 0 -136 55.5t-56 139.5zM330 915q0 88 55 144.5t137 56.5t138.5 -56t56.5 -145q0 -84 -56.5 -139t-138.5 -55q-80 0 -136 55t-56 139z" />
|
|
||||||
<glyph unicode="ø" horiz-adv-x="1038" d="M76 -31l90 140q-84 94 -90 229q-6 162 0 336q6 166 132 268t312 102q133 0 236 -53l37 53h194l-104 -155q74 -90 80 -215q6 -156 0 -338q-6 -166 -130 -266.5t-313 -100.5q-115 0 -221 43l-29 -43h-194zM440 473l138 240q-20 35 -58 35q-31 0 -52.5 -25t-23.5 -59 q-4 -115 -4 -191zM469 287q20 -20 51 -20.5t51.5 24t22.5 63.5q2 45 2 160z" />
|
|
||||||
<glyph unicode="ù" horiz-adv-x="1099" d="M72 358v605l368 61v-653q0 -104 76 -105q37 0 57.5 23.5t20.5 62.5v613l369 59v-670q0 -61 19 -79.5t87 -18.5v-256q-96 -39 -224 -15.5t-194 113.5q-12 -20 -30.5 -42.5t-81 -54.5t-140.5 -32q-150 0 -238.5 97t-88.5 292zM174 1454h379l164 -297h-244z" />
|
|
||||||
<glyph unicode="ú" horiz-adv-x="1099" d="M72 358v605l368 61v-653q0 -104 76 -105q72 0 78 74v625l369 59v-670q0 -61 19 -79.5t87 -18.5v-256q-96 -39 -224 -15.5t-194 113.5q-12 -20 -30.5 -42.5t-81 -54.5t-140.5 -32q-150 0 -238.5 97t-88.5 292zM367 1157l153 297h410l-322 -297h-241z" />
|
|
||||||
<glyph unicode="û" horiz-adv-x="1099" d="M72 358v605l368 61v-653q0 -104 76 -105q33 0 53.5 21.5t24.5 56.5v621l369 59v-670q0 -61 19 -79.5t87 -18.5v-256q-96 -39 -224 -15.5t-194 113.5q-12 -20 -30.5 -42.5t-81 -54.5t-140.5 -32q-150 0 -238.5 97t-88.5 292zM119 1116l241 297h326l227 -297h-307l-90 129 l-100 -129h-297z" />
|
|
||||||
<glyph unicode="ü" horiz-adv-x="1099" d="M72 358v605l368 61v-653q0 -104 76 -105q33 0 53.5 21.5t24.5 56.5v621l369 59v-670q0 -61 19 -79.5t87 -18.5v-256q-96 -39 -224 -15.5t-194 113.5q-12 -20 -30.5 -42.5t-81 -54.5t-140.5 -32q-150 0 -238.5 97t-88.5 292zM164 1280q0 63 45 109.5t110 46.5 q63 0 108.5 -46.5t45.5 -109.5t-45 -108.5t-108.5 -45.5t-109.5 45.5t-46 108.5zM567 1280q0 63 46 109.5t109.5 46.5t109 -46.5t45.5 -109.5t-45.5 -108.5t-109 -45.5t-109.5 45.5t-46 108.5z" />
|
|
||||||
<glyph unicode="ý" horiz-adv-x="985" d="M-10 1014h389l84 -461l29 -180h4l34 180l97 461h368l-483 -1526h-369l170 522zM326 1157l153 297h410l-322 -297h-241z" />
|
|
||||||
<glyph unicode="þ" horiz-adv-x="1052" d="M92 -512v1987l369 61v-584q8 10 24.5 25.5t76 41t128.5 25.5q129 0 211 -81.5t86 -225.5q6 -188 0 -393q-6 -186 -105.5 -280.5t-260.5 -94.5l-160 33v-514h-369zM461 350q0 -41 21.5 -62.5t56.5 -21.5q37 0 58 23.5t21 58.5q2 150 0 322q0 78 -69 78q-39 0 -62.5 -25 t-25.5 -64v-309z" />
|
|
||||||
<glyph unicode="ÿ" horiz-adv-x="985" d="M-10 1014h389l84 -461l29 -180h4l34 180l97 461h368l-483 -1526h-369l170 522zM143 1280q0 63 45 109.5t111 46.5q63 0 108.5 -46.5t45.5 -109.5t-45.5 -108.5t-108.5 -45.5t-109.5 45.5t-46.5 108.5zM547 1280q0 63 46 109.5t109.5 46.5t108.5 -46.5t45 -109.5 t-45 -108.5t-108.5 -45.5t-109.5 45.5t-46 108.5z" />
|
|
||||||
<glyph unicode="Œ" horiz-adv-x="1667" d="M68 471q-10 246 0 514q8 238 162.5 369t387.5 131q111 0 197 -31h770v-338h-469v-215h426v-328h-426v-235h469v-338h-772q-86 -31 -197 -31q-233 0 -385.5 130t-162.5 372zM471 733q0 -176 6 -272q8 -154 139 -154q82 0 111 31v776q-33 33 -109 33q-133 0 -141 -143 q-6 -95 -6 -271z" />
|
|
||||||
<glyph unicode="œ" horiz-adv-x="1507" d="M66 338q-6 162 0 336q6 166 132 268t312 102q154 0 266 -71q117 72 264 71q178 0 297 -94t119 -268q0 -102 -51 -147.5t-176 -71.5l-273 -47v-64q0 -39 19.5 -62.5t54.5 -23.5q33 0 53.5 21.5t22.5 60.5l338 -10q-6 -168 -122 -268.5t-292 -100.5q-152 0 -260 64 q-115 -63 -260 -64q-188 0 -312 100.5t-132 268.5zM434 354q2 -39 23.5 -63.5t52.5 -24.5t51.5 24.5t22.5 63.5q6 145 0 310q-2 35 -22.5 59.5t-51.5 24.5t-52.5 -25t-23.5 -59q-6 -154 0 -310zM956 578q35 2 70 10q37 8 49 23.5t12 60.5q0 76 -63 76q-68 0 -68 -72v-98z " />
|
|
||||||
<glyph unicode="Ÿ" horiz-adv-x="1189" d="M-41 1454h434l164 -420l43 -141l45 141l170 420h416l-436 -913v-541h-410v543zM246 1689.5q0 63.5 45 109.5t110 46q63 0 108.5 -46t45.5 -109.5t-45 -108.5t-108.5 -45t-109.5 45t-46 108.5zM649 1689.5q0 63.5 46 109.5t109.5 46t108.5 -46t45 -109.5t-45 -108.5 t-108.5 -45t-109.5 45t-46 108.5z" />
|
|
||||||
<glyph unicode="ˆ" horiz-adv-x="815" d="M10 1157l242 297h326l227 -297h-307l-90 129l-101 -129h-297z" />
|
|
||||||
<glyph unicode="˜" horiz-adv-x="856" d="M103 1350.5q-1 66.5 46.5 117t127 50.5t181 -44t128.5 -44q16 0 24 11t16.5 38.5t12.5 36.5l82 -27q29 -66 32 -132.5t-41 -116.5t-124 -50q-68 0 -177.5 44t-131.5 44q-10 0 -18.5 -5t-14.5 -15.5t-10.5 -18.5t-11.5 -24.5t-9 -22.5l-82 27q-29 65 -30 131.5z" />
|
|
||||||
<glyph unicode="μ" horiz-adv-x="1099" d="M72 -512v1475l368 61v-653q0 -104 76 -105q33 0 53.5 21.5t24.5 56.5v621l369 59v-670q0 -61 19 -79.5t87 -18.5v-256q-96 -39 -224 -15.5t-194 113.5q-12 -20 -30.5 -42.5t-81 -54.5t-140.5 -32h-14q55 -100 55 -237v-244h-368z" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="931" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="1863" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="931" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="1863" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="620" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="464" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="309" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="309" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="231" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="372" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="102" />
|
|
||||||
<glyph unicode="‐" horiz-adv-x="579" d="M31 369v297h518v-297h-518z" />
|
|
||||||
<glyph unicode="‑" horiz-adv-x="579" d="M31 369v297h518v-297h-518z" />
|
|
||||||
<glyph unicode="‒" horiz-adv-x="579" d="M31 369v297h518v-297h-518z" />
|
|
||||||
<glyph unicode="–" horiz-adv-x="966" d="M31 369v297h905v-297h-905z" />
|
|
||||||
<glyph unicode="—" horiz-adv-x="1200" d="M31 369v297h1138v-297h-1138z" />
|
|
||||||
<glyph unicode="‘" horiz-adv-x="512" d="M51 1026q0 115 42 205t107.5 141t129 79t123.5 34l69 -105q-182 -51 -221 -180l-6 -29q78 -4 130 -60t52 -144q0 -90 -61.5 -143.5t-141.5 -53.5q-104 0 -163.5 71.5t-59.5 184.5z" />
|
|
||||||
<glyph unicode="’" horiz-adv-x="512" d="M10 885q182 51 221 180l7 29q-78 4 -130.5 60t-52.5 144q0 90 61.5 143.5t141.5 53.5q104 0 163.5 -71.5t59.5 -184.5q0 -115 -42 -205t-107.5 -141t-129 -79t-122.5 -34z" />
|
|
||||||
<glyph unicode="‚" horiz-adv-x="487" d="M-10 -242q182 51 221 181l6 28q-78 4 -130 60.5t-52 144.5q0 90 61.5 143.5t141.5 53.5q104 0 163.5 -72t59.5 -184q0 -115 -42 -205t-107.5 -141.5t-129 -79t-123.5 -33.5z" />
|
|
||||||
<glyph unicode="“" horiz-adv-x="968" d="M51 1026q0 115 42 205t107.5 141t129 79t123.5 34l69 -105q-182 -51 -221 -180l-6 -29q78 -4 130 -60t52 -144q0 -90 -61.5 -143.5t-141.5 -53.5q-104 0 -163.5 71.5t-59.5 184.5zM508 1026q0 115 42 205t107.5 141t129 79t122.5 34l70 -105q-182 -51 -221 -180l-6 -29 q78 -4 130 -60t52 -144q0 -90 -61.5 -143.5t-141.5 -53.5q-104 0 -163.5 71.5t-59.5 184.5z" />
|
|
||||||
<glyph unicode="”" horiz-adv-x="970" d="M10 887q182 51 221 180l7 29q-78 4 -130.5 60t-52.5 144q0 90 61.5 143.5t141.5 53.5q104 0 163.5 -71.5t59.5 -184.5q0 -115 -42 -205t-107.5 -141t-129 -79t-122.5 -34zM469 887q182 51 221 180l6 29q-78 4 -130 60t-52 144q0 90 61.5 143.5t141.5 53.5 q104 0 163.5 -71.5t59.5 -184.5q0 -115 -42 -205t-107.5 -141t-129 -79t-122.5 -34z" />
|
|
||||||
<glyph unicode="„" horiz-adv-x="950" d="M-10 -242q182 51 221 181l6 28q-78 4 -130 60.5t-52 144.5q0 90 61.5 143.5t141.5 53.5q104 0 163.5 -72t59.5 -184q0 -115 -42 -205t-107.5 -141.5t-129 -79t-123.5 -33.5zM453 -242q182 51 221 181l6 28q-78 4 -130 60.5t-52 144.5q0 90 61.5 143.5t140.5 53.5 q104 0 164 -72t60 -184q0 -115 -42 -205t-107.5 -141.5t-129 -79t-123.5 -33.5z" />
|
|
||||||
<glyph unicode="•" horiz-adv-x="833" d="M102 614q0 131 92.5 224.5t219.5 93.5q129 0 223 -93.5t94 -224.5q0 -125 -94 -216t-223 -91q-127 0 -219.5 91t-92.5 216z" />
|
|
||||||
<glyph unicode="…" horiz-adv-x="1597" d="M51 164q0 94 57.5 152.5t145.5 58.5t146.5 -58.5t58.5 -152.5q0 -90 -58.5 -147.5t-146.5 -57.5q-86 0 -144.5 57.5t-58.5 147.5zM598 164q0 94 57.5 152.5t145.5 58.5t146.5 -58.5t58.5 -152.5q0 -90 -58.5 -147.5t-146.5 -57.5q-86 0 -144.5 57.5t-58.5 147.5z M1139 164q0 94 57 152.5t145.5 58.5t146.5 -58.5t58 -152.5q0 -90 -58 -147.5t-147 -57.5q-86 0 -144 57.5t-58 147.5z" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="372" />
|
|
||||||
<glyph unicode="‹" horiz-adv-x="669" d="M31 537v43l461 426l167 -185l-264 -235v-39l258 -279l-174 -180z" />
|
|
||||||
<glyph unicode="›" horiz-adv-x="669" d="M10 842l189 194l440 -461v-43l-428 -475l-195 191l252 291v39z" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="464" />
|
|
||||||
<glyph unicode="€" horiz-adv-x="1216" d="M0 485l51 195h129v72h-168l51 194h117l4 64q8 221 153.5 348t354.5 127q137 0 241.5 -46t169 -155.5t60.5 -269.5l-358 -10q0 143 -112.5 143t-119.5 -156q-2 -14 -2 -45h355l-49 -194h-308v-72h293l-51 -195h-238v-10q6 -168 117 -168q55 0 85 39t30 105l358 -11 q0 -219 -127 -345t-356 -126q-225 0 -357.5 131t-138.5 355q0 4 -1 14t-1 16h-182z" />
|
|
||||||
<glyph unicode="™" horiz-adv-x="1662" d="M20 1219v235h685v-235h-199v-512h-287v512h-199zM764 707v747h217l188 -276l189 276h223v-747h-287v329l-2 2l-114 -170h-35l-113 174v-335h-266z" />
|
|
||||||
<glyph unicode="" horiz-adv-x="1014" d="M0 1015h1015v-1015h-1015v1015z" />
|
|
||||||
<glyph unicode="fi" horiz-adv-x="1259" d="M0 758v256h113v137q0 178 113.5 281.5t281.5 103.5q121 0 205 -39q-57 -78 -58 -158q0 -41 8.5 -70.5t16.5 -39.5l8 -10q-45 10 -98 10q-45 0 -77 -24.5t-32 -74.5v-116h629v-668q0 -55 29.5 -72.5t89.5 -17.5v-256q-82 -18 -156 -19t-154.5 18t-129 91t-48.5 191v477 h-260v-758h-368v758h-113zM715 1333q0 88 60.5 145.5t148.5 57.5q90 0 150.5 -56.5t60.5 -146.5q0 -86 -61.5 -141t-149.5 -55t-148.5 56t-60.5 140z" />
|
|
||||||
<glyph unicode="fl" horiz-adv-x="1273" d="M10 758v256h113v86q0 195 127 315.5t309 120.5q147 0 248 -53l317 53v-1190q0 -55 30 -72.5t89 -17.5v-256q-82 -18 -155.5 -19t-154.5 18t-129 91t-48 191v927l-2 -8q-51 29 -123 29q-61 0 -100 -34t-39 -105v-76h155v-256h-155v-758h-369v758h-113z" />
|
|
||||||
<glyph unicode="ffi" horiz-adv-x="1935" d="M0 758v256h113v127q0 178 113.5 281.5t281.5 103.5q135 0 244 -62l-68 -256q-41 10 -94 11q-45 0 -77 -25t-32 -74v-106h307v137q0 178 114 281.5t282 103.5q121 0 205 -39q-57 -78 -58 -158q0 -41 8.5 -70.5t16.5 -39.5l8 -10q-45 10 -98 10q-45 0 -77 -24.5t-32 -74.5 v-116h629v-668q0 -55 29.5 -72.5t89.5 -17.5v-256q-82 -18 -156 -19t-155 18t-129 91t-48 191v477h-260v-758h-369v758h-307v-758h-368v758h-113zM1391 1333q0 88 60 145.5t148 57.5q90 0 150.5 -56.5t60.5 -146.5q0 -86 -61 -141t-149.5 -55t-148.5 56t-60 140z" />
|
|
||||||
<glyph unicode="ffl" horiz-adv-x="1937" d="M0 758v256h113v127q0 178 113.5 281.5t281.5 103.5q139 0 233 -62l-57 -256q-41 10 -94 11q-45 0 -77 -25t-32 -74v-106h307v86q0 195 127 315.5t310 120.5q147 0 248 -53l315 53v-1190q0 -55 29.5 -72.5t89.5 -17.5v-256q-82 -18 -156 -19t-154.5 18t-129 91t-48.5 191 v919q-51 29 -123 29q-61 0 -100 -34t-39 -105v-76h156v-256h-156v-758h-369v758h-307v-758h-368v758h-113z" />
|
|
||||||
</font>
|
|
||||||
</defs></svg>
|
|
Before Width: | Height: | Size: 59 KiB |
|
@ -1,247 +0,0 @@
|
||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<metadata>
|
|
||||||
This is a custom SVG webfont generated by Font Squirrel.
|
|
||||||
Copyright : Font designed by Loic Sander 2012 Distributed under the terms of the SIL OFL Licence Free for commercial use This font file can me modified at will under the conditions that any modification made is identified as a modifed version and the author named in the filename or accompanying info No modified version can be distributed without notice that it isnt the original file
|
|
||||||
Designer : Loic Sander
|
|
||||||
Foundry : Loic Sander
|
|
||||||
</metadata>
|
|
||||||
<defs>
|
|
||||||
<font id="FengardoNeueRegular" horiz-adv-x="1239" >
|
|
||||||
<font-face units-per-em="2048" ascent="1475" descent="-573" />
|
|
||||||
<missing-glyph horiz-adv-x="593" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="593" />
|
|
||||||
<glyph unicode="	" horiz-adv-x="593" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="593" />
|
|
||||||
<glyph unicode="!" horiz-adv-x="442" d="M92 94q0 55 37 93t90 38q55 0 93 -37.5t38 -93.5q0 -53 -38 -89t-93 -36q-53 0 -90 36t-37 89zM123 1434l199 30l-39 -1106h-123z" />
|
|
||||||
<glyph unicode=""" horiz-adv-x="655" d="M96 1415l180 70v-543h-116q-44 272 -64 473zM379 942v473l180 70l-63 -543h-117z" />
|
|
||||||
<glyph unicode="#" horiz-adv-x="1187" d="M45 375l8 108h266l29 287h-270l6 109h274l37 350h127l-39 -350h277l37 350h125l-37 -350h258l-6 -109h-260l-27 -287h262l-8 -108h-266l-37 -375h-125l37 375h-277l-39 -375h-125l37 375h-264zM446 483h277l27 287h-275z" />
|
|
||||||
<glyph unicode="$" horiz-adv-x="1134" d="M160 430l153 10q10 -115 90 -170t197 -55q102 0 163.5 48t61.5 140q0 27 -6 49.5t-14 39t-28.5 34t-34 27.5t-47 26.5t-51 24.5t-65 26.5t-69.5 28.5q-166 70 -247 149t-81 226q0 141 92.5 234.5t239.5 111.5v162l143 55v-219q137 -23 222.5 -110.5t76.5 -241.5l-153 -10 q0 106 -62.5 165.5t-165.5 59.5q-92 0 -155.5 -48t-63.5 -144q0 -41 18.5 -76t41 -56.5t69.5 -48t73 -37t85 -34.5q197 -80 276.5 -160t79.5 -221q0 -145 -95 -233.5t-236 -106.5v-154l-144 -55v209q-158 18 -260 109t-104 245z" />
|
|
||||||
<glyph unicode="%" horiz-adv-x="1794" d="M147 1171.5q0 131.5 85 212t218.5 80.5t218.5 -80.5t85 -212.5q0 -129 -88 -210.5t-215 -81.5q-133 0 -218.5 80.5t-85.5 212zM303 0l1016 1434h164l-1014 -1434h-166zM303 1171.5q0 -79.5 41 -123.5t106.5 -44t107.5 44t42 123.5t-41 124.5t-108 45q-66 0 -107 -45 t-41 -124.5zM1040 262q0 131 85 212t218.5 81t218.5 -81t85 -212q0 -129 -88.5 -211t-215.5 -82q-133 0 -218 81t-85 212zM1196 262q0 -80 41 -124t106.5 -44t107.5 44t42 124t-41 125t-109 45q-66 0 -106.5 -45t-40.5 -125z" />
|
|
||||||
<glyph unicode="&" horiz-adv-x="1376" d="M133 416q0 147 83 241.5t208 137.5q-94 27 -156.5 109.5t-62.5 199.5q0 154 113.5 257t308.5 103q178 0 287.5 -105.5t97.5 -273.5l-164 -10q0 109 -61.5 172.5t-163.5 63.5q-109 0 -171.5 -53.5t-62.5 -153.5q0 -227 242 -240h43v-143h-45q-139 0 -225.5 -89t-86.5 -216 q0 -139 92.5 -216t241.5 -77q178 0 268.5 116.5t90.5 315.5v166h-164v143h500v-143h-177q4 -66 5 -166q0 -246 -136.5 -416t-386.5 -170q-231 0 -374.5 122t-143.5 325z" />
|
|
||||||
<glyph unicode="'" horiz-adv-x="374" d="M96 1415l183 70l-39 -543h-117q-25 344 -27 473z" />
|
|
||||||
<glyph unicode="(" horiz-adv-x="712" d="M147 602q0 240 84 486.5t244 451.5l111 -65q-129 -170 -207 -398.5t-78 -470.5q0 -236 77 -452.5t206 -389.5l-109 -75q-156 188 -242 427.5t-86 485.5z" />
|
|
||||||
<glyph unicode=")" horiz-adv-x="712" d="M139 1475l111 65q160 -205 244 -451.5t84 -486.5q0 -246 -86 -485.5t-242 -427.5l-109 75q129 172 206 389.5t77 452.5q0 242 -78 470.5t-207 398.5z" />
|
|
||||||
<glyph unicode="*" horiz-adv-x="819" d="M59 1161l43 123l252 -100q-14 205 -14 280l143 9l-20 -291q154 66 254 102l43 -123q-16 -4 -68.5 -20.5t-103.5 -31.5t-90 -24l190 -235l-110 -74q-135 193 -172 254q-27 -45 -91.5 -141t-74.5 -113l-109 74q55 74 188 235q-39 8 -89 23.5t-101.5 31t-69.5 21.5z" />
|
|
||||||
<glyph unicode="+" horiz-adv-x="1163" d="M76 461v153h411v473h164v-473h436v-153h-436v-457h-164v457h-411z" />
|
|
||||||
<glyph unicode="," horiz-adv-x="438" d="M-6 -242q61 16 106 45t67.5 56.5t36 53.5t15.5 42l2 16q-45 -6 -89 25t-44 102q0 55 39 91t90 36q66 0 105.5 -44t39.5 -122q0 -137 -91 -243.5t-228 -130.5z" />
|
|
||||||
<glyph unicode="-" horiz-adv-x="694" d="M76 461v153h542v-153h-542z" />
|
|
||||||
<glyph unicode="." horiz-adv-x="458" d="M96 100q0 57 37 96.5t94.5 39.5t96 -39t38.5 -97q0 -55 -38.5 -93t-96 -38t-94.5 38t-37 93z" />
|
|
||||||
<glyph unicode="/" horiz-adv-x="813" d="M-27 -287l719 1823h148l-713 -1823h-154z" />
|
|
||||||
<glyph unicode="0" horiz-adv-x="1124" d="M123 387q-8 174 0 340q10 190 132 300t308 110q184 0 306 -109.5t132 -300.5q8 -166 0 -340q-8 -195 -127.5 -306.5t-310 -111.5t-311.5 111.5t-129 306.5zM307 385q4 -121 78 -191.5t178.5 -70.5t177 70.5t76.5 191.5q6 180 0 342q-4 125 -75.5 190.5t-178 65.5 t-179.5 -65.5t-77 -190.5q-6 -162 0 -342z" />
|
|
||||||
<glyph unicode="1" horiz-adv-x="811" d="M137 1034l322 82l63 -8v-969l193 -6v-133h-574v133l197 6v793l-184 -6z" />
|
|
||||||
<glyph unicode="2" horiz-adv-x="1028" d="M109 109q20 16 122.5 93t162 128t140 130t120.5 154.5t40 147.5q0 221 -194 221q-94 0 -157.5 -61.5t-70.5 -176.5l-163 -10q-12 178 109.5 290t289.5 112q170 0 270.5 -95.5t100.5 -255.5q0 -168 -149.5 -334.5t-360.5 -297.5h573v-154h-813z" />
|
|
||||||
<glyph unicode="3" horiz-adv-x="1046" d="M55 41l164 10q16 -109 91 -167t188 -58q121 0 199.5 72.5t78.5 218.5q0 139 -79 210.5t-203 71.5l-117 -12l-31 94l373 471h-606v154h796l21 -123l-383 -461q2 0 10 1t12 1q164 0 278 -99t114 -304q0 -211 -132.5 -330t-330.5 -119q-184 0 -305.5 102.5t-137.5 266.5z " />
|
|
||||||
<glyph unicode="4" horiz-adv-x="1189" d="M127 123l410 1032l194 45l-416 -1046h404v450l174 72v-522h231v-144h-231v-317h-174v317h-567z" />
|
|
||||||
<glyph unicode="5" horiz-adv-x="1062" d="M55 41l164 10q16 -109 91 -167t192 -58q119 0 189.5 78t70.5 227q0 299 -258 299q-147 -4 -219 -84l-150 10l80 750h664v-154h-510l-58 -458q98 80 246 79q162 0 275.5 -110.5t113.5 -331.5q0 -209 -126 -334t-318 -125q-180 0 -309.5 102.5t-137.5 266.5z" />
|
|
||||||
<glyph unicode="6" horiz-adv-x="1144" d="M133 461q-12 274 0 514q10 205 132 332t329 127q166 0 277.5 -98.5t105.5 -280.5l-164 -11q-2 109 -59.5 172.5t-169.5 63.5q-127 0 -197 -78t-76 -227q-6 -162 -4 -322q41 92 128 149.5t198 57.5q170 0 287.5 -106.5t117.5 -321.5q0 -213 -120.5 -338t-317.5 -125 q-205 0 -331 133.5t-136 358.5zM313 422q12 -139 86 -219t201 -80q119 0 186.5 80t67.5 229q0 145 -72.5 215t-183.5 70q-117 0 -202 -82t-83 -213z" />
|
|
||||||
<glyph unicode="7" horiz-adv-x="974" d="M25 952v154h864l31 -121l-590 -1292h-195l588 1259h-698z" />
|
|
||||||
<glyph unicode="8" horiz-adv-x="1185" d="M127 383q0 117 68.5 213t179.5 133q-215 100 -215 305q0 190 127 295t307 105t306 -104.5t126 -295.5q0 -205 -215 -305q111 -37 179.5 -133t68.5 -213q0 -180 -127 -297t-338 -117t-339 117t-128 297zM311 383q0 -113 77 -186.5t206 -73.5t204.5 73.5t75.5 186.5 t-73.5 187.5t-206.5 74.5t-208 -74.5t-75 -187.5zM344 1036q0 -106 66.5 -177t183.5 -71t182.5 71t65.5 177q0 104 -66.5 174t-181.5 70t-182.5 -70t-67.5 -174z" />
|
|
||||||
<glyph unicode="9" horiz-adv-x="1144" d="M106 676q0 209 128 335t321 126t321 -126t136 -366q10 -317 0 -504q-12 -231 -136 -350t-317 -119q-176 0 -307 100.5t-135 268.5l164 10q41 -225 278 -225q256 0 275 315q4 80 4 273q-39 -88 -124 -136.5t-194 -48.5q-168 0 -291 116t-123 331zM291 676 q0 -145 76.5 -219t187.5 -74q125 0 199.5 74.5t79.5 185.5v23q-6 156 -83 236.5t-196 80.5q-115 0 -189.5 -82t-74.5 -225z" />
|
|
||||||
<glyph unicode=":" horiz-adv-x="450" d="M90 100q0 57 37 96.5t94.5 39.5t96 -39t38.5 -97q0 -55 -38.5 -93t-96 -38t-94.5 38t-37 93zM90 766q0 57 37 96t94.5 39t96 -39t38.5 -96q0 -55 -38.5 -93t-96 -38t-94.5 38t-37 93z" />
|
|
||||||
<glyph unicode=";" horiz-adv-x="452" d="M-6 -242q61 16 106 45t67.5 56.5t36 53.5t15.5 42l2 16q-45 -6 -89 25t-44 102q0 55 39 91t90 36q66 0 105.5 -44t39.5 -122q0 -137 -91 -243.5t-228 -130.5zM88 766q0 57 37 96t94 39t96 -39t39 -96q0 -55 -39 -93t-96 -38t-94 38t-37 93z" />
|
|
||||||
<glyph unicode="<" horiz-adv-x="1030" d="M137 477v49l715 508l70 -110l-580 -400v-20l582 -412l-74 -110z" />
|
|
||||||
<glyph unicode="=" horiz-adv-x="1103" d="M96 252v154h912v-154h-912zM96 682v154h912v-154h-912z" />
|
|
||||||
<glyph unicode=">" horiz-adv-x="1030" d="M127 92l582 397v19l-580 416l80 110l704 -508v-49l-712 -495z" />
|
|
||||||
<glyph unicode="?" horiz-adv-x="909" d="M68 1044q-14 180 100.5 300t300.5 120q152 0 258.5 -100t106.5 -256q0 -109 -50.5 -197t-152.5 -202q-78 -88 -95.5 -136.5t-17.5 -142.5v-72h-141l-4 58q-8 137 15.5 207.5t113.5 181.5q100 121 123 172q25 57 24 123q0 98 -51 154.5t-135 56.5q-106 0 -166.5 -67.5 t-65.5 -188.5zM322 94q0 55 36.5 93t90.5 38q55 0 93 -37.5t38 -93.5q0 -53 -38 -89t-93 -36q-53 0 -90 36t-37 89z" />
|
|
||||||
<glyph unicode="@" horiz-adv-x="1961" d="M147 471q0 418 255 705.5t649 287.5q356 0 554.5 -215t198.5 -553q0 -313 -131 -484t-315 -171q-117 0 -194 56.5t-91 166.5q-2 -6 -8 -17t-28.5 -39t-48 -49.5t-70 -39t-93.5 -17.5q-121 0 -189.5 92.5t-47.5 276.5q10 96 49 256q84 348 405 348q160 0 301 -88 l-114 -635q-31 -178 129 -178q123 0 208 136t85 388q0 279 -145.5 456t-454.5 177q-313 0 -531.5 -244.5t-218.5 -615.5q0 -180 55.5 -316.5t153.5 -215t218 -117.5t261 -39q109 0 202 20.5t132 40.5l39 23l47 -103q-12 -12 -40 -31.5t-136.5 -51t-243.5 -31.5 q-373 0 -607.5 205.5t-234.5 615.5zM752 471q-12 -127 18.5 -181t110.5 -54q78 0 129 49t63 112l98 516q-43 29 -133 29q-188 0 -237 -215q-41 -170 -49 -256z" />
|
|
||||||
<glyph unicode="A" d="M31 0l487 1380l-16 54h205l501 -1434h-194l-129 389h-539l-131 -389h-184zM397 543h439l-172 522l-48 162l-47 -166z" />
|
|
||||||
<glyph unicode="B" horiz-adv-x="1198" d="M184 0v1434q223 2 394 2q487 0 487 -346q0 -121 -76 -212.5t-198 -125.5v-2q135 -31 220 -117t85 -225q0 -197 -136.5 -304.5t-400.5 -107.5zM369 154q86 -4 188 -4q174 0 264 51t90 198q0 268 -352 269h-190v-514zM369 811h182q170 0 250 47t80 197q0 123 -74 175 t-223 52l-215 -2v-469z" />
|
|
||||||
<glyph unicode="C" horiz-adv-x="1179" d="M139 430q-5 141 -5 281.5t5 279.5q10 213 145.5 343t358.5 130q213 0 333 -116q110 -108 110 -266q0 -14 -1 -27l-163 -11q0 119 -75 193t-208 74q-147 0 -228 -81t-87 -239q-5 -126 -5.5 -265.5t5.5 -293.5q4 -143 91 -226t216 -83q139 0 218 73.5t83 202.5l164 -10v-11 q0 -169 -124 -287q-128 -122 -341 -122q-215 0 -349.5 121t-142.5 340z" />
|
|
||||||
<glyph unicode="D" horiz-adv-x="1263" d="M184 0v1434q145 10 299 10q606 0 639 -475q7 -109 7 -228t-7 -249q-14 -262 -194 -382t-465 -120zM369 147q57 -4 127 -4q422 0 442 340q7 122 7 241t-7 234q-23 332 -434 332l-135 -4v-1139z" />
|
|
||||||
<glyph unicode="E" horiz-adv-x="1064" d="M184 0v1434h779v-154h-594v-471h534v-154h-534v-501h594v-154h-779z" />
|
|
||||||
<glyph unicode="F" horiz-adv-x="960" d="M184 0v1434h766v-154h-581v-512h522v-154h-522v-614h-185z" />
|
|
||||||
<glyph unicode="G" d="M139 451q-6 114 -6 249t6 291q10 229 150.5 351t353.5 122q207 0 329 -117q112 -109 112 -266q0 -13 -1 -26l-163 -11q0 117 -77 192t-204 75q-143 0 -226 -78t-89 -242q-4 -141 -4.5 -278.5t4.5 -270.5q4 -154 97 -237.5t230 -83.5q150 0 226.5 90t83.5 242q2 34 1 65 q0 47 -4 86h-311v144h486l2 -293q-10 -221 -135.5 -353.5t-354.5 -132.5q-211 0 -352.5 125.5t-153.5 356.5z" />
|
|
||||||
<glyph unicode="H" horiz-adv-x="1374" d="M184 0v1434h185v-635h637v635h184v-1434h-184v645h-637v-645h-185z" />
|
|
||||||
<glyph unicode="I" horiz-adv-x="552" d="M184 0v1434h185v-1434h-185z" />
|
|
||||||
<glyph unicode="J" horiz-adv-x="1060" d="M74 389l162 10q-2 -127 57 -201.5t184 -74.5q221 0 232 276v1035h184q3 -417 3 -675.5t-3 -359.5q-6 -193 -113.5 -311.5t-302.5 -118.5q-193 0 -303 118q-101 108 -101 271q0 15 1 31z" />
|
|
||||||
<glyph unicode="K" horiz-adv-x="1122" d="M184 0v1434h185v-1434h-185zM379 729l534 705h211l-538 -686q29 -33 152.5 -194t269 -351.5t155.5 -202.5h-215z" />
|
|
||||||
<glyph unicode="L" horiz-adv-x="960" d="M184 0v1434h185v-1280h581v-154h-766z" />
|
|
||||||
<glyph unicode="M" horiz-adv-x="1599" d="M184 0v1434h187l364 -701l53 -131l56 131l393 701h178v-1434h-184v993l8 158h-4l-64 -168l-356 -612h-70l-325 612l-70 168h-4l12 -160v-991h-174z" />
|
|
||||||
<glyph unicode="N" horiz-adv-x="1382" d="M184 0v1434h187l551 -930l102 -228v1158h174v-1434h-184l-559 948l-97 217v-1165h-174z" />
|
|
||||||
<glyph unicode="O" horiz-adv-x="1269" d="M139 442q-6 142 -6 281t6 274q8 213 143.5 340t352.5 127t351 -127t144 -340q6 -135 6.5 -273.5t-6.5 -281.5q-10 -215 -144 -344t-351 -129t-351.5 129t-144.5 344zM324 444q4 -150 88 -235.5t223 -85.5t223 86t88 235q4 125 4 262.5t-4 287t-87 233.5t-224 84t-224 -84 t-87.5 -233.5t-4 -287t4.5 -262.5z" />
|
|
||||||
<glyph unicode="P" horiz-adv-x="1136" d="M184 0v1434q180 2 326 2q276 0 425.5 -97.5t149.5 -345.5q0 -217 -140 -340t-415 -123l-161 2v-532h-185zM369 688q82 -2 170 -2q178 0 270 67.5t92 237.5q0 291 -377 291l-155 -2v-592z" />
|
|
||||||
<glyph unicode="Q" horiz-adv-x="1269" d="M139 442q-6 142 -6 281t6 274q8 213 143.5 340t352.5 127t351 -127t144 -340q6 -135 6.5 -273.5t-6.5 -281.5q-8 -188 -113.5 -312t-279.5 -153q33 -4 217 -59q223 -66 279 -65q35 0 47 2v-103q-35 -47 -111 -47q-90 0 -299 98q-72 35 -150.5 76t-126.5 65.5t-81 37.5 q-166 35 -265.5 156.5t-107.5 303.5zM324 444q4 -150 88 -235.5t223 -85.5t223 86t88 235q4 125 4 262.5t-4 287t-87 233.5t-224 84t-224 -84t-87.5 -233.5t-4 -287t4.5 -262.5z" />
|
|
||||||
<glyph unicode="R" horiz-adv-x="1208" d="M184 0v1434q205 2 365 2q254 0 395 -91.5t141 -310.5q0 -78 -27.5 -144.5t-65.5 -106.5t-86 -69.5t-81.5 -43t-58.5 -17.5v-4q33 -6 100 -123l301 -526h-202l-342 610h-254v-610h-185zM369 754q55 -2 133 -2q76 0 125 3t106.5 19.5t90 44t55 80.5t22.5 129 q0 254 -350 254l-182 -2v-526z" />
|
|
||||||
<glyph unicode="S" horiz-adv-x="1148" d="M113 391l163 10q16 -123 103.5 -200.5t214.5 -77.5q121 0 194.5 56.5t73.5 160.5q0 43 -10 79t-38 65.5t-47 48t-68.5 43t-70 33.5t-79.5 34q-92 39 -145.5 66.5t-119 77t-96 118t-30.5 158.5q0 174 124 287.5t308 113.5q199 0 316 -108q103 -95 104 -254q0 -22 -2 -45 l-164 -10q0 264 -254 264q-109 0 -178.5 -57.5t-69.5 -161.5q0 -109 67.5 -167.5t215.5 -121.5q66 -27 86 -36t79.5 -39t83 -48t65.5 -54t59.5 -70t33 -81t15.5 -100q0 -182 -131.5 -294t-328 -112t-329.5 110.5t-145 311.5z" />
|
|
||||||
<glyph unicode="T" horiz-adv-x="1036" d="M20 1280v154h996v-154h-406v-1280h-184v1280h-406z" />
|
|
||||||
<glyph unicode="U" horiz-adv-x="1320" d="M176 455v979h184q-1 -398 -1 -643t1 -336q2 -160 81 -246t220.5 -86t219 86t80.5 246v979h184q1 -373 1 -618t-1 -361q-2 -229 -135 -357.5t-348.5 -128.5t-349.5 128.5t-136 357.5z" />
|
|
||||||
<glyph unicode="V" horiz-adv-x="1128" d="M10 1434h201l360 -1223l349 1223h198l-452 -1434h-201z" />
|
|
||||||
<glyph unicode="W" horiz-adv-x="1771" d="M51 1434h189l231 -942l47 -261h6l45 261l234 942h176l244 -942l47 -261h6l45 261l221 942h178l-362 -1434h-191l-245 973l-33 217h-6l-39 -217l-238 -973h-192z" />
|
|
||||||
<glyph unicode="X" horiz-adv-x="1142" d="M31 1434h213l334 -572l311 572h201l-408 -686l461 -748h-215l-359 621l-336 -621h-198l422 737z" />
|
|
||||||
<glyph unicode="Y" horiz-adv-x="1046" d="M-41 1434h201l332 -635l30 -76l31 76l326 635h198l-467 -859v-575h-184v575z" />
|
|
||||||
<glyph unicode="Z" horiz-adv-x="1138" d="M82 86l704 1194h-704v154h915q10 -25 21 -86l-705 -1194h723v-154h-934q-10 37 -20 86z" />
|
|
||||||
<glyph unicode="[" horiz-adv-x="608" d="M147 -287v1823h345v-123h-201v-1577h201v-123h-345z" />
|
|
||||||
<glyph unicode="\" horiz-adv-x="792" d="M-27 1536h150l696 -1823h-151z" />
|
|
||||||
<glyph unicode="]" horiz-adv-x="608" d="M129 -164h201v1577h-201v123h344v-1823h-344v123z" />
|
|
||||||
<glyph unicode="^" horiz-adv-x="1026" d="M96 932l361 502h108l365 -502h-164l-256 354l-254 -354h-160z" />
|
|
||||||
<glyph unicode="_" horiz-adv-x="923" d="M-6 -82h936v-154h-936v154z" />
|
|
||||||
<glyph unicode="`" horiz-adv-x="796" d="M96 1434h205l225 -297h-161z" />
|
|
||||||
<glyph unicode="a" horiz-adv-x="1005" d="M106 254q0 100 43.5 146t161.5 81q57 16 140.5 37t138.5 34t53 11v99q0 111 -37 165t-129 54q-86 0 -135 -47.5t-49 -126.5l-154 -13q-2 20 -2 39q0 121 90 200q104 91 260 91q158 0 244 -88t86 -264v-436q0 -72 30 -92.5t103 -20.5v-123q-18 -10 -58 -15q-22 -3 -47 -3 q-20 0 -40 2q-47 4 -87 39.5t-52 99.5h-7q-92 -154 -272 -154q-119 0 -200 78t-81 207zM281 274q0 -80 46 -126t122 -46q88 0 141 65.5t53 164.5v131q-174 -41 -262 -70q-59 -20 -79.5 -46t-20.5 -73z" />
|
|
||||||
<glyph unicode="b" horiz-adv-x="1081" d="M168 68v1396l174 72v-676h2q41 68 119 116t174 48q139 0 228 -89t96 -253q3 -87 3 -172.5t-3 -169.5q-4 -164 -121 -267.5t-281 -103.5q-92 0 -204.5 27t-186.5 72zM342 147q82 -35 201 -34q106 0 172.5 56t70.5 171q3 71 3.5 156t-3.5 184q-2 98 -59 149.5t-139 51.5 q-98 0 -172 -63.5t-74 -135.5v-535z" />
|
|
||||||
<glyph unicode="c" horiz-adv-x="921" d="M121 328q-3 87 -3 169t3 158q6 176 111.5 272.5t271.5 96.5t260 -84q90 -80 90 -212v-11l-154 -10q-4 88 -59 131t-137 43q-92 0 -148.5 -58.5t-60.5 -167.5q-3 -80 -3 -154t3 -143q8 -246 217 -245q88 0 137 51t62 133l143 -10v-16q0 -119 -86 -208q-92 -94 -256 -94 q-172 0 -279.5 92.5t-111.5 266.5z" />
|
|
||||||
<glyph unicode="d" horiz-adv-x="1114" d="M121 647q6 195 107.5 286t246.5 91q186 0 266 -154v594l174 72v-1300q0 -72 30 -92.5t104 -20.5v-123q-25 -10 -63 -14q-15 -2 -32 -2q-25 0 -52 4q-46 6 -86 40.5t-54 94.5h-4q-92 -154 -301 -154q-133 0 -229.5 87t-104.5 255q-5 92 -5 189q0 72 3 147zM295 637 q0 -268 2 -307q12 -217 207 -217q238 0 237 231v268q0 129 -65.5 199t-171.5 70q-94 0 -151.5 -64.5t-57.5 -179.5z" />
|
|
||||||
<glyph unicode="e" horiz-adv-x="966" d="M121 338q-3 92 -3 168.5t3 136.5q8 166 110.5 273.5t280.5 107.5q162 0 255 -92t93 -246q0 -98 -31.5 -130t-148.5 -56l-387 -66v-65q0 -123 59.5 -189.5t159.5 -66.5q90 0 140 51t63 133l143 -10v-16q0 -119 -88 -208q-94 -94 -258 -94q-178 0 -282.5 100.5 t-108.5 268.5zM293 547q147 18 289 49q66 14 85 32.5t19 61.5q0 88 -46 139.5t-128 51.5q-111 0 -165 -73t-54 -198v-63z" />
|
|
||||||
<glyph unicode="f" horiz-adv-x="608" d="M35 870v123h143v158q0 190 88 287.5t230 97.5q121 0 200 -72l-55 -116q-51 35 -135 34q-80 0 -117 -55t-37 -186v-148h246v-123h-246v-870h-174v870h-143z" />
|
|
||||||
<glyph unicode="g" horiz-adv-x="1073" d="M86 -240q0 129 111 172l98 31l158 29v6l-97 12q-203 27 -202 172q0 70 47 117t108 66q-152 98 -151 297q0 158 107.5 260t273.5 102q94 0 194 -31h293q2 -16 2 -65t-2 -68q-74 0 -141.5 9.5t-98.5 19.5l-30 8l-2 -4q160 -82 159 -242q0 -156 -106.5 -252t-271.5 -96 q-80 0 -148 25q-80 -29 -80 -95q0 -59 74 -73q37 -6 175 -27.5t202 -34.5q256 -53 256 -278q0 -143 -124 -247.5t-343 -104.5q-197 0 -329 81.5t-132 210.5zM260 -213q0 -82 85 -129t202 -47q133 0 213 50t80 151q0 125 -170 153l-76 12q-180 -47 -252 -83 q-43 -23 -62.5 -43.5t-19.5 -63.5zM332 662q0 -100 52 -158t155 -58q92 0 146 55.5t54 160.5q0 102 -52 165.5t-148 63.5q-88 0 -147.5 -62.5t-59.5 -166.5z" />
|
|
||||||
<glyph unicode="h" horiz-adv-x="1101" d="M178 0v1464l174 72v-684h2q45 78 124 125t179 47q145 0 231.5 -89t86.5 -247v-688h-174v668q0 213 -197 213q-106 0 -177 -65.5t-75 -139.5v-676h-174z" />
|
|
||||||
<glyph unicode="i" horiz-adv-x="499" d="M106 1345.5q0 51.5 33 85t82 33.5q51 0 86 -33.5t35 -85t-34 -84t-87 -32.5q-49 0 -82 32.5t-33 84zM137 197v745l174 72v-756q0 -76 30 -105.5t103 -29.5v-123q-54 -15 -102 -15q-62 0 -114 25q-91 46 -91 187z" />
|
|
||||||
<glyph unicode="j" horiz-adv-x="499" d="M14 -391q98 2 131 25.5t33 99.5v1208l174 72v-1311q0 -133 -94 -195q-58 -38 -136 -37q-50 0 -108 15v123zM147 1345.5q0 51.5 33 85t82 33.5q51 0 86 -33.5t35 -85t-34 -84t-87 -32.5q-49 0 -82 32.5t-33 84z" />
|
|
||||||
<glyph unicode="k" horiz-adv-x="1005" d="M168 0v1466l174 70v-1536h-174zM373 575v7l305 352q63 70 149 70q45 0 91 -21v-113q-8 1 -16 1q-77 0 -134 -58q-27 -27 -78 -85t-88 -101l-37 -45q199 -309 252 -379q37 -47 66.5 -63.5t87.5 -16.5v-123q-29 -16 -92 -16q-66 0 -113 33.5t-109 117.5q-63 86 -284 440z " />
|
|
||||||
<glyph unicode="l" horiz-adv-x="520" d="M147 195v1269l175 72v-1280q0 -76 29.5 -104.5t103.5 -28.5v-123q-52 -15 -100 -15q-60 0 -113 24q-95 45 -95 186z" />
|
|
||||||
<glyph unicode="m" horiz-adv-x="1630" d="M66 870v113q47 20 100 21q70 0 120 -37t62 -111h2q41 80 119 124t164 44q96 0 164.5 -47t93.5 -139h4q39 82 121 134t186 52q127 0 209 -85t82 -237v-702h-174v668q0 213 -170 213q-98 0 -159.5 -68t-61.5 -170v-643h-174v666q0 215 -170 215q-96 0 -159 -68t-63 -172 v-641h-174v776q0 57 -28 75.5t-94 18.5z" />
|
|
||||||
<glyph unicode="n" horiz-adv-x="1101" d="M66 870v113q47 20 100 21q70 0 120 -37t62 -111h2q102 168 309 168q139 0 222.5 -90t83.5 -246v-688h-174v668q0 213 -189 213q-100 0 -170 -66.5t-70 -134.5v-680h-174v776q0 57 -28 75.5t-94 18.5z" />
|
|
||||||
<glyph unicode="o" horiz-adv-x="1034" d="M123 338q-3 89 -3 169.5t3 151.5q8 164 115.5 264.5t279.5 100.5t278.5 -100.5t114.5 -264.5q4 -75 4 -155t-4 -166q-8 -164 -116.5 -266.5t-276.5 -102.5q-170 0 -279.5 102.5t-115.5 266.5zM297 344q4 -102 64.5 -166.5t156.5 -64.5q94 0 154.5 64.5t64.5 164.5 q3 73 3 151t-3 162q-4 100 -62.5 163t-156.5 63t-157.5 -61.5t-63.5 -164.5q-3 -85 -3 -162.5t3 -148.5z" />
|
|
||||||
<glyph unicode="p" horiz-adv-x="1091" d="M55 870v113q47 20 101 21q70 0 120 -37t62 -111h2q45 76 124 122t185 46q143 0 230.5 -94t91.5 -254q2 -80 2 -164t-2 -172q-6 -172 -98.5 -271.5t-233.5 -99.5q-195 0 -285 144h-2v-625h-174v1288q0 57 -28.5 75.5t-94.5 18.5zM352 344q0 -119 67.5 -175t180.5 -56 q86 0 138.5 56t58.5 163q4 86 4 172.5t-4 173.5q-10 203 -211 203q-86 0 -160 -62.5t-74 -136.5v-338z" />
|
|
||||||
<glyph unicode="q" horiz-adv-x="1060" d="M121 317q-2 75 -2 153t2 159q6 188 125 291.5t303 103.5q197 0 364 -82v-1454h-174v637h-2q-94 -156 -280 -156q-143 0 -236.5 99t-99.5 249zM295 338q2 -111 61.5 -168t155.5 -57q104 0 165.5 65.5t61.5 186.5v481q-84 35 -190.5 35t-178 -68t-75.5 -203 q-2 -68 -2 -135.5t2 -136.5z" />
|
|
||||||
<glyph unicode="r" horiz-adv-x="700" d="M66 870v113q47 20 100 21q70 0 121 -37t63 -111h4q45 168 217 168q37 0 67 -13.5t38 -27.5l-27 -123h-106q-102 0 -140 -62.5t-41 -209.5v-588h-174v776q0 57 -28 75.5t-94 18.5z" />
|
|
||||||
<glyph unicode="s" horiz-adv-x="907" d="M106 287l154 10q10 -80 65.5 -132t145.5 -52q74 0 120 34.5t46 98.5q0 61 -51 98t-168 78q-135 45 -210 112.5t-75 190.5q0 133 96.5 216t241.5 83q154 0 241 -92q73 -78 73 -180q0 -19 -3 -39l-153 -11q0 84 -44 131.5t-120 47.5q-68 0 -113 -38t-45 -100 q0 -45 29 -78.5t63.5 -51t98.5 -42.5q55 -20 76.5 -29.5t68.5 -32t68.5 -43t49 -51t39 -69.5t11.5 -86q0 -125 -93 -208t-247 -83q-162 0 -262.5 91.5t-102.5 226.5z" />
|
|
||||||
<glyph unicode="t" horiz-adv-x="681" d="M45 870v123h143v215l174 72v-287h275v-123h-275v-587q0 -102 45.5 -136t124.5 -34l127 10l9 -123q-76 -31 -195 -31q-123 0 -204 74t-81 231v596h-143z" />
|
|
||||||
<glyph unicode="u" horiz-adv-x="1067" d="M127 303v639l174 72v-678q0 -223 186 -223q102 0 160 58t58 134v637l174 72v-778q0 -72 29.5 -92.5t103.5 -20.5v-123q-25 -10 -63 -14q-15 -2 -31 -2q-25 0 -53 4q-46 6 -86 40.5t-54 94.5h-4q-86 -154 -281 -154q-141 0 -227 87t-86 247z" />
|
|
||||||
<glyph unicode="v" horiz-adv-x="862" d="M14 993h185l196 -657l35 -158h2l39 158l203 657h174l-334 -993h-176z" />
|
|
||||||
<glyph unicode="w" horiz-adv-x="1396" d="M25 993h184l168 -665l29 -140h4l24 140l197 665h147l191 -665l24 -140h4l25 140l178 665h172l-299 -993h-172l-164 578l-37 188h-6l-37 -188l-170 -578h-168z" />
|
|
||||||
<glyph unicode="x" horiz-adv-x="905" d="M35 0l325 520l-305 473h195l225 -352l211 352h184l-309 -485l330 -508h-195l-247 383l-230 -383h-184z" />
|
|
||||||
<glyph unicode="y" horiz-adv-x="860" d="M14 993h183l202 -622l31 -125h2l31 123l205 624h178q-4 -10 -72.5 -199.5t-149.5 -409.5t-178.5 -481t-158.5 -417h-166l221 565z" />
|
|
||||||
<glyph unicode="z" horiz-adv-x="876" d="M86 102l481 748h-473v143h678l10 -102l-487 -748h516v-143h-715z" />
|
|
||||||
<glyph unicode="{" horiz-adv-x="739" d="M158 571v103q168 51 168 213v430q0 125 100 182t217 25v-113q-70 10 -122 -12.5t-52 -91.5v-420q0 -94 -50 -171t-147 -89q102 -16 149.5 -75.5t47.5 -168.5v-438q0 -70 52 -92.5t122 -12.5v-112q-117 -33 -217 24.5t-100 181.5v449q0 88 -46 130t-122 58z" />
|
|
||||||
<glyph unicode="|" horiz-adv-x="520" d="M188 -512v2048h144v-2048h-144z" />
|
|
||||||
<glyph unicode="}" horiz-adv-x="739" d="M109 -160q70 -10 122 12.5t52 92.5v438q0 109 47 168t149 76q-96 12 -146 89t-50 171v420q0 70 -52.5 92t-121.5 12v113q117 33 217 -24.5t100 -182.5v-430q0 -162 168 -213v-103q-76 -16 -122 -58t-46 -130v-449q0 -125 -100.5 -182t-216.5 -24v112z" />
|
|
||||||
<glyph unicode="~" horiz-adv-x="980" d="M150 422q-8 96 43 163.5t143 67.5q59 0 162.5 -45t152.5 -45q61 0 62 99h118q10 -106 -33.5 -174t-140.5 -68q-55 0 -168.5 45t-146.5 45q-68 0 -68 -88h-124z" />
|
|
||||||
<glyph unicode="¡" horiz-adv-x="442" d="M92 899q0 53 38 89t93 36q53 0 90 -36t37 -89q0 -55 -37 -93t-90 -38q-55 0 -93 38t-38 93zM121 -471l39 1106h123l36 -1075z" />
|
|
||||||
<glyph unicode="¢" horiz-adv-x="921" d="M121 328q-6 174 0 327q4 160 93 254.5t235 110.5v158l110 61v-219q141 -14 220 -95t75 -208l-154 -10q-4 88 -59 131t-137 43q-92 0 -148.5 -58.5t-60.5 -167.5q-6 -160 0 -297q8 -246 217 -245q88 0 137 51t62 133l143 -10q4 -119 -74 -210t-221 -106v-155l-110 -52v209 q-147 16 -236.5 106.5t-91.5 248.5z" />
|
|
||||||
<glyph unicode="£" horiz-adv-x="1216" d="M106 625l21 133h152q-8 145 -9 286q0 193 116 306.5t288 113.5q186 0 290.5 -104.5t92.5 -294.5l-164 -10q0 256 -219 256q-100 0 -159.5 -63.5t-59.5 -192.5q0 -80 8 -297h307l-20 -133h-281q0 -20 3 -113.5t3 -136.5q0 -104 -58.5 -169t-119.5 -89q117 37 215 37h588 l-21 -154h-952l-16 102q8 2 19 7.5t43 26t55.5 46t43 74.5t19.5 106q0 37 -1 80t-3 97.5t-2 85.5h-179z" />
|
|
||||||
<glyph unicode="¥" horiz-adv-x="1146" d="M14 1434h201l365 -648l354 648h199l-465 -803h329v-133h-331v-133h331v-134h-331v-231h-185v231h-313v134h313v133h-313v133h311z" />
|
|
||||||
<glyph unicode="¦" horiz-adv-x="520" d="M188 328h144v-840h-144v840zM188 809v727h144v-727h-144z" />
|
|
||||||
<glyph unicode="§" horiz-adv-x="958" d="M119 113l164 10q0 -84 54 -134t138 -50q78 0 123 40.5t45 112.5q0 61 -54 104.5t-131 73t-153 64.5t-130 100.5t-54 159.5q0 78 55 134t141 83l97 -53q-45 -6 -82 -42t-37 -106q0 -63 55.5 -109t133 -77t155.5 -66.5t133 -102.5t55 -161q0 -133 -99 -216t-253 -83 q-158 0 -258 91.5t-98 226.5zM162 1165q0 139 101.5 219t240.5 80q145 0 238.5 -88t78.5 -219l-164 -10q0 80 -41 127t-114 47q-68 0 -112 -42t-44 -103q0 -63 53.5 -109.5t129 -77.5t151.5 -65.5t129 -96t53 -149.5q0 -94 -64.5 -156.5t-152.5 -79.5l-96 47q49 6 93 44 t44 104q0 63 -54 108.5t-131 77t-154 68.5t-131 106.5t-54 167.5z" />
|
|
||||||
<glyph unicode="¨" horiz-adv-x="913" d="M158 1319q0 49 32.5 82t79.5 33q51 0 84 -33t33 -82t-32.5 -81t-84.5 -32q-47 0 -79.5 32t-32.5 81zM526 1319q0 49 32 82t79 33q51 0 85 -33t34 -82t-34 -81t-85 -32q-47 0 -79 32t-32 81z" />
|
|
||||||
<glyph unicode="©" horiz-adv-x="1726" d="M117 717q0 309 218 528t527 219t528.5 -218t219.5 -529q0 -309 -219.5 -527.5t-528.5 -218.5t-527 218.5t-218 527.5zM236 717q0 -266 182 -454.5t444 -188.5q264 0 445.5 188.5t181.5 454.5q0 268 -181.5 456.5t-445.5 188.5q-262 0 -444 -189.5t-182 -455.5zM551 565 q-8 158 0 295t94 221t217 84q123 0 205 -74.5t74 -189.5l-123 -10q0 72 -42 111.5t-114 39.5q-74 0 -118 -47t-50 -135q-8 -111 0 -287q10 -182 170 -182q72 0 114 44t42 122l123 -10q8 -125 -77 -202t-202 -77q-135 0 -221 79t-92 218z" />
|
|
||||||
<glyph unicode="ª" horiz-adv-x="854" d="M137 451v133h580v-133h-580zM143 969q0 125 140 155l215 41v62q0 125 -105 125q-57 0 -85.5 -34t-28.5 -89l-123 -10q-8 100 56 167.5t189 67.5q102 0 166 -61.5t64 -175.5v-250q0 -45 20.5 -60.5t65.5 -15.5v-92q-25 -12 -65 -13.5t-83 21t-57 74.5q-61 -102 -180 -103 q-86 0 -137.5 51.5t-51.5 139.5zM276 973q0 -92 99 -92q123 0 123 141v65q-98 -14 -156 -30q-66 -18 -66 -84z" />
|
|
||||||
<glyph unicode="«" horiz-adv-x="1011" d="M86 508v14l383 348l82 -104l-275 -244v-12l277 -264l-90 -103zM500 508v14l383 348l82 -104l-275 -244v-12l277 -264l-90 -103z" />
|
|
||||||
<glyph unicode="¬" horiz-adv-x="1005" d="M76 461v153h854v-538h-154v385h-700z" />
|
|
||||||
<glyph unicode="­" horiz-adv-x="694" d="M76 461v153h542v-153h-542z" />
|
|
||||||
<glyph unicode="®" horiz-adv-x="1728" d="M117 717q0 311 218 529t529.5 218t529.5 -218t218 -529t-218 -529.5t-529.5 -218.5t-529.5 218.5t-218 529.5zM236 717q0 -268 181 -456.5t447 -188.5t446.5 188.5t180.5 456.5t-180.5 456.5t-446.5 188.5t-447 -188.5t-181 -456.5zM580 293v864h327q133 0 208 -74.5 t75 -187.5q0 -90 -54.5 -157.5t-134.5 -88.5l29 -33l164 -323h-156l-161 334h-154v-334h-143zM723 739h160q78 0 121 41t43 111q0 143 -164 143h-160v-295z" />
|
|
||||||
<glyph unicode="¯" horiz-adv-x="851" d="M147 1290v144h558v-144h-558z" />
|
|
||||||
<glyph unicode="°" horiz-adv-x="798" d="M96 1171.5q0 131.5 85 212t218 80.5t218 -80.5t85 -212.5q0 -129 -88 -210.5t-215 -81.5q-133 0 -218 80.5t-85 212zM252 1171.5q0 -79.5 41 -123.5t106.5 -44t107.5 44t42 123.5t-41 124.5t-109 45q-66 0 -106.5 -45t-40.5 -124.5z" />
|
|
||||||
<glyph unicode="±" horiz-adv-x="1183" d="M147 612v154h361v381h154v-381h374v-154h-374v-387h-154v387h-361zM195 -31v154h778v-154h-778z" />
|
|
||||||
<glyph unicode="²" horiz-adv-x="774" d="M104 899q20 18 69.5 56t91.5 74t85 75q76 68 115 130t39 138q0 70 -34 107t-91 37q-70 0 -111 -43t-39 -121l-123 -11q-12 119 64 203t209 84q123 0 195.5 -69.5t72.5 -184.5q0 -172 -194 -327l-181 -136h416v-112h-573z" />
|
|
||||||
<glyph unicode="³" horiz-adv-x="714" d="M78 1024l123 10q2 -68 46 -105.5t115 -37.5q66 0 105 41t39 110q0 72 -44 109t-108 37q-43 0 -67 -10l-25 69l209 248h-375v113h527l10 -97l-223 -245q92 6 165.5 -50.5t73.5 -168.5q0 -125 -81 -197t-206 -72q-131 0 -208.5 71t-75.5 175z" />
|
|
||||||
<glyph unicode="´" horiz-adv-x="774" d="M250 1137l225 297h205l-270 -297h-160z" />
|
|
||||||
<glyph unicode="µ" horiz-adv-x="1067" d="M127 -512v1454l174 72v-695q0 -207 186 -206q100 0 159 67.5t59 145.5v616l174 72v-776q0 -74 29.5 -94.5t103.5 -20.5v-123q-23 -10 -63 -12t-87 5t-89 41t-58 89q-90 -154 -275 -154q-90 0 -139 37v-446z" />
|
|
||||||
<glyph unicode="μ" horiz-adv-x="1067" d="M127 -512v1454l174 72v-695q0 -207 186 -206q100 0 159 67.5t59 145.5v616l174 72v-776q0 -74 29.5 -94.5t103.5 -20.5v-123q-23 -10 -63 -12t-87 5t-89 41t-58 89q-90 -154 -275 -154q-90 0 -139 37v-446z" />
|
|
||||||
<glyph unicode="¶" horiz-adv-x="1105" d="M96 696.5q0 139.5 97.5 234.5t273.5 95h51v-661h-51q-176 0 -273.5 96t-97.5 235.5zM530 0v123h142v1106h-142v123h439v-123h-144v-1106h144v-123h-439z" />
|
|
||||||
<glyph unicode="·" horiz-adv-x="450" d="M90 563q0 57 37 96t94.5 39t96 -38.5t38.5 -96.5q0 -55 -38.5 -93t-96 -38t-94.5 38t-37 93z" />
|
|
||||||
<glyph unicode="¸" horiz-adv-x="745" d="M186 -285h113q0 -35 20.5 -54t55.5 -19q29 0 48 18t19 55q0 74 -80 74v113q88 8 145.5 -45.5t57.5 -141.5q0 -78 -52 -132t-138 -54q-84 0 -140.5 51t-48.5 135z" />
|
|
||||||
<glyph unicode="¹" horiz-adv-x="602" d="M96 799v104l156 10v572l-143 -12l-13 94l236 51l63 -10v-695l152 -10v-104h-451z" />
|
|
||||||
<glyph unicode="º" horiz-adv-x="825" d="M139 440v133h547v-133h-547zM141 1022q-4 96 0 190q4 109 76 175.5t197 66.5q123 0 193.5 -66.5t76.5 -175.5q6 -90 0 -190q-6 -109 -79 -176.5t-191 -67.5q-121 0 -195 69t-78 175zM274 1026q4 -68 42 -106.5t98 -38.5q57 0 96 38.5t41 106.5q6 84 0 184q-2 68 -40 105 t-97.5 37t-98.5 -37t-41 -105q-6 -94 0 -184z" />
|
|
||||||
<glyph unicode="»" horiz-adv-x="1011" d="M45 768l90 100l371 -364v-15l-377 -348l-82 103l264 245v15zM465 768l90 100l371 -364v-15l-377 -348l-82 103l264 245v15z" />
|
|
||||||
<glyph unicode="¼" horiz-adv-x="1765" d="M147 625v104l156 10v572l-143 -13l-13 95l236 51l63 -10v-695l152 -10v-104h-451zM319 0l1006 1434h154l-1004 -1434h-156zM952 274l375 545l150 -10v-506h141v-113h-141v-190h-134v190h-370zM1096 303h247v369z" />
|
|
||||||
<glyph unicode="½" horiz-adv-x="1843" d="M147 625v104l156 10v572l-143 -13l-13 95l236 51l63 -10v-695l152 -10v-104h-451zM319 0l1006 1434h154l-1004 -1434h-156zM1112 100q20 18 69.5 56.5t91.5 74t85 74.5q76 68 114.5 130.5t38.5 137.5q0 70 -33.5 107t-91.5 37q-70 0 -110.5 -43t-38.5 -121l-123 -10 q-12 119 63.5 202.5t208.5 83.5q123 0 196 -69.5t73 -184.5q0 -172 -195 -327l-180 -135h416v-113h-574z" />
|
|
||||||
<glyph unicode="¾" horiz-adv-x="1818" d="M150 850l122 10q2 -68 46 -105.5t116 -37.5q66 0 105 41t39 110q0 72 -44.5 109t-107.5 37q-41 0 -68 -10l-24 69l209 248h-375v113h526l11 -97l-224 -245q92 6 166 -50.5t74 -169.5q0 -125 -81 -196.5t-206 -71.5q-131 0 -208.5 71t-75.5 175zM385 0l1006 1434h153 l-1003 -1434h-156zM1006 274l374 545l150 -10v-506h141v-113h-141v-190h-133v190h-371zM1149 303h248v369z" />
|
|
||||||
<glyph unicode="¿" horiz-adv-x="911" d="M92 -115q0 109 50.5 197t152.5 203q78 88 95.5 136t17.5 142v72h141l4 -57q8 -137 -15.5 -208t-113.5 -182q-100 -121 -123 -172q-25 -57 -25 -122q0 -98 51.5 -154.5t135.5 -56.5q106 0 166.5 67.5t64.5 188.5l164 10q14 -180 -100.5 -300t-300.5 -120 q-152 0 -258.5 100t-106.5 256zM346 899q0 53 38 89t93 36q53 0 90 -36t37 -89q0 -55 -37 -93t-90 -38q-55 0 -93 38t-38 93z" />
|
|
||||||
<glyph unicode="À" d="M31 0l487 1380l-16 54h205l501 -1434h-194l-129 389h-539l-131 -389h-184zM274 1802h185l205 -266h-158zM397 543h439l-172 522l-48 162l-47 -166z" />
|
|
||||||
<glyph unicode="Á" d="M31 0l487 1380l-16 54h205l501 -1434h-194l-129 389h-539l-131 -389h-184zM397 543h439l-172 522l-48 162l-47 -166zM569 1536l189 266h184l-223 -266h-150z" />
|
|
||||||
<glyph unicode="Â" d="M31 0l487 1380l-16 54h205l501 -1434h-194l-129 389h-539l-131 -389h-184zM348 1536l236 266h88l231 -266h-155l-125 141l-127 -141h-148zM397 543h439l-172 522l-48 162l-47 -166z" />
|
|
||||||
<glyph unicode="Ã" d="M31 0l487 1380l-16 54h205l501 -1434h-194l-129 389h-539l-131 -389h-184zM348 1556q-8 90 32 147.5t120 57.5q49 0 133 -43t98 -43q47 0 47 88h109q20 -207 -154 -207q-45 0 -123 40t-96 40q-51 0 -51 -80h-115zM397 543h439l-172 522l-48 162l-47 -166z" />
|
|
||||||
<glyph unicode="Ä" d="M31 0l487 1380l-16 54h205l501 -1434h-194l-129 389h-539l-131 -389h-184zM326 1642.5q0 49.5 32.5 82t79.5 32.5q51 0 84 -32.5t33 -82t-33 -81t-84 -31.5q-47 0 -79.5 31.5t-32.5 81zM397 543h439l-172 522l-48 162l-47 -166zM694 1642.5q0 49.5 32 82t79 32.5 q51 0 85 -32.5t34 -82t-34 -81t-85 -31.5q-47 0 -79 31.5t-32 81z" />
|
|
||||||
<glyph unicode="Å" d="M31 0l487 1380l-16 54h205l501 -1434h-194l-129 389h-539l-131 -389h-184zM397 543h439l-172 522l-48 162l-47 -166zM432 1689.5q0 79.5 55.5 130t126.5 50.5q70 0 125.5 -50.5t57.5 -130t-53.5 -132t-129 -52.5t-128 52.5t-54.5 132zM532 1692q0 -43 24 -69t58.5 -26 t58 27t23.5 68q0 35 -23.5 60.5t-58.5 25.5q-33 0 -57.5 -24.5t-24.5 -61.5z" />
|
|
||||||
<glyph unicode="Æ" horiz-adv-x="1652" d="M-20 0l753 1434h828v-154h-521v-471h461v-154h-461v-501h521v-154h-705v512h-424l-262 -512h-190zM512 666h344v671z" />
|
|
||||||
<glyph unicode="Ç" horiz-adv-x="1179" d="M139 430q-10 283 0 561q10 213 145.5 343t358.5 130q213 0 333 -116.5t109 -292.5l-163 -11q0 119 -75 193t-208 74q-147 0 -228 -81t-87 -239q-10 -252 0 -559q4 -143 91 -226t216 -83q139 0 218 73.5t83 202.5l164 -10q4 -176 -124 -298t-341 -122q-215 0 -349.5 121 t-142.5 340zM416 -326h112q0 -35 20.5 -54t55.5 -19q29 0 48.5 18.5t19.5 54.5q0 74 -80 74v113q88 8 145.5 -45.5t57.5 -141.5q0 -78 -52.5 -132t-138.5 -54q-84 0 -140 51t-48 135z" />
|
|
||||||
<glyph unicode="È" horiz-adv-x="1064" d="M184 0v1434h779v-154h-594v-471h534v-154h-534v-501h594v-154h-779zM262 1802h184l205 -266h-157z" />
|
|
||||||
<glyph unicode="É" horiz-adv-x="1064" d="M184 0v1434h779v-154h-594v-471h534v-154h-534v-501h594v-154h-779zM471 1536l188 266h185l-223 -266h-150z" />
|
|
||||||
<glyph unicode="Ê" horiz-adv-x="1064" d="M184 0v1434h779v-154h-594v-471h534v-154h-534v-501h594v-154h-779zM305 1536l236 266h88l231 -266h-155l-125 141l-127 -141h-148z" />
|
|
||||||
<glyph unicode="Ë" horiz-adv-x="1064" d="M184 0v1434h779v-154h-594v-471h534v-154h-534v-501h594v-154h-779zM281 1642.5q0 49.5 32.5 82t79.5 32.5q51 0 84 -32.5t33 -82t-33 -81t-84 -31.5q-47 0 -79.5 31.5t-32.5 81zM649 1642.5q0 49.5 32 82t79 32.5q51 0 85 -32.5t34 -82t-34 -81t-85 -31.5 q-47 0 -79 31.5t-32 81z" />
|
|
||||||
<glyph unicode="Ì" horiz-adv-x="552" d="M-25 1802h185l205 -266h-158zM184 0v1434h185v-1434h-185z" />
|
|
||||||
<glyph unicode="Í" horiz-adv-x="552" d="M184 0v1434h185v-1434h-185zM213 1536l188 266h185l-224 -266h-149z" />
|
|
||||||
<glyph unicode="Î" horiz-adv-x="552" d="M0 1536l236 266h88l231 -266h-156l-125 141l-127 -141h-147zM184 0v1434h185v-1434h-185z" />
|
|
||||||
<glyph unicode="Ï" horiz-adv-x="552" d="M-12 1642.5q0 49.5 32.5 82t79.5 32.5q51 0 84 -32.5t33 -82t-32.5 -81t-84.5 -31.5q-47 0 -79.5 31.5t-32.5 81zM184 0v1434h185v-1434h-185zM356 1642.5q0 49.5 32 82t79 32.5q51 0 85 -32.5t34 -82t-34 -81t-85 -31.5q-47 0 -79 31.5t-32 81z" />
|
|
||||||
<glyph unicode="Ð" d="M61 614v123h142v697q145 10 299 10q606 0 639 -475q14 -217 0 -477q-14 -262 -194.5 -382t-465.5 -120l-278 10v614h-142zM387 147q57 -4 127 -4q422 0 442 340q14 244 0 475q-23 332 -434 332l-135 -4v-549h227v-123h-227v-467z" />
|
|
||||||
<glyph unicode="Ñ" horiz-adv-x="1382" d="M184 0v1434h187l551 -930l102 -228v1158h174v-1434h-184l-559 948l-97 217v-1165h-174zM444 1556q-8 90 32 147.5t120 57.5q51 0 135 -43t96 -43q47 0 47 88h109q20 -207 -154 -207q-45 0 -122.5 40t-96.5 40q-51 0 -51 -80h-115z" />
|
|
||||||
<glyph unicode="Ò" horiz-adv-x="1269" d="M139 442q-12 285 0 555q8 213 143.5 340t352.5 127t351 -127t144 -340q12 -270 0 -555q-10 -215 -144 -344t-351 -129t-351.5 129t-144.5 344zM324 444q4 -150 88 -235.5t223 -85.5t223 86t88 235q8 250 0 549q-4 150 -87 234t-224 84t-224 -84t-87 -234q-8 -299 0 -549z M354 1802h185l204 -266h-157z" />
|
|
||||||
<glyph unicode="Ó" horiz-adv-x="1269" d="M139 442q-12 285 0 555q8 213 143.5 340t352.5 127t351 -127t144 -340q12 -270 0 -555q-10 -215 -144 -344t-351 -129t-351.5 129t-144.5 344zM324 444q4 -150 88 -235.5t223 -85.5t223 86t88 235q8 250 0 549q-4 150 -87 234t-224 84t-224 -84t-87 -234q-8 -299 0 -549z M557 1536l188 266h185l-223 -266h-150z" />
|
|
||||||
<glyph unicode="Ô" horiz-adv-x="1269" d="M139 442q-12 285 0 555q8 213 143.5 340t352.5 127t351 -127t144 -340q12 -270 0 -555q-10 -215 -144 -344t-351 -129t-351.5 129t-144.5 344zM324 444q4 -150 88 -235.5t223 -85.5t223 86t88 235q8 250 0 549q-4 150 -87 234t-224 84t-224 -84t-87 -234q-8 -299 0 -549z M371 1536l235 266h88l232 -266h-156l-125 141l-127 -141h-147z" />
|
|
||||||
<glyph unicode="Õ" horiz-adv-x="1269" d="M139 442q-12 285 0 555q8 213 143.5 340t352.5 127t351 -127t144 -340q12 -270 0 -555q-10 -215 -144 -344t-351 -129t-351.5 129t-144.5 344zM324 444q4 -150 88 -235.5t223 -85.5t223 86t88 235q8 250 0 549q-4 150 -87 234t-224 84t-224 -84t-87 -234q-8 -299 0 -549z M369 1554q-8 90 31.5 147.5t119.5 57.5q49 0 133 -43t99 -43q47 0 47 88h108q20 -207 -153 -207q-45 0 -123 40t-96 40q-51 0 -52 -80h-114z" />
|
|
||||||
<glyph unicode="Ö" horiz-adv-x="1269" d="M139 442q-12 285 0 555q8 213 143.5 340t352.5 127t351 -127t144 -340q12 -270 0 -555q-10 -215 -144 -344t-351 -129t-351.5 129t-144.5 344zM324 444q4 -150 88 -235.5t223 -85.5t223 86t88 235q8 250 0 549q-4 150 -87 234t-224 84t-224 -84t-87 -234q-8 -299 0 -549z M338 1644.5q0 49.5 32.5 82t80.5 32.5q51 0 83.5 -32.5t32.5 -82t-32.5 -81t-83.5 -31.5q-47 0 -80 31.5t-33 81zM707 1644.5q0 49.5 31.5 82t78.5 32.5q51 0 85 -32.5t34 -82t-34 -81t-85 -31.5q-47 0 -78.5 31.5t-31.5 81z" />
|
|
||||||
<glyph unicode="×" horiz-adv-x="1269" d="M143 121l381 381l-377 379l109 114l377 -383l385 385l108 -112l-383 -381l383 -381l-108 -113l-385 381l-381 -381z" />
|
|
||||||
<glyph unicode="Ø" horiz-adv-x="1241" d="M92 -31l117 191q-84 119 -90 282q-12 285 0 555q8 213 143 340t352 127q205 0 334 -110l68 110h133l-123 -198q78 -113 84 -269q12 -270 0 -555q-10 -215 -144.5 -344t-351.5 -129q-197 0 -325 105l-64 -105h-133zM303 444q0 -51 14 -108l539 870q-86 104 -242 105 q-141 0 -224 -84t-87 -234q-8 -299 0 -549zM379 219q86 -96 235 -96q139 0 223.5 86t88.5 235q8 250 0 549q-4 63 -13 90z" />
|
|
||||||
<glyph unicode="Ù" horiz-adv-x="1320" d="M176 455v979h184q-2 -797 0 -979q2 -160 81 -246t220.5 -86t219 86t80.5 246v979h184q2 -745 0 -979q-2 -229 -135 -357.5t-348.5 -128.5t-349.5 128.5t-136 357.5zM383 1802h184l205 -266h-158z" />
|
|
||||||
<glyph unicode="Ú" horiz-adv-x="1320" d="M176 455v979h184q-2 -797 0 -979q2 -160 81 -246t220.5 -86t219 86t80.5 246v979h184q2 -745 0 -979q-2 -229 -135 -357.5t-348.5 -128.5t-349.5 128.5t-136 357.5zM586 1536l188 266h184l-223 -266h-149z" />
|
|
||||||
<glyph unicode="Û" horiz-adv-x="1320" d="M176 455v979h184q-2 -797 0 -979q2 -160 81 -246t220.5 -86t219 86t80.5 246v979h184q2 -745 0 -979q-2 -229 -135 -357.5t-348.5 -128.5t-349.5 128.5t-136 357.5zM401 1536l236 266h88l231 -266h-155l-125 141l-127 -141h-148z" />
|
|
||||||
<glyph unicode="Ü" horiz-adv-x="1320" d="M176 455v979h184q-2 -797 0 -979q2 -160 81 -246t220.5 -86t219 86t80.5 246v979h184q2 -745 0 -979q-2 -229 -135 -357.5t-348.5 -128.5t-349.5 128.5t-136 357.5zM383 1644.5q0 49.5 33 82t80 32.5q51 0 83.5 -32.5t32.5 -82t-32.5 -81t-83.5 -31.5q-47 0 -80 31.5 t-33 81zM752 1644.5q0 49.5 31.5 82t78.5 32.5q51 0 85 -32.5t34 -82t-34 -81t-85 -31.5q-47 0 -78.5 31.5t-31.5 81z" />
|
|
||||||
<glyph unicode="Ý" horiz-adv-x="1046" d="M-41 1434h201l332 -635l30 -76l31 76l326 635h198l-467 -859v-575h-184v575zM440 1536l189 266h184l-223 -266h-150z" />
|
|
||||||
<glyph unicode="Þ" horiz-adv-x="1146" d="M184 0v1434h185v-267q90 2 196 2q530 0 531 -430q0 -211 -135.5 -327.5t-395.5 -116.5l-196 2v-297h-185zM369 453q96 -2 186 -2q168 0 262 61t94 225q0 143 -81.5 211t-268.5 68l-192 -2v-561z" />
|
|
||||||
<glyph unicode="ß" horiz-adv-x="1163" d="M178 0v1083q0 213 133 333t312 120q168 0 285.5 -94t117.5 -289q0 -66 -27.5 -103.5t-111.5 -107.5q-25 -20 -87.5 -66.5t-101.5 -76.5q152 8 257.5 -71t109.5 -267q2 -63 0 -154q-8 -158 -108.5 -242.5t-274.5 -84.5q-98 0 -180 26l2 127q55 -20 155 -20q221 0 232 194 v154q-2 125 -59.5 175t-167.5 50q-43 0 -93 -4l-10 129q63 51 227 203q66 59 66 143q0 117 -66.5 176.5t-169.5 59.5q-106 0 -186 -77t-80 -214v-1102h-174z" />
|
|
||||||
<glyph unicode="à" horiz-adv-x="1005" d="M106 254q0 100 43.5 146t161.5 81q57 16 140.5 37t138.5 34t53 11v99q0 111 -37 165t-129 54q-86 0 -135 -47.5t-49 -126.5l-154 -13q-16 147 88.5 238.5t259.5 91.5q158 0 244 -88t86 -264v-436q0 -72 30 -92.5t103 -20.5v-123q-18 -10 -58 -15t-87 -1t-87 39.5 t-52 99.5h-7q-92 -154 -272 -154q-119 0 -200 78t-81 207zM109 1434h204l226 -297h-162zM281 274q0 -80 46 -126t122 -46q88 0 141 65.5t53 164.5v131q-174 -41 -262 -70q-59 -20 -79.5 -46t-20.5 -73z" />
|
|
||||||
<glyph unicode="á" horiz-adv-x="1005" d="M106 254q0 100 43.5 146t161.5 81q57 16 140.5 37t138.5 34t53 11v99q0 111 -37 165t-129 54q-86 0 -135 -47.5t-49 -126.5l-154 -13q-16 147 88.5 238.5t259.5 91.5q158 0 244 -88t86 -264v-436q0 -72 30 -92.5t103 -20.5v-123q-18 -10 -58 -15t-87 -1t-87 39.5 t-52 99.5h-7q-92 -154 -272 -154q-119 0 -200 78t-81 207zM281 274q0 -80 46 -126t122 -46q88 0 141 65.5t53 164.5v131q-174 -41 -262 -70q-59 -20 -79.5 -46t-20.5 -73zM371 1137l225 297h205l-271 -297h-159z" />
|
|
||||||
<glyph unicode="â" horiz-adv-x="1005" d="M106 254q0 100 43.5 146t161.5 81q57 16 140.5 37t138.5 34t53 11v99q0 111 -37 165t-129 54q-86 0 -135 -47.5t-49 -126.5l-154 -13q-16 147 88.5 238.5t259.5 91.5q158 0 244 -88t86 -264v-436q0 -72 30 -92.5t103 -20.5v-123q-18 -10 -58 -15t-87 -1t-87 39.5 t-52 99.5h-7q-92 -154 -272 -154q-119 0 -200 78t-81 207zM156 1126l247 308h109l248 -308h-164l-139 172l-142 -172h-159zM281 274q0 -80 46 -126t122 -46q88 0 141 65.5t53 164.5v131q-174 -41 -262 -70q-59 -20 -79.5 -46t-20.5 -73z" />
|
|
||||||
<glyph unicode="ã" horiz-adv-x="1005" d="M106 254q0 100 43.5 146t161.5 81q57 16 140.5 37t138.5 34t53 11v99q0 111 -37 165t-129 54q-86 0 -135 -47.5t-49 -126.5l-154 -13q-16 147 88.5 238.5t259.5 91.5q158 0 244 -88t86 -264v-436q0 -72 30 -92.5t103 -20.5v-123q-18 -10 -58 -15t-87 -1t-87 39.5 t-52 99.5h-7q-92 -154 -272 -154q-119 0 -200 78t-81 207zM168 1206q-8 92 38 159t132 67q53 0 151.5 -48.5t122.5 -48.5q57 0 58 99h108q10 -98 -33 -163t-139 -65q-49 0 -141 45t-121 45q-61 0 -61 -90h-115zM281 274q0 -80 46 -126t122 -46q88 0 141 65.5t53 164.5v131 q-174 -41 -262 -70q-59 -20 -79.5 -46t-20.5 -73z" />
|
|
||||||
<glyph unicode="ä" horiz-adv-x="1005" d="M106 254q0 100 43.5 146t161.5 81q57 16 140.5 37t138.5 34t53 11v99q0 111 -37 165t-129 54q-86 0 -135 -47.5t-49 -126.5l-154 -13q-16 147 88.5 238.5t259.5 91.5q158 0 244 -88t86 -264v-436q0 -72 30 -92.5t103 -20.5v-123q-18 -10 -58 -15t-87 -1t-87 39.5 t-52 99.5h-7q-92 -154 -272 -154q-119 0 -200 78t-81 207zM164 1319q0 49 32.5 82t79.5 33q51 0 84 -33t33 -82t-32.5 -81t-84.5 -32q-47 0 -79.5 32t-32.5 81zM281 274q0 -80 46 -126t122 -46q88 0 141 65.5t53 164.5v131q-174 -41 -262 -70q-59 -20 -79.5 -46t-20.5 -73z M532 1319q0 49 32 82t79 33q51 0 85 -33t34 -82t-34 -81t-85 -32q-47 0 -79 32t-32 81z" />
|
|
||||||
<glyph unicode="å" horiz-adv-x="1005" d="M106 254q0 100 43.5 146t161.5 81q57 16 140.5 37t138.5 34t53 11v99q0 111 -37 165t-129 54q-86 0 -135 -47.5t-49 -126.5l-154 -13q-16 147 88.5 238.5t259.5 91.5q158 0 244 -88t86 -264v-436q0 -72 30 -92.5t103 -20.5v-123q-18 -10 -58 -15t-87 -1t-87 39.5 t-52 99.5h-7q-92 -154 -272 -154q-119 0 -200 78t-81 207zM260 1335q0 90 61.5 145.5t141.5 55.5q78 0 140.5 -56.5t62.5 -144.5t-60.5 -146.5t-142.5 -58.5t-142.5 58.5t-60.5 146.5zM281 274q0 -80 46 -126t122 -46q88 0 141 65.5t53 164.5v131q-174 -41 -262 -70 q-59 -20 -79.5 -46t-20.5 -73zM373 1337q0 -47 26.5 -75.5t63.5 -28.5q39 0 64.5 28.5t25.5 75.5q0 39 -25.5 68t-64.5 29q-37 0 -63.5 -28t-26.5 -69z" />
|
|
||||||
<glyph unicode="æ" horiz-adv-x="1497" d="M106 250q0 100 45.5 152.5t147.5 78.5q57 14 145 29.5t147.5 24t57.5 6.5v139q0 201 -172 201q-86 0 -135 -47.5t-49 -126.5l-154 -13q-18 133 76 231.5t268 98.5q180 0 271 -117q106 117 288 117q162 0 255.5 -88t93.5 -240q0 -100 -33 -133t-148 -55q-154 -29 -387 -55 v-107q2 -117 62.5 -175t156.5 -58q170 0 197 184l143 -10q6 -129 -86 -223.5t-254 -94.5q-121 0 -214 49.5t-140 143.5q-80 -193 -293 -193q-123 0 -206 78t-83 203zM281 270q0 -78 46 -123t122 -45q90 0 145 61.5t55 158.5v120q-168 -25 -256 -49q-61 -16 -86.5 -44 t-25.5 -79zM825 557q152 16 291 43q63 12 84 33.5t21 66.5q0 86 -45.5 133.5t-128.5 47.5q-111 0 -166.5 -73t-55.5 -198v-53z" />
|
|
||||||
<glyph unicode="ç" horiz-adv-x="921" d="M121 328q-6 174 0 327q6 176 111.5 272.5t271.5 96.5t260 -84t90 -223l-154 -10q-4 88 -59 131t-137 43q-92 0 -148.5 -58.5t-60.5 -167.5q-6 -160 0 -297q8 -246 217 -245q88 0 137 51t62 133l143 -10q6 -129 -86 -223.5t-256 -94.5q-172 0 -279.5 92.5t-111.5 266.5z M299 -324h113q0 -35 20.5 -54t54.5 -19q29 0 48.5 18.5t19.5 54.5q0 74 -80 74v113q88 8 145.5 -45.5t57.5 -141.5q0 -78 -52.5 -132t-138.5 -54q-84 0 -140 51t-48 135z" />
|
|
||||||
<glyph unicode="è" horiz-adv-x="966" d="M121 338q-6 184 0 305q8 166 110.5 273.5t280.5 107.5q162 0 255 -92t93 -246q0 -98 -31.5 -130t-148.5 -56l-387 -66v-65q0 -123 59.5 -189.5t159.5 -66.5q90 0 140 51t63 133l143 -10q6 -129 -88 -223.5t-258 -94.5q-178 0 -282.5 100.5t-108.5 268.5zM154 1434h204 l226 -297h-162zM293 547q147 18 289 49q66 14 85 32.5t19 61.5q0 88 -46 139.5t-128 51.5q-111 0 -165 -73t-54 -198v-63z" />
|
|
||||||
<glyph unicode="é" horiz-adv-x="966" d="M121 338q-6 184 0 305q8 166 110.5 273.5t280.5 107.5q162 0 255 -92t93 -246q0 -98 -31.5 -130t-148.5 -56l-387 -66v-65q0 -123 59.5 -189.5t159.5 -66.5q90 0 140 51t63 133l143 -10q6 -129 -88 -223.5t-258 -94.5q-178 0 -282.5 100.5t-108.5 268.5zM293 547 q147 18 289 49q66 14 85 32.5t19 61.5q0 88 -46 139.5t-128 51.5q-111 0 -165 -73t-54 -198v-63zM375 1137l225 297h205l-270 -297h-160z" />
|
|
||||||
<glyph unicode="ê" horiz-adv-x="966" d="M121 338q-6 184 0 305q8 166 110.5 273.5t280.5 107.5q162 0 255 -92t93 -246q0 -98 -31.5 -130t-148.5 -56l-387 -66v-65q0 -123 59.5 -189.5t159.5 -66.5q90 0 140 51t63 133l143 -10q6 -129 -88 -223.5t-258 -94.5q-178 0 -282.5 100.5t-108.5 268.5zM201 1126 l248 308h108l248 -308h-164l-139 172l-142 -172h-159zM293 547q147 18 289 49q66 14 85 32.5t19 61.5q0 88 -46 139.5t-128 51.5q-111 0 -165 -73t-54 -198v-63z" />
|
|
||||||
<glyph unicode="ë" horiz-adv-x="966" d="M121 338q-6 184 0 305q8 166 110.5 273.5t280.5 107.5q162 0 255 -92t93 -246q0 -98 -31.5 -130t-148.5 -56l-387 -66v-65q0 -123 59.5 -189.5t159.5 -66.5q90 0 140 51t63 133l143 -10q6 -129 -88 -223.5t-258 -94.5q-178 0 -282.5 100.5t-108.5 268.5zM197 1319 q0 49 32.5 82t79.5 33q51 0 84 -33t33 -82t-33 -81t-84 -32q-47 0 -79.5 32t-32.5 81zM293 547q147 18 289 49q66 14 85 32.5t19 61.5q0 88 -46 139.5t-128 51.5q-111 0 -165 -73t-54 -198v-63zM565 1319q0 49 32 82t79 33q51 0 85 -33t34 -82t-34 -81t-85 -32q-47 0 -79 32 t-32 81z" />
|
|
||||||
<glyph unicode="ì" horiz-adv-x="499" d="M-131 1434h205l225 -297h-162zM137 197v745l174 72v-756q0 -76 30 -105.5t103 -29.5v-123q-125 -35 -216 10.5t-91 186.5z" />
|
|
||||||
<glyph unicode="í" horiz-adv-x="499" d="M137 197v745l174 72v-756q0 -76 30 -105.5t103 -29.5v-123q-125 -35 -216 10.5t-91 186.5zM147 1137l226 297h205l-271 -297h-160z" />
|
|
||||||
<glyph unicode="î" horiz-adv-x="499" d="M-80 1126l248 308h108l248 -308h-164l-139 172l-141 -172h-160zM137 197v745l174 72v-756q0 -76 30 -105.5t103 -29.5v-123q-125 -35 -216 10.5t-91 186.5z" />
|
|
||||||
<glyph unicode="ï" horiz-adv-x="499" d="M-72 1323q0 49 33 82t80 33q51 0 84 -33t33 -82t-33 -81t-84 -32q-47 0 -80 32t-33 81zM137 197v745l174 72v-756q0 -76 30 -105.5t103 -29.5v-123q-125 -35 -216 10.5t-91 186.5zM297 1323q0 49 31.5 82t79.5 33q51 0 84.5 -33t33.5 -82t-33.5 -81t-84.5 -32 q-47 0 -79 32t-32 81z" />
|
|
||||||
<glyph unicode="ð" horiz-adv-x="1077" d="M133 328q-6 164 0 297q8 158 109.5 253t240.5 95q186 0 265 -137q-27 248 -181 413l-192 -143h-170l291 213q-125 104 -297 151l151 66q139 -49 248 -131l170 131h182l-274 -197q236 -231 256 -645q8 -172 0 -366q-8 -166 -120 -262.5t-277 -96.5q-168 0 -282 97.5 t-120 261.5zM307 338q4 -102 66.5 -163.5t161.5 -61.5q96 0 157.5 60t65.5 163q6 129 0 289q-4 96 -69.5 150t-160.5 54q-96 0 -156.5 -52t-64.5 -163q-4 -151 0 -276z" />
|
|
||||||
<glyph unicode="ñ" horiz-adv-x="1101" d="M66 870v113q47 20 100 21q70 0 120 -37t62 -111h2q102 168 309 168q139 0 222.5 -90t83.5 -246v-688h-174v668q0 213 -189 213q-100 0 -170 -66.5t-70 -134.5v-680h-174v776q0 57 -28 75.5t-94 18.5zM270 1206q-8 92 38 159t132 67q53 0 151.5 -48.5t123.5 -48.5 q57 0 57 99h109q10 -98 -33 -163t-139 -65q-49 0 -141.5 45t-121.5 45q-61 0 -61 -90h-115z" />
|
|
||||||
<glyph unicode="ò" horiz-adv-x="1034" d="M123 338q-6 178 0 321q8 164 115.5 264.5t279.5 100.5t278.5 -100.5t114.5 -264.5q8 -150 0 -321q-8 -164 -116.5 -266.5t-276.5 -102.5q-170 0 -279.5 102.5t-115.5 266.5zM166 1434h205l225 -297h-162zM297 344q4 -102 64.5 -166.5t156.5 -64.5q94 0 154.5 64.5 t64.5 164.5q6 145 0 313q-4 100 -62.5 163t-156.5 63t-157.5 -61.5t-63.5 -164.5q-6 -170 0 -311z" />
|
|
||||||
<glyph unicode="ó" horiz-adv-x="1034" d="M123 338q-6 178 0 321q8 164 115.5 264.5t279.5 100.5t278.5 -100.5t114.5 -264.5q8 -150 0 -321q-8 -164 -116.5 -266.5t-276.5 -102.5q-170 0 -279.5 102.5t-115.5 266.5zM297 344q4 -102 64.5 -166.5t156.5 -64.5q94 0 154.5 64.5t64.5 164.5q6 145 0 313 q-4 100 -62.5 163t-156.5 63t-157.5 -61.5t-63.5 -164.5q-6 -170 0 -311zM420 1137l225 297h205l-270 -297h-160z" />
|
|
||||||
<glyph unicode="ô" horiz-adv-x="1034" d="M123 338q-6 178 0 321q8 164 115.5 264.5t279.5 100.5t278.5 -100.5t114.5 -264.5q8 -150 0 -321q-8 -164 -116.5 -266.5t-276.5 -102.5q-170 0 -279.5 102.5t-115.5 266.5zM211 1126l248 308h108l248 -308h-164l-139 172l-141 -172h-160zM297 344q4 -102 64.5 -166.5 t156.5 -64.5q94 0 154.5 64.5t64.5 164.5q6 145 0 313q-4 100 -62.5 163t-156.5 63t-157.5 -61.5t-63.5 -164.5q-6 -170 0 -311z" />
|
|
||||||
<glyph unicode="õ" horiz-adv-x="1034" d="M123 338q-6 178 0 321q8 164 115.5 264.5t279.5 100.5t278.5 -100.5t114.5 -264.5q8 -150 0 -321q-8 -164 -116.5 -266.5t-276.5 -102.5q-170 0 -279.5 102.5t-115.5 266.5zM209 1206q-8 92 38 159t132 67q53 0 151.5 -48.5t122.5 -48.5q57 0 58 99h108q10 -98 -33 -163 t-139 -65q-49 0 -141 45t-121 45q-61 0 -61 -90h-115zM297 344q4 -102 64.5 -166.5t156.5 -64.5q94 0 154.5 64.5t64.5 164.5q6 145 0 313q-4 100 -62.5 163t-156.5 63t-157.5 -61.5t-63.5 -164.5q-6 -170 0 -311z" />
|
|
||||||
<glyph unicode="ö" horiz-adv-x="1034" d="M123 338q-6 178 0 321q8 164 115.5 264.5t279.5 100.5t278.5 -100.5t114.5 -264.5q8 -150 0 -321q-8 -164 -116.5 -266.5t-276.5 -102.5q-170 0 -279.5 102.5t-115.5 266.5zM217 1319q0 49 33 82t80 33q51 0 83.5 -33t32.5 -82t-32.5 -81t-83.5 -32q-47 0 -80 32t-33 81z M297 344q4 -102 64.5 -166.5t156.5 -64.5q94 0 154.5 64.5t64.5 164.5q6 145 0 313q-4 100 -62.5 163t-156.5 63t-157.5 -61.5t-63.5 -164.5q-6 -170 0 -311zM586 1319q0 49 31.5 82t78.5 33q51 0 85 -33t34 -82t-33.5 -81t-85.5 -32q-47 0 -78.5 32t-31.5 81z" />
|
|
||||||
<glyph unicode="÷" horiz-adv-x="1202" d="M76 461v153h1050v-153h-1050zM465 131q0 57 37 96t94 39t96 -39t39 -96q0 -55 -39 -93t-96 -38t-94 38t-37 93zM465 940q0 57 37 96t94 39t96 -39t39 -96q0 -55 -39 -93t-96 -38t-94 38t-37 93z" />
|
|
||||||
<glyph unicode="ø" horiz-adv-x="1044" d="M88 -31l107 152q-70 94 -72 217q-6 178 0 321q8 164 115.5 264.5t279.5 100.5q152 0 258 -84l60 84h122l-112 -160q59 -88 65 -205q8 -150 0 -321q-8 -164 -116.5 -266.5t-276.5 -102.5q-145 0 -252 78l-55 -78h-123zM297 344q0 -31 10 -65l375 530q-59 72 -164 72 q-98 0 -157.5 -61.5t-63.5 -164.5q-6 -170 0 -311zM358 178q61 -66 160 -65q94 0 154.5 64.5t64.5 164.5q6 145 0 313q0 6 -1 15.5t-2 17.5t-3 17z" />
|
|
||||||
<glyph unicode="ù" horiz-adv-x="1067" d="M127 303v639l174 72v-678q0 -223 186 -223q102 0 160 58t58 134v637l174 72v-778q0 -72 29.5 -92.5t103.5 -20.5v-123q-25 -10 -63 -14t-84 2t-86 40.5t-54 94.5h-4q-86 -154 -281 -154q-141 0 -227 87t-86 247zM158 1434h204l226 -297h-162z" />
|
|
||||||
<glyph unicode="ú" horiz-adv-x="1067" d="M127 303v639l174 72v-678q0 -223 186 -223q102 0 160 58t58 134v637l174 72v-778q0 -72 29.5 -92.5t103.5 -20.5v-123q-25 -10 -63 -14t-84 2t-86 40.5t-54 94.5h-4q-86 -154 -281 -154q-141 0 -227 87t-86 247zM418 1137l225 297h205l-270 -297h-160z" />
|
|
||||||
<glyph unicode="û" horiz-adv-x="1067" d="M127 303v639l174 72v-678q0 -223 186 -223q102 0 160 58t58 134v637l174 72v-778q0 -72 29.5 -92.5t103.5 -20.5v-123q-25 -10 -63 -14t-84 2t-86 40.5t-54 94.5h-4q-86 -154 -281 -154q-141 0 -227 87t-86 247zM217 1126l248 308h108l248 -308h-164l-139 172l-141 -172 h-160z" />
|
|
||||||
<glyph unicode="ü" horiz-adv-x="1067" d="M127 303v639l174 72v-678q0 -223 186 -223q102 0 160 58t58 134v637l174 72v-778q0 -72 29.5 -92.5t103.5 -20.5v-123q-25 -10 -63 -14t-84 2t-86 40.5t-54 94.5h-4q-86 -154 -281 -154q-141 0 -227 87t-86 247zM209 1319q0 49 32.5 82t80.5 33q51 0 83.5 -33t32.5 -82 t-32.5 -81t-83.5 -32q-47 0 -80 32t-33 81zM578 1319q0 49 31.5 82t78.5 33q51 0 85 -33t34 -82t-34 -81t-85 -32q-47 0 -78.5 32t-31.5 81z" />
|
|
||||||
<glyph unicode="ý" horiz-adv-x="860" d="M14 993h183l202 -622l31 -125h2l31 123l205 624h178q-4 -10 -72.5 -199.5t-149.5 -409.5t-178.5 -481t-158.5 -417h-166l221 565zM334 1137l225 297h205l-270 -297h-160z" />
|
|
||||||
<glyph unicode="þ" horiz-adv-x="1091" d="M178 -512v1976l174 72v-674q35 70 112 116t175 46q152 0 240 -93t92 -255q4 -160 0 -336q-6 -176 -102.5 -273.5t-239.5 -97.5q-90 0 -165 37t-112 96v-614h-174zM352 348q0 -125 68.5 -180t177.5 -55q86 0 139.5 56t59.5 163q8 172 0 346q-10 203 -211 203 q-94 0 -162 -62.5t-72 -140.5v-330z" />
|
|
||||||
<glyph unicode="ÿ" horiz-adv-x="860" d="M14 993h183l202 -622l31 -125h2l31 123l205 624h178q-4 -10 -72.5 -199.5t-149.5 -409.5t-178.5 -481t-158.5 -417h-166l221 565zM135 1319q0 49 33 82t80 33q51 0 84 -33t33 -82t-33 -81t-84 -32q-47 0 -80 32t-33 81zM504 1319q0 49 31.5 82t78.5 33q51 0 85 -33 t34 -82t-33.5 -81t-85.5 -32q-47 0 -78.5 32t-31.5 81z" />
|
|
||||||
<glyph unicode="Œ" horiz-adv-x="1646" d="M129 424q-12 299 0 584q8 203 145.5 329.5t337.5 126.5q117 0 207 -30h735v-154h-563v-471h514v-154h-514v-501h563v-154h-737q-88 -31 -209 -31q-201 0 -336 125t-143 330zM303 426q4 -139 91 -221t220 -82q135 0 203 39v1108q-72 41 -205 41q-131 0 -218 -83t-91 -220 q-10 -260 0 -582z" />
|
|
||||||
<glyph unicode="œ" horiz-adv-x="1591" d="M123 338q-6 178 0 321q8 164 115.5 264.5t279.5 100.5q203 0 311 -137q106 137 308 137q162 0 255 -92t93 -246q0 -98 -32 -130t-148 -56l-387 -66v-65q0 -123 59 -189.5t160 -66.5q90 0 140 51t62 133l144 -10q6 -129 -88.5 -223.5t-257.5 -94.5q-207 0 -314 133 q-111 -133 -305 -133q-170 0 -279.5 102.5t-115.5 266.5zM297 344q4 -102 64.5 -166.5t156.5 -64.5q94 0 154.5 64.5t64.5 164.5q6 145 0 313q-4 100 -62.5 163t-156.5 63t-157.5 -61.5t-63.5 -164.5q-6 -170 0 -311zM918 547q147 18 288 49q66 14 85.5 32.5t19.5 61.5 q0 88 -46 139.5t-128 51.5q-111 0 -165 -73t-54 -198v-63z" />
|
|
||||||
<glyph unicode="Ÿ" horiz-adv-x="1046" d="M-41 1434h201l332 -635l30 -76l31 76l326 635h198l-467 -859v-575h-184v575zM236 1640.5q0 49.5 32.5 82t79.5 32.5q51 0 84 -32.5t33 -82t-33 -81t-84 -31.5q-47 0 -79.5 31.5t-32.5 81zM604 1640.5q0 49.5 32 82t79 32.5q51 0 85 -32.5t34 -82t-34 -81t-85 -31.5 q-47 0 -79 31.5t-32 81z" />
|
|
||||||
<glyph unicode="ˆ" horiz-adv-x="972" d="M178 1126l248 308h109l247 -308h-164l-139 172l-141 -172h-160z" />
|
|
||||||
<glyph unicode="˜" horiz-adv-x="950" d="M180 1206q-8 92 38 159t132 67q53 0 151.5 -48.5t123.5 -48.5q57 0 57 99h109q10 -98 -33 -163t-140 -65q-49 0 -141 45t-121 45q-61 0 -61 -90h-115z" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="933" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="1869" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="933" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="1869" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="622" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="466" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="311" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="311" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="233" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="372" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="102" />
|
|
||||||
<glyph unicode="‐" horiz-adv-x="694" d="M76 461v153h542v-153h-542z" />
|
|
||||||
<glyph unicode="‑" horiz-adv-x="694" d="M76 461v153h542v-153h-542z" />
|
|
||||||
<glyph unicode="‒" horiz-adv-x="694" d="M76 461v153h542v-153h-542z" />
|
|
||||||
<glyph unicode="–" horiz-adv-x="1046" d="M76 461v153h895v-153h-895z" />
|
|
||||||
<glyph unicode="—" horiz-adv-x="1318" d="M76 461v153h1167v-153h-1167z" />
|
|
||||||
<glyph unicode="‘" horiz-adv-x="438" d="M88 1087q0 137 91 244t229 131l49 -73q-61 -16 -106.5 -45t-68 -56.5t-36 -53.5t-15.5 -42l-2 -16q45 6 89 -25t44 -102q0 -55 -38.5 -91t-90.5 -36q-66 0 -105.5 43.5t-39.5 121.5z" />
|
|
||||||
<glyph unicode="’" horiz-adv-x="438" d="M-6 997q61 16 106 45t67.5 56.5t36 53.5t15.5 42l2 16q-45 -6 -89 25t-44 102q0 55 39 91t90 36q66 0 105.5 -44t39.5 -122q0 -137 -91 -243.5t-228 -130.5z" />
|
|
||||||
<glyph unicode="‚" horiz-adv-x="399" d="M-4 -242q61 16 106 45t68 56.5t36 53.5t15 42l2 16q-45 -6 -89 25t-44 102q0 55 39 91t90 36q66 0 106 -44t40 -122q0 -137 -91.5 -243.5t-228.5 -130.5z" />
|
|
||||||
<glyph unicode="“" horiz-adv-x="774" d="M88 1087q0 137 91 244t229 131l49 -73q-61 -16 -106.5 -45t-68 -56.5t-36 -53.5t-15.5 -42l-2 -16q45 6 89 -25t44 -102q0 -55 -38.5 -91t-90.5 -36q-66 0 -105.5 43.5t-39.5 121.5zM424 1087q0 137 91 244t228 131l50 -73q-61 -16 -106.5 -45t-68 -56.5t-36 -53.5 t-15.5 -42l-2 -16q45 6 89 -25t44 -102q0 -55 -38.5 -91t-90.5 -36q-66 0 -105.5 43.5t-39.5 121.5z" />
|
|
||||||
<glyph unicode="”" horiz-adv-x="774" d="M-6 997q61 16 106 45t67.5 56.5t36 53.5t15.5 42l2 16q-45 -6 -89 25t-44 102q0 55 39 91t90 36q66 0 105.5 -44t39.5 -122q0 -137 -91 -243.5t-228 -130.5zM330 997q61 16 106 45t67.5 56.5t36 53.5t15.5 42l2 16q-45 -6 -89 25t-44 102q0 55 39 91t90 36 q66 0 105.5 -44t39.5 -122q0 -137 -91 -243.5t-228 -130.5z" />
|
|
||||||
<glyph unicode="„" horiz-adv-x="774" d="M-6 -242q61 16 106 45t67.5 56.5t36 53.5t15.5 42l2 16q-45 -6 -89 25t-44 102q0 55 39 91t90 36q66 0 105.5 -44t39.5 -122q0 -137 -91 -243.5t-228 -130.5zM315 -242q61 16 106.5 45t68 56.5t36 53.5t15.5 42l2 16q-45 -6 -89 25t-44 102q0 55 38.5 91t90.5 36 q66 0 105.5 -44t39.5 -122q0 -137 -91 -243.5t-228 -130.5z" />
|
|
||||||
<glyph unicode="•" horiz-adv-x="669" d="M147 612q0 82 52.5 137.5t130.5 55.5q84 0 138 -54.5t54 -138.5q0 -78 -55 -130t-137 -52q-76 0 -129.5 53t-53.5 129z" />
|
|
||||||
<glyph unicode="…" horiz-adv-x="1447" d="M90 100q0 57 37 96.5t94.5 39.5t96 -39t38.5 -97q0 -55 -38.5 -93t-96 -38t-94.5 38t-37 93zM598 100q0 57 37 96.5t94 39.5t96 -39t39 -97q0 -55 -39 -93t-96 -38t-94 38t-37 93zM1087 100q0 57 37 96.5t94.5 39.5t96.5 -39t39 -97q0 -55 -39 -93t-96.5 -38t-94.5 38 t-37 93z" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="372" />
|
|
||||||
<glyph unicode="‹" horiz-adv-x="598" d="M86 508v14l383 348l82 -104l-275 -244v-12l277 -264l-90 -103z" />
|
|
||||||
<glyph unicode="›" horiz-adv-x="591" d="M45 768l90 100l371 -364v-15l-377 -348l-82 103l264 245v15z" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="466" />
|
|
||||||
<glyph unicode="€" horiz-adv-x="1214" d="M55 481l31 133h156q-4 92 0 185h-187l31 133h158q0 41 2 59q8 231 138 352t325 121q190 0 304.5 -110.5t106.5 -288.5l-164 -10q-2 113 -65.5 184.5t-181.5 71.5q-121 0 -197 -84t-82 -236q-2 -20 -2 -59h459l-21 -133h-440q-4 -90 0 -185h420l-21 -133h-397 q0 -8 1 -24.5t1 -24.5q4 -143 81 -226t198 -83q117 0 183 69.5t71 196.5l163 -10q8 -188 -106.5 -299t-310.5 -111q-199 0 -327 121t-136 340q-2 16 -2 51h-189z" />
|
|
||||||
<glyph unicode="™" horiz-adv-x="1488" d="M-6 1321v113h606v-113h-231v-625h-144v625h-231zM696 696v738h125l240 -400l260 400h123v-738h-144v527l-231 -355h-27l-213 351v-523h-133z" />
|
|
||||||
<glyph unicode="" horiz-adv-x="995" d="M0 995h995v-995h-995v995z" />
|
|
||||||
<glyph unicode="fi" horiz-adv-x="1112" d="M35 870v123h143v158q0 190 88 287.5t226 97.5q115 0 194 -66l-55 -116q-47 29 -129 28q-76 0 -113 -55t-37 -186v-148h572v-735q0 -76 29.5 -105.5t103.5 -29.5v-123q-125 -35 -216 10t-91 187v673h-398v-870h-174v870h-143zM719 1356q0 51 32.5 85t82.5 34 q51 0 85.5 -34t34.5 -85t-33.5 -84t-86.5 -33q-49 0 -82 33t-33 84z" />
|
|
||||||
<glyph unicode="fl" horiz-adv-x="1142" d="M35 870v123h143v148q0 188 107.5 291.5t259.5 103.5q137 0 229 -70l170 70v-1280q0 -76 30 -104.5t103 -28.5v-123q-119 -35 -213 9t-94 186v1140q-61 57 -201 58q-211 0 -217 -252v-148h246v-123h-246v-870h-174v870h-143z" />
|
|
||||||
<glyph unicode="ffi" horiz-adv-x="1716" d="M35 870v123h143v158q0 188 94.5 286.5t235.5 98.5t219 -61l-27 -121q-78 39 -159 39q-94 0 -141.5 -57.5t-47.5 -194.5v-148h430v158q0 190 88 287.5t226 97.5q115 0 194 -66l-55 -116q-47 29 -129 28q-76 0 -113 -55t-37 -186v-148h572v-735q0 -76 29.5 -105.5 t103.5 -29.5v-123q-125 -35 -216 10t-91 187v673h-398v-870h-174v870h-430v-870h-174v870h-143zM1323 1356q0 51 33 85t82 34q51 0 86 -34t35 -85t-34 -84t-87 -33q-49 0 -82 33t-33 84z" />
|
|
||||||
<glyph unicode="ffl" horiz-adv-x="1746" d="M35 870v123h143v158q0 188 94.5 286.5t235.5 98.5t219 -61l-27 -121q-78 39 -159 39q-94 0 -141.5 -57.5t-47.5 -194.5v-148h430v148q0 188 107.5 291.5t259.5 103.5q137 0 229 -70l170 70v-1280q0 -76 30 -104.5t103 -28.5v-123q-119 -35 -213 9t-94 186v1140 q-61 57 -200 58q-211 0 -218 -252v-148h246v-123h-246v-870h-174v870h-430v-870h-174v870h-143z" />
|
|
||||||
</font>
|
|
||||||
</defs></svg>
|
|
Before Width: | Height: | Size: 58 KiB |
|
@ -1,13 +0,0 @@
|
||||||
@font-face {
|
|
||||||
font-family: 'fengardoneue';
|
|
||||||
src: url('fengardoneue_regular-webfont.woff');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'fengardoneue';
|
|
||||||
src: url('fengardoneue_black-webfont.woff');
|
|
||||||
font-weight: bold;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
# Font Squirrel Font-face Generator Configuration File
|
|
||||||
# Upload this file to the generator to recreate the settings
|
|
||||||
# you used to create these fonts.
|
|
||||||
|
|
||||||
{"mode":"optimal","formats":["woff","woff2"],"tt_instructor":"default","fix_gasp":"xy","fix_vertical_metrics":"Y","metrics_ascent":"","metrics_descent":"","metrics_linegap":"","add_spaces":"Y","add_hyphens":"Y","fallback":"none","fallback_custom":"100","options_subset":"basic","subset_custom":"","subset_custom_range":"","subset_ot_features_list":"","css_stylesheet":"stylesheet.css","filename_suffix":"-webfont","emsquare":"2048","spacing_adjustment":"0"}
|
|
|
@ -1,622 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function($){$.fn.easyTabs=function(option){var param=jQuery.extend({fadeSpeed:"fast",defaultContent:1,activeClass:'active'},option);$(this).each(function(){var thisId="#"+this.id;if(param.defaultContent==''){param.defaultContent=1;}
|
|
||||||
if(typeof param.defaultContent=="number")
|
|
||||||
{var defaultTab=$(thisId+" .tabs li:eq("+(param.defaultContent-1)+") a").attr('href').substr(1);}else{var defaultTab=param.defaultContent;}
|
|
||||||
$(thisId+" .tabs li a").each(function(){var tabToHide=$(this).attr('href').substr(1);$("#"+tabToHide).addClass('easytabs-tab-content');});hideAll();changeContent(defaultTab);function hideAll(){$(thisId+" .easytabs-tab-content").hide();}
|
|
||||||
function changeContent(tabId){hideAll();$(thisId+" .tabs li").removeClass(param.activeClass);$(thisId+" .tabs li a[href=#"+tabId+"]").closest('li').addClass(param.activeClass);if(param.fadeSpeed!="none")
|
|
||||||
{$(thisId+" #"+tabId).fadeIn(param.fadeSpeed);}else{$(thisId+" #"+tabId).show();}}
|
|
||||||
$(thisId+" .tabs li").click(function(){var tabId=$(this).find('a').attr('href').substr(1);changeContent(tabId);return false;});});}})(jQuery);
|
|
||||||
</script>
|
|
||||||
<link rel="stylesheet" href="specimen_files/specimen_stylesheet.css" type="text/css" charset="utf-8" />
|
|
||||||
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" />
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body{
|
|
||||||
font-family: 'lackitalic';
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<title>Lack Italic Specimen</title>
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#container').easyTabs({defaultContent:1});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<div id="header">
|
|
||||||
Lack Italic </div>
|
|
||||||
<ul class="tabs">
|
|
||||||
<li><a href="#specimen">Specimen</a></li>
|
|
||||||
<li><a href="#layout">Sample Layout</a></li>
|
|
||||||
<li><a href="#glyphs">Glyphs & Languages</a></li>
|
|
||||||
<li><a href="#installing">Installing Webfonts</a></li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div id="main_content">
|
|
||||||
|
|
||||||
|
|
||||||
<div id="specimen">
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<div class="huge">AaBb</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="glyph_range">A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;</div>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<table class="sample_table">
|
|
||||||
<tr><td>10</td><td class="size10">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>11</td><td class="size11">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>12</td><td class="size12">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>13</td><td class="size13">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>14</td><td class="size14">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>16</td><td class="size16">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>18</td><td class="size18">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>20</td><td class="size20">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>24</td><td class="size24">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>30</td><td class="size30">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>36</td><td class="size36">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>48</td><td class="size48">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>60</td><td class="size60">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>72</td><td class="size72">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>90</td><td class="size90">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section" id="bodycomparison">
|
|
||||||
|
|
||||||
|
|
||||||
<div id="xheight">
|
|
||||||
<div class="fontbody">◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼body</div><div class="arialbody">body</div><div class="verdanabody">body</div><div class="georgiabody">body</div></div>
|
|
||||||
<div class="fontbody" style="z-index:1">
|
|
||||||
body<span>Lack Italic</span>
|
|
||||||
</div>
|
|
||||||
<div class="arialbody" style="z-index:1">
|
|
||||||
body<span>Arial</span>
|
|
||||||
</div>
|
|
||||||
<div class="verdanabody" style="z-index:1">
|
|
||||||
body<span>Verdana</span>
|
|
||||||
</div>
|
|
||||||
<div class="georgiabody" style="z-index:1">
|
|
||||||
body<span>Georgia</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section psample psample_row1" id="">
|
|
||||||
|
|
||||||
<div class="grid2 firstcol">
|
|
||||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="section psample psample_row2" id="">
|
|
||||||
<div class="grid3 firstcol">
|
|
||||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid5">
|
|
||||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row3" id="">
|
|
||||||
<div class="grid5 firstcol">
|
|
||||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid7">
|
|
||||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row4" id="">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section psample psample_row1 fullreverse">
|
|
||||||
<div class="grid2 firstcol">
|
|
||||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row2 fullreverse">
|
|
||||||
<div class="grid3 firstcol">
|
|
||||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid5">
|
|
||||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample fullreverse psample_row3" id="">
|
|
||||||
<div class="grid5 firstcol">
|
|
||||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid7">
|
|
||||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample fullreverse psample_row4" id="" style="border-bottom: 20px #000 solid;">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="layout">
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<h1>Lorem Ipsum Dolor</h1>
|
|
||||||
<h2>Etiam porta sem malesuada magna mollis euismod</h2>
|
|
||||||
|
|
||||||
<p class="byline">By <a href="#link">Aenean Lacinia</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid8 firstcol">
|
|
||||||
<p class="large">Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Pellentesque ornare sem</h3>
|
|
||||||
|
|
||||||
<p>Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit. </p>
|
|
||||||
|
|
||||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p>
|
|
||||||
|
|
||||||
<p>Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. </p>
|
|
||||||
|
|
||||||
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla. </p>
|
|
||||||
|
|
||||||
<h3>Cras mattis consectetur</h3>
|
|
||||||
|
|
||||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum. </p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid4 sidebar">
|
|
||||||
|
|
||||||
<div class="box reverse">
|
|
||||||
<p class="last">Nullam quis risus eget urna mollis ornare vel eu leo. Donec ullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="caption">Maecenas sed diam eget risus varius.</p>
|
|
||||||
|
|
||||||
<p>Vestibulum id ligula porta felis euismod semper. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare vel eu leo. </p>
|
|
||||||
|
|
||||||
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec ullamcorper nulla non metus auctor fringilla. Maecenas faucibus mollis interdum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="glyphs">
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
|
|
||||||
<h1>Language Support</h1>
|
|
||||||
<p>The subset of Lack Italic in this kit supports the following languages:<br />
|
|
||||||
|
|
||||||
Albanian, Basque, Breton, Chamorro, Danish, Dutch, English, Faroese, Finnish, French, Frisian, Galician, German, Icelandic, Italian, Malagasy, Norwegian, Portuguese, Spanish, Alsatian, Aragonese, Arapaho, Arrernte, Asturian, Aymara, Bislama, Cebuano, Corsican, Fijian, French_creole, Genoese, Gilbertese, Greenlandic, Haitian_creole, Hiligaynon, Hmong, Hopi, Ibanag, Iloko_ilokano, Indonesian, Interglossa_glosa, Interlingua, Irish_gaelic, Jerriais, Lojban, Lombard, Luxembourgeois, Manx, Mohawk, Norfolk_pitcairnese, Occitan, Oromo, Pangasinan, Papiamento, Piedmontese, Potawatomi, Rhaeto-romance, Romansh, Rotokas, Sami_lule, Samoan, Sardinian, Scots_gaelic, Seychelles_creole, Shona, Sicilian, Somali, Southern_ndebele, Swahili, Swati_swazi, Tagalog_filipino_pilipino, Tetum, Tok_pisin, Uyghur_latinized, Volapuk, Walloon, Warlpiri, Xhosa, Yapese, Zulu, Latinbasic, Ubasic, Demo </p>
|
|
||||||
<h1>Glyph Chart</h1>
|
|
||||||
<p>The subset of Lack Italic in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.</p>
|
|
||||||
<div id="glyph_chart">
|
|
||||||
|
|
||||||
<div><p>&#13;</p> </div>
|
|
||||||
<div><p>&#32;</p> </div>
|
|
||||||
<div><p>&#33;</p>!</div>
|
|
||||||
<div><p>&#34;</p>"</div>
|
|
||||||
<div><p>&#35;</p>#</div>
|
|
||||||
<div><p>&#36;</p>$</div>
|
|
||||||
<div><p>&#37;</p>%</div>
|
|
||||||
<div><p>&#38;</p>&</div>
|
|
||||||
<div><p>&#39;</p>'</div>
|
|
||||||
<div><p>&#40;</p>(</div>
|
|
||||||
<div><p>&#41;</p>)</div>
|
|
||||||
<div><p>&#42;</p>*</div>
|
|
||||||
<div><p>&#43;</p>+</div>
|
|
||||||
<div><p>&#44;</p>,</div>
|
|
||||||
<div><p>&#45;</p>-</div>
|
|
||||||
<div><p>&#46;</p>.</div>
|
|
||||||
<div><p>&#47;</p>/</div>
|
|
||||||
<div><p>&#48;</p>0</div>
|
|
||||||
<div><p>&#49;</p>1</div>
|
|
||||||
<div><p>&#50;</p>2</div>
|
|
||||||
<div><p>&#51;</p>3</div>
|
|
||||||
<div><p>&#52;</p>4</div>
|
|
||||||
<div><p>&#53;</p>5</div>
|
|
||||||
<div><p>&#54;</p>6</div>
|
|
||||||
<div><p>&#55;</p>7</div>
|
|
||||||
<div><p>&#56;</p>8</div>
|
|
||||||
<div><p>&#57;</p>9</div>
|
|
||||||
<div><p>&#58;</p>:</div>
|
|
||||||
<div><p>&#59;</p>;</div>
|
|
||||||
<div><p>&#60;</p><</div>
|
|
||||||
<div><p>&#61;</p>=</div>
|
|
||||||
<div><p>&#62;</p>></div>
|
|
||||||
<div><p>&#63;</p>?</div>
|
|
||||||
<div><p>&#64;</p>@</div>
|
|
||||||
<div><p>&#65;</p>A</div>
|
|
||||||
<div><p>&#66;</p>B</div>
|
|
||||||
<div><p>&#67;</p>C</div>
|
|
||||||
<div><p>&#68;</p>D</div>
|
|
||||||
<div><p>&#69;</p>E</div>
|
|
||||||
<div><p>&#70;</p>F</div>
|
|
||||||
<div><p>&#71;</p>G</div>
|
|
||||||
<div><p>&#72;</p>H</div>
|
|
||||||
<div><p>&#73;</p>I</div>
|
|
||||||
<div><p>&#74;</p>J</div>
|
|
||||||
<div><p>&#75;</p>K</div>
|
|
||||||
<div><p>&#76;</p>L</div>
|
|
||||||
<div><p>&#77;</p>M</div>
|
|
||||||
<div><p>&#78;</p>N</div>
|
|
||||||
<div><p>&#79;</p>O</div>
|
|
||||||
<div><p>&#80;</p>P</div>
|
|
||||||
<div><p>&#81;</p>Q</div>
|
|
||||||
<div><p>&#82;</p>R</div>
|
|
||||||
<div><p>&#83;</p>S</div>
|
|
||||||
<div><p>&#84;</p>T</div>
|
|
||||||
<div><p>&#85;</p>U</div>
|
|
||||||
<div><p>&#86;</p>V</div>
|
|
||||||
<div><p>&#87;</p>W</div>
|
|
||||||
<div><p>&#88;</p>X</div>
|
|
||||||
<div><p>&#89;</p>Y</div>
|
|
||||||
<div><p>&#90;</p>Z</div>
|
|
||||||
<div><p>&#91;</p>[</div>
|
|
||||||
<div><p>&#92;</p>\</div>
|
|
||||||
<div><p>&#93;</p>]</div>
|
|
||||||
<div><p>&#94;</p>^</div>
|
|
||||||
<div><p>&#95;</p>_</div>
|
|
||||||
<div><p>&#96;</p>`</div>
|
|
||||||
<div><p>&#97;</p>a</div>
|
|
||||||
<div><p>&#98;</p>b</div>
|
|
||||||
<div><p>&#99;</p>c</div>
|
|
||||||
<div><p>&#100;</p>d</div>
|
|
||||||
<div><p>&#101;</p>e</div>
|
|
||||||
<div><p>&#102;</p>f</div>
|
|
||||||
<div><p>&#103;</p>g</div>
|
|
||||||
<div><p>&#104;</p>h</div>
|
|
||||||
<div><p>&#105;</p>i</div>
|
|
||||||
<div><p>&#106;</p>j</div>
|
|
||||||
<div><p>&#107;</p>k</div>
|
|
||||||
<div><p>&#108;</p>l</div>
|
|
||||||
<div><p>&#109;</p>m</div>
|
|
||||||
<div><p>&#110;</p>n</div>
|
|
||||||
<div><p>&#111;</p>o</div>
|
|
||||||
<div><p>&#112;</p>p</div>
|
|
||||||
<div><p>&#113;</p>q</div>
|
|
||||||
<div><p>&#114;</p>r</div>
|
|
||||||
<div><p>&#115;</p>s</div>
|
|
||||||
<div><p>&#116;</p>t</div>
|
|
||||||
<div><p>&#117;</p>u</div>
|
|
||||||
<div><p>&#118;</p>v</div>
|
|
||||||
<div><p>&#119;</p>w</div>
|
|
||||||
<div><p>&#120;</p>x</div>
|
|
||||||
<div><p>&#121;</p>y</div>
|
|
||||||
<div><p>&#122;</p>z</div>
|
|
||||||
<div><p>&#123;</p>{</div>
|
|
||||||
<div><p>&#124;</p>|</div>
|
|
||||||
<div><p>&#125;</p>}</div>
|
|
||||||
<div><p>&#126;</p>~</div>
|
|
||||||
<div><p>&#160;</p> </div>
|
|
||||||
<div><p>&#161;</p>¡</div>
|
|
||||||
<div><p>&#162;</p>¢</div>
|
|
||||||
<div><p>&#163;</p>£</div>
|
|
||||||
<div><p>&#164;</p>¤</div>
|
|
||||||
<div><p>&#165;</p>¥</div>
|
|
||||||
<div><p>&#166;</p>¦</div>
|
|
||||||
<div><p>&#167;</p>§</div>
|
|
||||||
<div><p>&#168;</p>¨</div>
|
|
||||||
<div><p>&#169;</p>©</div>
|
|
||||||
<div><p>&#170;</p>ª</div>
|
|
||||||
<div><p>&#171;</p>«</div>
|
|
||||||
<div><p>&#172;</p>¬</div>
|
|
||||||
<div><p>&#173;</p>­</div>
|
|
||||||
<div><p>&#174;</p>®</div>
|
|
||||||
<div><p>&#175;</p>¯</div>
|
|
||||||
<div><p>&#176;</p>°</div>
|
|
||||||
<div><p>&#177;</p>±</div>
|
|
||||||
<div><p>&#178;</p>²</div>
|
|
||||||
<div><p>&#179;</p>³</div>
|
|
||||||
<div><p>&#180;</p>´</div>
|
|
||||||
<div><p>&#181;</p>µ</div>
|
|
||||||
<div><p>&#182;</p>¶</div>
|
|
||||||
<div><p>&#183;</p>·</div>
|
|
||||||
<div><p>&#184;</p>¸</div>
|
|
||||||
<div><p>&#185;</p>¹</div>
|
|
||||||
<div><p>&#186;</p>º</div>
|
|
||||||
<div><p>&#187;</p>»</div>
|
|
||||||
<div><p>&#188;</p>¼</div>
|
|
||||||
<div><p>&#189;</p>½</div>
|
|
||||||
<div><p>&#190;</p>¾</div>
|
|
||||||
<div><p>&#191;</p>¿</div>
|
|
||||||
<div><p>&#192;</p>À</div>
|
|
||||||
<div><p>&#193;</p>Á</div>
|
|
||||||
<div><p>&#194;</p>Â</div>
|
|
||||||
<div><p>&#195;</p>Ã</div>
|
|
||||||
<div><p>&#196;</p>Ä</div>
|
|
||||||
<div><p>&#197;</p>Å</div>
|
|
||||||
<div><p>&#198;</p>Æ</div>
|
|
||||||
<div><p>&#199;</p>Ç</div>
|
|
||||||
<div><p>&#200;</p>È</div>
|
|
||||||
<div><p>&#201;</p>É</div>
|
|
||||||
<div><p>&#202;</p>Ê</div>
|
|
||||||
<div><p>&#203;</p>Ë</div>
|
|
||||||
<div><p>&#204;</p>Ì</div>
|
|
||||||
<div><p>&#205;</p>Í</div>
|
|
||||||
<div><p>&#206;</p>Î</div>
|
|
||||||
<div><p>&#207;</p>Ï</div>
|
|
||||||
<div><p>&#208;</p>Ð</div>
|
|
||||||
<div><p>&#209;</p>Ñ</div>
|
|
||||||
<div><p>&#210;</p>Ò</div>
|
|
||||||
<div><p>&#211;</p>Ó</div>
|
|
||||||
<div><p>&#212;</p>Ô</div>
|
|
||||||
<div><p>&#213;</p>Õ</div>
|
|
||||||
<div><p>&#214;</p>Ö</div>
|
|
||||||
<div><p>&#215;</p>×</div>
|
|
||||||
<div><p>&#216;</p>Ø</div>
|
|
||||||
<div><p>&#217;</p>Ù</div>
|
|
||||||
<div><p>&#218;</p>Ú</div>
|
|
||||||
<div><p>&#219;</p>Û</div>
|
|
||||||
<div><p>&#220;</p>Ü</div>
|
|
||||||
<div><p>&#221;</p>Ý</div>
|
|
||||||
<div><p>&#222;</p>Þ</div>
|
|
||||||
<div><p>&#223;</p>ß</div>
|
|
||||||
<div><p>&#224;</p>à</div>
|
|
||||||
<div><p>&#225;</p>á</div>
|
|
||||||
<div><p>&#226;</p>â</div>
|
|
||||||
<div><p>&#227;</p>ã</div>
|
|
||||||
<div><p>&#228;</p>ä</div>
|
|
||||||
<div><p>&#229;</p>å</div>
|
|
||||||
<div><p>&#230;</p>æ</div>
|
|
||||||
<div><p>&#231;</p>ç</div>
|
|
||||||
<div><p>&#232;</p>è</div>
|
|
||||||
<div><p>&#233;</p>é</div>
|
|
||||||
<div><p>&#234;</p>ê</div>
|
|
||||||
<div><p>&#235;</p>ë</div>
|
|
||||||
<div><p>&#236;</p>ì</div>
|
|
||||||
<div><p>&#237;</p>í</div>
|
|
||||||
<div><p>&#238;</p>î</div>
|
|
||||||
<div><p>&#239;</p>ï</div>
|
|
||||||
<div><p>&#240;</p>ð</div>
|
|
||||||
<div><p>&#241;</p>ñ</div>
|
|
||||||
<div><p>&#242;</p>ò</div>
|
|
||||||
<div><p>&#243;</p>ó</div>
|
|
||||||
<div><p>&#244;</p>ô</div>
|
|
||||||
<div><p>&#245;</p>õ</div>
|
|
||||||
<div><p>&#246;</p>ö</div>
|
|
||||||
<div><p>&#247;</p>÷</div>
|
|
||||||
<div><p>&#248;</p>ø</div>
|
|
||||||
<div><p>&#249;</p>ù</div>
|
|
||||||
<div><p>&#250;</p>ú</div>
|
|
||||||
<div><p>&#251;</p>û</div>
|
|
||||||
<div><p>&#252;</p>ü</div>
|
|
||||||
<div><p>&#253;</p>ý</div>
|
|
||||||
<div><p>&#254;</p>þ</div>
|
|
||||||
<div><p>&#255;</p>ÿ</div>
|
|
||||||
<div><p>&#338;</p>Œ</div>
|
|
||||||
<div><p>&#339;</p>œ</div>
|
|
||||||
<div><p>&#376;</p>Ÿ</div>
|
|
||||||
<div><p>&#710;</p>ˆ</div>
|
|
||||||
<div><p>&#732;</p>˜</div>
|
|
||||||
<div><p>&#8192;</p> </div>
|
|
||||||
<div><p>&#8193;</p> </div>
|
|
||||||
<div><p>&#8194;</p> </div>
|
|
||||||
<div><p>&#8195;</p> </div>
|
|
||||||
<div><p>&#8196;</p> </div>
|
|
||||||
<div><p>&#8197;</p> </div>
|
|
||||||
<div><p>&#8198;</p> </div>
|
|
||||||
<div><p>&#8199;</p> </div>
|
|
||||||
<div><p>&#8200;</p> </div>
|
|
||||||
<div><p>&#8201;</p> </div>
|
|
||||||
<div><p>&#8202;</p> </div>
|
|
||||||
<div><p>&#8208;</p>‐</div>
|
|
||||||
<div><p>&#8209;</p>‑</div>
|
|
||||||
<div><p>&#8210;</p>‒</div>
|
|
||||||
<div><p>&#8211;</p>–</div>
|
|
||||||
<div><p>&#8212;</p>—</div>
|
|
||||||
<div><p>&#8216;</p>‘</div>
|
|
||||||
<div><p>&#8217;</p>’</div>
|
|
||||||
<div><p>&#8218;</p>‚</div>
|
|
||||||
<div><p>&#8220;</p>“</div>
|
|
||||||
<div><p>&#8221;</p>”</div>
|
|
||||||
<div><p>&#8222;</p>„</div>
|
|
||||||
<div><p>&#8226;</p>•</div>
|
|
||||||
<div><p>&#8230;</p>…</div>
|
|
||||||
<div><p>&#8239;</p> </div>
|
|
||||||
<div><p>&#8249;</p>‹</div>
|
|
||||||
<div><p>&#8250;</p>›</div>
|
|
||||||
<div><p>&#8287;</p> </div>
|
|
||||||
<div><p>&#8364;</p>€</div>
|
|
||||||
<div><p>&#8482;</p>™</div>
|
|
||||||
<div><p>&#9724;</p>◼</div>
|
|
||||||
<div><p>&#64257;</p>fi</div>
|
|
||||||
<div><p>&#64258;</p>fl</div>
|
|
||||||
<div><p>&#64259;</p>ffi</div>
|
|
||||||
<div><p>&#64260;</p>ffl</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div id="specs">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="installing">
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid7 firstcol">
|
|
||||||
<h1>Installing Webfonts</h1>
|
|
||||||
|
|
||||||
<p>Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.</p>
|
|
||||||
|
|
||||||
<h2>1. Upload your webfonts</h2>
|
|
||||||
<p>You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.</p>
|
|
||||||
|
|
||||||
<h2>2. Include the webfont stylesheet</h2>
|
|
||||||
<p>A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the <a href="https://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax">Fontspring blog post</a> about it. The code for it is as follows:</p>
|
|
||||||
|
|
||||||
|
|
||||||
<code>
|
|
||||||
@font-face{
|
|
||||||
font-family: 'MyWebFont';
|
|
||||||
src: url('WebFont.eot');
|
|
||||||
src: url('WebFont.eot?#iefix') format('embedded-opentype'),
|
|
||||||
url('WebFont.woff') format('woff'),
|
|
||||||
url('WebFont.ttf') format('truetype'),
|
|
||||||
url('WebFont.svg#webfont') format('svg');
|
|
||||||
}
|
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:</p>
|
|
||||||
<code><link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /></code>
|
|
||||||
|
|
||||||
<h2>3. Modify your own stylesheet</h2>
|
|
||||||
<p>To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:</p>
|
|
||||||
<code>p { font-family: 'WebFont', Arial, sans-serif; }</code>
|
|
||||||
|
|
||||||
<h2>4. Test</h2>
|
|
||||||
<p>Getting webfonts to work cross-browser <em>can</em> be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid5 sidebar">
|
|
||||||
<div class="box">
|
|
||||||
<h2>Troubleshooting<br />Font-Face Problems</h2>
|
|
||||||
<p>Having trouble getting your webfonts to load in your new website? Here are some tips to sort out what might be the problem.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not showing in any browser</h3>
|
|
||||||
|
|
||||||
<p>This sounds like you need to work on the plumbing. You either did not upload the fonts to the correct directory, or you did not link the fonts properly in the CSS. If you've confirmed that all this is correct and you still have a problem, take a look at your .htaccess file and see if requests are getting intercepted.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in iPhone or iPad</h3>
|
|
||||||
|
|
||||||
<p>The most common problem here is that you are serving the fonts from an IIS server. IIS refuses to serve files that have unknown MIME types. If that is the case, you must set the MIME type for SVG to "image/svg+xml" in the server settings. Follow these instructions from Microsoft if you need help.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in Firefox</h3>
|
|
||||||
|
|
||||||
<p>The primary reason for this failure? You are still using a version Firefox older than 3.5. So upgrade already! If that isn't it, then you are very likely serving fonts from a different domain. Firefox requires that all font assets be served from the same domain. Lastly it is possible that you need to add WOFF to your list of MIME types (if you are serving via IIS.)</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in IE</h3>
|
|
||||||
|
|
||||||
<p>Are you looking at Internet Explorer on an actual Windows machine or are you cheating by using a service like Adobe BrowserLab? Many of these screenshot services do not render @font-face for IE. Best to test it on a real machine.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in IE9</h3>
|
|
||||||
|
|
||||||
<p>IE9, like Firefox, requires that fonts be served from the same domain as the website. Make sure that is the case.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<p>©2010-2017 Font Squirrel. All rights reserved.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,621 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function($){$.fn.easyTabs=function(option){var param=jQuery.extend({fadeSpeed:"fast",defaultContent:1,activeClass:'active'},option);$(this).each(function(){var thisId="#"+this.id;if(param.defaultContent==''){param.defaultContent=1;}
|
|
||||||
if(typeof param.defaultContent=="number")
|
|
||||||
{var defaultTab=$(thisId+" .tabs li:eq("+(param.defaultContent-1)+") a").attr('href').substr(1);}else{var defaultTab=param.defaultContent;}
|
|
||||||
$(thisId+" .tabs li a").each(function(){var tabToHide=$(this).attr('href').substr(1);$("#"+tabToHide).addClass('easytabs-tab-content');});hideAll();changeContent(defaultTab);function hideAll(){$(thisId+" .easytabs-tab-content").hide();}
|
|
||||||
function changeContent(tabId){hideAll();$(thisId+" .tabs li").removeClass(param.activeClass);$(thisId+" .tabs li a[href=#"+tabId+"]").closest('li').addClass(param.activeClass);if(param.fadeSpeed!="none")
|
|
||||||
{$(thisId+" #"+tabId).fadeIn(param.fadeSpeed);}else{$(thisId+" #"+tabId).show();}}
|
|
||||||
$(thisId+" .tabs li").click(function(){var tabId=$(this).find('a').attr('href').substr(1);changeContent(tabId);return false;});});}})(jQuery);
|
|
||||||
</script>
|
|
||||||
<link rel="stylesheet" href="specimen_files/specimen_stylesheet.css" type="text/css" charset="utf-8" />
|
|
||||||
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" />
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body{
|
|
||||||
font-family: 'lack_lineitalic';
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<title>Lack Line Italic Specimen</title>
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#container').easyTabs({defaultContent:1});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<div id="header">
|
|
||||||
Lack Line Italic </div>
|
|
||||||
<ul class="tabs">
|
|
||||||
<li><a href="#specimen">Specimen</a></li>
|
|
||||||
<li><a href="#layout">Sample Layout</a></li>
|
|
||||||
<li><a href="#glyphs">Glyphs & Languages</a></li>
|
|
||||||
<li><a href="#installing">Installing Webfonts</a></li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div id="main_content">
|
|
||||||
|
|
||||||
|
|
||||||
<div id="specimen">
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<div class="huge">AaBb</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="glyph_range">A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;</div>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<table class="sample_table">
|
|
||||||
<tr><td>10</td><td class="size10">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>11</td><td class="size11">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>12</td><td class="size12">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>13</td><td class="size13">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>14</td><td class="size14">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>16</td><td class="size16">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>18</td><td class="size18">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>20</td><td class="size20">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>24</td><td class="size24">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>30</td><td class="size30">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>36</td><td class="size36">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>48</td><td class="size48">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>60</td><td class="size60">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>72</td><td class="size72">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>90</td><td class="size90">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section" id="bodycomparison">
|
|
||||||
|
|
||||||
|
|
||||||
<div id="xheight">
|
|
||||||
<div class="fontbody">◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼body</div><div class="arialbody">body</div><div class="verdanabody">body</div><div class="georgiabody">body</div></div>
|
|
||||||
<div class="fontbody" style="z-index:1">
|
|
||||||
body<span>Lack Line Italic</span>
|
|
||||||
</div>
|
|
||||||
<div class="arialbody" style="z-index:1">
|
|
||||||
body<span>Arial</span>
|
|
||||||
</div>
|
|
||||||
<div class="verdanabody" style="z-index:1">
|
|
||||||
body<span>Verdana</span>
|
|
||||||
</div>
|
|
||||||
<div class="georgiabody" style="z-index:1">
|
|
||||||
body<span>Georgia</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section psample psample_row1" id="">
|
|
||||||
|
|
||||||
<div class="grid2 firstcol">
|
|
||||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="section psample psample_row2" id="">
|
|
||||||
<div class="grid3 firstcol">
|
|
||||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid5">
|
|
||||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row3" id="">
|
|
||||||
<div class="grid5 firstcol">
|
|
||||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid7">
|
|
||||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row4" id="">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section psample psample_row1 fullreverse">
|
|
||||||
<div class="grid2 firstcol">
|
|
||||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row2 fullreverse">
|
|
||||||
<div class="grid3 firstcol">
|
|
||||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid5">
|
|
||||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample fullreverse psample_row3" id="">
|
|
||||||
<div class="grid5 firstcol">
|
|
||||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid7">
|
|
||||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample fullreverse psample_row4" id="" style="border-bottom: 20px #000 solid;">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="layout">
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<h1>Lorem Ipsum Dolor</h1>
|
|
||||||
<h2>Etiam porta sem malesuada magna mollis euismod</h2>
|
|
||||||
|
|
||||||
<p class="byline">By <a href="#link">Aenean Lacinia</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid8 firstcol">
|
|
||||||
<p class="large">Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Pellentesque ornare sem</h3>
|
|
||||||
|
|
||||||
<p>Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit. </p>
|
|
||||||
|
|
||||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p>
|
|
||||||
|
|
||||||
<p>Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. </p>
|
|
||||||
|
|
||||||
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla. </p>
|
|
||||||
|
|
||||||
<h3>Cras mattis consectetur</h3>
|
|
||||||
|
|
||||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum. </p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid4 sidebar">
|
|
||||||
|
|
||||||
<div class="box reverse">
|
|
||||||
<p class="last">Nullam quis risus eget urna mollis ornare vel eu leo. Donec ullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="caption">Maecenas sed diam eget risus varius.</p>
|
|
||||||
|
|
||||||
<p>Vestibulum id ligula porta felis euismod semper. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare vel eu leo. </p>
|
|
||||||
|
|
||||||
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec ullamcorper nulla non metus auctor fringilla. Maecenas faucibus mollis interdum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="glyphs">
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
|
|
||||||
<h1>Language Support</h1>
|
|
||||||
<p>The subset of Lack Line Italic in this kit supports the following languages:<br />
|
|
||||||
|
|
||||||
Albanian, Basque, Breton, Chamorro, Danish, Dutch, English, Faroese, Finnish, French, Frisian, Galician, German, Icelandic, Italian, Malagasy, Norwegian, Portuguese, Spanish, Alsatian, Aragonese, Arapaho, Arrernte, Asturian, Aymara, Bislama, Cebuano, Corsican, Fijian, French_creole, Genoese, Gilbertese, Greenlandic, Haitian_creole, Hiligaynon, Hmong, Hopi, Ibanag, Iloko_ilokano, Indonesian, Interglossa_glosa, Interlingua, Irish_gaelic, Jerriais, Lojban, Lombard, Luxembourgeois, Manx, Mohawk, Norfolk_pitcairnese, Occitan, Oromo, Pangasinan, Papiamento, Piedmontese, Potawatomi, Rhaeto-romance, Romansh, Rotokas, Sami_lule, Samoan, Sardinian, Scots_gaelic, Seychelles_creole, Shona, Sicilian, Somali, Southern_ndebele, Swahili, Swati_swazi, Tagalog_filipino_pilipino, Tetum, Tok_pisin, Uyghur_latinized, Volapuk, Walloon, Warlpiri, Xhosa, Yapese, Zulu, Latinbasic, Ubasic, Demo </p>
|
|
||||||
<h1>Glyph Chart</h1>
|
|
||||||
<p>The subset of Lack Line Italic in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.</p>
|
|
||||||
<div id="glyph_chart">
|
|
||||||
|
|
||||||
<div><p>&#32;</p> </div>
|
|
||||||
<div><p>&#33;</p>!</div>
|
|
||||||
<div><p>&#34;</p>"</div>
|
|
||||||
<div><p>&#35;</p>#</div>
|
|
||||||
<div><p>&#36;</p>$</div>
|
|
||||||
<div><p>&#37;</p>%</div>
|
|
||||||
<div><p>&#38;</p>&</div>
|
|
||||||
<div><p>&#39;</p>'</div>
|
|
||||||
<div><p>&#40;</p>(</div>
|
|
||||||
<div><p>&#41;</p>)</div>
|
|
||||||
<div><p>&#42;</p>*</div>
|
|
||||||
<div><p>&#43;</p>+</div>
|
|
||||||
<div><p>&#44;</p>,</div>
|
|
||||||
<div><p>&#45;</p>-</div>
|
|
||||||
<div><p>&#46;</p>.</div>
|
|
||||||
<div><p>&#47;</p>/</div>
|
|
||||||
<div><p>&#48;</p>0</div>
|
|
||||||
<div><p>&#49;</p>1</div>
|
|
||||||
<div><p>&#50;</p>2</div>
|
|
||||||
<div><p>&#51;</p>3</div>
|
|
||||||
<div><p>&#52;</p>4</div>
|
|
||||||
<div><p>&#53;</p>5</div>
|
|
||||||
<div><p>&#54;</p>6</div>
|
|
||||||
<div><p>&#55;</p>7</div>
|
|
||||||
<div><p>&#56;</p>8</div>
|
|
||||||
<div><p>&#57;</p>9</div>
|
|
||||||
<div><p>&#58;</p>:</div>
|
|
||||||
<div><p>&#59;</p>;</div>
|
|
||||||
<div><p>&#60;</p><</div>
|
|
||||||
<div><p>&#61;</p>=</div>
|
|
||||||
<div><p>&#62;</p>></div>
|
|
||||||
<div><p>&#63;</p>?</div>
|
|
||||||
<div><p>&#64;</p>@</div>
|
|
||||||
<div><p>&#65;</p>A</div>
|
|
||||||
<div><p>&#66;</p>B</div>
|
|
||||||
<div><p>&#67;</p>C</div>
|
|
||||||
<div><p>&#68;</p>D</div>
|
|
||||||
<div><p>&#69;</p>E</div>
|
|
||||||
<div><p>&#70;</p>F</div>
|
|
||||||
<div><p>&#71;</p>G</div>
|
|
||||||
<div><p>&#72;</p>H</div>
|
|
||||||
<div><p>&#73;</p>I</div>
|
|
||||||
<div><p>&#74;</p>J</div>
|
|
||||||
<div><p>&#75;</p>K</div>
|
|
||||||
<div><p>&#76;</p>L</div>
|
|
||||||
<div><p>&#77;</p>M</div>
|
|
||||||
<div><p>&#78;</p>N</div>
|
|
||||||
<div><p>&#79;</p>O</div>
|
|
||||||
<div><p>&#80;</p>P</div>
|
|
||||||
<div><p>&#81;</p>Q</div>
|
|
||||||
<div><p>&#82;</p>R</div>
|
|
||||||
<div><p>&#83;</p>S</div>
|
|
||||||
<div><p>&#84;</p>T</div>
|
|
||||||
<div><p>&#85;</p>U</div>
|
|
||||||
<div><p>&#86;</p>V</div>
|
|
||||||
<div><p>&#87;</p>W</div>
|
|
||||||
<div><p>&#88;</p>X</div>
|
|
||||||
<div><p>&#89;</p>Y</div>
|
|
||||||
<div><p>&#90;</p>Z</div>
|
|
||||||
<div><p>&#91;</p>[</div>
|
|
||||||
<div><p>&#92;</p>\</div>
|
|
||||||
<div><p>&#93;</p>]</div>
|
|
||||||
<div><p>&#94;</p>^</div>
|
|
||||||
<div><p>&#95;</p>_</div>
|
|
||||||
<div><p>&#96;</p>`</div>
|
|
||||||
<div><p>&#97;</p>a</div>
|
|
||||||
<div><p>&#98;</p>b</div>
|
|
||||||
<div><p>&#99;</p>c</div>
|
|
||||||
<div><p>&#100;</p>d</div>
|
|
||||||
<div><p>&#101;</p>e</div>
|
|
||||||
<div><p>&#102;</p>f</div>
|
|
||||||
<div><p>&#103;</p>g</div>
|
|
||||||
<div><p>&#104;</p>h</div>
|
|
||||||
<div><p>&#105;</p>i</div>
|
|
||||||
<div><p>&#106;</p>j</div>
|
|
||||||
<div><p>&#107;</p>k</div>
|
|
||||||
<div><p>&#108;</p>l</div>
|
|
||||||
<div><p>&#109;</p>m</div>
|
|
||||||
<div><p>&#110;</p>n</div>
|
|
||||||
<div><p>&#111;</p>o</div>
|
|
||||||
<div><p>&#112;</p>p</div>
|
|
||||||
<div><p>&#113;</p>q</div>
|
|
||||||
<div><p>&#114;</p>r</div>
|
|
||||||
<div><p>&#115;</p>s</div>
|
|
||||||
<div><p>&#116;</p>t</div>
|
|
||||||
<div><p>&#117;</p>u</div>
|
|
||||||
<div><p>&#118;</p>v</div>
|
|
||||||
<div><p>&#119;</p>w</div>
|
|
||||||
<div><p>&#120;</p>x</div>
|
|
||||||
<div><p>&#121;</p>y</div>
|
|
||||||
<div><p>&#122;</p>z</div>
|
|
||||||
<div><p>&#123;</p>{</div>
|
|
||||||
<div><p>&#124;</p>|</div>
|
|
||||||
<div><p>&#125;</p>}</div>
|
|
||||||
<div><p>&#126;</p>~</div>
|
|
||||||
<div><p>&#160;</p> </div>
|
|
||||||
<div><p>&#161;</p>¡</div>
|
|
||||||
<div><p>&#162;</p>¢</div>
|
|
||||||
<div><p>&#163;</p>£</div>
|
|
||||||
<div><p>&#164;</p>¤</div>
|
|
||||||
<div><p>&#165;</p>¥</div>
|
|
||||||
<div><p>&#166;</p>¦</div>
|
|
||||||
<div><p>&#167;</p>§</div>
|
|
||||||
<div><p>&#168;</p>¨</div>
|
|
||||||
<div><p>&#169;</p>©</div>
|
|
||||||
<div><p>&#170;</p>ª</div>
|
|
||||||
<div><p>&#171;</p>«</div>
|
|
||||||
<div><p>&#172;</p>¬</div>
|
|
||||||
<div><p>&#173;</p>­</div>
|
|
||||||
<div><p>&#174;</p>®</div>
|
|
||||||
<div><p>&#175;</p>¯</div>
|
|
||||||
<div><p>&#176;</p>°</div>
|
|
||||||
<div><p>&#177;</p>±</div>
|
|
||||||
<div><p>&#178;</p>²</div>
|
|
||||||
<div><p>&#179;</p>³</div>
|
|
||||||
<div><p>&#180;</p>´</div>
|
|
||||||
<div><p>&#181;</p>µ</div>
|
|
||||||
<div><p>&#182;</p>¶</div>
|
|
||||||
<div><p>&#183;</p>·</div>
|
|
||||||
<div><p>&#184;</p>¸</div>
|
|
||||||
<div><p>&#185;</p>¹</div>
|
|
||||||
<div><p>&#186;</p>º</div>
|
|
||||||
<div><p>&#187;</p>»</div>
|
|
||||||
<div><p>&#188;</p>¼</div>
|
|
||||||
<div><p>&#189;</p>½</div>
|
|
||||||
<div><p>&#190;</p>¾</div>
|
|
||||||
<div><p>&#191;</p>¿</div>
|
|
||||||
<div><p>&#192;</p>À</div>
|
|
||||||
<div><p>&#193;</p>Á</div>
|
|
||||||
<div><p>&#194;</p>Â</div>
|
|
||||||
<div><p>&#195;</p>Ã</div>
|
|
||||||
<div><p>&#196;</p>Ä</div>
|
|
||||||
<div><p>&#197;</p>Å</div>
|
|
||||||
<div><p>&#198;</p>Æ</div>
|
|
||||||
<div><p>&#199;</p>Ç</div>
|
|
||||||
<div><p>&#200;</p>È</div>
|
|
||||||
<div><p>&#201;</p>É</div>
|
|
||||||
<div><p>&#202;</p>Ê</div>
|
|
||||||
<div><p>&#203;</p>Ë</div>
|
|
||||||
<div><p>&#204;</p>Ì</div>
|
|
||||||
<div><p>&#205;</p>Í</div>
|
|
||||||
<div><p>&#206;</p>Î</div>
|
|
||||||
<div><p>&#207;</p>Ï</div>
|
|
||||||
<div><p>&#208;</p>Ð</div>
|
|
||||||
<div><p>&#209;</p>Ñ</div>
|
|
||||||
<div><p>&#210;</p>Ò</div>
|
|
||||||
<div><p>&#211;</p>Ó</div>
|
|
||||||
<div><p>&#212;</p>Ô</div>
|
|
||||||
<div><p>&#213;</p>Õ</div>
|
|
||||||
<div><p>&#214;</p>Ö</div>
|
|
||||||
<div><p>&#215;</p>×</div>
|
|
||||||
<div><p>&#216;</p>Ø</div>
|
|
||||||
<div><p>&#217;</p>Ù</div>
|
|
||||||
<div><p>&#218;</p>Ú</div>
|
|
||||||
<div><p>&#219;</p>Û</div>
|
|
||||||
<div><p>&#220;</p>Ü</div>
|
|
||||||
<div><p>&#221;</p>Ý</div>
|
|
||||||
<div><p>&#222;</p>Þ</div>
|
|
||||||
<div><p>&#223;</p>ß</div>
|
|
||||||
<div><p>&#224;</p>à</div>
|
|
||||||
<div><p>&#225;</p>á</div>
|
|
||||||
<div><p>&#226;</p>â</div>
|
|
||||||
<div><p>&#227;</p>ã</div>
|
|
||||||
<div><p>&#228;</p>ä</div>
|
|
||||||
<div><p>&#229;</p>å</div>
|
|
||||||
<div><p>&#230;</p>æ</div>
|
|
||||||
<div><p>&#231;</p>ç</div>
|
|
||||||
<div><p>&#232;</p>è</div>
|
|
||||||
<div><p>&#233;</p>é</div>
|
|
||||||
<div><p>&#234;</p>ê</div>
|
|
||||||
<div><p>&#235;</p>ë</div>
|
|
||||||
<div><p>&#236;</p>ì</div>
|
|
||||||
<div><p>&#237;</p>í</div>
|
|
||||||
<div><p>&#238;</p>î</div>
|
|
||||||
<div><p>&#239;</p>ï</div>
|
|
||||||
<div><p>&#240;</p>ð</div>
|
|
||||||
<div><p>&#241;</p>ñ</div>
|
|
||||||
<div><p>&#242;</p>ò</div>
|
|
||||||
<div><p>&#243;</p>ó</div>
|
|
||||||
<div><p>&#244;</p>ô</div>
|
|
||||||
<div><p>&#245;</p>õ</div>
|
|
||||||
<div><p>&#246;</p>ö</div>
|
|
||||||
<div><p>&#247;</p>÷</div>
|
|
||||||
<div><p>&#248;</p>ø</div>
|
|
||||||
<div><p>&#249;</p>ù</div>
|
|
||||||
<div><p>&#250;</p>ú</div>
|
|
||||||
<div><p>&#251;</p>û</div>
|
|
||||||
<div><p>&#252;</p>ü</div>
|
|
||||||
<div><p>&#253;</p>ý</div>
|
|
||||||
<div><p>&#254;</p>þ</div>
|
|
||||||
<div><p>&#255;</p>ÿ</div>
|
|
||||||
<div><p>&#338;</p>Œ</div>
|
|
||||||
<div><p>&#339;</p>œ</div>
|
|
||||||
<div><p>&#376;</p>Ÿ</div>
|
|
||||||
<div><p>&#710;</p>ˆ</div>
|
|
||||||
<div><p>&#732;</p>˜</div>
|
|
||||||
<div><p>&#8192;</p> </div>
|
|
||||||
<div><p>&#8193;</p> </div>
|
|
||||||
<div><p>&#8194;</p> </div>
|
|
||||||
<div><p>&#8195;</p> </div>
|
|
||||||
<div><p>&#8196;</p> </div>
|
|
||||||
<div><p>&#8197;</p> </div>
|
|
||||||
<div><p>&#8198;</p> </div>
|
|
||||||
<div><p>&#8199;</p> </div>
|
|
||||||
<div><p>&#8200;</p> </div>
|
|
||||||
<div><p>&#8201;</p> </div>
|
|
||||||
<div><p>&#8202;</p> </div>
|
|
||||||
<div><p>&#8208;</p>‐</div>
|
|
||||||
<div><p>&#8209;</p>‑</div>
|
|
||||||
<div><p>&#8210;</p>‒</div>
|
|
||||||
<div><p>&#8211;</p>–</div>
|
|
||||||
<div><p>&#8212;</p>—</div>
|
|
||||||
<div><p>&#8216;</p>‘</div>
|
|
||||||
<div><p>&#8217;</p>’</div>
|
|
||||||
<div><p>&#8218;</p>‚</div>
|
|
||||||
<div><p>&#8220;</p>“</div>
|
|
||||||
<div><p>&#8221;</p>”</div>
|
|
||||||
<div><p>&#8222;</p>„</div>
|
|
||||||
<div><p>&#8226;</p>•</div>
|
|
||||||
<div><p>&#8230;</p>…</div>
|
|
||||||
<div><p>&#8239;</p> </div>
|
|
||||||
<div><p>&#8249;</p>‹</div>
|
|
||||||
<div><p>&#8250;</p>›</div>
|
|
||||||
<div><p>&#8287;</p> </div>
|
|
||||||
<div><p>&#8364;</p>€</div>
|
|
||||||
<div><p>&#8482;</p>™</div>
|
|
||||||
<div><p>&#9724;</p>◼</div>
|
|
||||||
<div><p>&#64257;</p>fi</div>
|
|
||||||
<div><p>&#64258;</p>fl</div>
|
|
||||||
<div><p>&#64259;</p>ffi</div>
|
|
||||||
<div><p>&#64260;</p>ffl</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div id="specs">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="installing">
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid7 firstcol">
|
|
||||||
<h1>Installing Webfonts</h1>
|
|
||||||
|
|
||||||
<p>Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.</p>
|
|
||||||
|
|
||||||
<h2>1. Upload your webfonts</h2>
|
|
||||||
<p>You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.</p>
|
|
||||||
|
|
||||||
<h2>2. Include the webfont stylesheet</h2>
|
|
||||||
<p>A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the <a href="https://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax">Fontspring blog post</a> about it. The code for it is as follows:</p>
|
|
||||||
|
|
||||||
|
|
||||||
<code>
|
|
||||||
@font-face{
|
|
||||||
font-family: 'MyWebFont';
|
|
||||||
src: url('WebFont.eot');
|
|
||||||
src: url('WebFont.eot?#iefix') format('embedded-opentype'),
|
|
||||||
url('WebFont.woff') format('woff'),
|
|
||||||
url('WebFont.ttf') format('truetype'),
|
|
||||||
url('WebFont.svg#webfont') format('svg');
|
|
||||||
}
|
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:</p>
|
|
||||||
<code><link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /></code>
|
|
||||||
|
|
||||||
<h2>3. Modify your own stylesheet</h2>
|
|
||||||
<p>To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:</p>
|
|
||||||
<code>p { font-family: 'WebFont', Arial, sans-serif; }</code>
|
|
||||||
|
|
||||||
<h2>4. Test</h2>
|
|
||||||
<p>Getting webfonts to work cross-browser <em>can</em> be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid5 sidebar">
|
|
||||||
<div class="box">
|
|
||||||
<h2>Troubleshooting<br />Font-Face Problems</h2>
|
|
||||||
<p>Having trouble getting your webfonts to load in your new website? Here are some tips to sort out what might be the problem.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not showing in any browser</h3>
|
|
||||||
|
|
||||||
<p>This sounds like you need to work on the plumbing. You either did not upload the fonts to the correct directory, or you did not link the fonts properly in the CSS. If you've confirmed that all this is correct and you still have a problem, take a look at your .htaccess file and see if requests are getting intercepted.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in iPhone or iPad</h3>
|
|
||||||
|
|
||||||
<p>The most common problem here is that you are serving the fonts from an IIS server. IIS refuses to serve files that have unknown MIME types. If that is the case, you must set the MIME type for SVG to "image/svg+xml" in the server settings. Follow these instructions from Microsoft if you need help.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in Firefox</h3>
|
|
||||||
|
|
||||||
<p>The primary reason for this failure? You are still using a version Firefox older than 3.5. So upgrade already! If that isn't it, then you are very likely serving fonts from a different domain. Firefox requires that all font assets be served from the same domain. Lastly it is possible that you need to add WOFF to your list of MIME types (if you are serving via IIS.)</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in IE</h3>
|
|
||||||
|
|
||||||
<p>Are you looking at Internet Explorer on an actual Windows machine or are you cheating by using a service like Adobe BrowserLab? Many of these screenshot services do not render @font-face for IE. Best to test it on a real machine.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in IE9</h3>
|
|
||||||
|
|
||||||
<p>IE9, like Firefox, requires that fonts be served from the same domain as the website. Make sure that is the case.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<p>©2010-2017 Font Squirrel. All rights reserved.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,621 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function($){$.fn.easyTabs=function(option){var param=jQuery.extend({fadeSpeed:"fast",defaultContent:1,activeClass:'active'},option);$(this).each(function(){var thisId="#"+this.id;if(param.defaultContent==''){param.defaultContent=1;}
|
|
||||||
if(typeof param.defaultContent=="number")
|
|
||||||
{var defaultTab=$(thisId+" .tabs li:eq("+(param.defaultContent-1)+") a").attr('href').substr(1);}else{var defaultTab=param.defaultContent;}
|
|
||||||
$(thisId+" .tabs li a").each(function(){var tabToHide=$(this).attr('href').substr(1);$("#"+tabToHide).addClass('easytabs-tab-content');});hideAll();changeContent(defaultTab);function hideAll(){$(thisId+" .easytabs-tab-content").hide();}
|
|
||||||
function changeContent(tabId){hideAll();$(thisId+" .tabs li").removeClass(param.activeClass);$(thisId+" .tabs li a[href=#"+tabId+"]").closest('li').addClass(param.activeClass);if(param.fadeSpeed!="none")
|
|
||||||
{$(thisId+" #"+tabId).fadeIn(param.fadeSpeed);}else{$(thisId+" #"+tabId).show();}}
|
|
||||||
$(thisId+" .tabs li").click(function(){var tabId=$(this).find('a').attr('href').substr(1);changeContent(tabId);return false;});});}})(jQuery);
|
|
||||||
</script>
|
|
||||||
<link rel="stylesheet" href="specimen_files/specimen_stylesheet.css" type="text/css" charset="utf-8" />
|
|
||||||
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" />
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body{
|
|
||||||
font-family: 'lack_lineregular';
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<title>Lack Line Regular Specimen</title>
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#container').easyTabs({defaultContent:1});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<div id="header">
|
|
||||||
Lack Line Regular </div>
|
|
||||||
<ul class="tabs">
|
|
||||||
<li><a href="#specimen">Specimen</a></li>
|
|
||||||
<li><a href="#layout">Sample Layout</a></li>
|
|
||||||
<li><a href="#glyphs">Glyphs & Languages</a></li>
|
|
||||||
<li><a href="#installing">Installing Webfonts</a></li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div id="main_content">
|
|
||||||
|
|
||||||
|
|
||||||
<div id="specimen">
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<div class="huge">AaBb</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="glyph_range">A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;</div>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<table class="sample_table">
|
|
||||||
<tr><td>10</td><td class="size10">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>11</td><td class="size11">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>12</td><td class="size12">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>13</td><td class="size13">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>14</td><td class="size14">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>16</td><td class="size16">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>18</td><td class="size18">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>20</td><td class="size20">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>24</td><td class="size24">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>30</td><td class="size30">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>36</td><td class="size36">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>48</td><td class="size48">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>60</td><td class="size60">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>72</td><td class="size72">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>90</td><td class="size90">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section" id="bodycomparison">
|
|
||||||
|
|
||||||
|
|
||||||
<div id="xheight">
|
|
||||||
<div class="fontbody">◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼body</div><div class="arialbody">body</div><div class="verdanabody">body</div><div class="georgiabody">body</div></div>
|
|
||||||
<div class="fontbody" style="z-index:1">
|
|
||||||
body<span>Lack Line Regular</span>
|
|
||||||
</div>
|
|
||||||
<div class="arialbody" style="z-index:1">
|
|
||||||
body<span>Arial</span>
|
|
||||||
</div>
|
|
||||||
<div class="verdanabody" style="z-index:1">
|
|
||||||
body<span>Verdana</span>
|
|
||||||
</div>
|
|
||||||
<div class="georgiabody" style="z-index:1">
|
|
||||||
body<span>Georgia</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section psample psample_row1" id="">
|
|
||||||
|
|
||||||
<div class="grid2 firstcol">
|
|
||||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="section psample psample_row2" id="">
|
|
||||||
<div class="grid3 firstcol">
|
|
||||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid5">
|
|
||||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row3" id="">
|
|
||||||
<div class="grid5 firstcol">
|
|
||||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid7">
|
|
||||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row4" id="">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section psample psample_row1 fullreverse">
|
|
||||||
<div class="grid2 firstcol">
|
|
||||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row2 fullreverse">
|
|
||||||
<div class="grid3 firstcol">
|
|
||||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid5">
|
|
||||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample fullreverse psample_row3" id="">
|
|
||||||
<div class="grid5 firstcol">
|
|
||||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid7">
|
|
||||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample fullreverse psample_row4" id="" style="border-bottom: 20px #000 solid;">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="layout">
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<h1>Lorem Ipsum Dolor</h1>
|
|
||||||
<h2>Etiam porta sem malesuada magna mollis euismod</h2>
|
|
||||||
|
|
||||||
<p class="byline">By <a href="#link">Aenean Lacinia</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid8 firstcol">
|
|
||||||
<p class="large">Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Pellentesque ornare sem</h3>
|
|
||||||
|
|
||||||
<p>Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit. </p>
|
|
||||||
|
|
||||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p>
|
|
||||||
|
|
||||||
<p>Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. </p>
|
|
||||||
|
|
||||||
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla. </p>
|
|
||||||
|
|
||||||
<h3>Cras mattis consectetur</h3>
|
|
||||||
|
|
||||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum. </p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid4 sidebar">
|
|
||||||
|
|
||||||
<div class="box reverse">
|
|
||||||
<p class="last">Nullam quis risus eget urna mollis ornare vel eu leo. Donec ullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="caption">Maecenas sed diam eget risus varius.</p>
|
|
||||||
|
|
||||||
<p>Vestibulum id ligula porta felis euismod semper. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare vel eu leo. </p>
|
|
||||||
|
|
||||||
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec ullamcorper nulla non metus auctor fringilla. Maecenas faucibus mollis interdum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="glyphs">
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
|
|
||||||
<h1>Language Support</h1>
|
|
||||||
<p>The subset of Lack Line Regular in this kit supports the following languages:<br />
|
|
||||||
|
|
||||||
Albanian, Basque, Breton, Chamorro, Danish, Dutch, English, Faroese, Finnish, French, Frisian, Galician, German, Icelandic, Italian, Malagasy, Norwegian, Portuguese, Spanish, Alsatian, Aragonese, Arapaho, Arrernte, Asturian, Aymara, Bislama, Cebuano, Corsican, Fijian, French_creole, Genoese, Gilbertese, Greenlandic, Haitian_creole, Hiligaynon, Hmong, Hopi, Ibanag, Iloko_ilokano, Indonesian, Interglossa_glosa, Interlingua, Irish_gaelic, Jerriais, Lojban, Lombard, Luxembourgeois, Manx, Mohawk, Norfolk_pitcairnese, Occitan, Oromo, Pangasinan, Papiamento, Piedmontese, Potawatomi, Rhaeto-romance, Romansh, Rotokas, Sami_lule, Samoan, Sardinian, Scots_gaelic, Seychelles_creole, Shona, Sicilian, Somali, Southern_ndebele, Swahili, Swati_swazi, Tagalog_filipino_pilipino, Tetum, Tok_pisin, Uyghur_latinized, Volapuk, Walloon, Warlpiri, Xhosa, Yapese, Zulu, Latinbasic, Ubasic, Demo </p>
|
|
||||||
<h1>Glyph Chart</h1>
|
|
||||||
<p>The subset of Lack Line Regular in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.</p>
|
|
||||||
<div id="glyph_chart">
|
|
||||||
|
|
||||||
<div><p>&#32;</p> </div>
|
|
||||||
<div><p>&#33;</p>!</div>
|
|
||||||
<div><p>&#34;</p>"</div>
|
|
||||||
<div><p>&#35;</p>#</div>
|
|
||||||
<div><p>&#36;</p>$</div>
|
|
||||||
<div><p>&#37;</p>%</div>
|
|
||||||
<div><p>&#38;</p>&</div>
|
|
||||||
<div><p>&#39;</p>'</div>
|
|
||||||
<div><p>&#40;</p>(</div>
|
|
||||||
<div><p>&#41;</p>)</div>
|
|
||||||
<div><p>&#42;</p>*</div>
|
|
||||||
<div><p>&#43;</p>+</div>
|
|
||||||
<div><p>&#44;</p>,</div>
|
|
||||||
<div><p>&#45;</p>-</div>
|
|
||||||
<div><p>&#46;</p>.</div>
|
|
||||||
<div><p>&#47;</p>/</div>
|
|
||||||
<div><p>&#48;</p>0</div>
|
|
||||||
<div><p>&#49;</p>1</div>
|
|
||||||
<div><p>&#50;</p>2</div>
|
|
||||||
<div><p>&#51;</p>3</div>
|
|
||||||
<div><p>&#52;</p>4</div>
|
|
||||||
<div><p>&#53;</p>5</div>
|
|
||||||
<div><p>&#54;</p>6</div>
|
|
||||||
<div><p>&#55;</p>7</div>
|
|
||||||
<div><p>&#56;</p>8</div>
|
|
||||||
<div><p>&#57;</p>9</div>
|
|
||||||
<div><p>&#58;</p>:</div>
|
|
||||||
<div><p>&#59;</p>;</div>
|
|
||||||
<div><p>&#60;</p><</div>
|
|
||||||
<div><p>&#61;</p>=</div>
|
|
||||||
<div><p>&#62;</p>></div>
|
|
||||||
<div><p>&#63;</p>?</div>
|
|
||||||
<div><p>&#64;</p>@</div>
|
|
||||||
<div><p>&#65;</p>A</div>
|
|
||||||
<div><p>&#66;</p>B</div>
|
|
||||||
<div><p>&#67;</p>C</div>
|
|
||||||
<div><p>&#68;</p>D</div>
|
|
||||||
<div><p>&#69;</p>E</div>
|
|
||||||
<div><p>&#70;</p>F</div>
|
|
||||||
<div><p>&#71;</p>G</div>
|
|
||||||
<div><p>&#72;</p>H</div>
|
|
||||||
<div><p>&#73;</p>I</div>
|
|
||||||
<div><p>&#74;</p>J</div>
|
|
||||||
<div><p>&#75;</p>K</div>
|
|
||||||
<div><p>&#76;</p>L</div>
|
|
||||||
<div><p>&#77;</p>M</div>
|
|
||||||
<div><p>&#78;</p>N</div>
|
|
||||||
<div><p>&#79;</p>O</div>
|
|
||||||
<div><p>&#80;</p>P</div>
|
|
||||||
<div><p>&#81;</p>Q</div>
|
|
||||||
<div><p>&#82;</p>R</div>
|
|
||||||
<div><p>&#83;</p>S</div>
|
|
||||||
<div><p>&#84;</p>T</div>
|
|
||||||
<div><p>&#85;</p>U</div>
|
|
||||||
<div><p>&#86;</p>V</div>
|
|
||||||
<div><p>&#87;</p>W</div>
|
|
||||||
<div><p>&#88;</p>X</div>
|
|
||||||
<div><p>&#89;</p>Y</div>
|
|
||||||
<div><p>&#90;</p>Z</div>
|
|
||||||
<div><p>&#91;</p>[</div>
|
|
||||||
<div><p>&#92;</p>\</div>
|
|
||||||
<div><p>&#93;</p>]</div>
|
|
||||||
<div><p>&#94;</p>^</div>
|
|
||||||
<div><p>&#95;</p>_</div>
|
|
||||||
<div><p>&#96;</p>`</div>
|
|
||||||
<div><p>&#97;</p>a</div>
|
|
||||||
<div><p>&#98;</p>b</div>
|
|
||||||
<div><p>&#99;</p>c</div>
|
|
||||||
<div><p>&#100;</p>d</div>
|
|
||||||
<div><p>&#101;</p>e</div>
|
|
||||||
<div><p>&#102;</p>f</div>
|
|
||||||
<div><p>&#103;</p>g</div>
|
|
||||||
<div><p>&#104;</p>h</div>
|
|
||||||
<div><p>&#105;</p>i</div>
|
|
||||||
<div><p>&#106;</p>j</div>
|
|
||||||
<div><p>&#107;</p>k</div>
|
|
||||||
<div><p>&#108;</p>l</div>
|
|
||||||
<div><p>&#109;</p>m</div>
|
|
||||||
<div><p>&#110;</p>n</div>
|
|
||||||
<div><p>&#111;</p>o</div>
|
|
||||||
<div><p>&#112;</p>p</div>
|
|
||||||
<div><p>&#113;</p>q</div>
|
|
||||||
<div><p>&#114;</p>r</div>
|
|
||||||
<div><p>&#115;</p>s</div>
|
|
||||||
<div><p>&#116;</p>t</div>
|
|
||||||
<div><p>&#117;</p>u</div>
|
|
||||||
<div><p>&#118;</p>v</div>
|
|
||||||
<div><p>&#119;</p>w</div>
|
|
||||||
<div><p>&#120;</p>x</div>
|
|
||||||
<div><p>&#121;</p>y</div>
|
|
||||||
<div><p>&#122;</p>z</div>
|
|
||||||
<div><p>&#123;</p>{</div>
|
|
||||||
<div><p>&#124;</p>|</div>
|
|
||||||
<div><p>&#125;</p>}</div>
|
|
||||||
<div><p>&#126;</p>~</div>
|
|
||||||
<div><p>&#160;</p> </div>
|
|
||||||
<div><p>&#161;</p>¡</div>
|
|
||||||
<div><p>&#162;</p>¢</div>
|
|
||||||
<div><p>&#163;</p>£</div>
|
|
||||||
<div><p>&#164;</p>¤</div>
|
|
||||||
<div><p>&#165;</p>¥</div>
|
|
||||||
<div><p>&#166;</p>¦</div>
|
|
||||||
<div><p>&#167;</p>§</div>
|
|
||||||
<div><p>&#168;</p>¨</div>
|
|
||||||
<div><p>&#169;</p>©</div>
|
|
||||||
<div><p>&#170;</p>ª</div>
|
|
||||||
<div><p>&#171;</p>«</div>
|
|
||||||
<div><p>&#172;</p>¬</div>
|
|
||||||
<div><p>&#173;</p>­</div>
|
|
||||||
<div><p>&#174;</p>®</div>
|
|
||||||
<div><p>&#175;</p>¯</div>
|
|
||||||
<div><p>&#176;</p>°</div>
|
|
||||||
<div><p>&#177;</p>±</div>
|
|
||||||
<div><p>&#178;</p>²</div>
|
|
||||||
<div><p>&#179;</p>³</div>
|
|
||||||
<div><p>&#180;</p>´</div>
|
|
||||||
<div><p>&#181;</p>µ</div>
|
|
||||||
<div><p>&#182;</p>¶</div>
|
|
||||||
<div><p>&#183;</p>·</div>
|
|
||||||
<div><p>&#184;</p>¸</div>
|
|
||||||
<div><p>&#185;</p>¹</div>
|
|
||||||
<div><p>&#186;</p>º</div>
|
|
||||||
<div><p>&#187;</p>»</div>
|
|
||||||
<div><p>&#188;</p>¼</div>
|
|
||||||
<div><p>&#189;</p>½</div>
|
|
||||||
<div><p>&#190;</p>¾</div>
|
|
||||||
<div><p>&#191;</p>¿</div>
|
|
||||||
<div><p>&#192;</p>À</div>
|
|
||||||
<div><p>&#193;</p>Á</div>
|
|
||||||
<div><p>&#194;</p>Â</div>
|
|
||||||
<div><p>&#195;</p>Ã</div>
|
|
||||||
<div><p>&#196;</p>Ä</div>
|
|
||||||
<div><p>&#197;</p>Å</div>
|
|
||||||
<div><p>&#198;</p>Æ</div>
|
|
||||||
<div><p>&#199;</p>Ç</div>
|
|
||||||
<div><p>&#200;</p>È</div>
|
|
||||||
<div><p>&#201;</p>É</div>
|
|
||||||
<div><p>&#202;</p>Ê</div>
|
|
||||||
<div><p>&#203;</p>Ë</div>
|
|
||||||
<div><p>&#204;</p>Ì</div>
|
|
||||||
<div><p>&#205;</p>Í</div>
|
|
||||||
<div><p>&#206;</p>Î</div>
|
|
||||||
<div><p>&#207;</p>Ï</div>
|
|
||||||
<div><p>&#208;</p>Ð</div>
|
|
||||||
<div><p>&#209;</p>Ñ</div>
|
|
||||||
<div><p>&#210;</p>Ò</div>
|
|
||||||
<div><p>&#211;</p>Ó</div>
|
|
||||||
<div><p>&#212;</p>Ô</div>
|
|
||||||
<div><p>&#213;</p>Õ</div>
|
|
||||||
<div><p>&#214;</p>Ö</div>
|
|
||||||
<div><p>&#215;</p>×</div>
|
|
||||||
<div><p>&#216;</p>Ø</div>
|
|
||||||
<div><p>&#217;</p>Ù</div>
|
|
||||||
<div><p>&#218;</p>Ú</div>
|
|
||||||
<div><p>&#219;</p>Û</div>
|
|
||||||
<div><p>&#220;</p>Ü</div>
|
|
||||||
<div><p>&#221;</p>Ý</div>
|
|
||||||
<div><p>&#222;</p>Þ</div>
|
|
||||||
<div><p>&#223;</p>ß</div>
|
|
||||||
<div><p>&#224;</p>à</div>
|
|
||||||
<div><p>&#225;</p>á</div>
|
|
||||||
<div><p>&#226;</p>â</div>
|
|
||||||
<div><p>&#227;</p>ã</div>
|
|
||||||
<div><p>&#228;</p>ä</div>
|
|
||||||
<div><p>&#229;</p>å</div>
|
|
||||||
<div><p>&#230;</p>æ</div>
|
|
||||||
<div><p>&#231;</p>ç</div>
|
|
||||||
<div><p>&#232;</p>è</div>
|
|
||||||
<div><p>&#233;</p>é</div>
|
|
||||||
<div><p>&#234;</p>ê</div>
|
|
||||||
<div><p>&#235;</p>ë</div>
|
|
||||||
<div><p>&#236;</p>ì</div>
|
|
||||||
<div><p>&#237;</p>í</div>
|
|
||||||
<div><p>&#238;</p>î</div>
|
|
||||||
<div><p>&#239;</p>ï</div>
|
|
||||||
<div><p>&#240;</p>ð</div>
|
|
||||||
<div><p>&#241;</p>ñ</div>
|
|
||||||
<div><p>&#242;</p>ò</div>
|
|
||||||
<div><p>&#243;</p>ó</div>
|
|
||||||
<div><p>&#244;</p>ô</div>
|
|
||||||
<div><p>&#245;</p>õ</div>
|
|
||||||
<div><p>&#246;</p>ö</div>
|
|
||||||
<div><p>&#247;</p>÷</div>
|
|
||||||
<div><p>&#248;</p>ø</div>
|
|
||||||
<div><p>&#249;</p>ù</div>
|
|
||||||
<div><p>&#250;</p>ú</div>
|
|
||||||
<div><p>&#251;</p>û</div>
|
|
||||||
<div><p>&#252;</p>ü</div>
|
|
||||||
<div><p>&#253;</p>ý</div>
|
|
||||||
<div><p>&#254;</p>þ</div>
|
|
||||||
<div><p>&#255;</p>ÿ</div>
|
|
||||||
<div><p>&#338;</p>Œ</div>
|
|
||||||
<div><p>&#339;</p>œ</div>
|
|
||||||
<div><p>&#376;</p>Ÿ</div>
|
|
||||||
<div><p>&#710;</p>ˆ</div>
|
|
||||||
<div><p>&#732;</p>˜</div>
|
|
||||||
<div><p>&#8192;</p> </div>
|
|
||||||
<div><p>&#8193;</p> </div>
|
|
||||||
<div><p>&#8194;</p> </div>
|
|
||||||
<div><p>&#8195;</p> </div>
|
|
||||||
<div><p>&#8196;</p> </div>
|
|
||||||
<div><p>&#8197;</p> </div>
|
|
||||||
<div><p>&#8198;</p> </div>
|
|
||||||
<div><p>&#8199;</p> </div>
|
|
||||||
<div><p>&#8200;</p> </div>
|
|
||||||
<div><p>&#8201;</p> </div>
|
|
||||||
<div><p>&#8202;</p> </div>
|
|
||||||
<div><p>&#8208;</p>‐</div>
|
|
||||||
<div><p>&#8209;</p>‑</div>
|
|
||||||
<div><p>&#8210;</p>‒</div>
|
|
||||||
<div><p>&#8211;</p>–</div>
|
|
||||||
<div><p>&#8212;</p>—</div>
|
|
||||||
<div><p>&#8216;</p>‘</div>
|
|
||||||
<div><p>&#8217;</p>’</div>
|
|
||||||
<div><p>&#8218;</p>‚</div>
|
|
||||||
<div><p>&#8220;</p>“</div>
|
|
||||||
<div><p>&#8221;</p>”</div>
|
|
||||||
<div><p>&#8222;</p>„</div>
|
|
||||||
<div><p>&#8226;</p>•</div>
|
|
||||||
<div><p>&#8230;</p>…</div>
|
|
||||||
<div><p>&#8239;</p> </div>
|
|
||||||
<div><p>&#8249;</p>‹</div>
|
|
||||||
<div><p>&#8250;</p>›</div>
|
|
||||||
<div><p>&#8287;</p> </div>
|
|
||||||
<div><p>&#8364;</p>€</div>
|
|
||||||
<div><p>&#8482;</p>™</div>
|
|
||||||
<div><p>&#9724;</p>◼</div>
|
|
||||||
<div><p>&#64257;</p>fi</div>
|
|
||||||
<div><p>&#64258;</p>fl</div>
|
|
||||||
<div><p>&#64259;</p>ffi</div>
|
|
||||||
<div><p>&#64260;</p>ffl</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div id="specs">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="installing">
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid7 firstcol">
|
|
||||||
<h1>Installing Webfonts</h1>
|
|
||||||
|
|
||||||
<p>Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.</p>
|
|
||||||
|
|
||||||
<h2>1. Upload your webfonts</h2>
|
|
||||||
<p>You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.</p>
|
|
||||||
|
|
||||||
<h2>2. Include the webfont stylesheet</h2>
|
|
||||||
<p>A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the <a href="https://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax">Fontspring blog post</a> about it. The code for it is as follows:</p>
|
|
||||||
|
|
||||||
|
|
||||||
<code>
|
|
||||||
@font-face{
|
|
||||||
font-family: 'MyWebFont';
|
|
||||||
src: url('WebFont.eot');
|
|
||||||
src: url('WebFont.eot?#iefix') format('embedded-opentype'),
|
|
||||||
url('WebFont.woff') format('woff'),
|
|
||||||
url('WebFont.ttf') format('truetype'),
|
|
||||||
url('WebFont.svg#webfont') format('svg');
|
|
||||||
}
|
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:</p>
|
|
||||||
<code><link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /></code>
|
|
||||||
|
|
||||||
<h2>3. Modify your own stylesheet</h2>
|
|
||||||
<p>To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:</p>
|
|
||||||
<code>p { font-family: 'WebFont', Arial, sans-serif; }</code>
|
|
||||||
|
|
||||||
<h2>4. Test</h2>
|
|
||||||
<p>Getting webfonts to work cross-browser <em>can</em> be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid5 sidebar">
|
|
||||||
<div class="box">
|
|
||||||
<h2>Troubleshooting<br />Font-Face Problems</h2>
|
|
||||||
<p>Having trouble getting your webfonts to load in your new website? Here are some tips to sort out what might be the problem.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not showing in any browser</h3>
|
|
||||||
|
|
||||||
<p>This sounds like you need to work on the plumbing. You either did not upload the fonts to the correct directory, or you did not link the fonts properly in the CSS. If you've confirmed that all this is correct and you still have a problem, take a look at your .htaccess file and see if requests are getting intercepted.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in iPhone or iPad</h3>
|
|
||||||
|
|
||||||
<p>The most common problem here is that you are serving the fonts from an IIS server. IIS refuses to serve files that have unknown MIME types. If that is the case, you must set the MIME type for SVG to "image/svg+xml" in the server settings. Follow these instructions from Microsoft if you need help.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in Firefox</h3>
|
|
||||||
|
|
||||||
<p>The primary reason for this failure? You are still using a version Firefox older than 3.5. So upgrade already! If that isn't it, then you are very likely serving fonts from a different domain. Firefox requires that all font assets be served from the same domain. Lastly it is possible that you need to add WOFF to your list of MIME types (if you are serving via IIS.)</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in IE</h3>
|
|
||||||
|
|
||||||
<p>Are you looking at Internet Explorer on an actual Windows machine or are you cheating by using a service like Adobe BrowserLab? Many of these screenshot services do not render @font-face for IE. Best to test it on a real machine.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in IE9</h3>
|
|
||||||
|
|
||||||
<p>IE9, like Firefox, requires that fonts be served from the same domain as the website. Make sure that is the case.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<p>©2010-2017 Font Squirrel. All rights reserved.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,622 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function($){$.fn.easyTabs=function(option){var param=jQuery.extend({fadeSpeed:"fast",defaultContent:1,activeClass:'active'},option);$(this).each(function(){var thisId="#"+this.id;if(param.defaultContent==''){param.defaultContent=1;}
|
|
||||||
if(typeof param.defaultContent=="number")
|
|
||||||
{var defaultTab=$(thisId+" .tabs li:eq("+(param.defaultContent-1)+") a").attr('href').substr(1);}else{var defaultTab=param.defaultContent;}
|
|
||||||
$(thisId+" .tabs li a").each(function(){var tabToHide=$(this).attr('href').substr(1);$("#"+tabToHide).addClass('easytabs-tab-content');});hideAll();changeContent(defaultTab);function hideAll(){$(thisId+" .easytabs-tab-content").hide();}
|
|
||||||
function changeContent(tabId){hideAll();$(thisId+" .tabs li").removeClass(param.activeClass);$(thisId+" .tabs li a[href=#"+tabId+"]").closest('li').addClass(param.activeClass);if(param.fadeSpeed!="none")
|
|
||||||
{$(thisId+" #"+tabId).fadeIn(param.fadeSpeed);}else{$(thisId+" #"+tabId).show();}}
|
|
||||||
$(thisId+" .tabs li").click(function(){var tabId=$(this).find('a').attr('href').substr(1);changeContent(tabId);return false;});});}})(jQuery);
|
|
||||||
</script>
|
|
||||||
<link rel="stylesheet" href="specimen_files/specimen_stylesheet.css" type="text/css" charset="utf-8" />
|
|
||||||
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" />
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body{
|
|
||||||
font-family: 'lackregular';
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<title>Lack Regular Specimen</title>
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#container').easyTabs({defaultContent:1});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<div id="header">
|
|
||||||
Lack Regular </div>
|
|
||||||
<ul class="tabs">
|
|
||||||
<li><a href="#specimen">Specimen</a></li>
|
|
||||||
<li><a href="#layout">Sample Layout</a></li>
|
|
||||||
<li><a href="#glyphs">Glyphs & Languages</a></li>
|
|
||||||
<li><a href="#installing">Installing Webfonts</a></li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div id="main_content">
|
|
||||||
|
|
||||||
|
|
||||||
<div id="specimen">
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<div class="huge">AaBb</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="glyph_range">A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;</div>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<table class="sample_table">
|
|
||||||
<tr><td>10</td><td class="size10">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>11</td><td class="size11">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>12</td><td class="size12">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>13</td><td class="size13">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>14</td><td class="size14">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>16</td><td class="size16">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>18</td><td class="size18">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>20</td><td class="size20">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>24</td><td class="size24">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>30</td><td class="size30">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>36</td><td class="size36">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>48</td><td class="size48">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>60</td><td class="size60">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>72</td><td class="size72">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
<tr><td>90</td><td class="size90">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section" id="bodycomparison">
|
|
||||||
|
|
||||||
|
|
||||||
<div id="xheight">
|
|
||||||
<div class="fontbody">◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼body</div><div class="arialbody">body</div><div class="verdanabody">body</div><div class="georgiabody">body</div></div>
|
|
||||||
<div class="fontbody" style="z-index:1">
|
|
||||||
body<span>Lack Regular</span>
|
|
||||||
</div>
|
|
||||||
<div class="arialbody" style="z-index:1">
|
|
||||||
body<span>Arial</span>
|
|
||||||
</div>
|
|
||||||
<div class="verdanabody" style="z-index:1">
|
|
||||||
body<span>Verdana</span>
|
|
||||||
</div>
|
|
||||||
<div class="georgiabody" style="z-index:1">
|
|
||||||
body<span>Georgia</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section psample psample_row1" id="">
|
|
||||||
|
|
||||||
<div class="grid2 firstcol">
|
|
||||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="section psample psample_row2" id="">
|
|
||||||
<div class="grid3 firstcol">
|
|
||||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid5">
|
|
||||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row3" id="">
|
|
||||||
<div class="grid5 firstcol">
|
|
||||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid7">
|
|
||||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row4" id="">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="white_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section psample psample_row1 fullreverse">
|
|
||||||
<div class="grid2 firstcol">
|
|
||||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid3">
|
|
||||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample psample_row2 fullreverse">
|
|
||||||
<div class="grid3 firstcol">
|
|
||||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid4">
|
|
||||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid5">
|
|
||||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample fullreverse psample_row3" id="">
|
|
||||||
<div class="grid5 firstcol">
|
|
||||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid7">
|
|
||||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section psample fullreverse psample_row4" id="" style="border-bottom: 20px #000 solid;">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
</div>
|
|
||||||
<div class="black_blend"></div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="layout">
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
<h1>Lorem Ipsum Dolor</h1>
|
|
||||||
<h2>Etiam porta sem malesuada magna mollis euismod</h2>
|
|
||||||
|
|
||||||
<p class="byline">By <a href="#link">Aenean Lacinia</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid8 firstcol">
|
|
||||||
<p class="large">Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Pellentesque ornare sem</h3>
|
|
||||||
|
|
||||||
<p>Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit. </p>
|
|
||||||
|
|
||||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p>
|
|
||||||
|
|
||||||
<p>Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. </p>
|
|
||||||
|
|
||||||
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla. </p>
|
|
||||||
|
|
||||||
<h3>Cras mattis consectetur</h3>
|
|
||||||
|
|
||||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum. </p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid4 sidebar">
|
|
||||||
|
|
||||||
<div class="box reverse">
|
|
||||||
<p class="last">Nullam quis risus eget urna mollis ornare vel eu leo. Donec ullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="caption">Maecenas sed diam eget risus varius.</p>
|
|
||||||
|
|
||||||
<p>Vestibulum id ligula porta felis euismod semper. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare vel eu leo. </p>
|
|
||||||
|
|
||||||
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec ullamcorper nulla non metus auctor fringilla. Maecenas faucibus mollis interdum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="glyphs">
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid12 firstcol">
|
|
||||||
|
|
||||||
<h1>Language Support</h1>
|
|
||||||
<p>The subset of Lack Regular in this kit supports the following languages:<br />
|
|
||||||
|
|
||||||
Albanian, Basque, Breton, Chamorro, Danish, Dutch, English, Faroese, Finnish, French, Frisian, Galician, German, Icelandic, Italian, Malagasy, Norwegian, Portuguese, Spanish, Alsatian, Aragonese, Arapaho, Arrernte, Asturian, Aymara, Bislama, Cebuano, Corsican, Fijian, French_creole, Genoese, Gilbertese, Greenlandic, Haitian_creole, Hiligaynon, Hmong, Hopi, Ibanag, Iloko_ilokano, Indonesian, Interglossa_glosa, Interlingua, Irish_gaelic, Jerriais, Lojban, Lombard, Luxembourgeois, Manx, Mohawk, Norfolk_pitcairnese, Occitan, Oromo, Pangasinan, Papiamento, Piedmontese, Potawatomi, Rhaeto-romance, Romansh, Rotokas, Sami_lule, Samoan, Sardinian, Scots_gaelic, Seychelles_creole, Shona, Sicilian, Somali, Southern_ndebele, Swahili, Swati_swazi, Tagalog_filipino_pilipino, Tetum, Tok_pisin, Uyghur_latinized, Volapuk, Walloon, Warlpiri, Xhosa, Yapese, Zulu, Latinbasic, Ubasic, Demo </p>
|
|
||||||
<h1>Glyph Chart</h1>
|
|
||||||
<p>The subset of Lack Regular in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.</p>
|
|
||||||
<div id="glyph_chart">
|
|
||||||
|
|
||||||
<div><p>&#13;</p> </div>
|
|
||||||
<div><p>&#32;</p> </div>
|
|
||||||
<div><p>&#33;</p>!</div>
|
|
||||||
<div><p>&#34;</p>"</div>
|
|
||||||
<div><p>&#35;</p>#</div>
|
|
||||||
<div><p>&#36;</p>$</div>
|
|
||||||
<div><p>&#37;</p>%</div>
|
|
||||||
<div><p>&#38;</p>&</div>
|
|
||||||
<div><p>&#39;</p>'</div>
|
|
||||||
<div><p>&#40;</p>(</div>
|
|
||||||
<div><p>&#41;</p>)</div>
|
|
||||||
<div><p>&#42;</p>*</div>
|
|
||||||
<div><p>&#43;</p>+</div>
|
|
||||||
<div><p>&#44;</p>,</div>
|
|
||||||
<div><p>&#45;</p>-</div>
|
|
||||||
<div><p>&#46;</p>.</div>
|
|
||||||
<div><p>&#47;</p>/</div>
|
|
||||||
<div><p>&#48;</p>0</div>
|
|
||||||
<div><p>&#49;</p>1</div>
|
|
||||||
<div><p>&#50;</p>2</div>
|
|
||||||
<div><p>&#51;</p>3</div>
|
|
||||||
<div><p>&#52;</p>4</div>
|
|
||||||
<div><p>&#53;</p>5</div>
|
|
||||||
<div><p>&#54;</p>6</div>
|
|
||||||
<div><p>&#55;</p>7</div>
|
|
||||||
<div><p>&#56;</p>8</div>
|
|
||||||
<div><p>&#57;</p>9</div>
|
|
||||||
<div><p>&#58;</p>:</div>
|
|
||||||
<div><p>&#59;</p>;</div>
|
|
||||||
<div><p>&#60;</p><</div>
|
|
||||||
<div><p>&#61;</p>=</div>
|
|
||||||
<div><p>&#62;</p>></div>
|
|
||||||
<div><p>&#63;</p>?</div>
|
|
||||||
<div><p>&#64;</p>@</div>
|
|
||||||
<div><p>&#65;</p>A</div>
|
|
||||||
<div><p>&#66;</p>B</div>
|
|
||||||
<div><p>&#67;</p>C</div>
|
|
||||||
<div><p>&#68;</p>D</div>
|
|
||||||
<div><p>&#69;</p>E</div>
|
|
||||||
<div><p>&#70;</p>F</div>
|
|
||||||
<div><p>&#71;</p>G</div>
|
|
||||||
<div><p>&#72;</p>H</div>
|
|
||||||
<div><p>&#73;</p>I</div>
|
|
||||||
<div><p>&#74;</p>J</div>
|
|
||||||
<div><p>&#75;</p>K</div>
|
|
||||||
<div><p>&#76;</p>L</div>
|
|
||||||
<div><p>&#77;</p>M</div>
|
|
||||||
<div><p>&#78;</p>N</div>
|
|
||||||
<div><p>&#79;</p>O</div>
|
|
||||||
<div><p>&#80;</p>P</div>
|
|
||||||
<div><p>&#81;</p>Q</div>
|
|
||||||
<div><p>&#82;</p>R</div>
|
|
||||||
<div><p>&#83;</p>S</div>
|
|
||||||
<div><p>&#84;</p>T</div>
|
|
||||||
<div><p>&#85;</p>U</div>
|
|
||||||
<div><p>&#86;</p>V</div>
|
|
||||||
<div><p>&#87;</p>W</div>
|
|
||||||
<div><p>&#88;</p>X</div>
|
|
||||||
<div><p>&#89;</p>Y</div>
|
|
||||||
<div><p>&#90;</p>Z</div>
|
|
||||||
<div><p>&#91;</p>[</div>
|
|
||||||
<div><p>&#92;</p>\</div>
|
|
||||||
<div><p>&#93;</p>]</div>
|
|
||||||
<div><p>&#94;</p>^</div>
|
|
||||||
<div><p>&#95;</p>_</div>
|
|
||||||
<div><p>&#96;</p>`</div>
|
|
||||||
<div><p>&#97;</p>a</div>
|
|
||||||
<div><p>&#98;</p>b</div>
|
|
||||||
<div><p>&#99;</p>c</div>
|
|
||||||
<div><p>&#100;</p>d</div>
|
|
||||||
<div><p>&#101;</p>e</div>
|
|
||||||
<div><p>&#102;</p>f</div>
|
|
||||||
<div><p>&#103;</p>g</div>
|
|
||||||
<div><p>&#104;</p>h</div>
|
|
||||||
<div><p>&#105;</p>i</div>
|
|
||||||
<div><p>&#106;</p>j</div>
|
|
||||||
<div><p>&#107;</p>k</div>
|
|
||||||
<div><p>&#108;</p>l</div>
|
|
||||||
<div><p>&#109;</p>m</div>
|
|
||||||
<div><p>&#110;</p>n</div>
|
|
||||||
<div><p>&#111;</p>o</div>
|
|
||||||
<div><p>&#112;</p>p</div>
|
|
||||||
<div><p>&#113;</p>q</div>
|
|
||||||
<div><p>&#114;</p>r</div>
|
|
||||||
<div><p>&#115;</p>s</div>
|
|
||||||
<div><p>&#116;</p>t</div>
|
|
||||||
<div><p>&#117;</p>u</div>
|
|
||||||
<div><p>&#118;</p>v</div>
|
|
||||||
<div><p>&#119;</p>w</div>
|
|
||||||
<div><p>&#120;</p>x</div>
|
|
||||||
<div><p>&#121;</p>y</div>
|
|
||||||
<div><p>&#122;</p>z</div>
|
|
||||||
<div><p>&#123;</p>{</div>
|
|
||||||
<div><p>&#124;</p>|</div>
|
|
||||||
<div><p>&#125;</p>}</div>
|
|
||||||
<div><p>&#126;</p>~</div>
|
|
||||||
<div><p>&#160;</p> </div>
|
|
||||||
<div><p>&#161;</p>¡</div>
|
|
||||||
<div><p>&#162;</p>¢</div>
|
|
||||||
<div><p>&#163;</p>£</div>
|
|
||||||
<div><p>&#164;</p>¤</div>
|
|
||||||
<div><p>&#165;</p>¥</div>
|
|
||||||
<div><p>&#166;</p>¦</div>
|
|
||||||
<div><p>&#167;</p>§</div>
|
|
||||||
<div><p>&#168;</p>¨</div>
|
|
||||||
<div><p>&#169;</p>©</div>
|
|
||||||
<div><p>&#170;</p>ª</div>
|
|
||||||
<div><p>&#171;</p>«</div>
|
|
||||||
<div><p>&#172;</p>¬</div>
|
|
||||||
<div><p>&#173;</p>­</div>
|
|
||||||
<div><p>&#174;</p>®</div>
|
|
||||||
<div><p>&#175;</p>¯</div>
|
|
||||||
<div><p>&#176;</p>°</div>
|
|
||||||
<div><p>&#177;</p>±</div>
|
|
||||||
<div><p>&#178;</p>²</div>
|
|
||||||
<div><p>&#179;</p>³</div>
|
|
||||||
<div><p>&#180;</p>´</div>
|
|
||||||
<div><p>&#181;</p>µ</div>
|
|
||||||
<div><p>&#182;</p>¶</div>
|
|
||||||
<div><p>&#183;</p>·</div>
|
|
||||||
<div><p>&#184;</p>¸</div>
|
|
||||||
<div><p>&#185;</p>¹</div>
|
|
||||||
<div><p>&#186;</p>º</div>
|
|
||||||
<div><p>&#187;</p>»</div>
|
|
||||||
<div><p>&#188;</p>¼</div>
|
|
||||||
<div><p>&#189;</p>½</div>
|
|
||||||
<div><p>&#190;</p>¾</div>
|
|
||||||
<div><p>&#191;</p>¿</div>
|
|
||||||
<div><p>&#192;</p>À</div>
|
|
||||||
<div><p>&#193;</p>Á</div>
|
|
||||||
<div><p>&#194;</p>Â</div>
|
|
||||||
<div><p>&#195;</p>Ã</div>
|
|
||||||
<div><p>&#196;</p>Ä</div>
|
|
||||||
<div><p>&#197;</p>Å</div>
|
|
||||||
<div><p>&#198;</p>Æ</div>
|
|
||||||
<div><p>&#199;</p>Ç</div>
|
|
||||||
<div><p>&#200;</p>È</div>
|
|
||||||
<div><p>&#201;</p>É</div>
|
|
||||||
<div><p>&#202;</p>Ê</div>
|
|
||||||
<div><p>&#203;</p>Ë</div>
|
|
||||||
<div><p>&#204;</p>Ì</div>
|
|
||||||
<div><p>&#205;</p>Í</div>
|
|
||||||
<div><p>&#206;</p>Î</div>
|
|
||||||
<div><p>&#207;</p>Ï</div>
|
|
||||||
<div><p>&#208;</p>Ð</div>
|
|
||||||
<div><p>&#209;</p>Ñ</div>
|
|
||||||
<div><p>&#210;</p>Ò</div>
|
|
||||||
<div><p>&#211;</p>Ó</div>
|
|
||||||
<div><p>&#212;</p>Ô</div>
|
|
||||||
<div><p>&#213;</p>Õ</div>
|
|
||||||
<div><p>&#214;</p>Ö</div>
|
|
||||||
<div><p>&#215;</p>×</div>
|
|
||||||
<div><p>&#216;</p>Ø</div>
|
|
||||||
<div><p>&#217;</p>Ù</div>
|
|
||||||
<div><p>&#218;</p>Ú</div>
|
|
||||||
<div><p>&#219;</p>Û</div>
|
|
||||||
<div><p>&#220;</p>Ü</div>
|
|
||||||
<div><p>&#221;</p>Ý</div>
|
|
||||||
<div><p>&#222;</p>Þ</div>
|
|
||||||
<div><p>&#223;</p>ß</div>
|
|
||||||
<div><p>&#224;</p>à</div>
|
|
||||||
<div><p>&#225;</p>á</div>
|
|
||||||
<div><p>&#226;</p>â</div>
|
|
||||||
<div><p>&#227;</p>ã</div>
|
|
||||||
<div><p>&#228;</p>ä</div>
|
|
||||||
<div><p>&#229;</p>å</div>
|
|
||||||
<div><p>&#230;</p>æ</div>
|
|
||||||
<div><p>&#231;</p>ç</div>
|
|
||||||
<div><p>&#232;</p>è</div>
|
|
||||||
<div><p>&#233;</p>é</div>
|
|
||||||
<div><p>&#234;</p>ê</div>
|
|
||||||
<div><p>&#235;</p>ë</div>
|
|
||||||
<div><p>&#236;</p>ì</div>
|
|
||||||
<div><p>&#237;</p>í</div>
|
|
||||||
<div><p>&#238;</p>î</div>
|
|
||||||
<div><p>&#239;</p>ï</div>
|
|
||||||
<div><p>&#240;</p>ð</div>
|
|
||||||
<div><p>&#241;</p>ñ</div>
|
|
||||||
<div><p>&#242;</p>ò</div>
|
|
||||||
<div><p>&#243;</p>ó</div>
|
|
||||||
<div><p>&#244;</p>ô</div>
|
|
||||||
<div><p>&#245;</p>õ</div>
|
|
||||||
<div><p>&#246;</p>ö</div>
|
|
||||||
<div><p>&#247;</p>÷</div>
|
|
||||||
<div><p>&#248;</p>ø</div>
|
|
||||||
<div><p>&#249;</p>ù</div>
|
|
||||||
<div><p>&#250;</p>ú</div>
|
|
||||||
<div><p>&#251;</p>û</div>
|
|
||||||
<div><p>&#252;</p>ü</div>
|
|
||||||
<div><p>&#253;</p>ý</div>
|
|
||||||
<div><p>&#254;</p>þ</div>
|
|
||||||
<div><p>&#255;</p>ÿ</div>
|
|
||||||
<div><p>&#338;</p>Œ</div>
|
|
||||||
<div><p>&#339;</p>œ</div>
|
|
||||||
<div><p>&#376;</p>Ÿ</div>
|
|
||||||
<div><p>&#710;</p>ˆ</div>
|
|
||||||
<div><p>&#732;</p>˜</div>
|
|
||||||
<div><p>&#8192;</p> </div>
|
|
||||||
<div><p>&#8193;</p> </div>
|
|
||||||
<div><p>&#8194;</p> </div>
|
|
||||||
<div><p>&#8195;</p> </div>
|
|
||||||
<div><p>&#8196;</p> </div>
|
|
||||||
<div><p>&#8197;</p> </div>
|
|
||||||
<div><p>&#8198;</p> </div>
|
|
||||||
<div><p>&#8199;</p> </div>
|
|
||||||
<div><p>&#8200;</p> </div>
|
|
||||||
<div><p>&#8201;</p> </div>
|
|
||||||
<div><p>&#8202;</p> </div>
|
|
||||||
<div><p>&#8208;</p>‐</div>
|
|
||||||
<div><p>&#8209;</p>‑</div>
|
|
||||||
<div><p>&#8210;</p>‒</div>
|
|
||||||
<div><p>&#8211;</p>–</div>
|
|
||||||
<div><p>&#8212;</p>—</div>
|
|
||||||
<div><p>&#8216;</p>‘</div>
|
|
||||||
<div><p>&#8217;</p>’</div>
|
|
||||||
<div><p>&#8218;</p>‚</div>
|
|
||||||
<div><p>&#8220;</p>“</div>
|
|
||||||
<div><p>&#8221;</p>”</div>
|
|
||||||
<div><p>&#8222;</p>„</div>
|
|
||||||
<div><p>&#8226;</p>•</div>
|
|
||||||
<div><p>&#8230;</p>…</div>
|
|
||||||
<div><p>&#8239;</p> </div>
|
|
||||||
<div><p>&#8249;</p>‹</div>
|
|
||||||
<div><p>&#8250;</p>›</div>
|
|
||||||
<div><p>&#8287;</p> </div>
|
|
||||||
<div><p>&#8364;</p>€</div>
|
|
||||||
<div><p>&#8482;</p>™</div>
|
|
||||||
<div><p>&#9724;</p>◼</div>
|
|
||||||
<div><p>&#64257;</p>fi</div>
|
|
||||||
<div><p>&#64258;</p>fl</div>
|
|
||||||
<div><p>&#64259;</p>ffi</div>
|
|
||||||
<div><p>&#64260;</p>ffl</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div id="specs">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="installing">
|
|
||||||
<div class="section">
|
|
||||||
<div class="grid7 firstcol">
|
|
||||||
<h1>Installing Webfonts</h1>
|
|
||||||
|
|
||||||
<p>Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.</p>
|
|
||||||
|
|
||||||
<h2>1. Upload your webfonts</h2>
|
|
||||||
<p>You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.</p>
|
|
||||||
|
|
||||||
<h2>2. Include the webfont stylesheet</h2>
|
|
||||||
<p>A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the <a href="https://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax">Fontspring blog post</a> about it. The code for it is as follows:</p>
|
|
||||||
|
|
||||||
|
|
||||||
<code>
|
|
||||||
@font-face{
|
|
||||||
font-family: 'MyWebFont';
|
|
||||||
src: url('WebFont.eot');
|
|
||||||
src: url('WebFont.eot?#iefix') format('embedded-opentype'),
|
|
||||||
url('WebFont.woff') format('woff'),
|
|
||||||
url('WebFont.ttf') format('truetype'),
|
|
||||||
url('WebFont.svg#webfont') format('svg');
|
|
||||||
}
|
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:</p>
|
|
||||||
<code><link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /></code>
|
|
||||||
|
|
||||||
<h2>3. Modify your own stylesheet</h2>
|
|
||||||
<p>To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:</p>
|
|
||||||
<code>p { font-family: 'WebFont', Arial, sans-serif; }</code>
|
|
||||||
|
|
||||||
<h2>4. Test</h2>
|
|
||||||
<p>Getting webfonts to work cross-browser <em>can</em> be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="grid5 sidebar">
|
|
||||||
<div class="box">
|
|
||||||
<h2>Troubleshooting<br />Font-Face Problems</h2>
|
|
||||||
<p>Having trouble getting your webfonts to load in your new website? Here are some tips to sort out what might be the problem.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not showing in any browser</h3>
|
|
||||||
|
|
||||||
<p>This sounds like you need to work on the plumbing. You either did not upload the fonts to the correct directory, or you did not link the fonts properly in the CSS. If you've confirmed that all this is correct and you still have a problem, take a look at your .htaccess file and see if requests are getting intercepted.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in iPhone or iPad</h3>
|
|
||||||
|
|
||||||
<p>The most common problem here is that you are serving the fonts from an IIS server. IIS refuses to serve files that have unknown MIME types. If that is the case, you must set the MIME type for SVG to "image/svg+xml" in the server settings. Follow these instructions from Microsoft if you need help.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in Firefox</h3>
|
|
||||||
|
|
||||||
<p>The primary reason for this failure? You are still using a version Firefox older than 3.5. So upgrade already! If that isn't it, then you are very likely serving fonts from a different domain. Firefox requires that all font assets be served from the same domain. Lastly it is possible that you need to add WOFF to your list of MIME types (if you are serving via IIS.)</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in IE</h3>
|
|
||||||
|
|
||||||
<p>Are you looking at Internet Explorer on an actual Windows machine or are you cheating by using a service like Adobe BrowserLab? Many of these screenshot services do not render @font-face for IE. Best to test it on a real machine.</p>
|
|
||||||
|
|
||||||
<h3>Fonts not loading in IE9</h3>
|
|
||||||
|
|
||||||
<p>IE9, like Firefox, requires that fonts be served from the same domain as the website. Make sure that is the case.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<p>©2010-2017 Font Squirrel. All rights reserved.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,129 +0,0 @@
|
||||||
/*Notes about grid:
|
|
||||||
Columns: 12
|
|
||||||
Grid Width: 825px
|
|
||||||
Column Width: 55px
|
|
||||||
Gutter Width: 15px
|
|
||||||
-------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.section {margin-bottom: 18px;
|
|
||||||
}
|
|
||||||
.section:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;}
|
|
||||||
.section {*zoom: 1;}
|
|
||||||
|
|
||||||
.section .firstcolumn,
|
|
||||||
.section .firstcol {margin-left: 0;}
|
|
||||||
|
|
||||||
|
|
||||||
/* Border on left hand side of a column. */
|
|
||||||
.border {
|
|
||||||
padding-left: 7px;
|
|
||||||
margin-left: 7px;
|
|
||||||
border-left: 1px solid #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Border with more whitespace, spans one column. */
|
|
||||||
.colborder {
|
|
||||||
padding-left: 42px;
|
|
||||||
margin-left: 42px;
|
|
||||||
border-left: 1px solid #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* The Grid Classes */
|
|
||||||
.grid1, .grid1_2cols, .grid1_3cols, .grid1_4cols, .grid2, .grid2_3cols, .grid2_4cols, .grid3, .grid3_2cols, .grid3_4cols, .grid4, .grid4_3cols, .grid5, .grid5_2cols, .grid5_3cols, .grid5_4cols, .grid6, .grid6_4cols, .grid7, .grid7_2cols, .grid7_3cols, .grid7_4cols, .grid8, .grid8_3cols, .grid9, .grid9_2cols, .grid9_4cols, .grid10, .grid10_3cols, .grid10_4cols, .grid11, .grid11_2cols, .grid11_3cols, .grid11_4cols, .grid12
|
|
||||||
{margin-left: 15px;float: left;display: inline; overflow: hidden;}
|
|
||||||
|
|
||||||
|
|
||||||
.width1, .grid1, .span-1 {width: 55px;}
|
|
||||||
.width1_2cols,.grid1_2cols {width: 20px;}
|
|
||||||
.width1_3cols,.grid1_3cols {width: 8px;}
|
|
||||||
.width1_4cols,.grid1_4cols {width: 2px;}
|
|
||||||
.input_width1 {width: 49px;}
|
|
||||||
|
|
||||||
.width2, .grid2, .span-2 {width: 125px;}
|
|
||||||
.width2_3cols,.grid2_3cols {width: 31px;}
|
|
||||||
.width2_4cols,.grid2_4cols {width: 20px;}
|
|
||||||
.input_width2 {width: 119px;}
|
|
||||||
|
|
||||||
.width3, .grid3, .span-3 {width: 195px;}
|
|
||||||
.width3_2cols,.grid3_2cols {width: 90px;}
|
|
||||||
.width3_4cols,.grid3_4cols {width: 37px;}
|
|
||||||
.input_width3 {width: 189px;}
|
|
||||||
|
|
||||||
.width4, .grid4, .span-4 {width: 265px;}
|
|
||||||
.width4_3cols,.grid4_3cols {width: 78px;}
|
|
||||||
.input_width4 {width: 259px;}
|
|
||||||
|
|
||||||
.width5, .grid5, .span-5 {width: 335px;}
|
|
||||||
.width5_2cols,.grid5_2cols {width: 160px;}
|
|
||||||
.width5_3cols,.grid5_3cols {width: 101px;}
|
|
||||||
.width5_4cols,.grid5_4cols {width: 72px;}
|
|
||||||
.input_width5 {width: 329px;}
|
|
||||||
|
|
||||||
.width6, .grid6, .span-6 {width: 405px;}
|
|
||||||
.width6_4cols,.grid6_4cols {width: 90px;}
|
|
||||||
.input_width6 {width: 399px;}
|
|
||||||
|
|
||||||
.width7, .grid7, .span-7 {width: 475px;}
|
|
||||||
.width7_2cols,.grid7_2cols {width: 230px;}
|
|
||||||
.width7_3cols,.grid7_3cols {width: 148px;}
|
|
||||||
.width7_4cols,.grid7_4cols {width: 107px;}
|
|
||||||
.input_width7 {width: 469px;}
|
|
||||||
|
|
||||||
.width8, .grid8, .span-8 {width: 545px;}
|
|
||||||
.width8_3cols,.grid8_3cols {width: 171px;}
|
|
||||||
.input_width8 {width: 539px;}
|
|
||||||
|
|
||||||
.width9, .grid9, .span-9 {width: 615px;}
|
|
||||||
.width9_2cols,.grid9_2cols {width: 300px;}
|
|
||||||
.width9_4cols,.grid9_4cols {width: 142px;}
|
|
||||||
.input_width9 {width: 609px;}
|
|
||||||
|
|
||||||
.width10, .grid10, .span-10 {width: 685px;}
|
|
||||||
.width10_3cols,.grid10_3cols {width: 218px;}
|
|
||||||
.width10_4cols,.grid10_4cols {width: 160px;}
|
|
||||||
.input_width10 {width: 679px;}
|
|
||||||
|
|
||||||
.width11, .grid11, .span-11 {width: 755px;}
|
|
||||||
.width11_2cols,.grid11_2cols {width: 370px;}
|
|
||||||
.width11_3cols,.grid11_3cols {width: 241px;}
|
|
||||||
.width11_4cols,.grid11_4cols {width: 177px;}
|
|
||||||
.input_width11 {width: 749px;}
|
|
||||||
|
|
||||||
.width12, .grid12, .span-12 {width: 825px;}
|
|
||||||
.input_width12 {width: 819px;}
|
|
||||||
|
|
||||||
/* Subdivided grid spaces */
|
|
||||||
.emptycols_left1, .prepend-1 {padding-left: 70px;}
|
|
||||||
.emptycols_right1, .append-1 {padding-right: 70px;}
|
|
||||||
.emptycols_left2, .prepend-2 {padding-left: 140px;}
|
|
||||||
.emptycols_right2, .append-2 {padding-right: 140px;}
|
|
||||||
.emptycols_left3, .prepend-3 {padding-left: 210px;}
|
|
||||||
.emptycols_right3, .append-3 {padding-right: 210px;}
|
|
||||||
.emptycols_left4, .prepend-4 {padding-left: 280px;}
|
|
||||||
.emptycols_right4, .append-4 {padding-right: 280px;}
|
|
||||||
.emptycols_left5, .prepend-5 {padding-left: 350px;}
|
|
||||||
.emptycols_right5, .append-5 {padding-right: 350px;}
|
|
||||||
.emptycols_left6, .prepend-6 {padding-left: 420px;}
|
|
||||||
.emptycols_right6, .append-6 {padding-right: 420px;}
|
|
||||||
.emptycols_left7, .prepend-7 {padding-left: 490px;}
|
|
||||||
.emptycols_right7, .append-7 {padding-right: 490px;}
|
|
||||||
.emptycols_left8, .prepend-8 {padding-left: 560px;}
|
|
||||||
.emptycols_right8, .append-8 {padding-right: 560px;}
|
|
||||||
.emptycols_left9, .prepend-9 {padding-left: 630px;}
|
|
||||||
.emptycols_right9, .append-9 {padding-right: 630px;}
|
|
||||||
.emptycols_left10, .prepend-10 {padding-left: 700px;}
|
|
||||||
.emptycols_right10, .append-10 {padding-right: 700px;}
|
|
||||||
.emptycols_left11, .prepend-11 {padding-left: 770px;}
|
|
||||||
.emptycols_right11, .append-11 {padding-right: 770px;}
|
|
||||||
.pull-1 {margin-left: -70px;}
|
|
||||||
.push-1 {margin-right: -70px;margin-left: 18px;float: right;}
|
|
||||||
.pull-2 {margin-left: -140px;}
|
|
||||||
.push-2 {margin-right: -140px;margin-left: 18px;float: right;}
|
|
||||||
.pull-3 {margin-left: -210px;}
|
|
||||||
.push-3 {margin-right: -210px;margin-left: 18px;float: right;}
|
|
||||||
.pull-4 {margin-left: -280px;}
|
|
||||||
.push-4 {margin-right: -280px;margin-left: 18px;float: right;}
|
|
|
@ -1,396 +0,0 @@
|
||||||
@import url('grid_12-825-55-15.css');
|
|
||||||
|
|
||||||
/*
|
|
||||||
CSS Reset by Eric Meyer - Released under Public Domain
|
|
||||||
http://meyerweb.com/eric/tools/css/reset/
|
|
||||||
*/
|
|
||||||
html, body, div, span, applet, object, iframe,
|
|
||||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
|
||||||
a, abbr, acronym, address, big, cite, code,
|
|
||||||
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
|
||||||
small, strike, strong, sub, sup, tt, var,
|
|
||||||
b, u, i, center, dl, dt, dd, ol, ul, li,
|
|
||||||
fieldset, form, label, legend, table,
|
|
||||||
caption, tbody, tfoot, thead, tr, th, td
|
|
||||||
{margin: 0;padding: 0;border: 0;outline: 0;
|
|
||||||
font-size: 100%;vertical-align: baseline;
|
|
||||||
background: transparent;}
|
|
||||||
body {line-height: 1;}
|
|
||||||
ol, ul {list-style: none;}
|
|
||||||
blockquote, q {quotes: none;}
|
|
||||||
blockquote:before, blockquote:after,
|
|
||||||
q:before, q:after {content: ''; content: none;}
|
|
||||||
:focus {outline: 0;}
|
|
||||||
ins {text-decoration: none;}
|
|
||||||
del {text-decoration: line-through;}
|
|
||||||
table {border-collapse: collapse;border-spacing: 0;}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
body {
|
|
||||||
color: #000;
|
|
||||||
background-color: #dcdcdc;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
color: #1883ba;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1{
|
|
||||||
font-size: 32px;
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
margin-bottom: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2{
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#container {
|
|
||||||
width: 865px;
|
|
||||||
margin: 0px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#header {
|
|
||||||
padding: 20px;
|
|
||||||
font-size: 36px;
|
|
||||||
background-color: #000;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#header span {
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
#main_content {
|
|
||||||
background-color: #fff;
|
|
||||||
padding: 60px 20px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#footer p {
|
|
||||||
margin: 0;
|
|
||||||
padding-top: 10px;
|
|
||||||
padding-bottom: 50px;
|
|
||||||
color: #333;
|
|
||||||
font: 10px Arial, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tabs {
|
|
||||||
width: 100%;
|
|
||||||
height: 31px;
|
|
||||||
background-color: #444;
|
|
||||||
}
|
|
||||||
.tabs li {
|
|
||||||
float: left;
|
|
||||||
margin: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
background-color: #444;
|
|
||||||
}
|
|
||||||
.tabs li a {
|
|
||||||
display: block;
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
font: bold 11px/11px 'Arial';
|
|
||||||
text-transform: uppercase;
|
|
||||||
padding: 10px 15px;
|
|
||||||
border-right: 1px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tabs li a:hover {
|
|
||||||
background-color: #00b3ff;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.tabs li.active a {
|
|
||||||
color: #000;
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
div.huge {
|
|
||||||
|
|
||||||
font-size: 300px;
|
|
||||||
line-height: 1em;
|
|
||||||
padding: 0;
|
|
||||||
letter-spacing: -.02em;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
div.glyph_range {
|
|
||||||
font-size: 72px;
|
|
||||||
line-height: 1.1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.size10{ font-size: 10px; }
|
|
||||||
.size11{ font-size: 11px; }
|
|
||||||
.size12{ font-size: 12px; }
|
|
||||||
.size13{ font-size: 13px; }
|
|
||||||
.size14{ font-size: 14px; }
|
|
||||||
.size16{ font-size: 16px; }
|
|
||||||
.size18{ font-size: 18px; }
|
|
||||||
.size20{ font-size: 20px; }
|
|
||||||
.size24{ font-size: 24px; }
|
|
||||||
.size30{ font-size: 30px; }
|
|
||||||
.size36{ font-size: 36px; }
|
|
||||||
.size48{ font-size: 48px; }
|
|
||||||
.size60{ font-size: 60px; }
|
|
||||||
.size72{ font-size: 72px; }
|
|
||||||
.size90{ font-size: 90px; }
|
|
||||||
|
|
||||||
|
|
||||||
.psample_row1 { height: 120px;}
|
|
||||||
.psample_row1 { height: 120px;}
|
|
||||||
.psample_row2 { height: 160px;}
|
|
||||||
.psample_row3 { height: 160px;}
|
|
||||||
.psample_row4 { height: 160px;}
|
|
||||||
|
|
||||||
.psample {
|
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.psample p {
|
|
||||||
line-height: 1.3em;
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.psample span {
|
|
||||||
margin-right: .5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.white_blend {
|
|
||||||
width: 100%;
|
|
||||||
height: 61px;
|
|
||||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNrs3TsKgFAMRUE/eer+NxztxMYuEWQG3ECKwwUF58ycAKixOAGAyAKILAAiCyCyACILgMgCiCyAyAIgsgAiCyCyAIgsgMgCiCwAIgsgsgAiC4DIAogsACIL0CWuZ3UGgLrIhjMA1EV2OAOAJQtgyQLwjOzmDAAiCyCyAIgsQFtkd2cAEFkAkQVAZAHaIns4A4AlC2DJAiCyACILILIAiCzAV5H1dQGAJQsgsgCILIDIAvwisl58AViyAJYsACILILIAIgvAe2T9EhxAZAFEFgCRBeiL7HAGgLrIhjMAWLIAliwAt1OAAQDwygTBulLIlQAAAABJRU5ErkJggg==);
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
.black_blend {
|
|
||||||
width: 100%;
|
|
||||||
height: 61px;
|
|
||||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPJJREFUeNrs3TEKhTAQRVGjibr/9QoxhY2N3Ywo50A28IrLwP9g6b1PAMSYTQAgsgAiC4DIAogsgMgCILIAIgsgsgCILIDIAogsACILILIAIguAyAKILIDIAiCyACILgMgCZCnjLWYAiFGvB0BQZJsZAFyyAC5ZAO6RXc0AILIAIguAyAKkRXYzA4DIAogsACILkBbZ3QwALlkAlywAIgsgsgAiC4DIArwVWf8uAHDJAogsACILILIAv4isH74AXLIALlkARBZAZAFEFoDnyPokOIDIAogsACILkBfZZgaAuMhWMwC4ZAE+p4x3mAEgxinAAJ+XBbPWGkwAAAAAAElFTkSuQmCC);
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
.fullreverse {
|
|
||||||
background: #000 !important;
|
|
||||||
color: #fff !important;
|
|
||||||
margin-left: -20px;
|
|
||||||
padding-left: 20px;
|
|
||||||
margin-right: -20px;
|
|
||||||
padding-right: 20px;
|
|
||||||
padding: 20px;
|
|
||||||
margin-bottom:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.sample_table td {
|
|
||||||
padding-top: 3px;
|
|
||||||
padding-bottom:5px;
|
|
||||||
padding-left: 5px;
|
|
||||||
vertical-align: middle;
|
|
||||||
line-height: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sample_table td:first-child {
|
|
||||||
background-color: #eee;
|
|
||||||
text-align: right;
|
|
||||||
padding-right: 5px;
|
|
||||||
padding-left: 0;
|
|
||||||
padding: 5px;
|
|
||||||
font: 11px/12px "Courier New", Courier, mono;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
white-space: pre;
|
|
||||||
background-color: #eee;
|
|
||||||
display: block;
|
|
||||||
padding: 10px;
|
|
||||||
margin-bottom: 18px;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.bottom,.last {margin-bottom:0 !important; padding-bottom:0 !important;}
|
|
||||||
|
|
||||||
.box {
|
|
||||||
padding: 18px;
|
|
||||||
margin-bottom: 18px;
|
|
||||||
background: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.reverse,.reversed { background: #000 !important;color: #fff !important; border: none !important;}
|
|
||||||
|
|
||||||
#bodycomparison {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
font-size: 72px;
|
|
||||||
height: 90px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bodycomparison div{
|
|
||||||
font-size: 72px;
|
|
||||||
line-height: 90px;
|
|
||||||
display: inline;
|
|
||||||
margin: 0 15px 0 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bodycomparison div span{
|
|
||||||
font: 10px Arial;
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
#xheight {
|
|
||||||
float: none;
|
|
||||||
position: absolute;
|
|
||||||
color: #d9f3ff;
|
|
||||||
font-size: 72px;
|
|
||||||
line-height: 90px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fontbody {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.arialbody{
|
|
||||||
font-family: Arial;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.verdanabody{
|
|
||||||
font-family: Verdana;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.georgiabody{
|
|
||||||
font-family: Georgia;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* @group Layout page
|
|
||||||
*/
|
|
||||||
|
|
||||||
#layout h1 {
|
|
||||||
font-size: 36px;
|
|
||||||
line-height: 42px;
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
#layout h2 {
|
|
||||||
font-size: 24px;
|
|
||||||
line-height: 23px;
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
#layout h3 {
|
|
||||||
font-size: 22px;
|
|
||||||
line-height: 1.4em;
|
|
||||||
margin-top: 1em;
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#layout p.byline {
|
|
||||||
font-size: 12px;
|
|
||||||
margin-top: 18px;
|
|
||||||
line-height: 12px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
#layout p {
|
|
||||||
font-size: 14px;
|
|
||||||
line-height: 21px;
|
|
||||||
margin-bottom: .5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#layout p.large{
|
|
||||||
font-size: 18px;
|
|
||||||
line-height: 26px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#layout .sidebar p{
|
|
||||||
font-size: 12px;
|
|
||||||
line-height: 1.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#layout p.caption {
|
|
||||||
font-size: 10px;
|
|
||||||
margin-top: -16px;
|
|
||||||
margin-bottom: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* @end */
|
|
||||||
|
|
||||||
/* @group Glyphs */
|
|
||||||
|
|
||||||
#glyph_chart div{
|
|
||||||
background-color: #d9f3ff;
|
|
||||||
color: black;
|
|
||||||
float: left;
|
|
||||||
font-size: 36px;
|
|
||||||
height: 1.2em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
margin-bottom: 1px;
|
|
||||||
margin-right: 1px;
|
|
||||||
text-align: center;
|
|
||||||
width: 1.2em;
|
|
||||||
position: relative;
|
|
||||||
padding: .6em .2em .2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#glyph_chart div p {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
font: bold 9px Arial, sans-serif;
|
|
||||||
background-color: #3a768f;
|
|
||||||
width: 100%;
|
|
||||||
color: #fff;
|
|
||||||
padding: 2px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#glyphs h1 {
|
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
}
|
|
||||||
/* @end */
|
|
||||||
|
|
||||||
/* @group Installing */
|
|
||||||
|
|
||||||
#installing {
|
|
||||||
font: 13px Arial, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
#installing p,
|
|
||||||
#glyphs p{
|
|
||||||
line-height: 1.2em;
|
|
||||||
margin-bottom: 18px;
|
|
||||||
font: 13px Arial, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#installing h3{
|
|
||||||
font-size: 15px;
|
|
||||||
margin-top: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* @end */
|
|
||||||
|
|
||||||
#rendering h1 {
|
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
}
|
|
||||||
.render_table td {
|
|
||||||
font: 11px "Courier New", Courier, mono;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on November 25, 2019 */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'lack';
|
|
||||||
src: url('lack-italic-webfont.woff2') format('woff2'),
|
|
||||||
url('lack-italic-webfont.woff') format('woff');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: italic;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'lack-outline';
|
|
||||||
src: url('lack-line-italic-webfont.woff2') format('woff2'),
|
|
||||||
url('lack-line-italic-webfont.woff') format('woff');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: italic;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'lack-outline';
|
|
||||||
src: url('lack-line-regular-webfont.woff2') format('woff2'),
|
|
||||||
url('lack-line-regular-webfont.woff') format('woff');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'lack';
|
|
||||||
src: url('Lack-Regular.woff2') format('woff2'),
|
|
||||||
url('Lack-Regular.woff') format('woff');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,92 +0,0 @@
|
||||||
Copyright (c) 2012, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Oxygen'
|
|
||||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
||||||
This license is copied below, and is also available with a FAQ at:
|
|
||||||
http://scripts.sil.org/OFL
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------
|
|
||||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
||||||
-----------------------------------------------------------
|
|
||||||
|
|
||||||
PREAMBLE
|
|
||||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
||||||
development of collaborative font projects, to support the font creation
|
|
||||||
efforts of academic and linguistic communities, and to provide a free and
|
|
||||||
open framework in which fonts may be shared and improved in partnership
|
|
||||||
with others.
|
|
||||||
|
|
||||||
The OFL allows the licensed fonts to be used, studied, modified and
|
|
||||||
redistributed freely as long as they are not sold by themselves. The
|
|
||||||
fonts, including any derivative works, can be bundled, embedded,
|
|
||||||
redistributed and/or sold with any software provided that any reserved
|
|
||||||
names are not used by derivative works. The fonts and derivatives,
|
|
||||||
however, cannot be released under any other type of license. The
|
|
||||||
requirement for fonts to remain under this license does not apply
|
|
||||||
to any document created using the fonts or their derivatives.
|
|
||||||
|
|
||||||
DEFINITIONS
|
|
||||||
"Font Software" refers to the set of files released by the Copyright
|
|
||||||
Holder(s) under this license and clearly marked as such. This may
|
|
||||||
include source files, build scripts and documentation.
|
|
||||||
|
|
||||||
"Reserved Font Name" refers to any names specified as such after the
|
|
||||||
copyright statement(s).
|
|
||||||
|
|
||||||
"Original Version" refers to the collection of Font Software components as
|
|
||||||
distributed by the Copyright Holder(s).
|
|
||||||
|
|
||||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
||||||
or substituting -- in part or in whole -- any of the components of the
|
|
||||||
Original Version, by changing formats or by porting the Font Software to a
|
|
||||||
new environment.
|
|
||||||
|
|
||||||
"Author" refers to any designer, engineer, programmer, technical
|
|
||||||
writer or other person who contributed to the Font Software.
|
|
||||||
|
|
||||||
PERMISSION & CONDITIONS
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
||||||
redistribute, and sell modified and unmodified copies of the Font
|
|
||||||
Software, subject to the following conditions:
|
|
||||||
|
|
||||||
1) Neither the Font Software nor any of its individual components,
|
|
||||||
in Original or Modified Versions, may be sold by itself.
|
|
||||||
|
|
||||||
2) Original or Modified Versions of the Font Software may be bundled,
|
|
||||||
redistributed and/or sold with any software, provided that each copy
|
|
||||||
contains the above copyright notice and this license. These can be
|
|
||||||
included either as stand-alone text files, human-readable headers or
|
|
||||||
in the appropriate machine-readable metadata fields within text or
|
|
||||||
binary files as long as those fields can be easily viewed by the user.
|
|
||||||
|
|
||||||
3) No Modified Version of the Font Software may use the Reserved Font
|
|
||||||
Name(s) unless explicit written permission is granted by the corresponding
|
|
||||||
Copyright Holder. This restriction only applies to the primary font name as
|
|
||||||
presented to the users.
|
|
||||||
|
|
||||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
||||||
Software shall not be used to promote, endorse or advertise any
|
|
||||||
Modified Version, except to acknowledge the contribution(s) of the
|
|
||||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
||||||
permission.
|
|
||||||
|
|
||||||
5) The Font Software, modified or unmodified, in part or in whole,
|
|
||||||
must be distributed entirely under this license, and must not be
|
|
||||||
distributed under any other license. The requirement for fonts to
|
|
||||||
remain under this license does not apply to any document created
|
|
||||||
using the Font Software.
|
|
||||||
|
|
||||||
TERMINATION
|
|
||||||
This license becomes null and void if any of the above conditions are
|
|
||||||
not met.
|
|
||||||
|
|
||||||
DISCLAIMER
|
|
||||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
||||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
||||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
||||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
||||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
Before Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 38 KiB |
|
@ -1,56 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0.0 0.0 1560.0 341.0" style="enable-background:new 0 0 1559.1 340.2;" xml:space="preserve" width="458" height="100">
|
|
||||||
<style type="text/css">
|
|
||||||
.st0{fill:#345899;}
|
|
||||||
.st1{fill:#0F2650;}
|
|
||||||
</style>
|
|
||||||
<path class="st0" d="M947.7,10.9c-1,0.2-2,1-2.5,1.9c-0.5,1.1-0.7,2.6-0.3,3.6c0.6,1.7,2,2.7,3.8,2.7c1.1,0,1.9-0.3,3.6-1.5l1-0.7 l0.1-0.5c0.4-2.1-0.7-4.2-2.6-5.1C949.9,10.9,948.7,10.7,947.7,10.9z" />
|
|
||||||
<path class="st0" d="M1042,13.3c-0.4,0.1-1.2,0.4-1.6,0.6c-0.9,0.6-1.6,1.7-1.7,2.7c-0.4,3.1,2.1,5.5,5.2,5.1c2.9-0.4,5-2.8,4.2-5 c-0.2-0.7-0.8-1.6-1.4-2.1c-0.6-0.5-1.5-1-2.3-1.2C1044,13.3,1042.6,13.2,1042,13.3z" />
|
|
||||||
<path class="st0" d="M189.3,20.5c-2.3,0.2-4.6,1-7,2.4c-4.4,2.5-7.9,5.8-10.6,9.9c-1.4,2.2-2.1,3.4-3,6c-1.6,4.3-3.1,8.8-4.1,13.1 c-0.2,0.9-0.5,2-0.7,2.5c-0.4,1.5-0.9,3.4-1.1,4.7c-0.2,1.4-0.5,2.5-0.8,3.7l-0.2,0.8v2.9v2.9l0.3,0.5c0.7,1.3,1.3,3,1.7,4.9 c1,4.8,3.1,8.6,6.4,12c2.3,2.3,4.6,3.8,7.8,5.2c2.9,1.2,10,4.6,10.7,5c1.9,1.3,3.4,3.3,3.9,5.6c0.2,1,0.3,1.1,1.7,3.5 c1.6,2.7,1.9,3.3,2.4,5.6c1.8,8.4,2.3,17.7,1.4,26.4c-0.4,3.9-1.9,7.2-4.6,10.1c-0.6,0.6-2.2,2-2.9,2.5c-1.8,1.2-4.3,2-5.6,1.8 c-1-0.2-1.2-0.4-1.4-2c-0.2-1.2-0.2-3,0-4.3c0.2-1.9-0.1-3.3-1.3-5.1c-0.2-0.4-0.9-1.2-1.4-2c-0.6-0.7-1.1-1.5-1.3-1.7l-0.3-0.4 h-2.4c-1.3,0-2.4,0-2.4-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.2,0-0.1c-0.1,0-0.2,0.1-0.2,0.2c-0.2,0.5-1,0.7-1.6,0.5 c-0.2-0.1-0.3,0-1,0.7c-3.1,3-5,6.6-5.7,10.8c-0.6,3.4-0.4,7.2,0.6,11.7c0.3,1.2,0.7,2.3,2,4.8c0.5,1,0.9,1.8,0.8,1.8 c-0.1,0,2.3,1.2,3.4,1.7c3.4,1.3,7,1.9,11,1.7c6.3-0.3,12.7-2.6,18.1-6.7c4.1-3.1,7.5-7.2,9.9-11.9c1.1-2.2,2.1-5,2.7-7.5 c1.4-5.6,1.9-15.6,1.4-23.6c-0.3-4.9-0.9-9.1-2-14c-0.2-1-0.6-3.1-0.8-4.6c-0.2-1.5-0.5-2.9-0.6-3.2c-0.1-0.6-1.1-2.5-2.1-4.2 c-4.7-7.9-11.4-14.2-19.6-18.5c-0.7-0.4-1.3-0.6-1.4-0.6c-0.3,0-3.3-0.8-4.7-1.3c-4.4-1.5-5.2-2.7-5.5-8c-0.1-1.8-0.1-6.7,0-8.4 c0.4-7.2,2-12.9,4.8-17.3c0.6-1,1.9-2.6,3.5-4.1c1.6-1.6,1.8-1.7,2.7-1.8c1.3-0.1,2.7,0.6,2.9,1.4c0.2,0.6,1.7,9.1,1.7,9.6 c0,2.1,0.6,6.4,1.2,8.7c0.4,1.6,1.8,2.8,3.6,3.1c1,0.2,2.8-1,3.5-2.2c0.4-0.7,1.1-3.9,1.5-6.4c0.5-3.8,0.6-8.2,0.1-12 c-0.3-2.4-0.9-5.2-1.3-6.6c-0.4-1.1-1.3-2.9-1.8-3.8c-2.1-3.2-5.2-5.3-8.7-5.9C191.8,20.4,190.2,20.4,189.3,20.5z" />
|
|
||||||
<path class="st0" d="M349.2,24.7c-11.2,5.8-19,14.9-24.4,28.3c-1.8,4.6-2.8,8.1-6.2,21.8c-1.4,5.6-1.9,7.3-3.1,10.1 c-0.2,0.3-0.2,0.5-0.1,0.5c0.1,0,0,0.6-0.1,2.1c-0.2,2.8-0.5,6.1-0.7,10.6c-0.1,2.1-0.3,6.1-0.5,8.9c-0.8,15.3-1.2,24.3-1.3,33.4 c-0.1,5,0,7.1,0.3,10c0.4,4,1.1,7.3,2.3,10.8c1.9,5.8,4.8,10.5,9.1,15l1,1l1.5,0.6c0.9,0.3,2.5,1.1,3.8,1.6 c9.8,4.7,16.5,5.9,22.5,3.9c6.6-2.2,11.8-8.4,16.9-20.1c1.6-3.7,3.5-8.3,5.1-12.5l0.7-1.8l0.2-1.7c0.6-6.5,1-12.4,1.2-15.8 c0-0.7,0.1-1.5,0.2-1.8c0.2-1,0.9-2.1,1.8-2.8c0.6-0.5,1.2-0.8,2.2-1.1c0.5-0.1,1.2-0.4,1.6-0.6c0.9-0.4,2.5-1.5,3.1-2.1 c0.9-0.9,1.7-2.1,2.1-3.4c0.2-0.7,0.2-0.8,0.2-2c0-1.1,0-1.4-0.1-1.8c-0.9-2.9-3.3-4.9-6.2-5c-0.7,0-2.1,0.1-14.7,1.8l-13.9,1.9 l-0.8,0.4c-1.2,0.6-1.9,1.2-2.7,1.9c-1.5,1.4-1.8,2.9-1.1,4.9c0.5,1.5,1.2,2.6,2.3,3.6c1,0.9,2.7,1.8,4.8,2.3 c1.7,0.4,3.6,1.4,4.4,2.2c1.4,1.4,1.4,3.7,0,9.3c-1.6,6.5-4.4,13.6-7.9,19.2c-2,3.3-3.5,4.9-5.2,5.6c-0.5,0.2-0.6,0.2-1.6,0.2 c-1,0-1.2,0-1.7-0.2c-0.8-0.3-1.9-0.8-2.9-1.4c-1.1-0.7-3.2-2.3-3.7-2.8c-1.2-1.2-1.9-2.9-2.1-4.7c0-0.4-0.1-0.7-0.2-0.9 c-0.2-0.3-0.3-0.9-0.1-1.1c0-0.1,0-0.3-0.1-0.5c-0.7-1.7-1.4-4.1-1.7-6c-0.2-1.3-0.3-2.2-0.5-4.8c-0.6-9.2-0.8-18.9-0.6-27.5 c0.2-8.9,0.4-14.8,1.1-23c0.3-4.2,0.6-5.5,1.5-8.2c0.3-0.8,0.4-1.2,0.3-1.3c-0.1-0.2,0-1.1,0.2-1.4c0.1-0.2,0.2-0.4,0.3-1.7 c0.5-8.1,2.4-15.9,5.6-23.3c0.8-1.9,2.6-5.5,3.7-7.4c1.6-2.9,2.8-4.4,4.6-6.3c1.6-1.6,3-2.6,4.7-3.5c2.3-1.2,4.6-1.7,7.6-1.8 c2.3-0.1,3.2,0.1,3.9,0.9c0.9,0.9,1.1,2.2,1.1,8.3l0,3.8l0.6,0.5c0.8,0.7,1.1,0.8,2,1c1.1,0.2,3.4,0.3,4.2,0c1.2-0.3,2-1,2.4-1.8 c0.4-0.8,1.2-4.1,1.5-6.2c0.2-1.4,0.3-4.1,0.2-5.3c-0.5-4.5-2.6-8.1-6.5-10.9c-1.2-0.9-1.9-1.5-2.2-2l-0.3-0.4l-8.9-0.3 c-4.9-0.2-8.9-0.3-8.9-0.3C350.8,23.9,350.1,24.3,349.2,24.7z" />
|
|
||||||
<path class="st0" d="M420.4,26.2c-3.1,0.3-6.4,0.9-9.8,1.9c-2,0.6-4.2,1.3-4.7,1.6c-1.6,0.8-2.8,2.2-3.5,4c-0.2,0.5-0.2,0.8-0.3,2.3 c0,1-0.1,2.3-0.2,3c-0.1,0.7-0.2,2.6-0.3,4.2c-0.1,1.6-0.4,7.9-0.8,13.9c-1.4,23.3-1.9,32.8-2.3,43.8c-0.1,3.4-0.2,5.6-0.6,14.7 c-0.4,9.8-0.5,21.6-0.4,44.1l0,9.7l1.1,0.6c1.2,0.8,1.6,0.9,2.6,1.4c1.8,0.7,3.2,1.1,4.7,1.2c3.5,0.2,5.8-1.5,7.1-5.3 c1-3.1,1.4-8.6,0.8-14.6c0-0.6-0.2-6.8-0.4-13.9c-0.2-7.1-0.4-13.7-0.5-14.7c-0.2-2.7-0.1-5,0.1-6.4c0.4-1.8,2.3-3.4,5-4 c1-0.2,2.5-0.4,3.1-0.3c1.2,0.2,2.5,1.1,3,2.2c0.2,0.3,0.3,0.6,0.3,0.7c0,0.2,2.7,9.9,6.7,24.3c3.6,12.8,4.5,16.3,6,21.8l1.2,4.4 l1.3,2.2c2.3,4.1,4.1,6.8,5.2,8.1c1.6,1.9,4.4,3,6.8,2.7c3.2-0.4,5.8-2.7,6.7-5.9c0.2-0.7,0.2-0.9,0.2-2c0-1,0-1.3-0.2-1.8 c-0.1-0.3-0.3-1-0.4-1.5c-0.1-0.5-0.4-1.2-0.5-1.5c-0.2-0.4-0.7-1.7-1.2-3.1c-0.5-1.3-2.3-6.3-4.1-11c-5.8-15.5-7.5-20.3-10.1-28.2 c-1.5-4.6-1.7-4.9-3.6-8.6c-1.6-3.2-2.3-4.7-2.8-6.4c-0.2-0.8-0.2-1-0.2-2.2c0-1.2,0-1.4,0.2-2c0.5-1.6,1.6-3.5,3.3-5.4 c0.3-0.4,1.6-1.7,2.8-3c2.9-3,4.1-4.4,5.2-6.3c0.9-1.5,7.4-14.3,10.1-19.9l0.8-1.6l0.1-1.3c0-0.7,0.1-3.4,0.2-5.9 c0.1-2.5,0.2-5.3,0.2-6.2c0-1.1,0-1.7,0-1.8c0-0.1-0.1-0.2,0-0.2c0.1-0.3-0.3-1.1-1.7-3.8c-0.5-0.9-1.3-2.4-1.7-3.3 c-0.4-0.8-1.1-2.1-1.5-2.8c-6.7-11.2-15.5-17.2-26.5-18.3C425.6,26.1,421.8,26.1,420.4,26.2z M421.7,40c4.6,0.4,8.9,2.1,12.5,5 c0.9,0.8,2.7,2.6,3.5,3.5c2.2,2.8,3.8,6,4.5,9.6c0.2,0.9,0.2,1.2,0.2,2.4c0,1.7-0.1,2.8-0.5,4.4c-0.5,2-1.1,3.3-3,6.3 c-4.4,7.2-8.8,13.4-14.2,20.2c-1.8,2.3-2.8,3.2-6.4,5.8c-1,0.7-2.3,1.7-2.8,2l-0.9,0.7l-0.6-0.6c-0.9-1-1.5-2.1-1.7-3.5 c-0.1-0.9,0-2.7,0.2-4.5c0.5-3.1,0.5-3.4,0.3-6.6c-0.1-1.4-0.1-3.6-0.2-7.5c0-4.9,0-5.6-0.2-5.6c-0.1,0-0.1-1.5-0.1-12.2 c0-7.7,0-12.6,0.1-13.3c0.2-2.1,0.6-3.4,1.7-4.5c0.5-0.5,0.7-0.7,1.3-1C417.1,40,419.2,39.8,421.7,40z" />
|
|
||||||
<path class="st0" d="M135.4,26.9c-10.5,0.4-17.2,2.8-23.1,8.2c-0.5,0.4-1.1,1-1.4,1.3l-0.5,0.6v3.8v3.8l0.7,0.9c0.8,1.1,1,1.5,1.1,2 c0,0.4,0.2,7.9,0.3,11.7c0,2.5,0,7-0.2,9.3c-0.3,4.2-0.9,8.2-1.7,11.6l-0.3,1.3v1.9c0,1.1-0.1,3-0.1,4.3c-0.1,1.3-0.2,4.3-0.3,6.6 c-0.4,10.2-0.7,14.3-1.3,19.8c-1.2,10.3-1.1,21.2,0.2,34.4c0.7,7.1,2.1,17.7,2.5,19.2c1.3,4.6,4.9,7.9,9.7,9 c0.7,0.1,1.1,0.2,2.3,0.2c1.4,0,1.9,0,3.2-0.4c0.4-0.1,1.6-0.3,2.7-0.6c4.8-0.9,10.4-2.5,14.1-4c3.7-1.5,8.7-3.9,10.3-5.1 c1.5-1.1,2.7-2.7,3.2-4.7c0.3-1,0.3-2.7,0-3.8c-0.5-1.9-1.1-3.1-2.1-4.2c-1.2-1.2-2.6-1.9-4.4-2.2c-0.6-0.1-1-0.1-2.5,0.1 c-5,0.5-8.9,1-12.9,1.8c-1.6,0.3-2.8,0.4-3.5,0.2c-1.4-0.3-2.4-1.3-2.6-2.6c-0.1-0.4-0.5-4.5-1.2-10.8c-1.2-11.5-1.6-17-1.6-20.9 c0-2.7,0-3,0.4-3.8c0.5-1,1.6-1.7,4.6-2.7c2-0.7,10.8-4.2,11.3-4.5c1.8-1.1,3-3,3.1-5.1c0-0.7,0-0.8-0.2-1.4 c-0.3-0.9-0.6-1.4-1.4-2.2c-0.8-0.8-1.4-1.1-2.4-1.4c-0.6-0.2-0.7-0.2-6-0.2c-4.8,0-5.4-0.1-5.9-0.2c-1.6-0.5-2.4-1.4-2.7-3.2 c-0.1-0.7-0.9-32.6-0.9-36c0-2.7,0.1-4.8,0.3-9.5c0.1-2.7,0.2-3.2,0.3-3.3c1.3-0.9,3.2-1.7,5.2-2c1.3-0.2,4.2-0.2,7,0 c2.6,0.2,3.4,0.2,4.3,0.1c3.5-0.6,6.5-3.2,7.6-6.6c0.5-1.5,0.6-2.6,0.3-3.8c-0.6-3-2.7-5.5-5.5-6.5c-1.4-0.5-1.9-0.6-5.5-0.6 C138.5,26.8,136.3,26.8,135.4,26.9z" />
|
|
||||||
<path class="st0" d="M512.5,27c-0.6,0.1-1.6,0.4-2.2,0.6c-1.3,0.5-2.4,1.3-3.9,2.7c-3.3,3.1-5.9,6.5-8,10.7 c-0.8,1.7-1.2,2.6-2.7,6.7c-2.2,6.2-4.1,11.3-5.7,15.5l-0.6,1.7l-0.2,1.5c-1.4,12.1-4.5,24.2-9.1,35.7l-0.8,2.1l0.1,0.4 c0.2,0.5,0.1,0.8-0.2,1.1c-0.2,0.2-0.5,1.1-4.2,15.5c-2.6,9.9-3.6,13.7-5,19.3c-0.8,3-1.2,4.8-1.3,5.4c-0.1,0.5-0.4,2.6-0.7,4.7 c-0.9,5.9-1.3,8.6-1.6,12c-0.3,3.5-0.5,7.9-0.4,8.7c0.3,2,1.6,3.4,3.3,3.4c0.5,0,1.4-0.3,2-0.6c1-0.6,1.8-1.4,2.3-2.5 c1.7-3.6,3-6.9,4.3-10.6c0.7-1.9,1.1-3.7,2.6-11.2c1.3-6.1,1.7-8,1.9-8.5c0.8-1.9,2.7-3.6,4.6-4.1c0.2,0,3.7-1.1,7.6-2.3 c4-1.2,7.5-2.3,7.8-2.4c1.7-0.4,2.9,0,3.5,1.2c0.2,0.4,0.2,0.5,0.2,2.4c-0.1,5.8-0.5,21.6-1.1,37.1l-0.2,4.2l0.3,0.5 c0.4,0.7,0.9,1.5,1.7,2.5c0.3,0.4,0.8,1.1,1,1.5c0.6,0.9,1.7,2,2.5,2.6c1.5,1,3.7,1.6,5.4,1.4c1.2-0.1,3-0.6,3.9-1 c0.6-0.3,1.5-1,2-1.5c1.3-1.4,2-3,2.7-5.9c0.2-0.8,0.4-1.8,0.4-2.2c0-0.5,0.1-9.3,0.1-24c0-12.7,0.1-31.7,0.1-42.1 c0.1-27.5,0.1-52.3,0-54c-0.4-6.6-1.5-13.8-3.1-20.1c-0.4-1.7-0.6-2.4-1.2-3.4c-0.5-1-0.9-1.5-1.6-2.3c-1-1-2.1-1.7-3.4-2.1 c-0.6-0.2-0.9-0.2-1.8-0.2C513.3,27,512.7,27,512.5,27z M506.4,65.3l0.5,2.1l0.1,6.2c0.1,3.6,0.1,13.9,0.1,24.4 c0,17,0,18.2-0.1,18.8c-0.5,2.1-1.6,2.9-5.4,3.8c-0.9,0.2-11.5,2.1-11.5,2c0,0-0.2-0.5-0.5-1c-0.8-1.6-0.8-1.1,0.5-5.5 c1.6-5.4,2.1-7.3,6.9-23.1c2.3-7.8,4.9-16.3,5.7-19c0.8-2.7,1.6-5.3,1.7-5.7c0.1-0.4,0.2-0.8,0.2-0.9c0,0,0.2-0.6,0.4-1.2 c0.4-1,0.5-1.7,0.8-2.7c0-0.2,0.1-0.3,0.1-0.3C505.9,63.2,506.2,64.2,506.4,65.3z" />
|
|
||||||
<path class="st0" d="M1346.2,28.8c-1.6,0.2-2.9,0.6-4.9,1.6c-2.6,1.3-5.4,3-7.5,4.7c-1.1,0.8-3.8,3.1-4.9,4.1 c-5.8,5.2-11.3,11.7-15.2,18.4c-0.4,0.7-1.6,2.5-2.7,4c-1.1,1.5-2,2.9-2,3.1c0,0.2-0.2,0.4-0.3,0.4c-0.2,0.2-4.6,9.9-4.6,10.2 c0,0.1-0.1,0.3-0.2,0.4c-0.1,0.1-0.3,0.7-0.5,1.6c-0.5,1.8-1.9,6.7-2.8,9.9c-0.4,1.4-0.8,3-0.9,3.5c-0.2,1.1-0.5,2.4-0.8,3.1 c-0.1,0.3-0.2,0.7-0.2,0.9c0,0.3,0,0.4-0.2,0.6c-0.2,0.2-0.2,0.3-0.3,0.7c-0.6,5-2.3,20.8-2.9,26.6c-1,9.9-1,10.4-1.1,13.6 c0,3,0,4.5,0.3,6.8c0.5,4.7,1.7,9.7,3.4,14c0.7,1.9,1.9,4.5,2.4,5.5c3.4,6.3,9.7,10.8,16.6,12c1.7,0.3,2.5,0.3,6.2,0.4 c6.2,0.1,8.1,0.1,9.2-0.1c8.9-0.9,15.6-5.1,20.1-12.6c1-1.7,2.4-4.5,2.6-5.4c0.3-1.4,1.4-4.2,1.7-4.5c0.1-0.1,0.5-0.4,1-0.7 c0.9-0.6,1-0.6,1.3-0.1c0.3,0.5,0.4,1.2,0.5,2.2c0,0.8-0.1,2.6-0.2,3.2c-0.1,0.3,0,0.5,0.5,1.8c1.1,2.8,3,6.8,4.1,8.6 c0.5,0.8,1.5,2.2,2.5,3.4c1,1.2,3.4,3.7,4.5,4.5c2.6,2.1,5.6,3.6,8.6,4.4c2,0.5,3.1,0.6,5.7,0.6c1.5,0,2.6,0,3.2-0.1 c3.4-0.4,6.6-1.3,10.4-2.7c1.1-0.4,1.3-0.5,1.5-0.8c0.9-1.2,10-14.6,9.9-14.6c0-0.2,0.4-2.6,0.7-3.6c0.2-0.6,0.6-2,1-3.2 c4.4-12,7-24.9,7.9-38.5c0.3-4.2,0.3-5.6,0.3-11.9c0-7.1-0.1-9.8-0.6-16.2c-0.4-4.8-0.7-7.1-1.2-9.6c-1.4-7-4.1-11.9-8.6-15.8 c-1.7-1.5-2.7-2.6-3.4-4.2c-0.3-0.7-0.8-2.2-0.8-2.5c0-0.3-1.1-2.3-1.7-3.1c-1.3-1.8-3.1-3.2-4.9-3.8c-1.8-0.6-4-0.6-5.9,0.1 c-2.1,0.7-4.5,2.5-7.4,5.3c-2.2,2.1-3.2,3.3-5.6,6.6c-5.6,7.7-9.7,15.3-12.9,23.7c-4,10.7-5.8,20.4-7.8,41.4 c-0.5,5.4-0.5,5.7-0.8,6.7c-0.6,1.9-1.9,2.8-4.2,3.1c-2.4,0.3-2.9,0.4-3.9,0.8c-1.7,0.8-2.9,1.9-4.5,4.4c-0.6,1-1.2,2.1-2.9,5.4 c-1.8,3.6-2.2,4.3-2.7,5c-2.7,3.5-7,6-11.8,6.7c-1.1,0.2-3.9,0.1-4.9,0c-2.4-0.4-4.2-1.1-6.1-2.4c-1.6-1-2.4-2-3-3.8 c-1.7-4.5-2.7-8.8-3.4-13.7c-0.2-1.3-0.2-1.7-0.2-6.2c0-8.2,0.4-14.6,1.4-22.4c1.4-11,4.1-22.5,7.5-32.4c2.8-8,7.2-15.9,12.7-22.7 c3.1-3.8,7.2-7.9,10.9-11c0.9-0.7,1-0.8,1.8-1.1c0.7-0.2,0.9-0.3,1.8-0.3c1.7-0.1,2.2,0.1,2.6,1c0.7,1.3,0.7,3,0.3,6.5 c-0.1,0.9-0.2,1.4-0.5,2.1c-0.6,1.7-1.2,4.2-1.2,5.1c0,1.1,0.6,2.3,1.6,3.3c0.6,0.6,0.7,0.7,1.2,0.8c0.7,0.2,1.8,0.2,2.5,0 c1-0.2,1.5-0.6,2.3-1.4c3.1-3.2,5.3-8.4,5.8-14c0.1-1.5,0.1-4.6-0.2-5.8c-0.3-1.8-0.6-2.8-1.3-4.3c-0.8-1.7-1.7-2.9-2.9-4 C1354.1,29.5,1350.1,28.2,1346.2,28.8z M1394.5,71.2c0.7,0.3,2.9,1.7,3.9,2.6c2.3,1.9,4,4.8,4.6,7.7c0.4,1.8,1,8.6,1.4,15 c0.1,2.4,0.2,11.2,0.1,13.9c-0.5,13.6-2.8,25.6-6.9,37.2c-1.7,4.8-3.6,8.6-6.1,12.2c-0.3,0.5-0.8,1.2-1.1,1.6c-0.9,1.4-1.7,1.9-3,2 c-1.2,0.1-1.9-0.2-3.6-1.2c-1.1-0.7-1.9-1.3-2.8-2.1c-2-1.9-3.4-4.4-3.9-7.1c-0.3-1.6-0.4-2.5-0.3-11.3c0-4.6,0-9.2,0-10.3l0-1.9 l-0.4-0.1c-0.2-0.1-0.4-0.2-0.4-0.2c0-0.1,0.2-1.4,0.4-2.9c0.2-1.5,0.6-4.9,1-7.6c1.7-13.5,2.4-18.9,3.1-21.6c2-8.1,5.2-16.1,9.2-23 c1.1-2,1.9-2.8,2.9-3.1C1392.9,70.9,1393.9,71,1394.5,71.2z" />
|
|
||||||
<path class="st0" d="M866.4,29.7c-2.9,0.6-5,2.4-6.2,5.1c-1,2.4-1.5,3.9-2.5,8c-1.6,6.2-2.5,10.8-3.2,16.2 c-1.5,10.4-4.1,22.4-8.6,38.3c-0.4,1.6-1.5,5.3-2.3,8.2c-0.8,2.9-1.6,5.6-1.7,6c-0.4,1.6-1,3.7-1,3.7c0,0-0.3-0.9-0.6-1.9 c-0.6-1.8-0.7-2.2-2.5-10.8c-4.9-22.9-8.9-40.9-9.7-44c-0.8-2.8-0.7-5.7,0.3-8.3c0.6-1.8,0.7-2.2,0.8-3c0.1-1.8-0.5-3.6-1.8-4.9 c-0.8-0.8-2.6-2-4.7-3c-2.2-1.1-4.9-2.1-5.9-2.1c-1.3-0.1-2.5,0.4-3.4,1.3c-0.6,0.6-0.8,1-1.1,1.8c-0.3,0.7-0.3,1.9-0.2,4.5 c0.1,2.8,0.3,4.3,0.7,8c2.3,18.7,2.8,22.3,3.8,29.2l0.5,3.4l0.6,1.2c0.6,1.3,1,2.4,1.3,3.8c0.5,2.1,0.6,3.5,0.7,8.3 c0.1,2.1,0.7,15.5,1.3,29.8c1.4,30.3,1.2,27,2.8,40.8c0.7,6.1,0.7,6.1,1.1,7.6c0.4,1.6,0.8,2.6,1.4,3.7c1.4,2.7,3.2,4.3,5.4,5.1 c0.6,0.2,2.2,0.5,3.5,0.6c3.1,0.3,6.4-1.3,8.2-4c0.2-0.3,1.1-2,2-3.9l1.7-3.4l0.6-3.3c0.7-3.9,1.2-6.6,3.1-17.4 c1.7-9.4,3.1-17.4,3.5-19.1c0.3-1.6,0.8-3.2,1.9-6.6c1.4-4.6,1.4-4.5,1.4-5.6c0-0.5,0.1-1.3,0.1-1.8c0.3-2,5.4-24.9,13.9-62.1 c1.8-7.9,3.4-14.8,3.5-15.5c0.5-2.6,0.7-5.2,0.6-6.2c-0.4-3.4-2.8-6.4-6.1-7.5c-0.5-0.2-0.7-0.2-1.5-0.2 C867.4,29.5,866.8,29.6,866.4,29.7z" />
|
|
||||||
<path class="st0" d="M1172.5,29.9c-4,0.4-7.1,2.1-9.8,5.4c-1.2,1.5-2.1,2.9-3.8,5.9c-3.8,7-5.7,12.1-7.8,21.4 c-1.4,6.4-2.2,10.9-3.1,19.1c-0.4,3.5-0.4,6.3,0,8.9c1,6.6,4.2,11.7,9.6,15.3c1.7,1.1,3.3,2,5.1,2.7c2.4,1,4.4,2.2,6.1,4 c2.4,2.4,3.9,5.2,4.7,8.7c0.9,4,1.4,6.1,1.8,8.8c0.8,4.7,1.5,10.7,1.5,13.3c0,4.3-1.7,8.3-4.8,11.4c-1.9,1.9-4,3.2-6.6,4 c-1.3,0.4-1.5,0.4-2.4,0.1c-0.8-0.3-1.8-1-2-1.4c-0.2-0.4-0.6-3.7-0.9-6.8c-0.3-3.3-0.3-4.8-0.3-11.4l0-6.7l-0.2-0.6 c-0.8-2.4-2.8-4.2-5.2-4.7c-0.7-0.1-2.1-0.1-2.8,0c-1.6,0.3-2.9,1.1-4,2.5c-1.1,1.3-2,3-2.6,4.6c-0.8,2.3-1.6,7-1.9,11 c-0.1,1.6-0.1,6.4,0,8c0.4,4.9,1.2,9.3,2.6,13.5c0.9,2.8,2.1,5.1,3.8,7.2c0.9,1.2,2.4,2.7,3.1,3.3c1.4,1.1,3,1.9,4.7,2.3 c0.8,0.2,1,0.2,2.5,0.2c2,0,2.5-0.1,4.7-0.9c5.4-1.8,10.6-4.5,15.2-7.8c2.3-1.6,5.2-4.1,6.6-5.6c2.6-2.7,4.7-6.3,5.9-10 c0.4-1.2,0.5-1.8,1-4.1c0.5-2.3,1-4.3,1.6-6.4c0.2-0.9,0.4-1.7,0.4-1.9s-0.1-0.7-0.3-1.1c-0.2-0.4-0.4-1.1-0.4-1.6 c-0.2-1-0.5-3.6-0.6-5.1c-0.8-11-3.3-20.4-8-30.1l-0.8-1.6l-1.6-1.4c-4.7-4.1-5.9-5-8-6.4c-2.3-1.5-4.1-2.4-6.6-3.2 c-1.7-0.5-2.2-0.8-3-1.6c-0.7-0.7-1.1-1.4-1.4-2.3c-0.2-0.8-0.3-2.1-0.4-6.6c-0.1-4.9,0.2-8.8,1-13.6c1.1-6.8,3.3-13.5,6.2-19.5 c1.1-2.2,1.6-2.9,2.9-3.5c0.6-0.3,0.6-0.3,1.4-0.3c0.7,0,0.8,0,1.4,0.3c0.6,0.3,1.3,0.9,1.7,1.4c0.3,0.4,1.2,2,1.7,3 c1.2,2.4,2.2,5.6,2.4,8.3c0.2,1.6,0,6.5-0.6,16c-0.1,2.2-0.3,5-0.3,6.2c-0.1,2.2-0.1,2.3-0.4,3.5c-0.6,2.5-1,5.2-0.9,6.1 c0.1,1.4,0.7,2.3,2,2.9c0.9,0.4,1.5,0.6,2.2,0.6c0.7,0,1.3-0.2,2-0.5c0.4-0.2,0.8-0.5,2-1.7l1.4-1.4l0.3-1.8c0.2-1,1.1-6.2,2.1-11.6 c1-5.4,1.9-10.6,2-11.4c0.1-0.8,0.3-2,0.4-2.5c0.2-1,0.2-1,0.2-4.1l0-3.2l-0.4-1.1c-0.4-1.2-0.9-2.9-1.5-4.8c-1-3.6-1.9-5.8-3.5-8.5 c-1.4-2.4-2.8-4.4-4.5-6c-3-3-6.3-4.6-10.2-5C1174.7,29.8,1173.1,29.8,1172.5,29.9z" />
|
|
||||||
<path class="st0" d="M718.1,32.1c-2.3,0.3-5.7,2-8.5,4.3c-2.4,1.9-6,6.1-8.6,10.1c-4.5,6.8-7.4,14.1-8.9,22.4 c-0.5,2.8-0.6,3.5-0.6,5.9c0,2,0,2.4,0.2,3.2c0.6,3.3,1.9,5.7,4.3,8.2c1.7,1.7,3.6,3.1,6.4,4.7c2.4,1.4,4,2.6,5.7,4.2 c3,3,5.2,6.6,6.4,10.7c0.4,1.3,1.2,4.7,1.4,6c0.6,3.3,1,9.3,0.9,14.2c-0.1,6.9-0.9,13.1-2.4,19.6c-0.7,3.2-1.5,5.4-3,8.1 c-1.8,3.5-4.8,7.2-6.9,8.9c-2.3,1.7-4.1,1.8-5.7,0.1c-0.8-0.8-1.2-1.4-1.8-2.6c-0.6-1.3-1.3-2.6-2.1-4c-1.1-1.8-2.2-2.9-3.8-3.6 c-1.2-0.6-1.9-0.7-3.4-0.7c-1.4,0-2,0.1-3.1,0.6c-1.3,0.5-2.8,1.8-3.5,2.9c-0.2,0.3-0.5,0.8-0.7,1.1c-1.4,2.3-2.1,5.2-1.9,7.7 c0.2,2,0.5,3.1,1.7,5.4c2.6,5.1,6,9.7,9.4,12.4c5.3,4.3,11.3,5.4,17.4,3.3c2.4-0.8,4.3-1.8,6.8-3.6c2.6-1.9,4-3.1,6.4-5.5 c3.1-3.1,5.3-5.9,7.4-9.4c1.6-2.7,2.5-4.4,3.9-8.1c1.1-2.8,1.8-4.4,2.5-5.8c0.6-1.2,0.6-1.3,1.1-5.1c0.9-7.6,1.3-13.5,1.3-21.2 c0-5.6-0.2-9.2-0.6-14.4c-0.3-3.1-0.7-7.3-1.1-9.8l-0.2-1.1l-1-1.9c-3.8-7.5-6.3-11.7-9.4-15.3c-2.3-2.8-5.2-5.3-8-7 c-1.7-1.1-2.1-1.3-3-1.4c-0.5-0.1-1.1-0.3-1.5-0.4c-0.8-0.2-2.4-1-3-1.4c-1-0.7-1.6-3.3-1.3-5.2c0.4-2.7,4.4-13.4,5.8-15.9 c0.4-0.7,1.1-1.3,1.6-1.6c0.4-0.2,0.5-0.2,1.4-0.2c0.8,0,0.9,0,1.6,0.3c0.4,0.2,1,0.4,1.3,0.6c1.7,1,3.5,1,5,0 c1-0.6,1.6-1.6,2.4-3.5c1.2-3.1,1.4-6.6,0.6-9.8c-0.7-3-3-5.3-6.1-6.1C720.4,32.1,718.7,32,718.1,32.1z" />
|
|
||||||
<path class="st0" d="M71.2,32.4c-1,0.2-2,0.6-2.9,1.2c-1.8,1.2-3.1,3.3-3.4,5.4c-0.1,0.8-0.2,2.7-0.4,6.5c-0.1,1.6-0.1,3.2-0.2,3.4 c0,0.2-0.1,1.8-0.2,3.5c-0.2,4.6-0.4,9-0.8,17c-0.8,14.8-1,20.2-1.2,29.3c-0.4,20.8-0.5,45.7-0.3,57.4c0.1,5,0.1,5.5,0.6,7.2 c1.2,4.4,4.1,7.2,8.7,8.1c0.8,0.2,1.1,0.2,3,0.2c1.6,0,2.3,0,2.9-0.1c0.4-0.1,5.6-1.2,11.6-2.4l10.8-2.3l0.4-0.4 c0.3-0.3,0.6-0.8,1.1-1.8c1.5-3.2,2.1-5,2.1-7.2c0-0.9,0-1.3-0.2-1.8c-0.7-2.9-2.8-4.7-6.4-5.6c-1.9-0.5-1.9-0.5-9.1-0.5l-6.7,0 l0-0.2c-0.1-0.3-0.6-5.1-0.7-6.1c0-0.6-0.1-8.9-0.1-22.2c0-28.5-0.1-45.5-0.4-73.4c-0.1-5.4-0.1-9.9-0.1-9.9c0-0.2,0-0.4-0.1-0.3 c0,0-0.9-0.8-1.9-1.7c-1-1-2-1.9-2.3-2.1C73.7,32.3,72.5,32.1,71.2,32.4z" />
|
|
||||||
<path class="st0" d="M1001.1,32.4c-4.1,0.6-7.7,2.6-11.8,6.5c-2.8,2.7-4,4.4-6.8,9.2c-4.5,8-7.8,17.1-9.3,26.3 c-0.4,2.4-0.5,3.6-0.5,6.3c-0.1,3.5,0.1,5.5,0.8,8.3c1.7,6.9,5.9,12,12.9,15.7c2.1,1.1,3.1,1.8,4.5,3.1c1.7,1.7,2.7,3.2,3.9,6.1 c2.1,4.8,3.3,9.9,3.8,15.4c0.1,1.5,0.1,6.3,0,7.8c-0.4,4-1.3,8.5-2.2,11.1c-1.7,4.5-5.2,8.2-9.8,10c-1.1,0.4-2.4,0.8-4,1 c-2,0.3-2.9,0.3-4-0.2c-0.7-0.4-1.3-0.9-1.8-1.8c-0.6-1-0.8-1.8-1.1-3.5c-0.2-1.8-0.6-3.8-0.9-4.7c-0.7-2.2-2.5-3.8-4.7-4.4 c-1.5-0.4-3.5-0.1-4.8,0.6c-1.2,0.7-3.2,2.5-4,3.6c-1.3,1.8-2.2,4.6-2.6,7.6c-0.1,1.2-0.1,3.6,0,4.8c0.5,3.9,2,7.4,4.4,10.4 c0.7,0.9,2.1,2.3,3,3c4.8,3.8,10.7,5.4,16.7,4.2c1.3-0.2,3.8-0.8,5.6-1.3c1.2-0.3,11.1-3.1,11.8-3.3c0.8-0.2,5.1-4.4,7-6.6 c4.3-5.2,7.3-10.8,9-17.1c0.9-3.2,1.5-6.9,1.9-11.3c0.1-1.3,0.1-2.4,0.1-5.4c0-4.1-0.1-5.3-0.5-8.6c-0.5-4.2-1.7-9.9-2.9-13.7 c-2.9-9.4-7.5-16.1-14.2-20.6c-1.9-1.3-4.1-2.5-6.2-3.3c-1.6-0.7-1.9-0.8-2.4-1.1c-1.9-1.2-3.1-3.2-3.4-5.4 c-0.1-0.7,0.1-4.2,0.3-6.3c0.9-8.3,3.4-16,7.7-23.1c0.9-1.5,2-3.2,2.4-3.6c0.9-1,2.3-1.7,3.7-1.8c0.3,0,0.4,0,0.8,0.4 c0.8,0.7,1.5,1.7,1.8,2.8c0.3,1.2,0.9,12.9,1.2,23.9c0.2,5.5,0.3,7.7,0.4,7.9c0.1,0.2,1,1,1.3,1.1c0.3,0.1,0.4,0.1,1,0.1 c2.1-0.2,3.6-1,4.1-2.3c0.2-0.4,1-3.6,1.6-6.5c1-4.4,1.6-8,1.9-12c0.2-1.8,0.2-6.8,0.1-8.5c-0.4-6-1.8-11.4-4.3-16.4 c-1.1-2.2-1.3-2.5-1.7-2.7c-1.4-0.7-3.7-1.4-5.3-1.7C1004.6,32.3,1002.3,32.2,1001.1,32.4z" />
|
|
||||||
<path class="st0" d="M590.7,32.7c-2.8,0.5-4.8,2.7-6,6.1c-0.5,1.6-0.7,2.8-0.9,5.4c-0.2,2.7-0.3,3.9-1.3,8.8 c-0.4,1.9-0.7,3.7-0.8,4.1l-0.1,0.7l0.3,0.3c0.5,0.5,0.5,1.2,0,1.7c-0.1,0.2-0.3,0.3-0.4,0.3c-0.1,0-0.1,0.5-0.1,6.9 c0,9.3-0.3,15.9-0.9,24.5c-0.6,7.1-1.9,18.8-2.1,19.1c-0.2,0.2-1,0.6-1.5,0.6c-0.2,0-0.4,0.1-0.4,0.1c0,0,0.1,0.5,0.3,0.9 c0.2,0.6,0.3,0.9,0.2,1.1c0,0.2-0.1,0.3-0.1,0.3c-0.2,0.1-0.5-1.1-0.5-2.1c0-0.3,0-0.3-0.3-0.4c-0.5-0.2-1-0.7-1.4-1.7 c-0.4-0.9-0.6-1.4-2.9-8.1c-0.8-2.3-2.2-6.4-3.2-9.2c-1.8-5.2-4.5-13.4-5.7-17.2c-0.9-2.8-1.3-4.2-1.9-6.8c-0.3-1.1-0.6-2.1-0.6-2.2 c0-0.1-0.1-0.5-0.1-0.8c0-0.6,0-0.6-1.9-5.8c-2.3-6.2-4.4-12-6.6-18.3c-1.4-4.1-1.5-4.2-3-5.2c-0.9-0.6-1.3-0.7-2.1-0.7l-0.6,0.1 l-0.5-0.5c-0.8-0.8-0.6-0.7-2.5-0.7h-1.7l-0.7,0.7c-1.8,1.8-2.7,4.2-3.1,7.6c0,0.5-0.1,1.6-0.2,2.5c-0.4,7.8-1.2,17.7-2.9,36.7 c-2.3,25.9-3,34.7-3.5,49.6c-0.2,6.3-0.2,17.1,0,23.7c0.2,4.4,0.5,11.2,0.7,13.4c0.2,2,0.8,4.2,1.6,6c0.5,1.1,0.8,1.5,1.5,2.2 c0.9,0.9,1.8,1.5,3.1,1.9c0.9,0.3,2.4,0.4,3.4,0.2c1.8-0.4,3.5-1.5,4.5-3c0.8-1.2,1.6-3.1,1.8-4.6c0.2-1.1,0.2-3.6,0.1-9 c-0.2-7.8-0.2-27,0.1-52.2c0.2-20.8,0.3-24,0.3-24.1c0-0.1,0-0.1,0-0.1c-0.1,0,0.1-0.8,0.4-2.2c0.3-1.2,0.6-2.1,0.6-2.1 c0,0,0.2,0.7,0.4,1.4c0.2,0.7,0.4,1.6,0.5,2.1c0.1,0.5,0.2,0.8,0.1,0.8c-0.1,0,0,0.1,0.1,0.3c0.2,0.5,2.3,6.3,3.5,10 c3.4,10,5.3,17.7,6.4,25.2c0.4,3.1,0.8,7.2,0.7,7.8c0,0.2,0.1,0.8,0.5,2.4c1.5,5.4,3.4,12.4,6.3,23.6c2.1,8.1,2.2,8.5,2.6,10.8 c0.6,3.4,0.7,4.1,1.1,5c0.5,1.2,1.6,3.4,2.3,4.6c1.2,2.1,2.5,3.4,4.3,4.3c1.3,0.6,2.6,0.9,3.9,0.7c3-0.3,5.4-2.2,7-5.4 c0.7-1.5,1.6-3.5,2-4.9c0.2-0.5,0.2-0.6,0.1-0.8c-0.2-0.3-0.2-1,0-1.3c0.2-0.2,0.2-0.3,0.1-2.8c-0.1-2.9,0-13.5,0.1-16.6 c0.4-10.5,1-17.7,2.7-35.3c1.2-12.8,4.5-47.1,4.6-48.4c0.1-0.8,0.2-2.6,0.3-4c0.4-5.7,0.7-7.8,2-10.5l0.3-0.7l0-6.3l0-6.3l-0.9-0.8 c-1.1-1-2-1.6-3.5-2.3c-1.9-0.9-3.3-1.3-4.9-1.3C591.5,32.7,590.9,32.7,590.7,32.7z M577.9,113.3c0,0.2-0.5,0.5-0.7,0.5 c-0.1,0-0.2,0-0.2,0C577,113.7,577.8,113.3,577.9,113.3C577.9,113.3,577.9,113.3,577.9,113.3z" />
|
|
||||||
<path class="st0" d="M1128,33.4c-1.6,0.2-2.9,0.7-3.9,1.6c-1,1-1.6,2-2.1,3.6c-0.4,1.5-1.5,7.2-2,11c-0.9,6.7-1.3,11.3-1.5,20.8 c-0.1,3.9-0.1,42.2-0.1,48.6c0,2.7-0.1,3.9-0.6,6.7c-0.1,0.6-0.2,1.1-0.3,1.1s-0.4-0.4-0.8-0.9c-4.8-6.3-9.8-18.1-12.9-30.6 c-0.7-2.7-1.1-4.7-1-4.8c0.1-0.1-0.8-2.7-3.8-11c-1.9-5.4-2.3-6.3-4.4-12.6c-2.9-8.6-4.1-11.7-6.2-15.8c-1.1-2.2-1.9-3.6-3.4-5.8 c-2.2-3.3-3-4.2-4.3-4.8c-1.5-0.8-3.2-0.4-5,1.1c-0.6,0.4-0.9,0.8-1.3,1.5c-0.7,1-1.7,2.5-1.7,2.6c0,0,0.1,0.8,0.3,1.6 c1.2,6.1,1.7,11.3,1.7,17.7c0,3.6-0.1,5.2-0.4,8.3c-0.3,3.2-0.8,6.7-1.4,9.6c-0.2,1.1-0.3,1.5-0.3,2.3c0,0.5-0.1,1.4-0.1,1.9 c-0.1,0.7-0.1,2.3-0.2,6.1c0,2.8-0.1,5.7-0.1,6.4c-0.2,2.5-1.2,14.6-3,34.6c-1.3,14.3-1.9,21.6-2.5,28.1c-0.2,2.9-0.5,5.7-0.6,6.3 c-0.3,2.1-0.4,2.9-0.4,5.6c0,2,0,2.9,0.1,3.8c0.5,3.7,1.6,5.6,4.3,7c1.6,0.8,3.1,1.3,6.8,2.1c0.1,0,0.2,0.1,0.1,0.2 c-0.1,0.2,0.2,0,2.5-2.4l2.3-2.4l0-0.9c0.2-4.1,0.9-17,1.8-33.6c1-19,1.5-29.1,1.8-33.4c0.1-2.1,0.2-3.1,0.5-4.4 c0.2-0.8,0.4-1.2,1.1-1.7l0.4-0.3l0.4,0.1c0.5,0.1,1.1,0.5,1.4,0.8c0.2,0.2,0.8,2.1,5.6,16.4c2.6,7.8,6.1,18.2,7.9,24 c0.6,2,0.8,2.4,2,4.8c2.1,4.5,4.2,8.7,5.3,10.9c0.6,1.1,1.5,2.9,2,3.9c1.8,3.6,3.6,6.3,5.8,9c1.1,1.4,2,2.1,3.2,2.7 c3.4,1.7,7.5,1,10.2-1.7c1-1.1,1.8-2.3,2.1-3.6c0.4-1.4,0.9-5.7,1-8.8c0.1-2.1,0-24.2-0.1-39.2c-0.1-15.8-0.2-46.2-0.1-52.4 c0.1-6.5,0.1-7.2,0.9-16.3c0.7-8.2,0.8-10.5,0.7-17.9c0-5.2-0.1-5.8-0.2-5.9c-0.1-0.1-0.7-0.3-1.3-0.5 C1132.4,33.6,1129.8,33.3,1128,33.4z" />
|
|
||||||
<path class="st0" d="M630.7,33.5c-1.4,0.1-3.4,0.4-4.4,0.6c-4.5,1-6.3,2.8-7,6.7c-0.1,0.5-0.1,1.9-0.1,6.5c0,5.5-0.1,9.3-0.2,11.3 c0,0.5-0.2,3-0.4,5.5c-0.6,8.3-1.9,25.8-2.3,30.9c-0.1,0.8-0.3,3.6-0.5,6.1c-1.3,16.7-2.3,28.8-2.4,29.7c-0.2,1.2-0.4,2.1-0.9,3.2 l-0.3,0.8l-0.1,2c-0.1,1.3-0.1,3.7-0.1,6.6c0,2.5,0,6.9-0.1,9.8c-0.2,11.1-0.2,18-0.1,18.9c0.8,6.6,5.5,11.9,11.8,13.2 c1.4,0.3,2.9,0.4,4.1,0.3c1.2-0.1,4.7-0.7,6.8-1.2c10.4-2.4,18.4-7,24.3-13.9c2.9-3.4,5-6.9,7.2-11.8c5.4-12.2,8.6-24.6,9.4-37.2 c0.5-7,0.6-10,0.6-22.2c0-12.2-0.1-16.8-0.4-19.2c-0.4-3.8-1.1-7.8-2.1-11.2l-0.4-1.4l-1.8-3.1c-7.1-12.1-9.7-16.1-12.5-19.4 c-1-1.2-3.2-3.4-4.3-4.4c-5.3-4.4-11.2-6.7-18.1-7.2C635.2,33.4,632.1,33.4,630.7,33.5z M636.5,49.2c1.4,0.3,1.8,0.4,4,1.8 c2.3,1.4,2.5,1.6,4.5,3.8c7.6,8.3,12,17.2,12.9,26.2c0.7,7.4,1.1,16.3,0.9,23.1c-0.1,5.1-0.3,8.3-0.8,12.6 c-0.8,7.8-2.3,15.4-4.4,22.3c-1.4,4.5-4.4,11.2-7.5,16.7c-0.9,1.6-1.4,2.3-2.5,3.4c-1.8,1.8-3.2,2.6-7.6,4.2 c-2.3,0.9-3.9,1.1-4.7,0.8c-0.9-0.3-1.5-1.4-1.8-3.2c-0.3-1.8-0.3-3.7-0.3-29.5v-25.8h0.4h0.4l0-1.6c0-1.5,0.1-4.8,0.3-19.4 c0-3.5,0.1-11.9,0.2-18.8l0.1-12.5l0.2-0.8c0.5-1.9,1.4-3,2.9-3.4C634.4,49.1,635.7,49.1,636.5,49.2z" />
|
|
||||||
<path class="st0" d="M1492.5,35.5c-0.3,0.4-0.9,1.1-1.3,1.6c-2.5,3.3-4,7.1-5.5,13.5c-3.3,14.6-8.3,28.8-14.8,42.5 c-1.1,2.3-1.5,2.9-3.2,5.2c-0.7,0.9-1.4,1.8-1.6,2.1c-0.2,0.3-0.4,0.6-0.4,0.6c-0.1,0-1.5-2.9-2-3.9c-0.2-0.5-0.8-1.8-1.2-2.9 c-1.6-4.2-3.1-7.5-5.1-11.5c-3.8-7.6-8.2-14.8-13.4-21.6c-1.5-2-2.1-3.1-2.7-4.8l-0.2-0.8l-1.3-0.7c-1.6-0.9-4.8-2.1-6.5-2.5 c-0.9-0.2-2-0.2-2.6,0c-0.5,0.2-1.1,0.7-1.4,1.2c-0.3,0.5-0.6,1.4-0.7,2.2c-0.3,1.5-0.3,3-0.2,7.3c0.1,4.8,0.2,19.3,0.2,26.8 c0,2.9,0.1,7.7,0.1,10.6c0.3,14.1,0.5,28.2,0.8,53.5c0.1,10.3,0.3,13.1,0.8,15.7c0.6,2.8,1.9,5.3,3.5,7l0.5,0.5h3.3h3.3l0.7-0.7 c2.2-2.1,3.6-4.7,4.2-7.7c0.2-0.8,0.2-1.1,0.2-3c0-1.1,0-3.8-0.1-5.9c-0.1-2.1-0.1-5.2-0.2-7c-0.1-4.2-0.2-6.9-0.4-10.5 c-0.3-4.9-1.7-40.5-1.7-41.3c0-0.5,0.1-0.8,0.3-1.2c0.5-1.1,1.3-2.3,1.6-2.3c0.1,0,0.2,0,0.2,0.1c0,0,0,0.1,0.1,0.1 c0,0,0.1-0.1,0.1-0.2c0-0.3,0.1-0.2,0.4,0.3c0.6,1,1.3,3.1,3.7,10.5c2.3,7,2.7,8,3.5,9.8c0.8,1.8,2.2,4.7,2.8,5.6 c1.6,2.3,3.8,4,6.2,4.7c0.7,0.2,0.9,0.2,2.2,0.2c1.2,0,1.4,0,2.1-0.2c1-0.3,2.2-0.8,3.2-1.5c1.8-1.2,4-3.9,5.4-6.5 c0.8-1.6,6.8-14.1,7.8-16.3c0.3-0.7,0.7-1.5,0.9-1.7c0.6-0.8,1.3-1.2,2.2-1.1c0.2,0,0.5,0.1,0.5,0.1c0.1,0,0.1,8.1,0.1,37.8 c0,35.4,0,37.8,0.2,38.9c0.4,3.7,1.4,6.4,3,8.6l0.4,0.6l5.9,0l5.9,0l0.5-0.9c1.3-2.2,2.2-4.5,2.7-7c0.5-2.3,0.5-0.9,0.4-25.2 c0-15,0-25.8,0.1-33.2c0.1-12.6,0.2-15.9,0.6-21.4c0.1-1,0.1-2.2,0.2-2.6c0.1-1.6,0.3-6.4,0.4-9.7c0.1-4,0.1-17.7-0.1-21 c-0.3-6.6-0.5-10-0.9-16.3c-0.1-1.5-0.2-3.3-0.3-4c-0.1-1.6-0.3-2.8-0.7-4.1c-0.6-2-1.6-4-2.7-5.6c-0.4-0.6-0.5-0.7-0.8-0.7 c-0.1,0-1.9-0.1-3.9-0.2c-2-0.1-4-0.2-4.3-0.2l-0.6,0L1492.5,35.5z" />
|
|
||||||
<path class="st0" d="M899.4,36.6c-2.5,0.4-2.7,0.4-2.8,0.6c0,0.1-0.5,0.8-1.1,1.6c-6.8,9.2-12.3,19.7-16,30.7 c-3.6,10.6-6.4,24.6-7.5,38c-0.5,5.4-0.6,8.4-0.6,15.2c0,5.7,0,6.2,0.2,8c0.5,5.2,1.2,9.9,2,14.3c0.7,3.8,2.3,10.2,3,12.3 c1.4,4.2,3.7,8,7,11.2c1.3,1.3,2.6,2.4,4,3.3c1.3,0.9,3.2,2,4,2.3c2.4,1,4.9,1.1,7.4,0.3c2.4-0.8,4.3-2.2,5.9-4.7 c2-2.9,3.2-5.3,5-9.5c6.9-16.2,11.6-33.2,12.7-46c0.2-2.5,1.1-19.2,1.4-26.6c0.5-11.6,0.7-21,0.5-22.7c-0.9-6.8-3.6-12.3-8.2-16.9 c-1.1-1.1-2-1.9-3.7-3.1c-2.3-1.7-4.6-4-6-5.7c-1.1-1.4-2.1-2.1-3.4-2.5C902.4,36.5,900.5,36.4,899.4,36.6z M901.8,56.9 c2.4,1.2,4.4,3.2,5.6,5.6c0.5,1,0.8,1.7,1,2.8c0.1,0.5,0.3,1.1,0.4,1.3c0.3,0.8,0.3,1.3,0.3,4.5c0,6.6-0.2,14.9-0.4,20.4 c-1,23.5-4.4,39.9-11.3,55.3c-0.9,2.1-0.9,2-1.8,3.2c-0.4,0.4-0.8,0.9-0.9,1.1l-0.2,0.3l-0.4-0.9c-0.6-1.3-1.4-3.3-2-5 c-4.4-13.2-5.6-31.8-3.1-50.8c1.8-13.9,5.5-27.1,10.4-37.1l0.7-1.5l0.5,0.2C900.8,56.5,901.4,56.7,901.8,56.9z" />
|
|
||||||
<path class="st0" d="M1043.2,39.1c-2.9,0.6-5.1,2.8-5.7,5.7c-0.4,1.9-0.7,4.2-0.7,6.4c0,0.7-0.1,2.1-0.1,3.2 c-0.2,3.4-0.7,13.1-1.4,24.7c-1,19.7-1.4,25.1-1.6,27.2c-0.3,3-0.8,6.4-1.4,9.4l-0.3,1.6v23.5v23.5l0.3,0.5c0.5,1,0.8,2,1,3.2 c0,0.4,0.3,1.4,0.6,2.6c0.3,1.1,0.6,2.3,0.7,2.6c0.1,0.8,0.6,2.4,0.9,3.2c0.6,1.4,1.2,2.9,1.6,3.4c1.2,1.8,3.7,2.7,5.7,2 c1.4-0.5,2.8-1.4,3.6-2.5c0.4-0.5,0.6-0.9,0.9-1.7c1-2.4,1.8-4.7,2.5-7.3c0.3-1.3,0.5-1.7,1.3-3.4l0.9-2l0.1-5.6 c0-3.1,0.1-7.9,0.1-10.8c0-2.9,0.1-9,0.2-13.7c0.1-4.6,0.2-11.6,0.2-15.5c0.2-11,0.1-42.3,0-51.4c-0.1-7.6-0.3-18.6-0.3-23.3l0-2.8 l-0.8-0.5c-1.7-1.1-4.2-2.3-5.2-2.5C1045.5,38.9,1043.9,38.9,1043.2,39.1z" />
|
|
||||||
<path class="st0" d="M945.7,40c-1.1,0.3-2.1,1.2-3,2.4c-0.6,1-2.1,3.8-2.2,4.1c0,0.2-0.2,0.4-0.3,0.6c-0.2,0.2-0.2,0.3-0.2,0.5 c0.1,0.4,0,1.2-0.2,1.6c-0.2,0.3-0.2,0.5-0.3,4.7c-0.3,6.9-0.7,15.8-0.8,17.5c0,0.2-0.2,3.2-0.3,6.6c-0.4,9.8-1,20.2-2,40 c-1,19.8-1.5,29.9-2.2,43.4c-0.2,4.9,0,8.4,0.8,12.2c0.1,0.5,0.1,0.8,0.1,0.8c-0.1,0.1,1.1,0.8,2.2,1.3c1.7,0.8,3.9,1.4,5.9,1.6 c0.6,0.1,1.5,0.1,2.4,0l1.5,0l0.3-0.3c0.7-0.7,1.9-2.3,2.6-3.5c0.8-1.4,1.5-3.2,1.8-4.6c0.4-1.7,0.4-2.2,0.5-6.8 c0-2.4,0.1-5.7,0.1-7.3c0-1.6,0.3-21.2,0.5-43.4c0.4-46.7,0.4-46.5,0.6-51.2c0.2-6.9,0.2-7.7,0.1-10.6c-0.1-1.5-0.2-3.2-0.3-3.7 c-0.1-1.1-0.5-2.2-0.8-2.8c-0.8-1.4-2.5-2.4-4.4-2.9C947.4,39.9,946.3,39.9,945.7,40z" />
|
|
||||||
<path class="st0" d="M374.1,54.4c-0.4,0.1-1,0.2-1.3,0.2c-0.8,0.1-0.6,0.2,0.3,0.2c0.5,0,0.8-0.1,1.2-0.3c0.3-0.1,0.5-0.3,0.5-0.3 c0,0,0,0,0,0C374.9,54.2,374.5,54.3,374.1,54.4z" />
|
|
||||||
<path class="st0" d="M1103.8,151.7C1103.8,151.8,1103.9,151.8,1103.8,151.7C1103.9,151.8,1103.9,151.7,1103.8,151.7 C1103.8,151.6,1103.8,151.6,1103.8,151.7z" />
|
|
||||||
<path class="st0" d="M1245.3,154.6c-2.2,0.3-4.3,1-6.8,2.2l-1.4,0.7l-0.9,1.2c-2.3,3.4-5.2,8-6,9.5c-1.1,2.5-0.9,5.7,0.6,8 c1.6,2.4,4.2,3.9,7,3.9c3,0,9.4-1.8,13.2-3.7c4.4-2.2,6.2-5.1,6.6-10.5c0.2-2.2,0-3.1-0.9-6.9l-0.4-1.6l-0.9-0.6 c-2-1.3-3.9-2.1-6-2.4C1248.6,154.5,1246.4,154.5,1245.3,154.6z" />
|
|
||||||
<path class="st0" d="M1295.9,160.4c0,0.1,0.8,2.4,1.1,3.1c0.3,0.8,1.3,2.8,1.5,3c0.1,0.1,0.1,0.1,0-0.4c-0.3-1.5-1.3-3.8-2.1-5.1 C1296.1,160.5,1295.9,160.3,1295.9,160.4z" />
|
|
||||||
<path class="st0" d="M1410.4,162.3c0,0.1,0,0.3,0,0.5l0,0.3l0.1-0.3c0.2-0.6,0.2-0.6,0.1-0.6 C1410.5,162.1,1410.4,162.1,1410.4,162.3z" />
|
|
||||||
<path class="st0" d="M1400.1,177.2c0,0.2,0,0.2,0.4,0l0.3-0.2l-0.3,0C1400.2,177,1400.1,177.1,1400.1,177.2z" />
|
|
||||||
<path class="st0" d="M556.7,211.7c-1.1,0.3-1.9,1-2.5,2.1c-0.8,1.5-1.1,2.7-1.2,5.4c-0.1,3.2-0.3,12.3-0.2,15.1 c0.1,3.9,0.1,4.5-0.1,5.4c-0.6,3.1-2.2,5.5-4.9,7.4c-1.3,0.9-2.2,1.8-2.6,2.5c-0.3,0.6-0.4,1.5-0.2,2.1c0.3,0.9,1,1.7,2.6,3.1 c2,1.7,3,3.5,3.4,6.1c0.1,0.8,0.1,1.3,0.1,3.6c-0.2,8.7-0.2,12.2-0.3,19c0,4.1-0.1,10.2-0.2,13.5l-0.1,6l0.2,0.2 c0.2,0.3,0.3,0.9,0.2,1.3c-0.1,0.3-0.1,0.4,0.7,2c0.4,1,1.1,2.5,1.5,3.5c1,2.2,2.2,4.8,2.7,5.4c0.2,0.3,0.6,0.8,1,1.1 c1.9,1.9,4.8,2.6,7.4,2c1.9-0.5,3.7-2.1,4.5-4c0.4-1,0.5-1.7,0.6-3.3c0.1-1.8,0-2.4-0.4-4.1c-1-4.3-1.8-10.5-2.2-16.5 c-0.2-4.1-0.3-5.9-0.4-16.8c-0.1-11.9-0.1-11.3,0.4-15.5c0.4-3.1,0.3-3,0.5-3c0.1,0,2.4-0.5,5.2-1.1l5.1-1l6-2.3 c6.7-2.5,6.4-2.4,6.7-3.3c0.6-1.6,0.3-3.3-0.6-4.3c-0.4-0.4-1.6-1-2.7-1.4c-1.4-0.4-1.5-0.4-9.9-0.4c-5.8,0-7.8,0-8.1-0.1 c-1.1-0.3-2.2-1.2-2.7-2.3c-0.4-0.7-0.4-0.8-0.7-3.7c-0.3-3-1.3-10.6-1.7-13.4c-0.6-4-0.8-5.5-1-6c-0.3-0.7-1-1.7-2.2-3.1 c-1.2-1.3-1.4-1.5-2.2-1.7C557.9,211.6,557.4,211.6,556.7,211.7z" />
|
|
||||||
<path class="st0" d="M605.9,222.4c-1.1,0.2-2.1,0.6-2.9,1.3l-0.5,0.4l-1.3,4.5c-2.1,7-2,6.9-2.7,8.4c-0.9,2-1.1,2.4-1.1,3.3 c0,1.2,0.4,2.4,1,3c0.5,0.5,1.2,0.7,2.3,0.7c2.1,0,2.7-0.5,4.6-3.3c1.1-1.7,1.9-3.3,3.4-6.8c0.9-2.2,2.9-7.3,2.9-7.5 c0,0-0.1-0.2-0.2-0.3c-0.2-0.3-0.3-0.8-0.2-1.1c0.1-0.3,0.1-0.3-0.2-0.6c-0.8-0.9-1.8-1.5-2.9-1.8 C607.6,222.4,606.4,222.3,605.9,222.4z" />
|
|
||||||
<path class="st1" d="M70.7,226.3c-1.5,0.2-2.8,0.7-5.1,1.8c-2.5,1.3-5.1,2.9-7.2,4.7c-10,8.5-17.7,19.2-22.6,31.4 c-1.4,3.4-7,20.9-7.4,22.7c-0.2,1.2-0.3,3.2-0.2,6.5c0,1.6,0.1,4.4,0.2,6.2l0.1,3.3l0.9,2.6c1.2,3.2,1.4,3.7,2.6,6.1 c1.6,3.2,2.9,5.1,5,7.2c5.1,5.2,11.7,7.9,19.2,7.9c2.2,0,4.1-0.2,6.3-0.8c9.4-2.4,18.2-9.8,21.9-18.4c0.9-2.1,1.6-4.7,1.7-6.1 c0.2-3.4-1.7-6.5-4.9-8.1c-2.7-1.3-5.7-1.3-8.3,0c-0.6,0.3-0.9,0.5-1.6,1.3c-1.1,1-4.6,4.7-6.4,6.6c-1.3,1.4-4,3.9-4.6,4.4 c-0.6,0.4-1.6,0.9-2.2,1.1c-0.7,0.2-1.9,0.2-2.6,0c-0.7-0.2-1.8-0.7-2.5-1.2c-1.3-1-2.7-2.7-3.6-4.3c-0.1-0.3-0.4-0.6-0.5-0.8 c-0.2-0.2-0.3-0.4-0.3-0.8c0-0.4-0.1-0.7-0.4-1.4c-1.1-2.4-1.5-4.4-1.4-7c0.1-2.1,0.5-3.8,1.4-5.8l0.5-1l0.1-1.3 c0.4-5.5,1.8-11.5,3.9-16.8c2.9-7.3,7.3-14.3,13.3-21.3c0.6-0.7,1-1.2,1-1.2c-0.2-0.1,0.9-1.7,1.6-2.4c0.4-0.4,0.7-0.5,1.8-0.3 c0.5,0.1,1,0.1,1.1,0.1c0.2,0,0.1,0.2-0.7,1.3c-0.8,1.2-0.9,1.3-0.9,1.7c0,0.2,0,0.7-0.1,1.2c-0.3,2.1-0.3,2.3-0.2,3.1 c0.2,1.2,0.8,2.2,1.7,2.9c0.8,0.6,1.8,1,3,1c2.1,0.1,4-0.7,5.2-2.3c1.4-1.8,2.6-4.1,3.3-6.4c1.1-3.8,0.9-8.3-0.6-11.3 c-0.9-2-2.9-4-5-5.1C75.2,226.4,72.7,226,70.7,226.3z" />
|
|
||||||
<path class="st1" d="M798.2,232.3c-0.7,0.1-2.3,0.4-3,0.5c-1.4,0.4-3.7,0.8-5.9,1.1c-1.1,0.1-1.9,0.1-4.8,0.1c-2.8,0-3.7,0-4.5,0.1 c-2.4,0.3-4.6,1-6.9,2.1c-7.7,3.9-16.4,13.7-21.2,23.9c-1.5,3.2-1.9,4-2.4,5.2c-0.4,0.8-1.2,2.8-1.9,4.4c-0.7,1.7-1.5,3.5-1.8,4 l-0.4,1l-0.1,1.5c-0.2,2.7-0.3,4-0.8,6.1c-2.2,8.9-1.9,18.5,0.9,27.1l0.3,0.8l4,4.9l4,4.9l1.6,0.8c0.9,0.4,2.5,1.2,3.6,1.7 c2.8,1.3,4.4,2,6.7,2.6c5,1.4,10.4,1.8,15.6,1.2c7-0.9,13.7-3.7,19.3-8.2c2.1-1.7,3.6-3.2,5.9-5.9c5.1-5.9,8.7-12.9,10.5-20.4 c1.7-7.1,2.8-13.4,3.3-20c0.2-2.2,0.2-8.4,0.1-10.7c-0.4-6.6-1.4-12.6-3.3-18.4l-0.4-1.1l-1.5-1.5c-0.8-0.8-1.8-1.8-2.1-2.2 c-2.8-3.2-6.9-5.3-11.2-5.8C801.1,232.2,798.9,232.2,798.2,232.3z M793,249.2c0.9,0.2,1.8,0.4,2.4,0.7c1.1,0.5,2.4,1.9,3.2,3.4 c0.4,0.8,0.4,0.8,0.6,2.3c0.2,1.4,0.3,2.4,0.9,7.2c0.1,0.9,0.3,2.4,0.4,3.3l0.2,1.6l-0.3,1.5c-0.4,1.9-0.7,3.7-1.4,7.5 c-0.9,5.1-1.7,8.7-2.4,11c-0.4,1.4-1.6,4.1-2.7,5.9c-2.8,4.8-5.7,7.7-10,9.9c-3.2,1.6-5.9,2.2-8.8,2.1c-1.9-0.1-3.4-0.4-5-1.2 c-3.3-1.6-5.5-4.6-6.2-8.7c-0.6-3.2,0.3-10.6,2.1-17.6c1.2-4.9,2.7-8.9,4.6-13.2c2.6-5.6,6.3-10.8,8.8-12.4c2.6-1.7,6-2.8,9.6-3.2 C790,249,792.1,249.1,793,249.2z" />
|
|
||||||
<path class="st0" d="M976.7,236.2c-0.9,0.2-2.2,1-2.5,1.6c-0.1,0.3-0.7,2.4-1,3.8c-0.6,3.2-1.4,8.5-2.1,14.4 c-0.2,1.5-0.2,1.9-0.1,2.2c0.1,0.4,0,0.9-0.2,1.1c-0.1,0-0.2,0.4-0.3,0.8c-0.1,0.4-0.5,1.3-0.9,2.1c-0.8,1.8-1,2.3-1.1,3.6 c0,1.2,0.1,2.1,0.5,3.8c0.9,3.3,1,5.1,0.5,10c-0.4,3.5-0.4,3.8-0.8,9.8c-0.7,11.4-0.9,14.4-0.8,19.5c0,2.9,0.1,4,0.2,4.6 c0.3,2.2,0.9,3.7,2,4.7c0.9,0.9,1.9,1.4,3.5,1.7c0.5,0.1,1.2,0.2,1.7,0.3c1.1,0.1,3.9,0.2,4.4,0.1l0.4-0.1l0.6-1.3 c0.9-1.9,1.4-3.3,1.8-5.2c0.4-2.2,0.4-2.2,0.3-11.5c-0.1-6,0-12.2,0.2-20.2c0-1.7,0.1-4.1,0.1-5.2c0-1.8,0.1-2.2,0.2-2.7 c0.3-1.1,0.8-1.9,1.6-2.7c0.6-0.5,1.2-1,1.8-1.2c0.2-0.1,1.3-0.4,2.4-0.6c2.1-0.5,4.4-1.2,6.2-1.9c2.4-0.9,8.3-4.1,9.1-5 c0.5-0.5,0.9-1.3,1.1-2c0.2-0.8,0.1-1.9-0.2-2.5c-0.4-0.8-1.4-1.6-2.9-2.2l-0.7-0.3l-1.2,0c-1.4,0.1-2,0.2-3.3,0.6 c-0.6,0.2-2.8,0.6-7.1,1.4c-3.4,0.6-6.2,1.1-6.3,1.1c0,0-0.2-1.3-0.4-2.9c-0.3-2.6-0.4-3.1-0.4-5.5c-0.1-4.8-0.2-5.9-0.9-8.3 c-0.3-1.2-1-3.3-1.4-4.1C980.4,236.6,978.5,235.8,976.7,236.2z" />
|
|
||||||
<path class="st1" d="M1324.8,242.7c-0.3,0.1-0.8,0.3-1.2,0.5c-0.6,0.3-0.9,0.5-1.6,1.1c-1.8,1.7-2.9,3-6.8,8 c-1.9,2.5-4.6,5.8-5.7,7.2c-0.2,0.3-1.8,2.8-3.6,5.6c-1.7,2.8-3.2,5.1-3.3,5.3c-0.1,0.1-0.4,0.3-0.7,0.5c-0.6,0.3-1.2,0.3-1.8,0.1 c-0.4-0.1-1-0.7-1.2-1c-0.1-0.1-3.3-4.6-7.2-10c-6-8.3-7.3-10-8.2-11.1l-1.1-1.2l-1.8-1c-2.1-1.2-2.6-1.3-4.3-1.4 c-1.3,0-2,0.1-3,0.6c-1.1,0.6-2,1.6-2.4,2.8c-0.4,1.2-0.4-0.2-0.4,29.8c0,26.4,0,27.9,0.2,29c0.4,3.2,1,5.8,1.9,8.6 c0.3,0.8,0.5,1.2,0.8,1.8c1.1,1.6,2.8,2.8,4.8,3.4c0.5,0.1,0.9,0.2,2,0.2c1.6,0,2.2-0.1,3.5-0.7c1.7-0.8,3-2.1,3.8-3.8 c0.7-1.5,0.8-2.5,0.9-6.6c0-2.5,0-4.6-0.4-14l-0.4-11l-0.4-1.2c-0.8-2.6-0.7-3.6,0.4-4.1c0.5-0.2,0.5-0.2,1.8-0.2h1.3l0.9,0.8 c2.6,2.2,5.5,4,7.9,4.9c2.1,0.8,4,0.8,5.6,0.1c2.1-1,4.8-3.7,7.3-7.6c2.1-3.2,3.5-4.7,5.6-5.8l0.8-0.4l0,22.2c0,21,0,22.3,0.2,23.1 c0.3,1.8,1,4,1.5,4.9c0.3,0.5,1.5,1.7,2.3,2.2c2.1,1.4,4.4,2,6.2,1.4c0.9-0.3,1.6-0.7,2.3-1.4c0.6-0.6,0.7-0.7,1.3-2 c0.8-1.6,1.2-2.7,1.4-4c0.2-1,0.2-1,0.1-11.4c0-5.7-0.1-15.7-0.2-22.3c-0.2-24.3-0.2-30.8-0.4-31.8c-0.3-2.2-1.2-4.9-2.3-7.1 c-0.6-1.1-1.3-1.9-2.4-2.4C1327.4,242.6,1326,242.4,1324.8,242.7z" />
|
|
||||||
<path class="st0" d="M1457.2,244c-1,0.3-3.1,1.6-4.7,3c-0.4,0.3-0.4,0.4-0.4,0.6c0.3,0.5,0.2,1.1-0.1,1.5l-0.2,0.2l-0.1,5.6 c-0.1,10.2-0.3,14.8-0.5,15.9c0,0.2-0.2,0.7-0.4,1c-0.6,1.2-2.1,2.4-2.9,2.4c-0.6,0-2.4,0.3-3.4,0.6c-3.5,0.9-6.3,2.7-8.8,5.6 c-1.9,2.2-3.5,4.9-5.9,9.9c-0.7,1.4-1.3,2.6-1.3,2.7c-0.1,0.1-0.1,0.6-0.2,3c-0.1,3.6-0.2,7.3-0.4,11.6l-0.1,3.4l1.2,1.2 c2.3,2.4,5,5.3,7,7.6l0.6,0.7l0.5,0c0.9,0.1,2.6,0.1,3.5-0.1c2.6-0.3,5-1.4,7.1-3c0.4-0.3,1.2-1.1,1.8-1.7c1.2-1.2,1.6-1.5,2.7-1.9 c0.9-0.4,1.6-0.5,2.7-0.4c0.8,0,1.1,0.1,1.6,0.2c1.1,0.4,2,0.5,3.4,0.5c1.1,0,1.4,0,1.9-0.2c1.3-0.4,2.4-1.1,3.2-2.1 c0.7-0.9,1.4-2.4,1.7-3.8c0.3-1.4,0.6-5.8,0.5-8.8c-0.1-2-3.2-45.9-3.3-46.8c-0.3-1.8-1.5-5.7-1.9-6.5c-0.5-0.9-1.5-1.7-2.6-2 C1458.8,243.8,1457.8,243.8,1457.2,244z M1448.4,285.4c1,0.5,2.4,2.5,3.1,4.4c0.2,0.5,0.2,0.7,0.3,1.8c0.1,2.1-0.2,4.1-0.9,6.1 c-1,2.9-2.4,5.2-4.5,7.3c-1.4,1.4-2.3,2-2.8,2.1c-1,0.2-2.5-0.6-3-1.6c-0.3-0.7-0.2-3.4,0.2-6.4c0.9-5.9,2.6-10.5,4.8-12.9 C1446.8,285.1,1447.5,284.9,1448.4,285.4z" />
|
|
||||||
<path class="st0" d="M653.6,253.9c-1.5,0.2-3.1,0.7-4.4,1.3c-2.5,1.2-3.7,2.2-11.7,10.2l-4.7,4.7l-0.2,0.6c-0.3,0.9-0.8,2.3-2,5.4 c-1.4,3.4-1.7,4.5-2.2,6.1c-0.5,1.6-0.7,3.6-0.7,5.3c0,1.2,0,1.5-0.4,2.4c-0.4,0.9-0.7,1.4-2.5,3.5c-4.5,5.2-10,9.9-15.9,13.4 c-1.8,1.1-2.7,1.4-4.1,1.5c-0.8,0.1-2.5-0.1-3.5-0.3c-3.1-0.6-5.7-3-6.7-6c-0.6-1.8-0.5-2.9,0.5-3.8c0.5-0.5,1.4-0.9,2.9-1.4 c1.6-0.6,1.8-0.7,3-1.4c4.4-2.7,7.9-5.6,10.3-8.6c2.2-2.7,4.1-6.4,4.8-9.4c0.3-1.2,0.4-1.9,0.4-3.3c0-5-2.9-9.5-7.4-11.6 c-3-1.4-6.3-1.6-9.4-0.6c-0.9,0.3-2.7,1.2-3.8,1.8c-6.3,3.8-11.8,10.7-15,18.7c-1.3,3.2-2.1,6.4-2.6,10c-0.1,0.8-0.1,1.6-0.1,3.8 c0,2.9,0,3.5,0.5,5.6c1.7,8.6,8.2,16.6,16.2,19.9c1.7,0.7,3.7,1.3,5.6,1.5c1,0.2,4.3,0.2,5.3,0c3.5-0.5,6.6-1.8,9.7-3.8 c1.4-0.9,1.5-1,7.3-5.9l4.2-3.6l0.1,0.3c0.1,0.2,0.5,1.4,1,2.7c1.6,4.6,2.3,6.1,3.5,8c3,4.5,7,7.1,12.2,8c1.3,0.2,4.2,0.3,5.7,0.2 c3.4-0.3,5.9-0.9,8.3-2.1c4.7-2.3,8.3-6.4,9.9-11.3c0.6-1.8,0.9-3.3,1.2-6.9c0.2-1.6,0.2-5.6,0.1-7.1c-0.2-2.9-0.9-5.5-2-7.8 c-0.6-1.3-1.2-2.3-2.2-3.6c-0.4-0.6-0.9-1.3-1-1.6c-0.2-0.5-0.3-0.6-0.3-1.4c0-0.8,0-0.9,0.3-1.5c0.2-0.3,0.6-1.1,1-1.7 c1.1-1.6,2.5-4.7,3.6-7.6c0.9-2.5,2-6.2,2.3-7.7c0.2-0.9,0.1-2.9,0-3.8c-0.9-4.9-4.6-9-9.9-10.7 C658.5,253.9,655.8,253.6,653.6,253.9z M656,267.1c1.5,0.4,2.4,1.1,2.8,2.1c0.2,0.5,0.2,0.7,0.2,1.6c0,0.9-0.1,1.3-0.3,2.2 c-0.5,2.3-1.1,5.5-1.6,8.1c-0.3,1.5-0.5,2.7-0.5,2.7c-0.1,0.1-3.4,0.4-4.5,0.4c-2.2,0.1-3.2-0.2-5.2-1.2c-1.1-0.6-3.6-2-3.7-2.2 c0-0.1,4.1-6.3,5.4-8c1.7-2.4,3.1-4.1,3.8-4.9C653.6,267,654.5,266.7,656,267.1z M604.2,273.4c0.8,0.3,1.3,1,1.7,2.1 c0.1,0.4,0.1,0.5-0.1,1.2c-0.7,2.6-2,4.7-3.9,6.6c-1.1,1-1.9,1.7-3,2.3c-0.9,0.5-2.4,1.1-2.5,1c-0.1,0-0.4-0.3-0.8-0.7 c-0.4-0.3-0.7-0.6-0.8-0.6c-0.1,0,0.3-1.3,0.6-2.2c1-3.2,2.9-6,5.5-8.2c0.7-0.6,2-1.5,2.2-1.6C603.2,273.2,603.7,273.3,604.2,273.4z M634.7,297.5c0.5,0.2,0.5,0.2,1,0.1c0.6-0.1,1.1,0,1.6,0.2c0.6,0.3,5.4,1.4,6.7,1.6c0.6,0.1,1.3,0.3,1.6,0.4 c0.6,0.2,0.6,0.2,2.3,0.2c1.9,0,2.3,0,3.1,0.5c0.8,0.4,1.3,1.1,1.9,2.6c0.8,1.9,0.9,4,0.4,5.9c-0.2,0.8-0.5,1.4-0.9,2.2 c-0.7,1.3-1.4,1.8-2.9,2.2c-0.6,0.1-0.9,0.2-2,0.2c-1.4,0-2-0.1-2.7-0.5c-0.6-0.3-0.8-0.6-0.9-1.5c-0.6-3.1-2.2-5.1-5.8-7.3 c-0.5-0.3-1.5-0.9-2.1-1.3c-1.2-0.8-2.4-1.6-3-2.2l-0.4-0.4l0-1.2c0-1.3,0-1.7,0.4-1.9C633.5,297.2,634,297.3,634.7,297.5z" />
|
|
||||||
<path class="st0" d="M460.1,253.9c-2,0.1-4,0.7-6.2,1.9c-1,0.5-3.1,1.9-4.4,3c-1.7,1.4-5.1,4.7-9.6,9.3l-1.7,1.8l0.6,1 c1.3,2.1,2.4,3.3,3.2,3.7c0.9,0.4,1.9,0.2,3.2-0.5c0.8-0.5,0.9-0.6,5-3.7c3.6-2.7,3.9-3,5.1-3.7c3-1.8,4.5-2,5.8-0.8 c0.9,0.9,1.7,2.3,2.9,5.4l0.4,1.1l0,0.9l-0.1,0.9l-0.4,0.2c-0.2,0.1-1.2,0.5-2.3,1c-7.9,3.3-11.3,5.3-14.6,8.6 c-1.9,1.9-3.6,4.3-5.4,7.3c-0.7,1.2-2.2,4.3-2.9,5.8c-0.5,1.2-0.5,1.2-0.5,1.9c0,0.4,0.1,1.7,0.1,2.8c0.1,1.1,0.1,2.4,0.1,2.9v0.8 l0.5,0.7c2.1,2.9,5.4,7.1,6.6,8.2c1.1,1.1,2.9,2.4,4.3,3.2c3.5,1.9,7.6,2.2,11.7,0.8c2-0.7,3.9-1.7,5.7-2.9c1.2-0.9,2.9-1.9,4.3-2.5 c3.4-1.6,3.9-2,5.2-3.3c1.4-1.5,2.3-3.3,2.8-5.3c0.1-0.6,0.3-2.5,0.4-4.8c0.1-1.8,0.1-7,0-8.9c-0.4-7.6-1.8-14.8-4.1-21.7 c-0.8-2.3-1.2-3.5-2.2-5.4c-1-2-1.6-3.1-2.4-4.1C468.2,255.5,464.5,253.6,460.1,253.9z M463.9,291c0.7,0.2,1,0.4,1.3,1 c0.7,0.9,0.9,2.3,0.5,3.5c-0.7,2.4-2.3,4.7-4.5,6.1c-1.1,0.8-2.9,1.5-4,1.6c-0.5,0.1-1-0.2-2-1.1c-0.4-0.4-0.9-0.8-1.1-0.9l-0.3-0.2 l0.1-0.4c0.1-0.6,0.4-2,0.6-2.6c1-2.6,2.8-4.8,5.1-6.2c0.8-0.5,1.8-1,2.2-1C462.4,290.7,463.4,290.8,463.9,291z" />
|
|
||||||
<path class="st0" d="M524.8,257c-0.8,0.1-2.4,0.5-3,0.7c-1.9,0.8-3.3,2.5-3.8,4.4c-0.1,0.5-0.4,2.7-0.5,5c0,0.6-0.1,3-0.2,5.4 c0,2.3-0.1,4.4-0.1,4.6c0,0.2-0.1,0.9-0.2,1.5c-0.3,3.1-1.1,6.5-2.1,9.4c-1.2,3.4-3,7.2-4.9,9.9c-0.4,0.5-1.1,1.6-1.6,2.4 c-1.2,1.8-1.8,2.6-2.4,3.1c-1.1,0.9-2.1,1.1-4,0.6c-1.4-0.4-1.8-0.9-1.9-3.3c-0.2-3.1-0.4-10-0.4-19.5c0-8.1-0.1-9.8-0.4-14.6 c-0.1-1.7-0.2-3.8-0.3-4.8c-0.1-1-0.1-1.8-0.1-1.8c0,0-0.8-0.1-1.8-0.2c-3.3-0.2-4.9,0.1-5.9,1.1c-0.7,0.6-1,1.3-1.4,3.3 c-2,8.1-3,15.5-3.4,23.8c-0.1,2.4-0.1,9.8,0.1,11.9c0.2,2.4,0.3,4.3,0.5,5.4c1.2,8.7,4.6,13,11.3,14.6c1.8,0.4,3.1,0.5,5.9,0.6 l2.6,0l5-5.6c2.8-3.1,5.1-5.6,5.2-5.7l0.2-0.2l2.6,2.3c3.4,3.1,3.4,3.1,4.2,3.5c1.1,0.5,1.8,0.7,3,0.7c1.2,0,1.8-0.1,3.1-0.6 c1.2-0.5,1.8-0.9,2.6-1.6c0.7-0.7,1.2-1.4,1.7-2.3c0.7-1.5,0.8-3,0.4-5.5c-0.6-3.4-0.9-6.9-1.1-11.4c-0.1-4-0.1-7.3,0.2-16.8 c0.2-6.7,0.2-7.6-0.3-10.3c-0.4-2-1.2-5.1-1.7-6C530.6,258.3,527.7,256.7,524.8,257z" />
|
|
||||||
<path class="st0" d="M149.2,258.3c-0.5,0.3-1.2,1-2,2.1c-0.4,0.5-0.9,1.2-1.1,1.6c-0.2,0.3-0.5,0.7-0.6,0.9c-0.1,0.2-0.1,1-0.2,3.6 c-0.2,4.4-0.4,10.5-0.9,20.3c-0.8,18.5-1,21.8-0.8,23.6c0.2,2.5,0.6,5.1,1,6.2c0.6,1.5,1.5,2.7,2.9,3.6c0.5,0.4,1.8,0.9,2.3,1.1 c1.9,0.5,4,0.2,5.6-0.6c1.2-0.7,2.2-1.7,2.8-3c0.7-1.4,0.7-1.6,0.7-4.9c0-1.5,0-4.4-0.1-6.3c0-1.9-0.1-5.2-0.1-7.2 c0-3.2,0-3.8,0.1-4.5c0.3-1.5,0.8-3.4,1.3-4.4c0.3-0.5,1.7-2.6,2.7-4c1.1-1.4,2.6-3.3,4.6-5.8c0.7-0.9,1.9-2.3,2.5-3.1 c1.4-1.7,1.5-1.8,2.6-1.8c0.7,0,0.7,0,1,0.2c0.4,0.3,0.8,0.8,1,1.3c0.2,0.6,0.3,3.1,0.4,9.1c0,5.2,0,8.7-0.3,15 c-0.2,5.9-0.3,10.3-0.2,11.3c0.3,2.7,1.1,5.5,2.4,8.1c0.6,1.1,1.2,1.9,2.2,2.3c0.9,0.4,1.4,0.5,2.5,0.5c0.8,0,0.9-0.1,1.8-0.4 c1.7-0.7,3-1.8,3.9-3.1c0.5-0.8,0.7-1.2,1-2.4c0.4-1.3,0.5-2.3,0.6-4.2c0-1,0.1-2.4,0.2-3.3c0.1-1.6,0.1-8.6,0.1-12.4 c0-1.4,0-2.3,0.1-2.8c0.5-4,2.1-7.5,4.5-10.3c0.4-0.4,0.9-1.1,1.3-1.5c0.4-0.4,1.2-1.6,2-2.6c2-2.9,2.7-3.7,3.9-4.7 c1.5-1.3,3.1-2,5-2.2l0.7-0.1l0.2,0.6c0.7,1.8,1,3.7,0.8,5.8c-0.1,0.6-0.2,2-0.4,3c-0.4,3-0.5,3.7-0.7,6.2c-0.1,1.3-0.3,3.2-0.4,4.3 c-1,9.4-1.1,11.1-1.1,14.8c0,2.4,0,3,0.3,4.5c0.4,2.2,1.5,5,2.5,6.1c0.8,0.9,1.9,1.7,3.1,2.1c1.4,0.5,3.7,0.2,5.2-0.5 c1.7-0.8,2.9-2.6,3-4.5c0-0.5,0-1-0.2-2.3c-0.5-3.1-0.5-4.1-0.5-8c0-4.4,0.1-5.6,0.9-13.8c0.7-6.5,0.7-7.2,0.8-9.7 c0.1-5.6-0.5-9.6-2-13.2c-1.5-3.5-4.2-6.5-7.7-8.7l-0.8-0.5l-1.9-0.1c-2-0.2-1.9-0.2-3.3,0.1c-0.4,0.1,0,0.2,0.7,0.2 c0.4,0,0.7,0,0.7,0.1c0,0.1-16.7,12-16.8,12c0,0-0.2-0.5-0.4-1c-1.2-3.2-1.9-4.5-4.4-8.2l-2.2-3.2l-1.2-0.2 c-4.3-0.8-7.9-0.2-11.5,1.9c-2.8,1.6-5.6,4.1-9.3,8.2l-0.4,0.5l-0.3-0.8c-1.2-3.3-3.6-8.1-4.6-9.1c-1-1.1-2.8-1.9-4.4-2 C149.6,258.1,149.5,258.1,149.2,258.3z" />
|
|
||||||
<path class="st0" d="M123.5,259.1c0,0-1.8,0.2-4,0.3l-4,0.3l-0.2,0.2c-0.4,0.3-0.8,0.4-1.3,0.4l-0.4,0l-0.9,0.8 c-5.5,5-9.7,11.2-12.8,19.1c-0.7,1.7-1.9,5.4-2.4,7.4c-1,3.6-1.9,7.6-2,9.2c-0.1,1.2-0.1,3.9,0,5.1c0.4,4.4,2,9.3,4.2,12.5 c2.7,4,6.7,6.8,11.3,7.7c1,0.2,1.2,0.2,3,0.2c1.9,0,2.1,0,3-0.2c1.4-0.3,2.6-0.7,3.9-1.3c1.7-0.8,3-1.7,4.4-2.9 c0.8-0.7,7.3-7.8,7.5-8.1c0.3-0.7,2.3-5.9,2.9-7.6c1.4-3.6,1.9-5.4,2.6-8.4c1.7-7.4,1.7-14.1,0.2-20.2c-0.7-2.8-2-6.2-3.3-8.5 c-1.6-2.9-4.4-5-7.6-5.8c-0.7-0.2-1.1-0.2-2.4-0.2C124.3,259,123.6,259,123.5,259.1z M122.5,274c0.7,0.2,1.2,0.5,1.7,1 c0.6,0.6,0.8,1.1,1,2.1c0.1,0.4,0.2,1,0.3,1.3c0.1,0.3,0.2,0.9,0.2,1.6c0,0.6,0.1,1.4,0.2,1.8c0.1,0.9,0.1,1.7,0,3.3 c-0.4,5.1-1.8,10-4.2,14.4c-1.1,2-3.2,4.9-4.4,6.1c-0.8,0.9-2,1.4-3.2,1.4c-0.6,0-0.7,0-1.1-0.2c-0.6-0.3-1.5-1.4-1.9-2.1 c-0.3-0.6-0.6-2.1-0.9-4c-0.2-1.4-0.2-5.8,0-7.1c0.5-4.1,1.7-8,3.6-12.1c0.6-1.4,0.9-1.9,2-3.8c0.8-1.5,1-1.6,3.2-2.7 C121.1,273.8,121.5,273.7,122.5,274z" />
|
|
||||||
<path class="st0" d="M407.4,259.2c-1.4,0.1-1.7,0.1-3.1,0.3c-3.3,0.6-6.7,1.9-9.5,3.7c-0.9,0.6-7.2,6.1-7.6,6.6 c-0.1,0.2-0.3,0.5-0.5,0.8c-0.1,0.3-0.3,0.5-0.4,0.6c-0.2,0.3-0.5,0.2-3.5-0.9c-2-0.8-3-1-4.1-1.2c-2.8-0.3-4.3,1.1-4.7,4.6 c-0.3,2.8-2,35.9-2,40c0,2.8,0.5,4.7,1.5,6.3c1.2,1.8,3.4,3,5.4,3c0.8,0,1.3-0.1,2-0.4c1-0.5,1.7-1,3.9-3.1c0.5-0.5,1-1,1.2-1.1 c0.2-0.2,0.4-0.4,0.4-0.5c0-0.1,0.1-0.3,0.1-0.5c0-0.2,0.6-3,1.3-6.3c1.9-9,2.4-11.4,3.4-15.9c0.5-2.1,0.7-2.8,1.1-3.7 c1-2.4,2.1-4.7,3.3-6.9c0.4-0.7,0.8-1.5,0.9-1.8c0.1-0.4,0.3-0.6,0.5-0.8c0.2-0.1,0.4-0.4,0.6-0.6c0.2-0.2,0.5-0.5,0.6-0.6 c0.3-0.3,0.2-0.2-0.4,0.5c-0.1,0.2,0,0,0.3-0.2c0.3-0.3,0.5-0.5,0.5-0.6c0,0,0.1-0.2,0.2-0.3c0.1-0.2,0.3-0.4,0.3-0.5 c0.1-0.1,0.2-0.2,0.2-0.3c0.1,0,0.3-0.2,0.4-0.4c0.5-0.6,2.2-2.3,3-2.9c0.4-0.3,1-0.7,1.2-0.8c0.5-0.2,0.6-0.3,1.4-0.3 c0.8,0,0.9,0,1.4,0.3c0.6,0.3,1.3,1,1.6,1.6c0.2,0.5,0.8,3.2,1,4.6c0.6,4.7,0.1,9.4-1.4,13.9c-0.3,1-0.4,1.2-0.4,2.1 c-0.1,1.4-0.2,2.5-0.3,2.8c-0.1,0.1-0.1,0.2,0,0.2c0.1-0.1,0.2,0.6,0.2,3.3c0,1.4,0.1,4,0.1,5.9l0.1,3.4l0.3,0.7 c0.4,1.1,1.5,3,2.2,4.2c1.3,2,2.6,3,4.5,3.6c0.6,0.2,0.8,0.2,2.1,0.2c1.2,0,1.4,0,2-0.2c2-0.6,3.5-2,4.3-3.9 c0.3-0.7,0.9-3.3,1.2-4.8c0.2-1.2,0.3-3.8,0.6-13.7c0.2-7,0-14.8-0.4-18.8c-0.5-4.9-2.1-11.4-3.6-14.4c-1.9-3.8-5.6-6.4-9.9-6.9 C410,259.1,409.4,259.1,407.4,259.2z" />
|
|
||||||
<path class="st0" d="M254.8,261.2c-2.8,0.4-5.6,2-8.8,4.9c-1.7,1.6-3.8,4.1-5.3,6.5c-0.3,0.5-0.6,0.9-0.6,0.9s-0.7-0.9-1.6-2 c-0.8-1.1-1.7-2.2-1.9-2.4c-0.6-0.5-1.6-1.1-2.3-1.3c-2.3-0.8-4.2,0-5.3,2.3c-0.5,1.1-0.9,2.8-1.1,4.6c0,0.4-0.3,4-0.6,8.2 c-1.1,13.6-1.6,20.6-2.1,28.6c-0.4,5.8-0.3,7.9,0.5,11c0.3,1.1,0.4,1.3,0.7,1.8c0.2,0.3,0.7,0.8,1,1.2c2.2,2.1,4.7,2.7,6.9,1.7 c0.8-0.4,1.5-0.9,1.9-1.6c0.7-0.9,1.6-3.1,1.9-4.8c0.4-1.8,0.4-2,0.5-10.1c0.1-11.5,0.1-12.7,0.5-14.5c0.2-1.1,0.8-2.8,1.2-3.7 c0.8-1.6,6.8-9.1,11.6-14.3c1.4-1.5,1.7-1.7,2.5-1.7c0.9,0,1.8,0.7,2,1.5c0.1,0.4,0.3,2.1,0.4,4.5c0.1,1.8,0.1,7.3,0,9.1 c-0.4,5.8-1.4,11.6-2.7,16.2c-0.1,0.5-0.2,0.9-0.2,1.4c0,0.6,0,0.7-0.3,1.1c-0.4,0.5-0.6,0.9-0.8,1.2c-0.1,0.3-0.1,0.2,0.4-0.3 c0.2-0.2,0.3-0.4,0.4-0.4c0.1,0,0.2,2.8,0.3,5.3l0.1,2.2l0.3,0.5c0.6,1.2,2.2,3.4,3.6,4.9c0.9,1,1.9,1.7,3.1,2.1 c0.8,0.3,2.3,0.3,3.2,0.1c1.6-0.4,2.8-1.2,3.7-2.5c1-1.4,1.5-3.6,1.7-6.6c0.3-6.7,2-13.7,5.5-22.6c1.5-3.8,4.4-10.5,4.9-11.5 c0.8-1.5,2.2-3.4,3-4c0.5-0.4,1.3-0.8,2-1c0.3-0.1,0.8-0.1,1.2-0.1c0.9,0,1.5,0.1,2.3,0.5c1.6,0.8,2.9,2.2,3.4,4 c0.2,0.7,0.2,1.6,0,4.4c-0.2,3.7-0.5,6.6-0.9,9.9c-0.1,1-0.3,2.6-0.4,3.6c-0.1,0.9-0.2,2.9-0.3,4.3c-0.4,5.5-0.5,9.1-0.2,10.7 c0.5,3,1.9,4.8,4.4,6c2.2,1.1,4.2,1.2,5.9,0.3c0.9-0.4,1.4-0.8,2.8-2c1.2-1,1.5-1.3,1.1-1.3c-0.1,0-0.1-0.1-0.1-0.4 c0.1-1.1,0.5-6.2,1.1-14.2c0.4-5.9,0.8-11.2,1-12.6c0.3-3.2,0.1-9.6-0.4-12c-1-4.7-3.6-8.9-7.4-11.6c-6.4-4.7-15.1-5-21.8-0.6 c-0.4,0.3-2,1.5-3.5,2.7c-1.5,1.2-2.8,2.2-2.8,2.2c0,0-0.6-0.6-1.2-1.3c-3.3-3.9-5.7-6.1-8.3-7.4c-1.7-0.8-2.8-1.1-4.5-1.2 C255.8,261.1,255,261.2,254.8,261.2z" />
|
|
||||||
<path class="st0" d="M1131.6,261.4c-1.5,0.1-3,0.5-4.2,1c-5.1,2.2-9.4,5.5-12.6,9.9c-1.2,1.5-2,2.8-2.9,4.7l-0.8,1.6l0,0.7 c0,0.9,0.3,1.8,1,3.2c0.7,1.4,0.8,1.6,1.5,1.8c0.6,0.2,2,0.2,2.7,0c1.2-0.3,6.8-3.7,10.3-6.3c0.8-0.6,1.4-1,1.4-1 c0.1,0.1,0.8,4.2,1,5.5c0.2,1.4,0.2,2.9,0,3.6c-0.4,1.7-1.6,2.6-5.5,4.2c-1.3,0.5-8,4-9.5,4.9c-4.3,2.6-7.8,6.3-10.4,10.7 c-0.9,1.5-1.5,3.5-1.8,5.5c-0.2,1.3-0.1,3.6,0.1,4.8c0.5,2.4,1.5,4.2,3.2,5.8c1.4,1.4,3,2.4,5,3c1.7,0.6,2.9,0.7,5.4,0.7 c3.6,0,6.8-0.4,10.1-1.1c2.4-0.5,5.8-1.8,9.5-3.6l1.4-0.7l1-1c3.2-3.2,5.4-7.2,6.5-11.6c0.5-2.1,0.6-3.1,0.6-5.8 c0-1.5,0-2.7-0.1-3.1c-0.2-1.5-0.3-3.3-0.3-9.6c0-3.6-0.1-6.6-0.1-6.7c0,0-0.1-1.1-0.1-2.4c-0.2-4.4-0.5-6.6-1.8-10.6 c-1.3-4-2.9-6.2-5.6-7.5C1135.2,261.6,1133.2,261.3,1131.6,261.4z M1127.8,304.7c0.3,0.4,0.7,1.1,0.8,1.5c0.1,0.4-0.1,0.8-1,1.8 c-1.6,1.9-4,3.9-5.5,4.6c-0.9,0.4-2.2,0.6-3.4,0.3c-0.5-0.1-1-0.5-1.8-1.4l-0.4-0.5l0.7-0.8c1.8-2.3,2-2.4,3.4-3.1 c1.8-0.9,3.7-1.6,6.2-2.3c0.4-0.1,0.6-0.2,0.7-0.2C1127.5,304.4,1127.6,304.5,1127.8,304.7z" />
|
|
||||||
<path class="st0" d="M352.1,262c-0.1,0-0.4,0.1-0.7,0.1c-0.8,0.1-1.5,0.4-2.5,0.9c-0.8,0.4-2.7,1.6-2.7,1.7c0,0.3-0.4,5.5-0.5,7 c-0.6,7.1-1.6,14.6-2.3,17.5c-1.2,4.9-3,10-5,14.5c-1,2.2-1.4,2.9-2.3,3.8c-0.7,0.7-1.7,1.4-2.5,1.8c-0.4,0.2-0.6,0.2-0.9,0.2 c-0.6-0.1-0.9-0.3-1.3-0.7c-0.6-0.7-0.9-1.7-1-3.7c0-0.7-0.1-1.9-0.2-2.8c-0.5-4.6-0.6-7.8-0.5-15.7c0.1-7,0-9.7-0.2-11.4 c-0.2-1.1-0.5-2.4-0.9-3.5c-0.2-0.5-0.5-1.2-0.6-1.6s-0.4-0.9-0.5-1.1c-0.6-0.9-1.6-1.6-2.6-1.9c-0.6-0.2-1.7-0.2-2.3,0 c-1,0.3-2.5,1.2-3.4,2.1c-1.6,1.7-2.3,3.5-2.3,6.2c0,0.6-0.4,8.2-0.8,16.8l-0.8,15.6l0.3,0.7c0.2,0.4,0.8,1.9,1.4,3.3 c2.4,5.7,3.6,7.6,5.8,9.7c1.7,1.6,3.7,2.7,5.9,3.2c1.2,0.2,3.2,0.2,4.4,0c2.4-0.5,4.7-1.6,6.9-3.4c1.2-1,2.8-2.4,3.8-3.6 c0.5-0.6,1-1,1-1c0,0,0.7,0.8,1.6,1.7c2.1,2.3,3.8,3.7,5,4.3c0.9,0.5,1.7,0.6,2.8,0.7c1.8,0.1,3.1-0.3,4.7-1.4c1.7-1.1,2.9-3,3.2-5 c0.1-0.5,0.1-1.3,0-3.8c-0.3-8.3-0.6-18.6-0.9-32c-0.1-3.3-0.1-6.7-0.2-7.5c0-1.5-0.2-3.4-0.5-4.3c-0.5-1.9-1.5-3.7-2.9-5.1 c-1.3-1.3-2.1-1.8-3.3-2.1C353.7,262.1,352.4,262,352.1,262z" />
|
|
||||||
<path class="st0" d="M1526.8,265.4c-1.5,0.2-2.5,0.5-4.7,1.7c-3.2,1.6-5.4,3.2-7.9,5.6c-1.9,1.8-3.3,3.8-4.5,6.3 c-0.7,1.5-1.1,2.6-1.4,3.9c-0.2,1.2-0.3,3.6,0,4.7c0.8,3.8,3.5,6.9,7.8,9.1c0.6,0.3,2.3,1,3.8,1.6c1.5,0.6,2.8,1.1,3,1.2 c0.5,0.3,1.5,1,2.3,1.7c0.5,0.5,0.7,0.8,1,1.3c0.4,0.9,0.6,1.8,0.6,2.7c0,1.5-0.3,2.5-1.2,3.8c-0.2,0.4-0.6,0.9-0.7,1.2 c-0.4,0.8-0.6,0.9-1.1,0.8c-0.4-0.1-1-0.4-2.4-1.5c-1.5-1.2-2.1-1.5-3.2-1.6c-1.4-0.2-2.6,0.2-5,1.6c-1.1,0.6-2.1,1.2-2.3,1.2 c-0.2,0-0.3-0.5-0.3-1.7c-0.1-1.4-0.4-2.5-1-3.7c-0.9-1.9-2.2-2.6-4-2.2c-1.1,0.2-2.1,0.7-3.9,2.1c-2.7,2-6.2,4.3-7.2,4.7 c-1.2,0.6-2.4,0.4-3.7-0.5c-0.8-0.6-2.3-2.3-2.6-2.9c-0.5-1-0.6-2-0.4-3c0.2-1,0.4-1.3,1.7-2.7c4-4.4,4.2-4.7,5.2-6.2 c0.7-1,1.2-2,1.8-3.1c1.5-2.9,2.2-5.3,2.8-8.8c0.3-2,0.2-3.5-0.4-5c-0.5-1.3-1.7-2.8-2.8-3.5c-1.9-1.2-4.1-1.7-6.3-1.2 c-1.6,0.3-3.8,1.5-5.8,3.1c-4.4,3.6-8.2,9.9-9.8,16.6c-0.4,1.5-0.7,3-0.9,4.6c-0.2,1.6-0.2,5.6,0,7.1c0.8,5.6,2.9,10.1,6.5,13.7 c1.6,1.6,3.1,2.6,5,3.6c3.6,1.8,7.6,2,11.6,0.7c1.1-0.4,3.1-1.4,4.2-2.1c1.6-1,2.3-1.7,5.6-5c2.1-2,4.5-4.2,4.8-4.4 c0.1-0.1,0.1,0,0.1,0.1c-0.1,0.4-0.2,2.3-0.1,3.3c0.5,5.8,2.9,9.8,6.8,11.2c1.1,0.4,1.8,0.5,3.4,0.5c1.8,0,3.2-0.3,5.1-1 c1.1-0.4,3.2-1.4,4.1-2c5.3-3.2,8.9-8.9,9.5-15.2c0.1-1.3,0-4.6-0.2-5.9c-0.6-3.8-1.6-6.6-3.4-9.9l-0.5-0.9l-2.1-0.9 c-7.9-3.4-12.1-5.4-12.4-5.8c-0.2-0.3-0.1-0.8,0.3-1.5c0.7-1.2,2.3-3.3,3.1-4.1c1-0.9,1.9-1.3,3.2-1.3c1.2,0,1.9,0.2,5.2,1.1 c1.4,0.4,2.6,0.7,2.6,0.7c0,0,0.3-0.6,0.6-1.3c1-2.2,1.4-3.6,1.4-5c0-1-0.2-1.8-0.6-2.7c-0.6-1.3-1.4-2.2-2.8-3.1 c-1.2-0.8-2.5-1.3-3.9-1.6C1529.4,265.3,1527.5,265.3,1526.8,265.4z" />
|
|
||||||
<path class="st0" d="M1224.1,268.9c-0.6,0.2-1,0.5-2.1,1.6c-2.3,2.2-2.8,2.9-7,9c-1.7,2.5-3.2,4.6-3.2,4.6c0,0-0.3-0.3-0.7-0.6 c-1.1-1-2.1-1.8-3-2.5c-0.5-0.3-1.1-0.8-1.4-1.1c-1.6-1.4-4-2.8-5.3-3.1c-0.7-0.2-2.2-0.2-2.9,0c-1.4,0.4-2.9,1.4-3.5,2.5 c-0.8,1.6-0.8,3.4,0.1,4.8c0.6,1,0.8,1.2,1.8,2.8c1.2,1.9,2.4,3.5,3.8,5.5c1.2,1.5,1.6,2.2,2,3.2c0.9,2.2,1.1,4.6,0.5,6.8 c-0.3,1.2-0.6,1.8-1.9,4.2c-2.8,5.3-3.9,7.7-4.6,10.4c-0.4,1.6-0.6,3-0.6,4.7v1.4l1.3,0.6c4.6,2.2,6.7,2.4,8.5,0.7 c1.2-1.1,1.9-2.4,4.6-8.5c1.6-3.6,2.2-4.8,2.3-4.8c0.1,0,1.9,1.3,4,2.8c3.9,2.8,4.8,3.4,5.7,3.6c0.6,0.2,2.1,0.2,2.7,0 c1.3-0.3,2.8-1.3,3.6-2.4c1-1.2,1.4-2.7,1.4-4.3c-0.1-1.4-0.2-1.6-2-5.4c-0.8-1.5-1.5-3.2-1.7-3.7c-0.3-0.7-0.5-1-0.9-1.5 c-2.3-2.5-3.4-4.4-3.6-6.3c-0.1-1.1,0.1-2.2,0.8-3.9c0.4-0.9,0.9-1.9,4.2-8.5c0.8-1.6,1.6-3.2,1.7-3.6c0.6-1.5,0.9-2.9,0.9-4.5 c0-1-0.1-1.5-0.6-2.4c-0.6-1-1.9-2.1-2.8-2.4C1225.3,268.8,1224.5,268.8,1224.1,268.9z" />
|
|
||||||
<path class="st0" d="M915.9,269.6c-1.6,0.1-4.3,0.4-6.2,0.7c-0.3,0.1-0.3,0.1-3.3,4.5l-2.9,4.4l-0.9,0.3c-1,0.4-1.8,0.6-2.2,0.5 c-0.3-0.1-0.6-0.4-0.7-0.8c0-0.2-0.2-1-0.2-1.8c-0.1-0.8-0.3-2.5-0.5-3.7c-0.2-1.2-0.4-2.6-0.4-2.9l-0.1-0.7L898,270 c-0.2,0-0.8-0.1-1.4-0.2c-1.2-0.2-3.5-0.1-4.4,0.1c-2.6,0.6-4.5,1.9-5.9,4.2c-0.6,1-1,2.1-1.9,5.2c-0.9,3-1,3.6-1.8,5.5 c-1,2.7-2.8,6.9-3,7.1c0,0-0.7-1.4-1.4-3.3c-0.8-1.8-1.7-4-2.1-4.8c-1-1.9-2.4-4-3.2-4.8c-1.6-1.5-3.7-1.9-5.8-1.2 c-1.3,0.5-2.3,1.4-2.9,2.6c-0.4,0.8-0.6,1.5-0.6,2.5c0,0.7,0,0.9,1.3,5.5c1.4,5.1,1.6,6,2.5,10.2c1.5,7,2.1,9.4,3.2,13.2 c1.2,4.1,2.4,6.3,3.9,7.4c1.4,1,2.7,1.3,5.1,1.5c1.2,0.1,4.2,0,5.3-0.1l0.5-0.1l2.9-7.1c2.4-5.8,2.9-7.3,3.1-8 c0.1-0.5,0.6-2.7,1.2-5c0.6-2.3,1.1-4.5,1.2-4.8l0.1-0.6l0.7,0c0.7,0,0.7,0,0.7,0.2c0.1,0.2,1.1,4.7,1.1,4.8c0,0,0,0.1,0.1,0.2 c0.1,0.1,0.1,0.9-0.3,5.5L896,311l0.4,1.2c0.2,0.6,0.8,2.1,1.2,3.2c0.4,1.1,1,2.7,1.3,3.4l0.5,1.4l1.1,0.7c4.9,3.2,8.5,4.9,11.6,5.5 c1.2,0.2,3.4,0.2,4.6,0c3.8-0.7,7.9-2.9,14.4-7.8c0.6-0.5,1.1-0.8,1.2-0.8c0.1,0,0.2-0.1,0.2-0.2c0.1-0.1,0.2-0.2,0.2-0.2 c0.2,0,0.8,0.7,1.5,1.7c0.7,1,2,2.3,2.7,2.7c1.1,0.7,2.2,0.9,3.4,0.8c1.4-0.2,2.6-0.8,3.6-1.7c1-0.9,1.8-2.2,2.1-3.5 c0.2-0.9,0.3-3.3,0.3-7.7c0-2,0-4.7,0.1-6c0-1.3,0.1-4.1,0.1-6.1c0-4.1,0-4.6,0.5-6.1c0.6-2,2-3.8,3.8-4.9c0.8-0.5,1.6-0.9,3-1.4 c2-0.6,3.2-1.1,5-2c1.6-0.8,2-1.1,2.6-1.9c0.6-0.8,1.1-2.1,1.1-2.8c0-0.8-0.5-2-1.2-2.8c-0.8-0.9-1.9-1.5-3.7-2 c-2.5-0.7-3.5-0.7-11.3-0.1c-0.7,0-2.5,0.1-3.9,0.1c-2.7,0-2.7,0-3.1,0.2c-1.4,0.7-2.9,2.3-3.4,3.6c-0.5,1.3-1.2,4.3-1.4,6.2 c-0.2,2-0.3,3.7-0.2,6.1c0.1,2.5,0,3.8-0.3,5.5c-0.5,2.5-1.7,4.9-3.4,7.1c-1.3,1.6-3.3,3.4-5.8,5.2c-1.8,1.3-5.4,3.6-6,3.9 c-0.9,0.4-1.8,0.5-3,0.5c-1.3-0.1-2-0.2-2.8-0.6c-1.2-0.6-2.1-1.6-2.6-2.7c-0.3-0.6-0.6-1.9-0.6-2.5c0-1,0.4-1.9,1.1-2.6 c0.2-0.2,0.9-0.8,1.5-1.3c3.4-3,9.7-9.3,11.2-11.1c1.9-2.4,3.1-5.3,3.5-8.4c0.1-0.8,0.1-1.4,0.1-2.8c-0.1-2.8-0.2-3.7-0.9-5.1 c-1.1-2.4-3.2-4.1-5.8-4.8c-0.6-0.2-0.9-0.2-2.4-0.2C917.3,269.5,916.2,269.5,915.9,269.6z M916.2,283.3l0.4,1.2l-0.2,0.5 c-0.1,0.3-0.4,1-0.6,1.5c-0.4,0.8-0.5,1-0.8,1.2c-0.4,0.3-1.3,0.7-1.7,0.8c-0.3,0-0.3,0-0.5-0.5c-0.4-0.8-0.5-1.3-0.4-1.7 c0.2-0.6,0.6-1.6,1-2.2c0.4-0.6,0.5-0.7,1.4-1.3c0.5-0.4,1-0.7,1-0.6C915.8,282.1,916,282.6,916.2,283.3z" />
|
|
||||||
<path class="st0" d="M1040.6,270c-5.6,0.6-10.4,4.5-13.8,11.2c-1,1.9-1.7,3.4-2.3,5.1c-0.2,0.6-0.5,1.1-0.6,1.3l-0.2,0.3l0.2-0.1 l0.2-0.1v2.3c0,2.2,0,2.3,0.2,2.4c0.1,0.1,0.2,0.2,0.2,0.3c0,0.6,2.1,2.9,3.3,3.7c2.2,1.5,4.2,2,9.6,2.8c2.5,0.4,3.2,0.5,4.1,0.9 c1.6,0.8,2,2.1,1.1,3.9c-0.8,1.7-3.3,4.3-4.7,5c-0.8,0.4-1.3,0.4-2.1,0c-0.5-0.2-0.8-0.5-1.7-1.4c-1.9-1.9-2.9-2.4-7.9-4.2 c-3-1-4.5-1.7-6.4-2.8c-1.1-0.6-1.5-0.8-2.3-0.8c-0.6,0-0.7,0-1,0.2c-0.2,0.2-0.6,0.5-0.9,1c-0.6,0.8-0.7,1-1.7,1.8 c-0.3,0.3-1.3,1.1-2.2,1.9c-3,2.8-3.8,3.5-4.3,3.6c-1.1,0.4-2.1,0.3-3.1-0.2c-0.7-0.3-1.4-1-1.7-1.5c-0.2-0.3-0.2-0.4-0.1-1.3 c0-0.5,0.1-1.1,0.2-1.5c0.2-0.6,0.7-1.7,0.9-1.9c0.1-0.1,2.3-2.1,5-4.4c2.7-2.3,5-4.4,5.1-4.6c0.1-0.2,0.3-0.4,0.4-0.4 c0.2,0,0.5-0.3,0.8-0.9c0.1-0.3,0.3-0.6,0.3-0.8c0.1-0.4,0.5-1.9,0.7-2.3c0.1-0.2,0.3-0.6,0.5-0.8l0.3-0.3v-3.9v-3.9l-0.5-0.6 c-0.6-0.8-1.9-2-2.7-2.6c-0.8-0.5-2.1-1.2-2.9-1.4c-1.1-0.4-1.8-0.5-3.2-0.5c-1.2,0-1.5,0-2.2,0.1c-2.7,0.6-5.4,2.1-7.2,4 c-0.5,0.6-1.6,1.9-2.6,3.2c-3.9,5.2-6,10.2-6.8,15.7c-0.2,1.5-0.2,4.9,0,6.4c0.1,0.6,0.2,1.2,0.2,1.3c0,0.1-0.1,0.5-0.2,0.8 c-0.2,0.6-0.2,0.8-0.2,1.8c0,1,0,1.3,0.2,1.8c0.4,1.5,1.6,3.2,2.6,3.7c0.3,0.2,0.7,0.6,0.9,1c0.1,0.1,0.3,0.7,0.4,1.2 c0.4,1.1,0.6,1.6,1.1,1.9c0.2,0.1,0.4,0.3,0.4,0.4c0.1,0.2,0.4,1.3,0.4,1.8l0.1,0.4l1.6,0.6c5.5,2.1,7.7,2.7,10.1,2.7 c2,0,3.6-0.4,6-1.6c1.9-0.9,3.4-1.8,6.9-4.2c1.6-1.1,3-2,3-2c0,0,0.1,0.1,0.1,0.3c0.3,1,1.1,2.5,1.7,3.1c0.5,0.6,2.1,1.9,2.9,2.5 c5.3,4,10,4.2,16.1,0.5c3.4-2,6.2-4.7,9.2-8.5c1.6-2.1,2.4-3.3,3.1-4.9c1.2-2.7,1.6-5,1.5-8.1c-0.1-3.9-1-6.8-2.9-9.6 c-1.5-2.2-3.6-4-6.1-5.2l-0.6-0.3l-3.3,0c-3.8,0-3.5,0-4.2-0.9c-0.2-0.3-0.4-0.6-0.5-0.7c-0.1-0.1-0.1-0.2-0.1-0.3 c0.1-0.2,0.7-0.6,1.3-0.9c0.5-0.2,0.6-0.2,3.7-0.2h3.2l0.4-0.7c1.8-3.2,1.8-6.4,0-10c-0.8-1.6-0.7-1.5-1.4-1.6 C1044.4,269.9,1042.1,269.8,1040.6,270z M1014.6,291.8c-0.1,0.2-0.2,0.4-0.2,0.3c0-0.1,0.3-0.8,0.4-0.8 C1014.8,291.4,1014.7,291.6,1014.6,291.8z" />
|
|
||||||
<path class="st0" d="M1159.5,271.7c-1.3,0.2-2.4,0.6-3.5,1.4c-1,0.7-1.1,0.8-1.7,2.8c-2.4,7.4-3.9,15-4.4,23 c-0.2,3.3-0.2,9.2,0,12.3c0.2,2,1,4.2,2.5,6.7c0.7,1.2,1.3,2,2.2,2.8c1.5,1.4,3.1,2.2,5,2.4c2.3,0.2,4.5-0.5,7-2.2 c1.2-0.9,5-4.8,7.2-7.4c0.3-0.3,0.5-0.6,0.6-0.6c0,0,1.5,1.6,3.3,3.5l3.3,3.5l0.5,0c0.3,0,0.6,0.1,1,0.3l0.5,0.3l0.7-0.5 c1-0.7,1.6-1.2,2.3-1.9c1.4-1.5,2.1-3,2.3-5c0.1-0.7,0.1-1.3-0.2-4.1c-0.3-4.1-0.5-6.4-0.9-13.3c-0.8-12-1.1-16-1.3-17 c-0.5-2.4-1.9-4.3-3.6-4.9c-1.3-0.5-3-0.3-4.4,0.4c-1.4,0.7-2.5,1.7-3.1,3.2c-0.3,0.6-0.6,1.8-1,3.7c-0.5,2.3-0.6,3.4-0.6,5.5 c0,4-0.4,6.3-1.4,9.4c-1.3,4.1-3.2,6.6-6.1,8.6c-0.8,0.5-2.6,1.5-2.6,1.4c0,0,0.6-8.5,1.1-15.8l0.4-5.8l0-2.8 c-0.1-3.7-0.4-7.1-0.7-7.8c-0.4-0.9-2.3-2.1-3.3-2.1C1160,271.7,1159.6,271.7,1159.5,271.7z" />
|
|
||||||
<path class="st0" d="M851.2,272.2c-1.4,0.2-2.7,0.9-3.6,1.9c-0.9,1-1.2,1.8-1.7,3.6c-0.6,2.8-0.8,4.2-0.8,7.5c0,2.8-0.1,4.1-0.4,6.4 c-0.1,1.2-0.2,1.7-0.6,2.9c-0.9,3-1.8,5.5-3.2,8.4c-0.4,0.8-0.5,1-0.8,1.1c-0.3,0.2-1.1,0.4-1.5,0.4c-0.5,0-1.2-0.6-1.5-1.4 c-0.1-0.3-0.1-0.7-0.1-3.8c0-1.9,0-4-0.1-4.7c-0.2-2.5-1.3-11.2-2-15.1c-0.2-1.4-0.3-1.7-0.6-2.3c-0.5-1-1.3-1.8-2.2-2.2 c-0.9-0.4-1.2-0.5-2.4-0.5c-1.2-0.1-1.9,0.1-2.8,0.5c-1.2,0.6-2.1,1.9-2.3,3.1c-0.1,0.7-0.6,5.6-0.9,9.2c-0.4,4.7-0.8,10.8-1.3,19.8 c-0.2,2.7,0,4.1,0.6,5.7c0.1,0.4,0.3,0.9,0.4,1.3c0.3,0.9,0.9,2.2,1.5,3c0.6,0.8,1.9,2.2,2.7,2.8c2.6,1.8,5.7,2.5,8.8,2 c0.9-0.2,2.9-0.8,3.8-1.1c1.1-0.4,2.1-1,3.2-1.8c1.9-1.3,3.2-1.8,5.1-1.8c0.8,0,1.3,0,1.9,0.2c1.6,0.3,3.5,0.3,4.8-0.1 c1.1-0.3,2.3-1.1,3-1.9c0.5-0.6,1-1.7,1.2-2.5c0.4-1.6,0.7-5.2,0.9-13.3c0.2-4.7,0.2-4.1-0.4-9.1c-0.7-5.9-1.7-13.3-2-14.2 c-0.4-1.3-1.4-2.6-2.7-3.2c-0.4-0.2-0.9-0.4-1.2-0.4C853.3,272.2,851.9,272.2,851.2,272.2z" />
|
|
||||||
<path class="st0" d="M1359.9,272.4c-4.2,0.6-8.1,3-11.3,6.9c-5.6,6.9-8,15.4-6.7,24.1c0.6,4.5,2.7,8.6,5.8,11.9 c2,2.1,4.5,3.5,7.3,4.2c1.7,0.4,4.3,0.5,6.2,0.3c2.5-0.3,5.2-1.3,7.2-2.6c2-1.3,3.4-2.8,5.2-5.4c2.3-3.4,4-7.6,4.9-12.3 c0.5-2.4,0.9-5.8,0.9-7.4c0-0.9,0-1.1-0.4-2.5c-2-8-5.7-13.3-11-15.9C1365.5,272.5,1362.6,272.1,1359.9,272.4z M1361.4,286 c1.8,0.8,3.5,2.4,4.4,4.2c1.2,2.4,1.3,6,0.2,9.3c-0.4,1.1-1.3,2.9-1.9,3.8c-0.7,1.1-2.1,2.5-2.7,2.8c-1.6,0.8-3.6,0.6-4.9-0.6 c-0.8-0.7-1.6-2.6-2-4.5c-0.9-4.3,0.1-9.5,2.4-12.8c0.3-0.5,0.8-1.1,1-1.3l0.5-0.5l1.2-0.3c0.7-0.2,1.2-0.3,1.2-0.3 C1360.8,285.8,1361.1,285.9,1361.4,286z" />
|
|
||||||
<path class="st0" d="M1407.7,272.5c-3.2,0.3-6.9,1.9-10,4.5c-1.4,1.1-2,1.5-3,1.6c-0.5,0.1-1.3-0.1-1.9-0.4c-0.8-0.4-2-1.3-2.8-2 c-0.2-0.2-0.6-0.4-1-0.6c-0.6-0.3-0.7-0.3-1.4-0.4c-2.3-0.1-3.8,1.2-4.3,3.6c-0.5,2.5-0.5,3.8-0.4,7.8c0,1.8,0.1,5.4,0.2,8 c0.1,4.2,0.2,9.3,0.3,13.9c0,0.8,0.1,1.7,0.2,2.1c0.3,1.5,0.9,2.9,1.5,3.7c1,1.3,2.7,2.2,4.3,2.4c0.7,0.1,1.4-0.1,2.4-0.7 c1.4-0.8,2.5-1.9,3-3.2c0.6-1.7,0.8-4.3,0.5-6.4c-0.3-2.2-0.1-4.1,0.6-6.3c1.1-3.2,3.2-6.6,5.5-9c2.1-2.1,4.7-3.4,6-3.1 c1,0.3,1.9,2,2.3,4.8c0.3,1.9,1.2,14.5,1.4,21.3l0.1,1.3l1.9,1c2.8,1.4,3.9,1.7,5,1.5c1.2-0.2,2.2-0.9,4.5-3.5l1-1.1V303 c0-10,0-10.3,0.1-10.3c0.1,0,0-0.7-1.6-7.4l-1.7-7.4l-0.5-0.5c-1.3-1.3-3.2-2.6-4.9-3.4c-1.8-0.9-3.2-1.3-5.1-1.4 C1409,272.4,1408.8,272.4,1407.7,272.5z" />
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 275 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 13 KiB |
|
@ -1,618 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 231.3 231.3" style="enable-background:new 0 0 231.3 231.3;" xml:space="preserve">
|
|
||||||
<style type="text/css">
|
|
||||||
.st0{display:none;}
|
|
||||||
.st1{display:inline;fill:#335898;}
|
|
||||||
.st2{display:inline;fill:#FEFEFE;}
|
|
||||||
.st3{display:inline;fill:#335899;}
|
|
||||||
.st4{display:inline;fill:#FFFFFF;}
|
|
||||||
.st5{display:inline;fill:#34599A;}
|
|
||||||
.st6{display:inline;fill:#355999;}
|
|
||||||
.st7{display:inline;fill:#345899;}
|
|
||||||
.st8{display:inline;fill:#345898;}
|
|
||||||
.st9{display:inline;fill:#C0C2D4;}
|
|
||||||
.st10{display:inline;fill:#F9FAFB;}
|
|
||||||
.st11{display:inline;fill:#ABCEE1;}
|
|
||||||
.st12{display:inline;fill:#3A5C9B;}
|
|
||||||
.st13{display:inline;fill:#45629D;}
|
|
||||||
.st14{display:inline;fill:#4A669F;}
|
|
||||||
.st15{display:inline;fill:#FCFCFD;}
|
|
||||||
.st16{display:inline;fill:#F6F9F9;}
|
|
||||||
.st17{display:inline;fill:#AFCDDD;}
|
|
||||||
.st18{display:inline;fill:#FAFBFC;}
|
|
||||||
.st19{display:inline;fill:#102751;}
|
|
||||||
.st20{display:inline;fill:#0F2650;}
|
|
||||||
.st21{display:inline;fill:#FDFDFD;}
|
|
||||||
.st22{display:inline;fill:#628FA5;}
|
|
||||||
.st23{fill:#335898;}
|
|
||||||
.st24{fill:#FEFEFE;}
|
|
||||||
.st25{fill:#335899;}
|
|
||||||
.st26{fill:#34599A;}
|
|
||||||
.st27{fill:#355999;}
|
|
||||||
.st28{fill:#FFFFFF;}
|
|
||||||
.st29{fill:#345899;}
|
|
||||||
.st30{fill:#345898;}
|
|
||||||
.st31{fill:#C0C2D4;}
|
|
||||||
.st32{fill:#F9FAFB;}
|
|
||||||
.st33{fill:#ABCEE1;}
|
|
||||||
.st34{fill:#3A5C9B;}
|
|
||||||
.st35{fill:#45629D;}
|
|
||||||
.st36{fill:#4A669F;}
|
|
||||||
.st37{fill:#FCFCFD;}
|
|
||||||
.st38{fill:#F6F9F9;}
|
|
||||||
.st39{fill:#AFCDDD;}
|
|
||||||
.st40{fill:#FAFBFC;}
|
|
||||||
.st41{fill:#102751;}
|
|
||||||
.st42{fill:#0F2650;}
|
|
||||||
.st43{fill:#FDFDFD;}
|
|
||||||
.st44{fill:#628FA5;}
|
|
||||||
</style>
|
|
||||||
<g id="Layer_2" class="st0">
|
|
||||||
<path class="st1" d="M114.6,174.7c0-0.5,0.1-1,0.1-1.5c0.6-4.7,0.6-9.5,0-14.2v-0.2c1.6-3.4,3.8-3.5,5.8,0s3.9,7.2,4.5,11.4
|
|
||||||
c0.2,1.9,0.5,3.8,1,5.7h-0.1c2.1,3.2,3.6,6.7,4.7,10.3c-0.2-9,0.9-16.8,0.4-24.7c-0.2-2.1,0.3-4.1,1.4-5.9c1.6-2.4,3.6-3.8,6-0.7
|
|
||||||
v-0.2l-0.2,0.2c1.3,1,1.9,2.7,1.5,4.3c-1.5,14.2-0.4,28.5-0.7,42.7c-0.1,0.7,0-0.1,0,0.5c-0.1,5.1-1.8,8.5-4.6,8.4s-5.7-3.7-6.9-7
|
|
||||||
c-0.7-1.6-0.8-3.4-1.4-5.1h0.1c-3.1-3.5-3.7-8.2-5.7-12.3c0.6,8.2-1.6,16-2.4,23.9h0.1c-0.2,1-1,1.7-2,1.9h0.1
|
|
||||||
c-3.7,1.1-5.3-1.4-5-4.2C112.3,196.8,111.4,185.6,114.6,174.7z"/>
|
|
||||||
<path class="st2" d="M62.9,207.1c-1,0.1-1.9-0.2-2-1.4s0-5.4-0.1-8.1c0.1-1,0-1.9-0.1-2.9c-0.2-0.6-0.5-1-1-1.4
|
|
||||||
c-0.9-0.3-2,0.2-2.3,1.1c0,0,0,0,0,0.1c-0.4,2-1.2,3.9-0.6,6c0.2,0.6,0.4,1.3,0.5,1.9c0.2,0.7-0.2,1.5-0.9,1.8c0,0-0.1,0-0.1,0
|
|
||||||
c-1.7,0.3-2.3,1.6-3,2.8c-0.4,0.9-1.4,1.4-2.4,1.3l-7.1-0.3c-0.4,0-0.8-0.4-1.2-0.7c-0.7-0.8-1.6-1.5-2.5-2
|
|
||||||
c-1.9-0.9-2.7-2.3-2.2-4.2s-0.3-4.4-0.1-6.7s0-4.1-0.1-6.2s-0.8-1.9-2.1-1.1l-1.5,1.2l-0.6-0.5c-1-1.9-0.3-3.8,0.2-5.6
|
|
||||||
c2-7.4,3.3-15,5-22.5c0.3-0.9,0.3-1.9,0.2-2.8c-0.1-0.8-0.4-1.6-1.3-1.8s-1.4,0.5-1.8,1.2c-0.8,2.1-1.4,4.3-1.6,6.5
|
|
||||||
c-1.3,7-1.9,14.3-5.7,20.6c-0.4,0.3-0.9,0.3-1.4,0.2c-1.1-0.9-1.8-2.3-1.9-3.7c-0.7-6.7-3.7-12.9-3.8-19.6c0-1.2-0.4-2.5-1.8-2.5
|
|
||||||
s-1.5,1.8-1.4,3s0.7,4.7,1.2,7.1s0.7,3.7-0.4,5.5l-0.5,0.5c-2.8-1.6-4.1-4.1-3.4-7.1c0.4-1.7,0.4-3.4,0-5.1
|
|
||||||
c-0.4-2.1-0.1-4.4-0.1-6.7c2.9-0.7,5.9-0.5,8.7,0.5c1.6,0.3,2.7,1.8,2.6,3.5c-0.1,3.7,0,7.3,0,11c-0.2,1.4,0.4,2.9,1.5,3.8
|
|
||||||
c0.6,0.4,1.4,0.3,1.8-0.3c0.1-0.1,0.1-0.2,0.2-0.3l0.3-2.3c0.2-2.7-0.4-5.5,0.6-8.1c0.1-0.3,0.1-0.6,0-0.9
|
|
||||||
c-1.4-2.9,0.1-4.9,2.1-6.7c0.5-0.6,1-1.2,1.3-1.9c2.1-2.8,2.7-3,6.6-1.6l0,0l0.9,3.6c0.2,0.5,0.2,1.2,0.4,1.7
|
|
||||||
c0.4,1,1.6,1.5,2.6,1.1c0.2-0.1,0.3-0.2,0.5-0.3c0.9-1.1,1.6-2.3,3.3-2.1c0.2,0.9,0.1,1.9-0.5,2.7c-5.3,8.6-7.1,18.1-7.6,27.9
|
|
||||||
c-0.4,5.4,0.7,10.8,3.1,15.7c0.9,1.9,2.4,3.6,4.7,3.5s3.1-2,3.9-3.8c5.3-11.3,6.3-23.3,5.4-35.5c-0.4-5.5-5.1-7.7-8.9-10.5
|
|
||||||
c1-1.7,2.8-1,4.2-1.1s3.8,0.2,4.4,2.6c0.1,0.5,0.5,0.8,0.9,1c1.6,0.4,2.5,1.6,3.4,2.9s1.2,1,2.5-0.2l0.8-0.6
|
|
||||||
c1.7,1.9,1.5,4.2,1.3,6.4c-0.9,11.9-1.8,23.9-1.8,35.9C64.2,204.2,64.1,205.8,62.9,207.1z"/>
|
|
||||||
<path class="st3" d="M160.6,195.3v0.2c0.1,6.7-3.3,11-9.2,13.6s-8.3,0.7-10.2-3.9c-1.8-4.1-2.1-8.8-0.6-13.1c0.7-2.1,2-3.8,4.5-3.5
|
|
||||||
s3.1,2.3,3.3,4.5s-0.2,3.8,0.6,5.6c4.8-2.7,4-11.4-1.3-14.9c-3.3-2.2-6-4.7-6.2-8.6c-0.3-5.3,0.7-10.6,2.9-15.4
|
|
||||||
c0.4-0.7,1.2-1.1,1.4-1.9c1.1-3.8,3.3-6.3,7.5-5.9s6.5,4.6,6.9,9.2c0,0.5,0.2,0.9,0.4,1.3v2.3c-1,3.5,0.1,7.3-1.2,10.7
|
|
||||||
c-0.9,1.6-2.3,2.3-4,1.5s-1.5-2.4-1.3-3.8c0.6-3.3,0.7-6.6,0.2-9.9c-0.1-0.6-0.4-1.2-0.9-1.6c-4.2,4.4-4,11.3,0.4,14.9
|
|
||||||
c1.4,1,2.7,2.3,3.7,3.7c2.4,2.9,2.5,6.4,2.7,9.8C160.3,191.8,159.9,193.6,160.6,195.3z"/>
|
|
||||||
<path class="st2" d="M160.6,162.5c-0.3-0.7-0.5-1.5-0.7-2.2c-0.4-0.9-0.6-1.9-1-2.7c-1.3-2.5-3.2-4.6-6.2-4.7s-4.6,2-5.9,4.3
|
|
||||||
c-1,1.8-1.8,3.7-2.3,5.7c-0.8,3.1-1.4,6.2-1.8,9.4c-0.5,4.5,1,8.3,5.5,10.1c2.1,0.8,3.7,2.7,4.2,4.9c0.5,2.5,0.9,5,1.2,7.5
|
|
||||||
c0.3,3-1.6,5.8-4.5,6.6c-0.6,0-1.1-0.3-1.5-0.8c-0.2-1.9-0.3-3.8-0.4-5.7s0.2-2.2,0.1-3.3c0-1-0.7-1.9-1.7-2.1
|
|
||||||
c-0.9-0.4-2-0.2-2.7,0.6c-0.7,0.7-1.2,1.5-1.4,2.4c-0.9,3.9-0.7,8,0.5,11.8c0.4,1.2,1,2.3,1.9,3.3c1.2,1.4,3.1,1.9,4.8,1.3
|
|
||||||
c3.2-1,6.1-2.7,8.5-5.1c1.3-1.4,2.2-3.2,2.6-5.1c0.2-1,0.5-2.1,0.8-3.2v0.5c0.2,7,0.2,7-4.2,12c-0.6,0.5-1.2,0.9-1.9,1.3
|
|
||||||
c-1.1,0.5-2.2,1.1-3.3,1.8c-2.5,1.6-4.2,1.5-6.4-0.4l-1.4-1.3c-1.3-1.4-3.5-1.5-4.9-0.2c-0.1,0-0.1,0.1-0.2,0.2
|
|
||||||
c-0.8,0.9-1.8,1.6-3,2.1c-2.1,0.8-3.6,0.9-5-1.1s-3.4-1.9-3.9-3.2s-0.3-4.1-0.3-6.2s0.1-1.6,0.1-2.4c1.1,2.1,2.1,4.3,3.2,6.3
|
|
||||||
c0.7,1.4,1.6,2.8,2.6,4c1.3,1.3,3.4,1.3,4.7,0c0.5-0.5,0.8-1.1,0.9-1.7c0.3-1.6,0.4-3.1,0.3-4.7c0-11-0.2-22-0.2-33
|
|
||||||
c0.1-3.1,0.5-6.3,0.7-9.5c0.1-1.7,0-3.5-0.1-5.2c1.6-0.3,2.9-0.2,3.2,1.8c0.1,0.5,0.3,0.9,0.6,1.3c0.9,0.7,2.2,0.5,2.9-0.4
|
|
||||||
c0.1-0.3,0.2-0.6,0.2-0.9c-0.1-1.6,0.6-3.2,1.9-4.2c1.6-1.3,3.7-1.9,5.8-1.6l2.8,0.5c0.5,0.1,0.9,0.3,1.2,0.7
|
|
||||||
c1.2,1.6,2.4,3.3,3.5,5c0.4,0.9,0.5,1.8,0.5,2.7C160.9,160.6,160.8,161.6,160.6,162.5z"/>
|
|
||||||
<path class="st4" d="M20.7,44.2c-1.1-0.5-2.1-1.4-1.7-2.5c0.9-2.8-0.2-5.3-0.7-7.9c-0.5-2-0.5-4.1,0.1-6.1c0.6-1.8,0.5-3.8-0.1-5.6
|
|
||||||
c-0.3-1.4-0.4-2.8-0.4-4.2c-0.1-2.2,1.1-3.5,3-4.4c2.5-1.2,5.4-1,7.8,0.3c1.5,0.7,2.7,1.9,2.5,3.7c-0.1,2.7,0.6,5.4,2.1,7.7
|
|
||||||
c0.8,1.4,1,3,0.8,4.6c-0.3,3.3,0.8,6.3,1.2,9.4c0.1,0.2,0.7,0.4,1.1,0.5s0.5-0.6,0.4-0.7c-1.2-2.5-0.1-5,0.4-7.4
|
|
||||||
c0.5-2.3,0.2-4.8-0.8-6.9c-0.6-1.2-1.5-2.4-1-4s1.5-4.3,3.2-5.8c1-0.7,2.2-1.1,3.4-1.3c1.2-0.2,1.6,0.8,1.8,1.8
|
|
||||||
c-1.4,1.1-2.8,2-2.9,3.9l-0.4,1.2c-0.2,1-0.1,2.1,0.3,3c0.1,0.5,0.2,0.9,0.2,1.4c0.3,3.9,0.2,7.7,0.2,11.6
|
|
||||||
c-0.1,0.8-0.2,1.6-0.5,2.4c-2.8,5.7-3.2,11.8-3.3,18.1c0,3.1-0.7,5.7-4.7,5.7s-4.7-2.6-4.6-5.8c0.2-5.2-0.5-10.3,1.8-15.4
|
|
||||||
s0.4-8.6-0.6-12.7s-1-5.3-1.7-7.9s-0.9-4.1-3.4-3.7s-1.5,2.5-1.8,4c-1,6,0.7,12.1-0.4,18.1C21.7,41,22.2,42.8,20.7,44.2z"/>
|
|
||||||
<path class="st2" d="M40,20.3c0.1-1.1,0.4-2.1,0.4-3.2s0.7-1.8,2-1.7h11.9c1.1,0.4,1.9,1.4,1.9,2.6c0,1.4-0.3,2.8-0.7,4.1
|
|
||||||
c-0.5,1.2-1.8,2-3.1,1.9c-1.1,0.1-2.3,0-3.3,0.2c-0.6,0.2-1.1,0.6-1.3,1.2c-0.4,1.2-0.6,2.5-0.6,3.8c0.1,3.6,0.3,7.3,0.4,11
|
|
||||||
c0.1,1.4,0.7,1.9,2.1,2l3.9,0.2c0.9,0,1.7,0.8,1.6,1.8c0,0,0,0.1,0,0.1c0,0.7-0.3,1.3-0.3,1.9c-0.3,3.5-0.3,3.5-3.8,3.8
|
|
||||||
c-0.6-0.1-1.3,0-1.9,0.1c-0.5,0.2-1.3,0.7-1.3,1.1c-0.3,2.8-1.4,5.6-0.3,8.5c0.2,1.1,1.3,1.9,2.4,1.8c1.7,0,3.5-0.1,5.2,0
|
|
||||||
s3.9-0.1,4.2-2.7c0.1-0.4,0.9-0.9,1.5-1c0.8-0.1,1.5-0.1,2.3,0c-1.2,3.7-0.4,7.5-1.1,11.2c-1.8,0.6-3.5,1.3-5.1,2.3
|
|
||||||
c-1.8,1.3-4.1,1.9-6.3,1.8c-1.4,0.2-2.8,0.5-4.1,0.9h-2.8c-4.4,1.2-5.2-3.4-8-4.8c-0.2-0.5-0.3-1-0.4-1.5c0-2.7-1.7-3.6-4-3.9
|
|
||||||
s-4.2-1.7-4.2-4.4c-0.3-12.4-0.5-24.9,0.1-37.3c0.1-0.5,0.2-1,0.5-1.4l0.7-0.6c0.4,0.7,0.7,1.4,0.8,2.2c0.1,2,0,4,1.4,5.9
|
|
||||||
c1.4,1.9,0.5,2.1,0.6,3.2s-0.1,4.7,0.7,7c0.7,1.7,0.2,3.7-1.2,4.9c-1,0.8-1.5,2.1-1.4,3.4c0,4.1-0.1,8.2,0,12.4
|
|
||||||
c0,1.8,0.6,2.3,2.3,2.4H34c1.1,0,2.1-0.6,2-1.7c-0.4-3.6,1-7.1,0.2-10.8c-0.1-0.9,0.1-1.8,0.4-2.7c1-2.6,2.2-5.2,3.3-7.7
|
|
||||||
c2.2,3,1.4,6.5,0.9,9.7c-0.8,6-0.6,12.1,0.5,18.1c0.4,2.6,1.4,4.9,4.4,4.7s6.9-0.5,9-3.6c1.1-1.5-0.2-2.5-1.7-2.3
|
|
||||||
c-3.8,0.3-7.1,0.9-8-4.7c-1.2-8.6-1.1-10.1,4.5-13.7c0.4-0.2,0.7-0.6,0.7-1.5c-5.1-0.3-5.3-3.8-5.4-7.9c0-2.6-0.4-5.1-0.4-7.7
|
|
||||||
c0-6.1,0-6.1,6.1-8c1.1-0.3,2.4-0.6,2.4-1.9s-1.6-1.7-2.8-1.9C46.4,17.4,43.5,20.2,40,20.3z"/>
|
|
||||||
<path class="st2" d="M87.8,207.4c-1.3,1.5-3.8,1.7-4.4,4.1c0,0.3-1.1,0.5-1.6,0.5s-1.7-0.6-2.3-0.4s-2.8,0.6-3.7-1.4
|
|
||||||
s-2.1-1.8-3.6-1.8l-4.7-0.2c1.2-14.6,0.3-29.2,0.6-43.8c0-2.4,0.5-5.1-3.4-4.8c-0.4-5.4,0.6-5,5-5c2.1,0.1,2.5,0.6,2.6,2.6
|
|
||||||
s0.1,4.1,0,6.2c0.1,0.8,0,1.6-0.4,2.3c-2.5,2.8-0.8,5.6,0.2,8s1.2,3.2,0.4,4.9c-0.4,1.1-0.6,2.2-0.8,3.3c-0.2,0.9-0.2,1.8,0,2.7
|
|
||||||
c0.6,1.6,0.6,3.5,0,5.1c-0.5,1.6,0.4,3.3,2,3.7c0.5,0.1,1,0.2,1.5,0.1L78,193c0.8-0.1,1.6,0.4,1.9,1.2c0.4,0.8,0.9,1.6,1.4,2.4
|
|
||||||
c0.4,0.6,1.2,0.7,1.8,0.3c0.2-0.2,0.4-0.4,0.5-0.7c1.6-3.8,0.9-7.7,0.1-11.6c-1.4-1.5-2.6-3.3-4.8-3.6c-0.8-0.1-1.5-0.7-1.6-1.5
|
|
||||||
c-0.8-1.8-1.2-3.7-1.2-5.6c0.2-2.5-0.1-5.1,0.1-7.6s0.3-6.1,3.1-8.2c0.4-0.3,0.5-1.1,0.8-1.7s0.5-1.4,1-1.5s3.3-1.1,3.4-3.3
|
|
||||||
c0-0.2,0.7-0.5,1.1-0.5l2.7,0.3c2.5-0.3,2.5-0.3,3.2,2.1c0.1,0.3,0.1,0.6,0.2,1l-0.6,0.4c-7.1,0.1-9.7,5.3-11.6,10.9
|
|
||||||
s-1.8,10.7,3.9,14.7s6.1,12.6,3.4,17.6s-6.4,5.3-9.8,1.2c-1.8-2.1-2.7-1-3.3,0.8c-1.4,3.8,2.2,8,6.6,7.6c2.3-0.2,4.5-1.7,7-0.8
|
|
||||||
C87.4,207.1,87.6,207.3,87.8,207.4z"/>
|
|
||||||
<path class="st5" d="M99.3,203.3v-17.7c0.7-8.3,0.4-16.8,0.9-25.1c0.1-1.9,0.4-3.6,2.3-4.4s3.4-0.7,4.3,1.4l0,0
|
|
||||||
c3,5.9,2.1,12.3,1.4,18.2c-1,7.9-0.5,15.8-0.8,23.7c-0.1,1.4,0.4,2.9-0.6,4.1h0.1c-0.9,1.2-0.1,2.8-0.9,4.1s-1.2,3.2-3.2,3
|
|
||||||
s-2.9-1.6-3.1-3.6S100,204.5,99.3,203.3z"/>
|
|
||||||
<path class="st6" d="M64.7,159.6l0.3-0.4c0.7-1.3,1.2-2.9,3.1-2.4s1.7,2.2,1.7,3.6s0,4.5,0,6.7l-0.3,30.1c0,1.9-0.2,3.9-0.1,5.8
|
|
||||||
c0.1,1.9-0.6,3.8-1.9,5.2l0,0c-1.9,1.4-3.3,0.2-4.6-1l0,0c-0.1-1.3-0.4-2.5-0.4-3.8l1.8-34.4c0.2-2.8,0.3-5.7,0.4-8.6
|
|
||||||
c0.2-0.2,0.3-0.5,0.1-0.7C64.8,159.7,64.7,159.6,64.7,159.6z"/>
|
|
||||||
<path class="st2" d="M91.7,154.5l4,0.3c-0.6,4.1,0,7.9,0.2,11.8c0,2.1-0.3,4.1-0.8,6.1c-0.1,0.4-0.9,0.9-1.4,1s-3,0.7-2.9,2.5
|
|
||||||
s1.6,1.9,2.7,2.3s1.2,1.2,1.4,2.4c0.5,4.2,0.6,8.5,0.5,12.8c0,2.2,0.2,4.4-0.6,6.6s0.2,1.8,0.2,2.8s-0.3,1.1-0.5,1.1
|
|
||||||
s-2.7,1.8-4,2.6c-0.9,0.4-1.8,0.6-2.7,0.6l-0.3-0.3c-0.1-1.4,0.8-2.3,1.5-3.4c6.9-10,5.1-20.9-4.5-28c-1.8-1.1-2.9-3.1-2.7-5.2
|
|
||||||
c0.3-3.5,1.4-6.9,3.2-10c0.8-1.2,1.8-2.5,3.5-2.1s2,1.8,2.2,3.3s0,5.1,0.5,8.5c2.1-5.7,0.1-10.7,0.3-15.6L91.7,154.5z"/>
|
|
||||||
<path class="st2" d="M20.7,44.2c0.2-3.6-0.5-7.3,0.8-10.8c0.3-0.8-0.3-1.9-0.4-2.8s-0.6-4.1-0.2-6.1s0.1-5.8,0.7-8.8
|
|
||||||
c2.1-0.9,4,0.2,5.9,1c0.5,0.4,0.7,1,0.8,1.6c0.1,0.6,0.2,1.2,0.2,1.8l-0.3,0.2C25.4,20.6,23.9,22,24,25c0.4,12.4-1.6,24.8-1,37.2
|
|
||||||
c0.3,6.5,1.5,7.6,7.8,6.4c1.7-0.3,3.4-0.9,5.1,0.3l0.2,0.3c0.3,3.8-1.8,5.1-5.2,5.1h-3.8c-7.4-0.1-9-2.6-6.4-10V44.2z"/>
|
|
||||||
<path class="st2" d="M138.4,154.8l-0.9-0.3c-2.7-0.7-4.2-0.1-4.7,2.4c-0.5,3-0.9,6-1,9c-0.2,6.6-0.1,13.1-0.2,19.7
|
|
||||||
c0.1,1.3,0.1,2.6-0.2,3.8c-2.1-2.6-4.4-8.2-5.5-13.6c1.2,0.2,1.6,2.3,3.2,1.4c1.6-0.9,0.7-2.2,0.8-3.4c0.2-2.8-0.4-5.7,0.7-8.5
|
|
||||||
c0.1-0.6,0.1-1.2-0.1-1.8c-0.1-0.8-0.4-1.6-0.5-2.3c-0.5-4.8-0.3-5.3,3.4-8.6c0.8-0.7,1.5-2,2.7-1.5S138.7,152.9,138.4,154.8z"/>
|
|
||||||
<path class="st4" d="M20.7,64.4c0.3,2.8,0.6,5.5,0.9,8.6H31c1.1,0.1,2.2,0,3.2-0.4c0.6-0.3,0.6-1.5,1-2.3s0.6-0.7,0.9-1.1
|
|
||||||
s2.9-0.1,3.3,1.2s2.6,2.7,4.4,3.6c-0.9,1.7-1.8,2.4-2.7,1.7s-4.6-0.8-7.1-0.3s-7.4,1.8-11.2,0.6s-4.3-1.9-4.8-4.2s-0.8-5.2,1.9-6.9
|
|
||||||
L20.7,64.4z"/>
|
|
||||||
<path class="st2" d="M106.8,203.5l0.3-27.8c0-6-0.2-12.1-0.3-18.2c2,0.8,3.2,2.7,3,4.8c0.2,3.9,1.3,7.7,1,11.7
|
|
||||||
c0.2,1.2,0.5,2.4,0.9,3.6c-2.9,0.5-3.9,2.3-3.8,5v17.5C107.9,201.3,108.1,202.7,106.8,203.5z"/>
|
|
||||||
<path class="st2" d="M118.2,210.2c0.5-8.6,0.9-17.2,1.4-25.8c0-0.5,0-0.9,0.1-1.4c0.1-0.3,0.4-0.6,0.6-0.6s0.6,0.2,0.7,0.4
|
|
||||||
c1.8,5.2,3.5,10.5,5.3,15.8c-0.7-0.2-1.4-0.5-2.1-0.8c-1.8-1.2-1.8-1.2-2,1.2c0,0.9-0.5,1.8-1.3,2.3c-1.1,0.6-1.7,1.9-1.5,3.2
|
|
||||||
c0.1,1.3,0,2.5-0.1,3.8C119.1,209,118.7,209.7,118.2,210.2z"/>
|
|
||||||
<path class="st2" d="M114.6,174.7c0,1.6,0,3.2-0.1,4.8c-0.7,8.4-1.5,16.8-2.3,25.2c0,0.9-0.2,1.9-0.2,2.8c0.1,3,0.9,3.7,4.4,4.5
|
|
||||||
c-0.3,0.3-0.6,0.9-0.9,0.9c-2.8,0.1-4.6-1.5-4.7-4.1s0-5.4-0.1-8.1s0.6-5.3,0.1-8c-0.3-0.7-0.2-1.6,0.1-2.3
|
|
||||||
c1.3-1.6,1.1-3.2,0.4-4.9c-0.4-1-0.5-2.2-0.1-3.2c0.3-1.5,0.5-3.1,0.5-4.7c0.9,0.1,1.7-0.5,1.9-1.4
|
|
||||||
C113.9,175.7,114.2,175.2,114.6,174.7z"/>
|
|
||||||
<path class="st2" d="M30.1,207.4c0.3,2.4-0.3,4.5-2.9,5.2c-0.7,0.2-1.5,0.3-2.3,0.3c-0.9-0.2-1.9-0.4-2.8-0.7
|
|
||||||
c-2.6-0.5-4-2.2-3.3-4.6c0.6-2.1,0.6-4.4-0.1-6.5c-0.2-1.3-0.2-2.5-0.1-3.8c-0.1-7.8-0.1-15.6-0.1-23.4l0.2-0.2
|
|
||||||
c2.5,0.7,2.2,2.9,2.1,4.7c-0.2,7.3,1.5,14.5,1.1,21.9c0,1.4,0.1,2.8,0.5,4.2c1.1,5.2,2.4,5.8,6.9,2.8L30.1,207.4z"/>
|
|
||||||
<path class="st2" d="M126,175.9l-2.8-8.1c-1-3.2-2-6.4-4-9.1l-0.9-1.2c-0.8-1-1.7-1-2.8,0.1c-0.3,0.4-0.6,0.8-0.8,1.2
|
|
||||||
c0-4.5,0.6-4.8,4.6-3.4c1.4,0.3,2.5,1.5,2.7,2.9c0.4,2.4,1.4,4.6,3,6.4c0.7,0.8,1,1.9,1,3C126.2,170.4,126,173.1,126,175.9z"/>
|
|
||||||
<path class="st2" d="M202.9,61.7c2.8,1.2,3.1,1.9,1.6,4.2c-1.5,2.3-2.1,4-4.6,4.5l-0.4,0.2c-1.7,4-5,2.1-7.9,2.6
|
|
||||||
c-0.1-4.2-1.7-7.9,1.1-11.6l2.3,0.3c0.1,0.1,0.1,0.2,0.2,0.2c-0.1,0.5-0.2,1-0.4,1.4c-0.7,1.8-2.4,4.1,0.7,5
|
|
||||||
c2.4,0.8,4.9-0.5,5.7-2.9c0,0,0,0,0,0c0.5-1.2,0.2-2.7,1.1-3.8L202.9,61.7z"/>
|
|
||||||
<path class="st2" d="M106.8,157.5c-0.7-0.3-1.3-0.9-2-1c-1.5-0.5-3,0.4-3.5,1.9c0,0.1-0.1,0.3-0.1,0.4c-0.1,0.7-0.1,1.5-0.2,2.3
|
|
||||||
c-0.3,6.6-0.6,13.3-1,19.9c-0.1,1.5-0.4,3.1-0.7,4.6c0-8.3-0.1-16.6,0-24.9c0.2-1.8,0.5-3.5,0.9-5.2l0,0c1.9-0.2,3.6-1.4,5.5-0.8
|
|
||||||
c0.6,0.2,1.1,0.5,1.5,1C107.4,156.2,107,156.9,106.8,157.5z"/>
|
|
||||||
<path class="st2" d="M64.7,146.8c0-0.4,0.1-0.7,0.2-1.1c0.3-1.8,2.1-3,3.9-2.6c0.1,0,0.3,0.1,0.4,0.1c1.9,0.4,3.2,2.3,2.9,4.2
|
|
||||||
c-0.4,3.3-1.4,3.9-4.7,2.8c-0.3-0.1-0.5-0.3-0.8-0.3S64.6,148.9,64.7,146.8z"/>
|
|
||||||
<path class="st2" d="M100.7,143.5c0.4,0,1-0.1,1.3,0.1s2.9-1,3.5,0.3s0.9,3.6,1.2,5.4c-0.1,0.6-0.6,1.1-1.2,1.2
|
|
||||||
c-1.4,0.2-2.8,0.2-4.2,0.1c-1.3-0.2-2.2-1.5-1.9-2.8c0,0,0-0.1,0-0.1C99.8,146.4,100.2,145,100.7,143.5z"/>
|
|
||||||
<path class="st2" d="M34.1,188.3c-0.1,4.2-0.2,8.5-0.1,12.7c0,1.7-0.1,3-2,3.8s-1.3,1.7-1.9,2.6H30c-2.3-5.7,1.1-10.7,1.6-16.1
|
|
||||||
c0.1-1.3,0.3-2.9,2.3-3.1L34.1,188.3z"/>
|
|
||||||
<path class="st2" d="M160.6,195.3c-0.2-0.9-0.4-1.8-0.6-2.7c-0.2-4.2-1.2-8.4-3.2-12.1c-0.9-1.6-1.1-3,1.3-3.3l0.6,0.4
|
|
||||||
c-0.5,1.1-0.7,2.3,0.3,3.1s1.7,3.2,1.7,5.1S160.6,192.1,160.6,195.3z"/>
|
|
||||||
<path class="st2" d="M99.3,203.3l0.9,3.1c0.1,0.8,0.3,1.5,0.6,2.3c0.5,0.8,1.3,1.6,2.3,1.3c0.7-0.2,1.4-0.7,1.8-1.3
|
|
||||||
c0.5-1.1,0.9-2.3,1.2-3.5c0.2-0.6,0.5-1.2,0.8-1.7c0.1,1.1,0.1,2.2-0.1,3.3c-0.4,1.4-1,2.6-1.9,3.7c-0.8,1.1-2.2,1.5-3.4,0.9
|
|
||||||
c-1.2-0.6-2.2-1.4-2.2-2.9S99.3,205,99.3,203.3z"/>
|
|
||||||
<path class="st2" d="M194.9,61.6c0-1,0.1-1.9,0.1-2.8c2.4-0.8,5.1-0.8,7.5,0c0.1,0.9,0.1,1.9,0.1,2.8l-0.2,0.2
|
|
||||||
c-2.4,0.1-4.9,0.8-7.3,0L194.9,61.6z"/>
|
|
||||||
<path class="st2" d="M158.6,175.5c0.7-3.6,1.3-7.1,2-10.7c0,3.5,0,7.1,0.1,10.6c0.2,1-0.5,2-1.6,2.2c-0.1,0-0.3,0-0.4,0l0,0
|
|
||||||
C158.2,177,158.2,176.1,158.6,175.5z"/>
|
|
||||||
<path class="st2" d="M114.7,159c1,4.7,1,9.5,0,14.2V159z"/>
|
|
||||||
<path class="st2" d="M68.4,92.4l1,1.9v1.9l-0.9,2l-0.6-0.5C67.1,95.8,67,94,68.4,92.4z"/>
|
|
||||||
<path class="st2" d="M62.9,207.2c1.4,0.7,2.9,1.4,4.6,1C65.2,209.9,64.4,209.7,62.9,207.2z"/>
|
|
||||||
<path class="st2" d="M116.3,212l2-1.9C118.1,211.8,118.1,211.8,116.3,212z"/>
|
|
||||||
<polygon class="st2" points="192,62.6 191.6,62.3 191.8,62.2 "/>
|
|
||||||
<path class="st2" d="M100.2,155.5l-0.4-0.2L100.2,155.5z"/>
|
|
||||||
<path class="st2" d="M40.7,151.7l0.2-0.4L40.7,151.7z"/>
|
|
||||||
<path class="st7" d="M114.6,93.6c0.3-1.3,0.6-2.5,0.8-3.7c0-1,0.1-1.9,0.2-2.9c0.7-3,3-3.7,5.7-1.8l0.7,0.6l0,0
|
|
||||||
c1,1.4,1.1,3.3,0.1,4.7l0,0c-0.4,8.6-1,17.3-1.7,26c-0.4,6.1-1.7,12.1-2,18.2c-0.2,0.1-0.3,0.4-0.2,0.7c0,0,0.1,0.1,0.1,0.1
|
|
||||||
c-0.6,2-0.3,4.7-3.4,4.9s-3.5-2.6-4.2-4.7l0,0c-3.8-4.5-2.6-10.3-3.8-15.4l0,0c-0.2-5.7-2.1-11-3.9-16.2c-0.4-0.4-0.6-1.1-0.3-1.7
|
|
||||||
c-0.2,0.6-0.1,1.2-0.6,1.7c0,8.4-0.1,16.9-0.2,25.3c0,2,0.2,3.9,0.2,5.8c-0.1,0.8-0.3,1.6-0.6,2.3c-0.8,1.3-2.5,1.8-3.8,1
|
|
||||||
c-0.4-0.2-0.7-0.6-1-0.9c-0.4-0.9-0.6-1.8-0.7-2.7c-0.4-5.1-0.5-10.2-0.3-15.3c0.4-10.1,1.8-20.1,2.4-30.1c0.1-1.6,0-3.2,1.1-4.6
|
|
||||||
l0,0c0.6-0.7,1.2-0.6,1.9-0.1s0.3,0.3,0.6,0.1c0.6,0.1,1,0.5,1.3,1h-0.1c2.9,2.9,2.9,6.9,3.8,10.6l0,0c3.5,4.5,4.2,10.1,5.9,15.4
|
|
||||||
c0,0.7,0,1.5,0.1,2.2c0.1,0.7,0.9-0.1,0.4,0.2s0,0.2-0.3-0.4c-0.1-0.6-0.2-1.2-0.2-1.8c-0.2-6,1-11.8,2-17.7
|
|
||||||
C114.8,94.2,114.9,93.9,114.6,93.6C114.7,93.7,114.6,93.6,114.6,93.6z"/>
|
|
||||||
<path class="st3" d="M126.2,122.4c0.2-0.6,0.4-1.2,0.5-1.8c0.7-8.7,1.3-17.5,2-26.2c0.1-2.1,0-4.2,0-6.2s0.7-3.2,3.4-3.6
|
|
||||||
c5.3-0.8,9.4,1.1,12.4,5.4c1.7,2.3,3.1,4.8,4.6,7.2l0,0c1.2,1.1,1.9,2.6,2.1,4.2c0.6,9.9,0.9,19.7-3.1,29.2
|
|
||||||
c-3,7.3-8.5,11.2-16,11.2c-4.1,0-6.9-2.3-7.3-6.5c-0.4-3.8,0-7.6,1.3-11.2L126.2,122.4z"/>
|
|
||||||
<path class="st2" d="M85.7,138.5c-1.1-0.7-1.6-2.1-1.2-3.3c0.6-2.6,0.5-5.4-0.4-7.9c-0.1-0.6-0.1-1.2,0-1.8
|
|
||||||
c0.2-0.8,0.8-1.7-0.3-1.9c-0.8-0.1-1.6,0.2-2.1,0.8c-0.5,0.3-0.6,1.1-0.9,1.6c-1.4,2.1-2.2,4.5-4.6,5.8l-0.3-0.2
|
|
||||||
c-1.8-6.6,2.3-11.6,9-11c1.5,0.1,2.7,0.9,2.5,2.3c-0.7,5.1,0.9,10.5-1.5,15.5L85.7,138.5z"/>
|
|
||||||
<path class="st2" d="M122.1,90.4c0-1.5,0-3.1-0.1-4.7C123.6,87.7,123.6,88.4,122.1,90.4z"/>
|
|
||||||
<path class="st2" d="M52.1,137.5l0.4,0.2L52.1,137.5z"/>
|
|
||||||
<path class="st7" d="M62.1,69c-0.3-0.7-0.6-1.4-0.9-2.1c-0.8-3.4-0.7-6.5,2-9.1c0.3,0.1,0.5,0.1,0.7-0.2c0.5-0.5,1.2-0.5,1.7-0.1
|
|
||||||
c0.1,0.1,0.1,0.2,0.2,0.3l0,0c2.2-0.1,1.9,4,4.1,2.8s1.4-3.6,1.8-5.6c0.5-3.3,0.2-6.7-1-9.8h0.1c-2.2-1.7-4.2-3.3-6.9-4.1
|
|
||||||
c-4.3-1.2-4.1-5.2-4.7-8.6v-2.3c0.8-2.5,0.3-5,0.8-7.6s3.5-6.4,6.5-8.4s7.2-0.6,9,2.8s1.1,5.5,0.9,8.4c-0.1,1.7-1.4,3-3.1,3.1
|
|
||||||
c-1.8,0.1-2.4-1.2-2.8-2.7s0-2.3-0.9-3.2c-3.4,3.6-3.4,7.4,0,12.1l0,0c4.9,0.9,7.7,3.8,8.7,8.6l0,0c4.9,8,2.7,20.3-4.5,25.8
|
|
||||||
C69.8,72.2,66.2,72.1,62.1,69L62.1,69z"/>
|
|
||||||
<path class="st2" d="M69.6,34.7c-3.5-0.9-3.7-1.1-3.8-3.8s-0.1-6.7,2-9.6c0.4-0.7,1-1.2,1.6-1.7c0.4-0.3,1.1-0.2,1.4,0.2
|
|
||||||
c0,0.1,0.1,0.1,0.1,0.2c0.3,1.1,0.5,2.2,0.6,3.3c0.2,1.2,0.2,2.5,0.5,3.7c0.3,0.6,0.8,0.9,1.4,1c0.6-0.1,1.1-0.5,1.4-1
|
|
||||||
c0.8-2.9,0.9-6,0.1-9c-1.2-3.7-4.7-5-8-3c-2.1,1.2-3.8,3-4.8,5.2c-0.8,2-1.6,4.2-2.1,6.3c-0.3,1.2-0.5,2.5-0.8,3.7
|
|
||||||
c0-2.4-0.2-4.8,0-7.2s0.5-5.4,3.3-6.9c0.5-0.4,1-0.8,1.3-1.4c1.9-3.4,5.2-3.3,8.4-3c0.9,0.3,1.7,0.8,2.3,1.5
|
|
||||||
c0.9,0.7,1.5,1.7,2.4,2.2s1.7,1.7,1.2,2.8c-0.7,1.9-0.7,4.1,0,6c0.7,2.4-0.8,4.7-3.2,5.6S70,31.6,69.6,34.7z"/>
|
|
||||||
<path class="st2" d="M62.1,69c6.2,3.7,16-0.6,17.2-10.1c0.6-4.3,0.4-8.6-0.5-12.8c-0.2-0.9-0.4-1.9-0.5-2.8l1.3,0.6
|
|
||||||
c1.8,0.5,2.8,2.3,2.5,4.1c-0.1,1.2-0.2,2.5-0.4,3.8c-0.1,0.6-0.1,1.2,0,1.8c0.8,4.4-0.9,8.1-3,11.7c-0.5,0.6-1,1.2-1.6,1.7
|
|
||||||
c-0.8,0.6-1.5,1.4-2,2.2c-1.5,3.5-4.4,4.3-7.8,3.8h-0.5c-2.5,0.4-3.9-0.6-4.4-3.1L62.1,69z"/>
|
|
||||||
<path class="st2" d="M70.7,45.1c0.5,0.7,1,1.5,1.3,2.4c0.9,3.4,1.1,7,0.8,10.5c-0.2,1.8-1,3.4-2.4,4.5c-1,0.9-2.7,1.3-3,0.7
|
|
||||||
c-0.1-0.7-0.1-1.4,0-2.1c0.1-1.5-0.9-2.3-1.6-3.4c1.3-0.1,3.1,0.1,4-0.6s0.7-2.5,1.2-3.8c0.4-1.2,0.4-2.4,0.1-3.6
|
|
||||||
C70.8,48.2,70.7,46.6,70.7,45.1z"/>
|
|
||||||
<path class="st2" d="M59.2,32.4l0.7,1.8c0.5,3.1,2.6,5.6,5.5,6.7l3.4,1.6c1.1,0.5,1.8,1.4,2,2.6c-1.2,0-2.3,0.2-3-1
|
|
||||||
s-2.2-1.9-4.1-1.3s-2.9,0.1-3.6-2.3C59.3,37.9,58.9,35.1,59.2,32.4z"/>
|
|
||||||
<path class="st2" d="M78.3,43.3c-1.8-3.8-4.9-6.8-8.7-8.6c1.5,0,2.9-0.1,4.3,0c2.3,0.2,4.1,2,4.3,4.3
|
|
||||||
C78.3,40.4,78.4,41.9,78.3,43.3z"/>
|
|
||||||
<path class="st2" d="M65.8,57.8l-1.9-0.2C64.6,56.7,65.2,56.6,65.8,57.8z"/>
|
|
||||||
<path class="st7" d="M37.6,127.8c-0.9,2-1.6,4.1-2.6,6c-3.5,7.6-7.5,9-15.1,5.1l-1.3-0.5c-3.5-3.4-4.8-7.8-4.8-12.5
|
|
||||||
s0.4-10.5,0.6-15.7c0.1-2.1,0.3-4.1,0.4-6.2l0,0c0.8-5.5,1.2-11.1,4.4-16.1c2.3-3.5,4.7-6.3,8.9-7h0.1c2.2-1.8,4.4-1.5,6.6,0.1l0,0
|
|
||||||
c4.2,2.3,5.5,5.2,3.9,8.6S36,93,34,90.4l0,0c-1-1-0.5-3.3-2.8-3.3s-3.4,1.2-4.4,3c-2.1,3.8-2.3,8.2-4.4,11.9
|
|
||||||
c-0.3,0.2-0.3,0.4-0.1,0.7c-0.7,8.9-0.7,17.7,0,26.6c-0.2,0.2-0.2,0.4,0.1,0.5c-0.1,1,0.4,1.9,1.3,2.4c2.3,1.9,3.5,1.8,5-0.7
|
|
||||||
c1.7-2.7,2.8-5.7,3.3-8.8c0.3-1.8,0.1-2.1-1.7-2.8c-0.6-0.1-1.2-0.3-1.7-0.7c-0.6-0.5-1.1-1.2-1.3-1.9c-0.2-1,0.6-1.7,1.4-2.2
|
|
||||||
l0.5-0.2c3.4-0.5,6.9-1.1,10.3-1.4c1.3-0.1,2.5,0.8,2.8,2.1c0.1,1.2-0.4,2.3-1.4,2.9c-0.4,0.3-0.8,0.5-1.3,0.6c-1,0.2-1.7,1-1.6,2
|
|
||||||
C37.9,123.4,37.7,125.6,37.6,127.8z"/>
|
|
||||||
<path class="st2" d="M22.4,102c0.1-4.3,1.4-8.5,3.6-12.2c1.2-2.1,2.8-3.8,5.5-4.1s2.5,0.4,2.6,1.9c0,0.9,0,1.9-0.1,2.8l-0.4-0.2
|
|
||||||
c-1.1-1.4-2.6-2.2-4.1-1.4s-3.1,2.2-2.9,4.4C26.8,96.9,25.6,99.9,22.4,102z"/>
|
|
||||||
<path class="st2" d="M34,90.4l0.7,0.6c1.7,0.8,2.6,0.6,3-0.9c0.9-3.2,1-6.3-2.3-8.4c-0.3-0.2-0.4-0.5-0.6-0.7s1.7-0.1,2.2,0.3
|
|
||||||
c1.4,1.2,2.8,2.5,4,3.9c0.3,0.4,0.5,0.8,0.5,1.3c0.2,2.8-3.2,6.1-6,5.8C34.4,92.2,34,91.4,34,90.4z"/>
|
|
||||||
<path class="st2" d="M22.3,129.3c-0.4-1-0.7-2.1-0.9-3.2C21,119,21,112,21.6,104.9c0.2-0.8,0.4-1.5,0.7-2.2L22.3,129.3z"/>
|
|
||||||
<path class="st2" d="M46.4,81.8L46,81.6L46.4,81.8z"/>
|
|
||||||
<path class="st8" d="M33.9,188.1c-0.4,1.6-1,3.1-1.3,4.6c-0.9,4.8-1.8,9.7-2.6,14.6l-1.1,2.1c-0.7,1.5-2.3,2.4-3.9,2.1
|
|
||||||
c-1.5-0.2-2.7-1.3-3.1-2.7c-0.3-0.7-0.5-1.5-0.6-2.3c-0.2-2.4-0.6-4.7-0.7-7.1c-0.4-6.5-0.6-13.1-1-19.6c-0.1-2,0.2-4.2-0.9-6.1
|
|
||||||
c-0.6-4.1-1.2-8.1-1.7-12.2c-0.1-1.4-0.3-2.9-0.3-4.3s1.2-1.9,2-1.6c1.2,0.3,2.4,0.9,3.4,1.6c1,0.6,1.4,1.9,1,3
|
|
||||||
c-0.5,1.2-0.6,2.5-0.2,3.7c1.5,6.5,2.9,13,4.3,19.5c0.6,0.4,0.5,1,0.4,1.6s0.1-1.2,0.5-1.7c1.9-6.7,3.9-13.4,4.8-20.4
|
|
||||||
c0.3-1.9,0.6-3.8,1.1-5.6c0.3-0.9,0.6-1.8,1-2.7c0.5-1.2,1.9-2,3.2-1.7c1.5,0.3,2.5,1.6,2.5,3.1c-0.1,1.1-0.2,2.1-0.5,3.2
|
|
||||||
l-6.3,27.5C33.8,187.2,33.8,187.6,33.9,188.1z"/>
|
|
||||||
<path class="st7" d="M48.5,155.7c1.4-0.3,2.8-0.7,3.8,0.9c0.6,0.8,1.3,1.4,2.1,1.9c3.1,2.2,4.8,5.7,4.6,9.5
|
|
||||||
c-0.1,5.3-0.5,10.6-0.8,15.8s-2.3,12.5-4.9,18.4c-0.5,1.2-1.1,2.4-1.9,3.4c-1.4,1.9-3.4,2.2-5.5,1.1c-2.7-1.6-4.6-4.2-5.2-7.2
|
|
||||||
c-0.9-3.1-1.4-6.2-1.6-9.4c-0.3-6.4,0.4-12.8,1.9-19C42.5,165.5,45,160.3,48.5,155.7L48.5,155.7z"/>
|
|
||||||
<path class="st9" d="M28.1,183.3c-0.1,0.6-0.3,1.1-0.4,1.6l-0.5-1.5L28.1,183.3z"/>
|
|
||||||
<path class="st10" d="M158.6,175.5c0.1,0.7,0.1,1.4,0.1,2.1c-1.7,0.6-1.7,0.6-1.9,2.9c-1.9-1.6-3.7-3.5-6.3-4.1
|
|
||||||
c-1-0.4-1.6-1.3-1.5-2.3c-0.4-4.9,0.6-9.8,2.7-14.3c0.8-1.5,2.2-1.6,2.9-0.1c0.7,1.2,1.1,2.6,1.2,4c0.1,3-0.2,6-0.4,9.1
|
|
||||||
c0,0.6-0.3,1.2-0.3,1.8s-0.2,1.7,0.7,2.1c0.8,0.3,1.6,0.1,2.1-0.6L158.6,175.5z"/>
|
|
||||||
<path class="st7" d="M40,20.3c3.3-3.8,7.8-3.9,12.3-3.8c1.7,0.1,3,1.5,3,3.2c0,1.8-1.5,3.3-3.3,3.4h-0.5c-1.8-0.1-3.8-0.5-5.5,0.7
|
|
||||||
c0,1.7-0.2,3.4-0.1,5.2c0,4.1,0.2,8.3,0.3,12.4c0,1.2,0.3,1.8,1.6,1.9h3.3c1,0,1.9,0.7,2,1.7c0.1,1-0.4,1.9-1.3,2.3l-3.6,1.4
|
|
||||||
c-2.3,0.8-2.5,0.8-2.3,3.3s0.6,7.3,1,11c0.1,0.8,0.8,1.3,1.6,1.2c0,0,0.1,0,0.1,0c1.9-0.4,3.8-0.6,5.7-0.8c1.3-0.2,2.6,0.6,3,1.9
|
|
||||||
c0.5,1.4,0,3-1.3,3.9c-1.4,0.7-2.8,1.4-4.3,2c-1.8,0.6-3.7,1.1-5.6,1.4c-3.1,0.6-5.5-1-5.9-4.1c-1-6.5-1.7-13-0.8-19.5
|
|
||||||
c0.4-3.5,0.4-7,0.5-10.5v-1.6c0.7-4.6,0.7-9.2-0.1-13.8l0,0C39.1,22.2,39.2,21,40,20.3L40,20.3z"/>
|
|
||||||
<path class="st2" d="M39.9,23.1c0.3,0.4,0.7,0.8,0.7,1.2c0.1,4.2,0.5,8.4-0.6,12.6C40,32.3,39.9,27.7,39.9,23.1z"/>
|
|
||||||
<path class="st2" d="M40,20.2c0,1-0.1,1.9-0.1,2.9C38.7,21.6,38.7,21.6,40,20.2z"/>
|
|
||||||
<path class="st7" d="M35.9,68.9l-8,1.7c-3.6,0.7-6.1-1-6.1-4.6c-0.2-7.4-0.1-14.7,0.1-22.1s0.5-12.4,0.8-18.6c0-1.3,0-2.6,0.2-3.9
|
|
||||||
c0-1.3,0.9-2.4,2.2-2.8c1.3-0.4,2,0.6,2.8,1.4l0.3,0.3l0.3,24.9c0,4.7-0.1,9.3,0,13.9c0,1.1,0.1,2.2,0.2,3.3h4.4
|
|
||||||
c3.8,0.1,5,2.3,3.3,5.7C36.3,68.4,36.1,68.6,35.9,68.9z"/>
|
|
||||||
<path class="st7" d="M91.5,154.6c3.2,5.6,2.4,11.4,0.8,17.1c0,0.3-0.2,0.6-0.5,0.8l-1.3,0.2c-0.3,0-0.6-0.3-0.6-0.6
|
|
||||||
c-0.1-1.1-0.1-2.2-0.2-3.3c-0.1-2.7-0.1-5.4-0.3-8.1c0-0.7-0.4-1.2-1-1.5c-0.4-0.2-1.2,0.3-1.5,0.7c-2.5,3.4-3.8,7.5-3.9,11.7
|
|
||||||
c-0.1,1.3,0.7,2.6,2,3c5.5,2.1,7.7,6.7,8.7,12.2c0.7,3.3,0.7,6.6,0.1,9.9c-0.8,4.1-3,7.8-6.3,10.4c-2.3,0.7-4.6,1.3-6.9,1.8
|
|
||||||
c-4.2,0.6-8.1-2.3-8.7-6.5c-0.2-1.4,0-2.8,0.5-4.1c0.4-0.7,0.9-1.3,1.5-1.8c1.1-0.9,2.8-0.6,3.6,0.5c0.2,0.3,0.4,0.6,0.5,1
|
|
||||||
c0.2,0.6,0.1,1.2,0.3,1.9s1.1,1.8,2.4,1.6c2.8-0.6,4.7-2,5.4-4.8c1.3-4.2,0.9-8.7-0.9-12.7c-0.6-1.3-1.6-2.3-2.9-3
|
|
||||||
c-4.5-2.3-5.7-6.2-5.1-10.9c0.6-4.1,2-8.1,4.3-11.6c0.4-0.7,0.9-1.3,1.5-1.9C85.4,154.1,88.1,152.9,91.5,154.6z"/>
|
|
||||||
<path class="st7" d="M85.9,138.4c0.1-5.3,0.3-10.5,0.5-15.8c0-1-0.6-1.3-1.6-1c-1.8,0.6-3.6,1.2-5.5,1.6c-0.9,0.2-1.7,1-1.9,1.9
|
|
||||||
l-1.5,6.5c-0.6,1.6-1.1,3.2-1.8,4.8c-0.3,0.5-0.8,0.8-1.4,0.9c-0.8,0.1-1.4-0.5-1.5-1.3c0-0.1,0-0.1,0-0.2c0.1-1.7,0.3-3.4,0.5-5.1
|
|
||||||
s0.4-3.1,0.7-4.6l0,0c1-4.9,0.4-10.2,3.7-14.5c0.2-0.2,0.3-0.4,0.1-0.6c1.5-4.9,0.7-10.3,3.9-14.7l0,0c0.9-2.5,1.9-5,2.7-7.5
|
|
||||||
c0.8-2.1,2.1-4,3.8-5.5c2.1-2,4.7-1.4,5.6,1.4c0.5,2,0.9,4,1,6.1c0.2,1.4,0.3,2.9,0.3,4.3c-0.1,13.8-0.1,27.7-0.2,41.5
|
|
||||||
c0,0.6,0,1.3-0.1,1.9c-0.1,1.5-1.2,2.7-2.7,3c-1.4,0.4-3-0.2-3.7-1.5L85.9,138.4z"/>
|
|
||||||
<path class="st11" d="M102.1,104l0.4-1.6c0.2,0.5,0.3,1,0.5,1.6H102.1z"/>
|
|
||||||
<path class="st2" d="M80.1,96.3c-0.7,5-2,10-3.9,14.7c0-2.5-0.4-5,0.5-7.5c0.2-1.1,0-2.1-0.4-3.1c-0.1-1.1,0.2-2.2,0.9-3.1
|
|
||||||
C77.9,96.1,79,96.3,80.1,96.3z"/>
|
|
||||||
<path class="st2" d="M76.1,111.6l-3.7,14.5c-0.2-4.2-0.3-8.3,0.9-12.3C73.7,112.5,74.8,111.6,76.1,111.6z"/>
|
|
||||||
<path class="st2" d="M68.5,98.2c0,1.3,0,2.5-0.1,3.7c-0.1,3.1-0.2,3.3-3.7,4l-0.3-0.2c-0.4-3.5,0.7-6.1,3.9-7.7L68.5,98.2z"/>
|
|
||||||
<path class="st3" d="M68.3,98l-3.9,7.7c-1.5,1.8-3.5,3.5-4.3,5.6s1.2,4.4,1.9,6.6c1.9,5.6,4,11.1,6.1,16.7l0.3,0.9
|
|
||||||
c0.4,1.4-0.1,2.9-1.4,3.7c-1.3,0.7-3,0.2-3.8-1c-0.9-1.2-1.5-2.5-2.3-3.7l-5.1-18.7c-0.2-0.8-1-1.3-1.8-1.2
|
|
||||||
c-1.5,0.1-2.4,0.7-2.6,1.7v2.3c0.1,3.5,0.3,7,0.4,10.5c0.1,1.4,0,2.9-0.1,4.3c-0.4,3.2-2.2,4.1-5.3,2.6l-0.8-0.6
|
|
||||||
c0.1-7.1,0-14.3,0.2-21.4c0.3-9.1,1-18.1,1.5-27.2c0-0.6,0-1.3,0.1-1.9c0.1-1,0.8-1.8,1.7-2c8.5-3.1,14.3-0.1,17.8,6.4l1.4,2.5
|
|
||||||
c-0.2,0.2-0.1,0.4,0.1,0.6C68.4,94.3,68.3,96.2,68.3,98z"/>
|
|
||||||
<path class="st2" d="M106.7,96.4c-1.2-3.6-2.5-7.1-3.8-10.6c3.4,0.3,3.9,0.6,3.9,3.4S106.8,94,106.7,96.4z"/>
|
|
||||||
<path class="st2" d="M101.1,84.7h-1.9C99.8,83.7,100.4,83.7,101.1,84.7z"/>
|
|
||||||
<path class="st2" d="M103,85.8l-1.3-1L103,85.8z"/>
|
|
||||||
<path class="st12" d="M195.1,61.8c2.4-1.4,4.9-1.8,7.3,0c0.2,0.8,0.3,1.5,0.4,2.3c0.1,3-0.8,4.3-3.6,5.3c-1.2,0.5-2.4,0.7-3.6,0.8
|
|
||||||
c-1.7,0.2-3.2-1-3.4-2.7c-0.1-0.6,0-1.2,0.3-1.8C193.3,64.3,194.1,63,195.1,61.8z"/>
|
|
||||||
<path class="st13" d="M69.8,148.2c-0.5,0.2-1.1,0.7-1.7,0.7c-0.9,0-1.7-0.8-1.6-1.8c0,0,0-0.1,0-0.1c0.1-0.8,0.8-1.3,1.6-1.2
|
|
||||||
c0,0,0.1,0,0.1,0C69.3,145.9,69.9,146.8,69.8,148.2z"/>
|
|
||||||
<path class="st14" d="M103.7,149.9c-1,0.1-1.8-0.5-2-1.5c0-0.8,0.7-1.5,1.5-1.6c1-0.2,1.9,0.4,2.2,1.3
|
|
||||||
C105.6,148.9,104.8,149.8,103.7,149.9z"/>
|
|
||||||
<path class="st2" d="M132.8,111.6l0.3-19.2c0-2.1,1.1-2.4,2.8-1.8c0.6,0.2,1.1,0.6,1.6,1c3.1,3,5.4,6.5,5.8,10.8
|
|
||||||
c0.9,7.5,0.2,15.1-1.9,22.3c-0.8,2.1-1.7,4.1-2.9,6c-0.4,0.8-1.1,1.5-2,1.9c-3.4,1.3-4,1.6-4-2.3c0.1-6.2,0-12.5,0-18.7
|
|
||||||
L132.8,111.6z"/>
|
|
||||||
<path class="st7" d="M164.3,100.3c4,2,5.8,5.8,7.6,9.5c1,6.3,1,12.6,0,18.9c-0.4,1-0.9,2-1.3,3.1c-1.3,3.3-3.5,6.1-6.4,8.1
|
|
||||||
c-3.5,2.7-7.3,2.3-10.3-1c-1.1-1.2-1.9-2.5-2.5-4c-0.7-1.5-0.6-3.2,0.3-4.6c0.9-1.5,2.8-2,4.2-1.1c0.4,0.2,0.7,0.5,1,0.9
|
|
||||||
c0.5,0.7,0.7,1.5,1.2,2.1s1.8,1.5,3,0.3c1.6-1.4,2.6-3.3,3.1-5.4c1.1-4.2,1.5-8.5,0.9-12.8c-0.1-0.8-0.3-1.6-0.6-2.3
|
|
||||||
c-0.5-2.5-2.1-4.7-4.4-5.9c-3.9-2.2-4.8-4.6-4-8.8c0.9-4.3,3-8.2,6-11.3c0.9-0.9,2-1.5,3.2-2c1.6-0.4,3.2,0.5,3.8,2
|
|
||||||
c0.5,1.6,0.4,3.3-0.5,4.7c-0.4,0.8-1.5,1.2-2.3,0.7c-0.1,0-0.1-0.1-0.2-0.1c-0.5-0.5-1.3-0.5-1.8,0c-0.2,0.2-0.3,0.4-0.4,0.6
|
|
||||||
c-0.8,1.7-1.5,3.5-2.1,5.3c-0.2,0.8,0,1.6,0.4,2.3C162.6,100,163.6,100,164.3,100.3z"/>
|
|
||||||
<path class="st15" d="M47.7,198.5c-4.1-8.5-3.1-25.6,2.1-35.6c1.6,0.6,2.8,1.9,3.2,3.6c0.1,0.3,0.2,0.7,0.2,1
|
|
||||||
c-0.2,10.2-0.2,20.4-4.7,29.9C48.4,197.7,48.1,197.9,47.7,198.5z"/>
|
|
||||||
<path class="st16" d="M86.7,97.2c0,5.7,0.1,11.4,0.1,17.1c0,2.2-0.3,2.4-2.5,2.8l-4,0.7c-0.2-0.3-0.3-0.7-0.4-1
|
|
||||||
c2-6.5,3.9-13,5.9-19.6C86.1,96.8,86.4,96.8,86.7,97.2z"/>
|
|
||||||
<path class="st17" d="M86.7,97.2h-0.9c0.1-0.5,0.3-1,0.5-1.5L86.7,97.2z"/>
|
|
||||||
<path class="st18" d="M51.3,98.8v-9.1c0-2.1,0.8-2.9,2.9-2.8c4.1,0.1,7.6,3.1,8.2,7.2c0.2,1.3-0.1,2.6-0.7,3.7
|
|
||||||
c-1.9,2.9-3.9,5.8-6,8.6c-0.9,1.2-2.4,2-3.6,3c-1.6-1.4-0.5-3.3-0.7-4.9c-0.1-1.9-0.1-3.8,0-5.7L51.3,98.8z"/>
|
|
||||||
<path class="st4" d="M208.7,114.2c-1.4,0-2.8,0.7-3.7,1.8c-1.2,2.1-3,2.1-4.9,2c-0.4-0.3-0.6-0.7-0.8-1.1c-0.3-1.4-0.4-2.8-0.1-4.2
|
|
||||||
c0.1-0.4,0.3-0.9,0.5-1.3c0.9-2.1,2.5-4,3.4-6.2c0.7-1.8,2.3-3.1,4.2-3.5c3.7-1,6.4-3.1,6.7-7.1c0.2-2.5-4-5.6-7.8-6.2
|
|
||||||
c-0.6-0.1-1.2-0.3-1.8-0.6l-0.5-0.5c0-0.8,0.5-1.6,1.3-1.8c2.3-0.8,4.7-0.2,7,0c0.7,0,5.9,5.1,5.9,5.8c0.1,2.5,0.1,5-0.1,7.5
|
|
||||||
c0,0.7-0.9,1.3-1.4,1.8s-2.2,1.5-2.8,2.6c-0.8,1.6-2.4,2.5-4.2,2.4c-1.3,0-1.9,1-2.4,2C206,110.2,207.2,112.2,208.7,114.2z"/>
|
|
||||||
<path class="st4" d="M192.4,98.8c0-1.8,1-3.4,2.5-4.3c2.4-1.4,3.9-3.6,5.8-5.5s1.8-1.7,3.2-1.7c2.8,2.8,0.1,4.2-1.5,5.7
|
|
||||||
c-5.7,4.6-9,11.6-8.9,18.9c-0.1,0.7-0.2,1.4-0.5,2c-0.3,0.7-0.9,1.1-1.6,1.2c-1.4-0.7-2.4-1.8-1.5-3.4c0.8-1.7,1.1-3.7,0.6-5.5
|
|
||||||
c-0.1-1.6-0.1-3.2,0-4.8C190.5,100.2,191.3,99.2,192.4,98.8z"/>
|
|
||||||
<path class="st2" d="M189.2,151.4c-0.5-5.2,2.8-8.8,5.2-12.7c3.5-1.9,6.4-5.1,11-4.6c1.9,0.1,3.8,0.1,5.7,0c1.3-0.1,2.6,0.2,3.6,1
|
|
||||||
c1,0.9,1.6,2.3,1.6,3.7l-0.2,0.2c-3.3-0.5-6.1-2.5-9.9-2.1c-6.2,0.6-9.8,3.8-12.7,8.7c-1.2,2-1.4,4.6-3.6,6L189.2,151.4z"/>
|
|
||||||
<path class="st4" d="M217.3,109.4c-0.8,0.9-1.8,1.7-1.9,3.1s-1.6,1.6-2.9,1.6c0.3-1,0.3-2.3,0.9-3c1.8-1.9,2.9-4.2,3.2-6.8
|
|
||||||
c0.2-0.8,0.6-1.5,1.1-2.1"/>
|
|
||||||
<path class="st2" d="M196.1,178.8c1.8,0.3,3.4,1.1,4.6,2.4c0.9,1.1,2.3,1.6,3.7,1.3l0.3,0.3c0.8,2.3-0.5,3.8-2.2,4.6
|
|
||||||
s-2.9-0.9-3.9-2s-3.4-3.4-3.1-6.2L196.1,178.8z"/>
|
|
||||||
<path class="st2" d="M189.2,164.9c-2.8-1.3-3-1.4-2.4-3.6c0.5-1.4,0.5-2.8,0.2-4.2c-0.6-2.2,0.3-4.5,2.2-5.7h0.2
|
|
||||||
c1.9,4.2,0,8.6,0.4,12.9L189.2,164.9z"/>
|
|
||||||
<path class="st2" d="M192.1,168.7c-2.2-0.3-2.4-2.1-2.9-3.8l0.3-0.2c2.3,0.1,2.9,1.7,2.9,3.7L192.1,168.7z"/>
|
|
||||||
<path class="st2" d="M191.4,115.1l1-0.9c1.3,1.3,1.4,3.3,0.1,4.7c0,0,0,0,0,0l-0.2,0.2c-0.4,0.3-0.6,0.2-0.9-0.1L191.4,115.1z"/>
|
|
||||||
<path class="st2" d="M204.6,175.9l1.1-0.5c0.3,0.3,0.5,0.6,0.6,1c0.1,0.1-0.3,0.4-0.3,0.4L204.6,175.9z"/>
|
|
||||||
<path class="st4" d="M191.4,119h0.9v1.8C191.8,120.4,190.2,120.3,191.4,119z"/>
|
|
||||||
<path class="st2" d="M195,177.8l0.9,0.9l-0.3,0.4c-0.4-0.2-0.8-0.5-0.9-1L195,177.8z"/>
|
|
||||||
<path class="st19" d="M194.6,178l0.7,0.7c1.9,2.6,3.7,5.2,5.6,7.7c0.3,0.5,0.9,0.6,1.4,0.3c0.1-0.1,0.2-0.1,0.2-0.2
|
|
||||||
c0.8-1.2,1.5-2.5,2.2-3.7l3.6-4.4c0.5-0.6,1-1.2,1.6-1.7c0.8-0.7,2.1-0.6,2.8,0.2c0.1,0.1,0.1,0.2,0.2,0.3c0.5,0.9,0.8,2,0.9,3.1
|
|
||||||
c0.2,7.8,0.2,15.7,0.2,23.5c0.1,0.8-0.1,1.6-0.5,2.3c-0.4,0.9-1.3,1.5-2.3,1.3c-0.9-0.2-1.7-0.7-2.2-1.4c-0.4-1-0.7-2.2-0.6-3.3
|
|
||||||
c-0.1-4.3,0-8.6,0-12.9v-2.7c-1.8,0.8-2.2,2.3-3,3.3c-2,2.6-3.2,2.8-6,1c-0.5-0.3-1-0.7-1.5-1.2c-2.2-0.3-1.5,1-1.2,2.1
|
|
||||||
c0,2.9,0.1,5.7,0.2,8.6c0.1,0.8,0.1,1.5,0,2.3c-0.2,1.3-1.2,2.4-2.5,2.6c-1.3,0.2-2.6-0.4-3.2-1.6c-0.5-1.3-0.9-2.8-0.9-4.2
|
|
||||||
c-0.1-6.6-0.1-13.3-0.1-20c0-0.3,0-0.6,0.1-0.9c0.2-1.6,1.5-2.3,3.1-1.7L194.6,178z"/>
|
|
||||||
<path class="st20" d="M192.4,168.4c-1-1.2-2-2.4-2.9-3.7c-1.2-3.5-1.3-7.3-0.3-10.9c0.1-0.8,0.2-1.5,0.2-2.3l2-4.8
|
|
||||||
c1.3-2.9,3.2-5.5,5.5-7.7c2-1.8,4.3-3.1,7.2-2.9c1.3,0.1,2.6-0.1,3.8-0.4c2.6-0.8,5.5,0.1,7.2,2.3l1,1c2.1,6.5,1.6,12.9-0.1,19.3
|
|
||||||
c-0.7,2.8-2.1,5.4-4,7.5c-4.4,5.2-11.9,6.6-17.9,3.4L192.4,168.4z"/>
|
|
||||||
<path class="st20" d="M192.5,118.9c-0.1-1.6-0.1-3.1-0.1-4.7c0-0.5,0-1,0.1-1.5c0.7-8.6,5.1-16.5,11.9-21.7
|
|
||||||
c2.8-2.2,5.3-2.5,7.9,0.3s2.2,5.5-0.4,8s-3.8,2.1-4.8-1.1c0-0.6,0.5-1.1,0.4-1.7c-0.1,0.4-0.3,0.9-0.5,1.3c-2.8,4.5-5.2,9.4-7,14.4
|
|
||||||
l0,0c-0.7,1.7-0.7,3.7,0,5.4l-0.2,0.3l0.3,0.2c1.2,2.3,2.7,2.9,4.3,1.8c0.8-0.7,1.6-1.5,2.3-2.3c0.6-0.7,1.3-1.4,2.1-2
|
|
||||||
c1.2-0.9,2.8-0.8,4,0.1c1,0.8,1.4,2.1,1.1,3.4c-1.2,5.1-7,9.3-12.1,8.8c-3.6-0.3-6.7-2.5-8.1-5.8
|
|
||||||
C193.2,121,192.9,119.9,192.5,118.9z"/>
|
|
||||||
<path class="st2" d="M207.9,96.9c-0.1,0.3-0.1,0.6-0.2,0.9c-0.1,0.8,0.3,1.6,1,2c0.9,0.4,1.9,0.2,2.6-0.5c1.4-1.6,2-3.7,1.6-5.8
|
|
||||||
c-0.4-2.2-2.6-3.7-4.8-3.2c-0.3,0.1-0.5,0.1-0.8,0.2c-1.5,0.6-2.8,1.4-4,2.5c-4.3,3.7-7.4,8.5-9,13.9l-1.8,5.8
|
|
||||||
c0.1-2.7,0.2-5.5,0.4-8.3c0.1-0.6,0.4-1.2,0.9-1.6c2.2-1.6,2.4-4,2.9-6.2c0.2-0.6,0.5-1.4,0.8-1.5c3.1-0.3,3.8-3.5,6.2-4.8
|
|
||||||
s0.8-1.9,0.2-3h2.9c2.1-0.1,4.1,0,5.1,2.4c0.3,0.6,0.8,1,1.4,1.3c1.3,0.6,2.2,1.9,2.1,3.4c0.1,1.8,0,3.4-1.8,4.5
|
|
||||||
c-0.5,0.4-1,0.8-1.3,1.4c-0.9,1.5-2.5,2.4-4.3,2.4c-1.9-0.2-3.5,1.1-3.9,2.9c-0.6,2.7-2.5,4.6-4.1,6.6c0.4-5.7,2.8-11.1,6.8-15.2
|
|
||||||
C207.1,96.5,207.5,96.5,207.9,96.9z"/>
|
|
||||||
<path class="st2" d="M200,117.5c-0.9-1.7-0.9-3.7,0-5.4V117.5z"/>
|
|
||||||
<path class="st2" d="M194.2,99.8c-0.6,0.3-1,0.5-1.1,0.4c-0.3-0.3-0.5-0.6-0.6-1l0.3-0.3L194.2,99.8z"/>
|
|
||||||
<path class="st4" d="M224.2,192.5c1.2,0.4,2.1,1.5,2.2,2.8c0.2,1.8-0.5,3.5-1.8,4.7c-0.7,0.5-1.6,0.4-2.1-0.3l0,0
|
|
||||||
c-1.3-1.7-0.9-5.4,0.8-7C223.5,192.5,223.9,192.6,224.2,192.5z"/>
|
|
||||||
<path class="st21" d="M210.1,148.8c-0.5,2.6-0.8,5.1-1.5,7.5c-0.5,1.5-1.4,2.9-2.5,4.1c-1,1-2.2,1.8-3.5,2.2
|
|
||||||
c-3.6,1.1-6.5-1.1-6.4-4.8c0.2-5.2,1.6-10.1,5.1-14.1c1.5-1.7,5.1-2.5,7-1.5c0.5,0.3,0.9,0.8,1.1,1.4
|
|
||||||
C209.7,145.3,210,147.1,210.1,148.8z"/>
|
|
||||||
<path class="st22" d="M207.9,96.9h-1.1c0.2-0.4,0.3-0.9,0.7-1.1s0.7,0,1,0.1L207.9,96.9z"/>
|
|
||||||
</g>
|
|
||||||
<g id="Layer_1">
|
|
||||||
<title>logosquare2</title>
|
|
||||||
<path class="st23" d="M114.6,174.7c0-0.5,0.1-1,0.1-1.5c0.6-4.7,0.6-9.5,0-14.2v-0.2c1.6-3.4,3.8-3.5,5.8,0s3.9,7.2,4.5,11.4
|
|
||||||
c0.2,1.9,0.5,3.8,1,5.7h-0.1c2.1,3.2,3.6,6.7,4.7,10.3c-0.2-9,0.9-16.8,0.4-24.7c-0.2-2.1,0.3-4.1,1.4-5.9c1.6-2.4,3.6-3.8,6-0.7
|
|
||||||
v-0.2l-0.2,0.2c1.3,1,1.9,2.7,1.5,4.3c-1.5,14.2-0.4,28.5-0.7,42.7c-0.1,0.7,0-0.1,0,0.5c-0.1,5.1-1.8,8.5-4.6,8.4s-5.7-3.7-6.9-7
|
|
||||||
c-0.7-1.6-0.8-3.4-1.4-5.1h0.1c-3.1-3.5-3.7-8.2-5.7-12.3c0.6,8.2-1.6,16-2.4,23.9h0.1c-0.2,1-1,1.7-2,1.9h0.1
|
|
||||||
c-3.7,1.1-5.3-1.4-5-4.2C112.3,196.8,111.4,185.6,114.6,174.7z"/>
|
|
||||||
<path class="st24" d="M62.9,207.1c-1,0.1-1.9-0.2-2-1.4s0-5.4-0.1-8.1c0.1-1,0-1.9-0.1-2.9c-0.2-0.6-0.5-1-1-1.4
|
|
||||||
c-0.9-0.3-2,0.2-2.3,1.1c0,0,0,0,0,0.1c-0.4,2-1.2,3.9-0.6,6c0.2,0.6,0.4,1.3,0.5,1.9c0.2,0.7-0.2,1.5-0.9,1.8c0,0-0.1,0-0.1,0
|
|
||||||
c-1.7,0.3-2.3,1.6-3,2.8c-0.4,0.9-1.4,1.4-2.4,1.3l-7.1-0.3c-0.4,0-0.8-0.4-1.2-0.7c-0.7-0.8-1.6-1.5-2.5-2
|
|
||||||
c-1.9-0.9-2.7-2.3-2.2-4.2s-0.3-4.4-0.1-6.7s0-4.1-0.1-6.2s-0.8-1.9-2.1-1.1l-1.5,1.2l-0.6-0.5c-1-1.9-0.3-3.8,0.2-5.6
|
|
||||||
c2-7.4,3.3-15,5-22.5c0.3-0.9,0.3-1.9,0.2-2.8c-0.1-0.8-0.4-1.6-1.3-1.8s-1.4,0.5-1.8,1.2c-0.8,2.1-1.4,4.3-1.6,6.5
|
|
||||||
c-1.3,7-1.9,14.3-5.7,20.6c-0.4,0.3-0.9,0.3-1.4,0.2c-1.1-0.9-1.8-2.3-1.9-3.7c-0.7-6.7-3.7-12.9-3.8-19.6c0-1.2-0.4-2.5-1.8-2.5
|
|
||||||
s-1.5,1.8-1.4,3s0.7,4.7,1.2,7.1s0.7,3.7-0.4,5.5l-0.5,0.5c-2.8-1.6-4.1-4.1-3.4-7.1c0.4-1.7,0.4-3.4,0-5.1
|
|
||||||
c-0.4-2.1-0.1-4.4-0.1-6.7c2.9-0.7,5.9-0.5,8.7,0.5c1.6,0.3,2.7,1.8,2.6,3.5c-0.1,3.7,0,7.3,0,11c-0.2,1.4,0.4,2.9,1.5,3.8
|
|
||||||
c0.6,0.4,1.4,0.3,1.8-0.3c0.1-0.1,0.1-0.2,0.2-0.3l0.3-2.3c0.2-2.7-0.4-5.5,0.6-8.1c0.1-0.3,0.1-0.6,0-0.9
|
|
||||||
c-1.4-2.9,0.1-4.9,2.1-6.7c0.5-0.6,1-1.2,1.3-1.9c2.1-2.8,2.7-3,6.6-1.6l0,0l0.9,3.6c0.2,0.5,0.2,1.2,0.4,1.7
|
|
||||||
c0.4,1,1.6,1.5,2.6,1.1c0.2-0.1,0.3-0.2,0.5-0.3c0.9-1.1,1.6-2.3,3.3-2.1c0.2,0.9,0.1,1.9-0.5,2.7c-5.3,8.6-7.1,18.1-7.6,27.9
|
|
||||||
c-0.4,5.4,0.7,10.8,3.1,15.7c0.9,1.9,2.4,3.6,4.7,3.5s3.1-2,3.9-3.8c5.3-11.3,6.3-23.3,5.4-35.5c-0.4-5.5-5.1-7.7-8.9-10.5
|
|
||||||
c1-1.7,2.8-1,4.2-1.1s3.8,0.2,4.4,2.6c0.1,0.5,0.5,0.8,0.9,1c1.6,0.4,2.5,1.6,3.4,2.9s1.2,1,2.5-0.2l0.8-0.6
|
|
||||||
c1.7,1.9,1.5,4.2,1.3,6.4c-0.9,11.9-1.8,23.9-1.8,35.9C64.2,204.2,64.1,205.8,62.9,207.1z"/>
|
|
||||||
<path class="st25" d="M160.6,195.3v0.2c0.1,6.7-3.3,11-9.2,13.6s-8.3,0.7-10.2-3.9c-1.8-4.1-2.1-8.8-0.6-13.1
|
|
||||||
c0.7-2.1,2-3.8,4.5-3.5s3.1,2.3,3.3,4.5s-0.2,3.8,0.6,5.6c4.8-2.7,4-11.4-1.3-14.9c-3.3-2.2-6-4.7-6.2-8.6
|
|
||||||
c-0.3-5.3,0.7-10.6,2.9-15.4c0.4-0.7,1.2-1.1,1.4-1.9c1.1-3.8,3.3-6.3,7.5-5.9s6.5,4.6,6.9,9.2c0,0.5,0.2,0.9,0.4,1.3v2.3
|
|
||||||
c-1,3.5,0.1,7.3-1.2,10.7c-0.9,1.6-2.3,2.3-4,1.5s-1.5-2.4-1.3-3.8c0.6-3.3,0.7-6.6,0.2-9.9c-0.1-0.6-0.4-1.2-0.9-1.6
|
|
||||||
c-4.2,4.4-4,11.3,0.4,14.9c1.4,1,2.7,2.3,3.7,3.7c2.4,2.9,2.5,6.4,2.7,9.8C160.3,191.8,159.9,193.6,160.6,195.3z"/>
|
|
||||||
<path class="st24" d="M160.6,162.5c-0.3-0.7-0.5-1.5-0.7-2.2c-0.4-0.9-0.6-1.9-1-2.7c-1.3-2.5-3.2-4.6-6.2-4.7s-4.6,2-5.9,4.3
|
|
||||||
c-1,1.8-1.8,3.7-2.3,5.7c-0.8,3.1-1.4,6.2-1.8,9.4c-0.5,4.5,1,8.3,5.5,10.1c2.1,0.8,3.7,2.7,4.2,4.9c0.5,2.5,0.9,5,1.2,7.5
|
|
||||||
c0.3,3-1.6,5.8-4.5,6.6c-0.6,0-1.1-0.3-1.5-0.8c-0.2-1.9-0.3-3.8-0.4-5.7s0.2-2.2,0.1-3.3c0-1-0.7-1.9-1.7-2.1
|
|
||||||
c-0.9-0.4-2-0.2-2.7,0.6c-0.7,0.7-1.2,1.5-1.4,2.4c-0.9,3.9-0.7,8,0.5,11.8c0.4,1.2,1,2.3,1.9,3.3c1.2,1.4,3.1,1.9,4.8,1.3
|
|
||||||
c3.2-1,6.1-2.7,8.5-5.1c1.3-1.4,2.2-3.2,2.6-5.1c0.2-1,0.5-2.1,0.8-3.2v0.5c0.2,7,0.2,7-4.2,12c-0.6,0.5-1.2,0.9-1.9,1.3
|
|
||||||
c-1.1,0.5-2.2,1.1-3.3,1.8c-2.5,1.6-4.2,1.5-6.4-0.4l-1.4-1.3c-1.3-1.4-3.5-1.5-4.9-0.2c-0.1,0-0.1,0.1-0.2,0.2
|
|
||||||
c-0.8,0.9-1.8,1.6-3,2.1c-2.1,0.8-3.6,0.9-5-1.1s-3.4-1.9-3.9-3.2s-0.3-4.1-0.3-6.2s0.1-1.6,0.1-2.4c1.1,2.1,2.1,4.3,3.2,6.3
|
|
||||||
c0.7,1.4,1.6,2.8,2.6,4c1.3,1.3,3.4,1.3,4.7,0c0.5-0.5,0.8-1.1,0.9-1.7c0.3-1.6,0.4-3.1,0.3-4.7c0-11-0.2-22-0.2-33
|
|
||||||
c0.1-3.1,0.5-6.3,0.7-9.5c0.1-1.7,0-3.5-0.1-5.2c1.6-0.3,2.9-0.2,3.2,1.8c0.1,0.5,0.3,0.9,0.6,1.3c0.9,0.7,2.2,0.5,2.9-0.4
|
|
||||||
c0.1-0.3,0.2-0.6,0.2-0.9c-0.1-1.6,0.6-3.2,1.9-4.2c1.6-1.3,3.7-1.9,5.8-1.6l2.8,0.5c0.5,0.1,0.9,0.3,1.2,0.7
|
|
||||||
c1.2,1.6,2.4,3.3,3.5,5c0.4,0.9,0.5,1.8,0.5,2.7C160.9,160.6,160.8,161.6,160.6,162.5z"/>
|
|
||||||
<path class="st24" d="M87.8,207.4c-1.3,1.5-3.8,1.7-4.4,4.1c0,0.3-1.1,0.5-1.6,0.5s-1.7-0.6-2.3-0.4s-2.8,0.6-3.7-1.4
|
|
||||||
s-2.1-1.8-3.6-1.8l-4.7-0.2c1.2-14.6,0.3-29.2,0.6-43.8c0-2.4,0.5-5.1-3.4-4.8c-0.4-5.4,0.6-5,5-5c2.1,0.1,2.5,0.6,2.6,2.6
|
|
||||||
s0.1,4.1,0,6.2c0.1,0.8,0,1.6-0.4,2.3c-2.5,2.8-0.8,5.6,0.2,8s1.2,3.2,0.4,4.9c-0.4,1.1-0.6,2.2-0.8,3.3c-0.2,0.9-0.2,1.8,0,2.7
|
|
||||||
c0.6,1.6,0.6,3.5,0,5.1c-0.5,1.6,0.4,3.3,2,3.7c0.5,0.1,1,0.2,1.5,0.1L78,193c0.8-0.1,1.6,0.4,1.9,1.2c0.4,0.8,0.9,1.6,1.4,2.4
|
|
||||||
c0.4,0.6,1.2,0.7,1.8,0.3c0.2-0.2,0.4-0.4,0.5-0.7c1.6-3.8,0.9-7.7,0.1-11.6c-1.4-1.5-2.6-3.3-4.8-3.6c-0.8-0.1-1.5-0.7-1.6-1.5
|
|
||||||
c-0.8-1.8-1.2-3.7-1.2-5.6c0.2-2.5-0.1-5.1,0.1-7.6s0.3-6.1,3.1-8.2c0.4-0.3,0.5-1.1,0.8-1.7s0.5-1.4,1-1.5s3.3-1.1,3.4-3.3
|
|
||||||
c0-0.2,0.7-0.5,1.1-0.5l2.7,0.3c2.5-0.3,2.5-0.3,3.2,2.1c0.1,0.3,0.1,0.6,0.2,1l-0.6,0.4c-7.1,0.1-9.7,5.3-11.6,10.9
|
|
||||||
s-1.8,10.7,3.9,14.7s6.1,12.6,3.4,17.6s-6.4,5.3-9.8,1.2c-1.8-2.1-2.7-1-3.3,0.8c-1.4,3.8,2.2,8,6.6,7.6c2.3-0.2,4.5-1.7,7-0.8
|
|
||||||
C87.4,207.1,87.6,207.3,87.8,207.4z"/>
|
|
||||||
<path class="st26" d="M99.3,203.3v-17.7c0.7-8.3,0.4-16.8,0.9-25.1c0.1-1.9,0.4-3.6,2.3-4.4s3.4-0.7,4.3,1.4l0,0
|
|
||||||
c3,5.9,2.1,12.3,1.4,18.2c-1,7.9-0.5,15.8-0.8,23.7c-0.1,1.4,0.4,2.9-0.6,4.1h0.1c-0.9,1.2-0.1,2.8-0.9,4.1s-1.2,3.2-3.2,3
|
|
||||||
s-2.9-1.6-3.1-3.6S100,204.5,99.3,203.3z"/>
|
|
||||||
<path class="st27" d="M64.7,159.6l0.3-0.4c0.7-1.3,1.2-2.9,3.1-2.4s1.7,2.2,1.7,3.6s0,4.5,0,6.7l-0.3,30.1c0,1.9-0.2,3.9-0.1,5.8
|
|
||||||
c0.1,1.9-0.6,3.8-1.9,5.2l0,0c-1.9,1.4-3.3,0.2-4.6-1l0,0c-0.1-1.3-0.4-2.5-0.4-3.8l1.8-34.4c0.2-2.8,0.3-5.7,0.4-8.6
|
|
||||||
c0.2-0.2,0.3-0.5,0.1-0.7C64.8,159.7,64.7,159.6,64.7,159.6z"/>
|
|
||||||
<path class="st24" d="M91.7,154.5l4,0.3c-0.6,4.1,0,7.9,0.2,11.8c0,2.1-0.3,4.1-0.8,6.1c-0.1,0.4-0.9,0.9-1.4,1s-3,0.7-2.9,2.5
|
|
||||||
s1.6,1.9,2.7,2.3s1.2,1.2,1.4,2.4c0.5,4.2,0.6,8.5,0.5,12.8c0,2.2,0.2,4.4-0.6,6.6s0.2,1.8,0.2,2.8s-0.3,1.1-0.5,1.1
|
|
||||||
s-2.7,1.8-4,2.6c-0.9,0.4-1.8,0.6-2.7,0.6l-0.3-0.3c-0.1-1.4,0.8-2.3,1.5-3.4c6.9-10,5.1-20.9-4.5-28c-1.8-1.1-2.9-3.1-2.7-5.2
|
|
||||||
c0.3-3.5,1.4-6.9,3.2-10c0.8-1.2,1.8-2.5,3.5-2.1s2,1.8,2.2,3.3s0,5.1,0.5,8.5c2.1-5.7,0.1-10.7,0.3-15.6L91.7,154.5z"/>
|
|
||||||
<path class="st24" d="M138.4,154.8l-0.9-0.3c-2.7-0.7-4.2-0.1-4.7,2.4c-0.5,3-0.9,6-1,9c-0.2,6.6-0.1,13.1-0.2,19.7
|
|
||||||
c0.1,1.3,0.1,2.6-0.2,3.8c-2.1-2.6-4.4-8.2-5.5-13.6c1.2,0.2,1.6,2.3,3.2,1.4c1.6-0.9,0.7-2.2,0.8-3.4c0.2-2.8-0.4-5.7,0.7-8.5
|
|
||||||
c0.1-0.6,0.1-1.2-0.1-1.8c-0.1-0.8-0.4-1.6-0.5-2.3c-0.5-4.8-0.3-5.3,3.4-8.6c0.8-0.7,1.5-2,2.7-1.5S138.7,152.9,138.4,154.8z"/>
|
|
||||||
<path class="st28" d="M20.7,64.4c0.3,2.8,0.6,5.5,0.9,8.6H31c1.1,0.1,2.2,0,3.2-0.4c0.6-0.3,0.6-1.5,1-2.3s0.6-0.7,0.9-1.1
|
|
||||||
s2.9-0.1,3.3,1.2s2.6,2.7,4.4,3.6c-0.9,1.7-1.8,2.4-2.7,1.7s-4.6-0.8-7.1-0.3s-7.4,1.8-11.2,0.6s-4.3-1.9-4.8-4.2s-0.8-5.2,1.9-6.9
|
|
||||||
L20.7,64.4z"/>
|
|
||||||
<path class="st24" d="M106.8,203.5l0.3-27.8c0-6-0.2-12.1-0.3-18.2c2,0.8,3.2,2.7,3,4.8c0.2,3.9,1.3,7.7,1,11.7
|
|
||||||
c0.2,1.2,0.5,2.4,0.9,3.6c-2.9,0.5-3.9,2.3-3.8,5v17.5C107.9,201.3,108.1,202.7,106.8,203.5z"/>
|
|
||||||
<path class="st24" d="M118.2,210.2c0.5-8.6,0.9-17.2,1.4-25.8c0-0.5,0-0.9,0.1-1.4c0.1-0.3,0.4-0.6,0.6-0.6s0.6,0.2,0.7,0.4
|
|
||||||
c1.8,5.2,3.5,10.5,5.3,15.8c-0.7-0.2-1.4-0.5-2.1-0.8c-1.8-1.2-1.8-1.2-2,1.2c0,0.9-0.5,1.8-1.3,2.3c-1.1,0.6-1.7,1.9-1.5,3.2
|
|
||||||
c0.1,1.3,0,2.5-0.1,3.8C119.1,209,118.7,209.7,118.2,210.2z"/>
|
|
||||||
<path class="st24" d="M114.6,174.7c0,1.6,0,3.2-0.1,4.8c-0.7,8.4-1.5,16.8-2.3,25.2c0,0.9-0.2,1.9-0.2,2.8c0.1,3,0.9,3.7,4.4,4.5
|
|
||||||
c-0.3,0.3-0.6,0.9-0.9,0.9c-2.8,0.1-4.6-1.5-4.7-4.1s0-5.4-0.1-8.1s0.6-5.3,0.1-8c-0.3-0.7-0.2-1.6,0.1-2.3
|
|
||||||
c1.3-1.6,1.1-3.2,0.4-4.9c-0.4-1-0.5-2.2-0.1-3.2c0.3-1.5,0.5-3.1,0.5-4.7c0.9,0.1,1.7-0.5,1.9-1.4
|
|
||||||
C113.9,175.7,114.2,175.2,114.6,174.7z"/>
|
|
||||||
<path class="st24" d="M30.1,207.4c0.3,2.4-0.3,4.5-2.9,5.2c-0.7,0.2-1.5,0.3-2.3,0.3c-0.9-0.2-1.9-0.4-2.8-0.7
|
|
||||||
c-2.6-0.5-4-2.2-3.3-4.6c0.6-2.1,0.6-4.4-0.1-6.5c-0.2-1.3-0.2-2.5-0.1-3.8c-0.1-7.8-0.1-15.6-0.1-23.4l0.2-0.2
|
|
||||||
c2.5,0.7,2.2,2.9,2.1,4.7c-0.2,7.3,1.5,14.5,1.1,21.9c0,1.4,0.1,2.8,0.5,4.2c1.1,5.2,2.4,5.8,6.9,2.8L30.1,207.4z"/>
|
|
||||||
<path class="st24" d="M126,175.9l-2.8-8.1c-1-3.2-2-6.4-4-9.1l-0.9-1.2c-0.8-1-1.7-1-2.8,0.1c-0.3,0.4-0.6,0.8-0.8,1.2
|
|
||||||
c0-4.5,0.6-4.8,4.6-3.4c1.4,0.3,2.5,1.5,2.7,2.9c0.4,2.4,1.4,4.6,3,6.4c0.7,0.8,1,1.9,1,3C126.2,170.4,126,173.1,126,175.9z"/>
|
|
||||||
<path class="st24" d="M202.9,61.7c2.8,1.2,3.1,1.9,1.6,4.2c-1.5,2.3-2.1,4-4.6,4.5l-0.4,0.2c-1.7,4-5,2.1-7.9,2.6
|
|
||||||
c-0.1-4.2-1.7-7.9,1.1-11.6l2.3,0.3c0.1,0.1,0.1,0.2,0.2,0.2c-0.1,0.5-0.2,1-0.4,1.4c-0.7,1.8-2.4,4.1,0.7,5
|
|
||||||
c2.4,0.8,4.9-0.5,5.7-2.9c0,0,0,0,0,0c0.5-1.2,0.2-2.7,1.1-3.8L202.9,61.7z"/>
|
|
||||||
<path class="st24" d="M106.8,157.5c-0.7-0.3-1.3-0.9-2-1c-1.5-0.5-3,0.4-3.5,1.9c0,0.1-0.1,0.3-0.1,0.4c-0.1,0.7-0.1,1.5-0.2,2.3
|
|
||||||
c-0.3,6.6-0.6,13.3-1,19.9c-0.1,1.5-0.4,3.1-0.7,4.6c0-8.3-0.1-16.6,0-24.9c0.2-1.8,0.5-3.5,0.9-5.2l0,0c1.9-0.2,3.6-1.4,5.5-0.8
|
|
||||||
c0.6,0.2,1.1,0.5,1.5,1C107.4,156.2,107,156.9,106.8,157.5z"/>
|
|
||||||
<path class="st24" d="M64.7,146.8c0-0.4,0.1-0.7,0.2-1.1c0.3-1.8,2.1-3,3.9-2.6c0.1,0,0.3,0.1,0.4,0.1c1.9,0.4,3.2,2.3,2.9,4.2
|
|
||||||
c-0.4,3.3-1.4,3.9-4.7,2.8c-0.3-0.1-0.5-0.3-0.8-0.3S64.6,148.9,64.7,146.8z"/>
|
|
||||||
<path class="st24" d="M100.7,143.5c0.4,0,1-0.1,1.3,0.1s2.9-1,3.5,0.3s0.9,3.6,1.2,5.4c-0.1,0.6-0.6,1.1-1.2,1.2
|
|
||||||
c-1.4,0.2-2.8,0.2-4.2,0.1c-1.3-0.2-2.2-1.5-1.9-2.8c0,0,0-0.1,0-0.1C99.8,146.4,100.2,145,100.7,143.5z"/>
|
|
||||||
<path class="st24" d="M34.1,188.3c-0.1,4.2-0.2,8.5-0.1,12.7c0,1.7-0.1,3-2,3.8s-1.3,1.7-1.9,2.6H30c-2.3-5.7,1.1-10.7,1.6-16.1
|
|
||||||
c0.1-1.3,0.3-2.9,2.3-3.1L34.1,188.3z"/>
|
|
||||||
<path class="st24" d="M160.6,195.3c-0.2-0.9-0.4-1.8-0.6-2.7c-0.2-4.2-1.2-8.4-3.2-12.1c-0.9-1.6-1.1-3,1.3-3.3l0.6,0.4
|
|
||||||
c-0.5,1.1-0.7,2.3,0.3,3.1s1.7,3.2,1.7,5.1S160.6,192.1,160.6,195.3z"/>
|
|
||||||
<path class="st24" d="M99.3,203.3l0.9,3.1c0.1,0.8,0.3,1.5,0.6,2.3c0.5,0.8,1.3,1.6,2.3,1.3c0.7-0.2,1.4-0.7,1.8-1.3
|
|
||||||
c0.5-1.1,0.9-2.3,1.2-3.5c0.2-0.6,0.5-1.2,0.8-1.7c0.1,1.1,0.1,2.2-0.1,3.3c-0.4,1.4-1,2.6-1.9,3.7c-0.8,1.1-2.2,1.5-3.4,0.9
|
|
||||||
c-1.2-0.6-2.2-1.4-2.2-2.9S99.3,205,99.3,203.3z"/>
|
|
||||||
<path class="st24" d="M194.9,61.6c0-1,0.1-1.9,0.1-2.8c2.4-0.8,5.1-0.8,7.5,0c0.1,0.9,0.1,1.9,0.1,2.8l-0.2,0.2
|
|
||||||
c-2.4,0.1-4.9,0.8-7.3,0L194.9,61.6z"/>
|
|
||||||
<path class="st24" d="M158.6,175.5c0.7-3.6,1.3-7.1,2-10.7c0,3.5,0,7.1,0.1,10.6c0.2,1-0.5,2-1.6,2.2c-0.1,0-0.3,0-0.4,0l0,0
|
|
||||||
C158.2,177,158.2,176.1,158.6,175.5z"/>
|
|
||||||
<path class="st24" d="M114.7,159c1,4.7,1,9.5,0,14.2V159z"/>
|
|
||||||
<path class="st24" d="M68.4,92.4l1,1.9v1.9l-0.9,2l-0.6-0.5C67.1,95.8,67,94,68.4,92.4z"/>
|
|
||||||
<path class="st24" d="M62.9,207.2c1.4,0.7,2.9,1.4,4.6,1C65.2,209.9,64.4,209.7,62.9,207.2z"/>
|
|
||||||
<path class="st24" d="M116.3,212l2-1.9C118.1,211.8,118.1,211.8,116.3,212z"/>
|
|
||||||
<polygon class="st24" points="192,62.6 191.6,62.3 191.8,62.2 "/>
|
|
||||||
<path class="st24" d="M100.2,155.5l-0.4-0.2L100.2,155.5z"/>
|
|
||||||
<path class="st24" d="M40.7,151.7l0.2-0.4L40.7,151.7z"/>
|
|
||||||
<path class="st29" d="M114.6,93.6c0.3-1.3,0.6-2.5,0.8-3.7c0-1,0.1-1.9,0.2-2.9c0.7-3,3-3.7,5.7-1.8l0.7,0.6l0,0
|
|
||||||
c1,1.4,1.1,3.3,0.1,4.7l0,0c-0.4,8.6-1,17.3-1.7,26c-0.4,6.1-1.7,12.1-2,18.2c-0.2,0.1-0.3,0.4-0.2,0.7c0,0,0.1,0.1,0.1,0.1
|
|
||||||
c-0.6,2-0.3,4.7-3.4,4.9s-3.5-2.6-4.2-4.7l0,0c-3.8-4.5-2.6-10.3-3.8-15.4l0,0c-0.2-5.7-2.1-11-3.9-16.2c-0.4-0.4-0.6-1.1-0.3-1.7
|
|
||||||
c-0.2,0.6-0.1,1.2-0.6,1.7c0,8.4-0.1,16.9-0.2,25.3c0,2,0.2,3.9,0.2,5.8c-0.1,0.8-0.3,1.6-0.6,2.3c-0.8,1.3-2.5,1.8-3.8,1
|
|
||||||
c-0.4-0.2-0.7-0.6-1-0.9c-0.4-0.9-0.6-1.8-0.7-2.7c-0.4-5.1-0.5-10.2-0.3-15.3c0.4-10.1,1.8-20.1,2.4-30.1c0.1-1.6,0-3.2,1.1-4.6
|
|
||||||
l0,0c0.6-0.7,1.2-0.6,1.9-0.1s0.3,0.3,0.6,0.1c0.6,0.1,1,0.5,1.3,1h-0.1c2.9,2.9,2.9,6.9,3.8,10.6l0,0c3.5,4.5,4.2,10.1,5.9,15.4
|
|
||||||
c0,0.7,0,1.5,0.1,2.2c0.1,0.7,0.9-0.1,0.4,0.2s0,0.2-0.3-0.4c-0.1-0.6-0.2-1.2-0.2-1.8c-0.2-6,1-11.8,2-17.7
|
|
||||||
C114.8,94.2,114.9,93.9,114.6,93.6C114.7,93.7,114.6,93.6,114.6,93.6z"/>
|
|
||||||
<path class="st25" d="M126.2,122.4c0.2-0.6,0.4-1.2,0.5-1.8c0.7-8.7,1.3-17.5,2-26.2c0.1-2.1,0-4.2,0-6.2s0.7-3.2,3.4-3.6
|
|
||||||
c5.3-0.8,9.4,1.1,12.4,5.4c1.7,2.3,3.1,4.8,4.6,7.2l0,0c1.2,1.1,1.9,2.6,2.1,4.2c0.6,9.9,0.9,19.7-3.1,29.2
|
|
||||||
c-3,7.3-8.5,11.2-16,11.2c-4.1,0-6.9-2.3-7.3-6.5c-0.4-3.8,0-7.6,1.3-11.2L126.2,122.4z"/>
|
|
||||||
<path class="st24" d="M85.7,138.5c-1.1-0.7-1.6-2.1-1.2-3.3c0.6-2.6,0.5-5.4-0.4-7.9c-0.1-0.6-0.1-1.2,0-1.8
|
|
||||||
c0.2-0.8,0.8-1.7-0.3-1.9c-0.8-0.1-1.6,0.2-2.1,0.8c-0.5,0.3-0.6,1.1-0.9,1.6c-1.4,2.1-2.2,4.5-4.6,5.8l-0.3-0.2
|
|
||||||
c-1.8-6.6,2.3-11.6,9-11c1.5,0.1,2.7,0.9,2.5,2.3c-0.7,5.1,0.9,10.5-1.5,15.5L85.7,138.5z"/>
|
|
||||||
<path class="st24" d="M122.1,90.4c0-1.5,0-3.1-0.1-4.7C123.6,87.7,123.6,88.4,122.1,90.4z"/>
|
|
||||||
<path class="st24" d="M52.1,137.5l0.4,0.2L52.1,137.5z"/>
|
|
||||||
<path class="st29" d="M62.1,69c-0.3-0.7-0.6-1.4-0.9-2.1c-0.8-3.4-0.7-6.5,2-9.1c0.3,0.1,0.5,0.1,0.7-0.2c0.5-0.5,1.2-0.5,1.7-0.1
|
|
||||||
c0.1,0.1,0.1,0.2,0.2,0.3l0,0c2.2-0.1,1.9,4,4.1,2.8s1.4-3.6,1.8-5.6c0.5-3.3,0.2-6.7-1-9.8h0.1c-2.2-1.7-4.2-3.3-6.9-4.1
|
|
||||||
c-4.3-1.2-4.1-5.2-4.7-8.6v-2.3c0.8-2.5,0.3-5,0.8-7.6s3.5-6.4,6.5-8.4s7.2-0.6,9,2.8s1.1,5.5,0.9,8.4c-0.1,1.7-1.4,3-3.1,3.1
|
|
||||||
c-1.8,0.1-2.4-1.2-2.8-2.7s0-2.3-0.9-3.2c-3.4,3.6-3.4,7.4,0,12.1l0,0c4.9,0.9,7.7,3.8,8.7,8.6l0,0c4.9,8,2.7,20.3-4.5,25.8
|
|
||||||
C69.8,72.2,66.2,72.1,62.1,69L62.1,69z"/>
|
|
||||||
<path class="st24" d="M69.6,34.7c-3.5-0.9-3.7-1.1-3.8-3.8s-0.1-6.7,2-9.6c0.4-0.7,1-1.2,1.6-1.7c0.4-0.3,1.1-0.2,1.4,0.2
|
|
||||||
c0,0.1,0.1,0.1,0.1,0.2c0.3,1.1,0.5,2.2,0.6,3.3c0.2,1.2,0.2,2.5,0.5,3.7c0.3,0.6,0.8,0.9,1.4,1c0.6-0.1,1.1-0.5,1.4-1
|
|
||||||
c0.8-2.9,0.9-6,0.1-9c-1.2-3.7-4.7-5-8-3c-2.1,1.2-3.8,3-4.8,5.2c-0.8,2-1.6,4.2-2.1,6.3c-0.3,1.2-0.5,2.5-0.8,3.7
|
|
||||||
c0-2.4-0.2-4.8,0-7.2s0.5-5.4,3.3-6.9c0.5-0.4,1-0.8,1.3-1.4c1.9-3.4,5.2-3.3,8.4-3c0.9,0.3,1.7,0.8,2.3,1.5
|
|
||||||
c0.9,0.7,1.5,1.7,2.4,2.2s1.7,1.7,1.2,2.8c-0.7,1.9-0.7,4.1,0,6c0.7,2.4-0.8,4.7-3.2,5.6S70,31.6,69.6,34.7z"/>
|
|
||||||
<path class="st24" d="M62.1,69c6.2,3.7,16-0.6,17.2-10.1c0.6-4.3,0.4-8.6-0.5-12.8c-0.2-0.9-0.4-1.9-0.5-2.8l1.3,0.6
|
|
||||||
c1.8,0.5,2.8,2.3,2.5,4.1c-0.1,1.2-0.2,2.5-0.4,3.8c-0.1,0.6-0.1,1.2,0,1.8c0.8,4.4-0.9,8.1-3,11.7c-0.5,0.6-1,1.2-1.6,1.7
|
|
||||||
c-0.8,0.6-1.5,1.4-2,2.2c-1.5,3.5-4.4,4.3-7.8,3.8h-0.5c-2.5,0.4-3.9-0.6-4.4-3.1L62.1,69z"/>
|
|
||||||
<path class="st24" d="M70.7,45.1c0.5,0.7,1,1.5,1.3,2.4c0.9,3.4,1.1,7,0.8,10.5c-0.2,1.8-1,3.4-2.4,4.5c-1,0.9-2.7,1.3-3,0.7
|
|
||||||
c-0.1-0.7-0.1-1.4,0-2.1c0.1-1.5-0.9-2.3-1.6-3.4c1.3-0.1,3.1,0.1,4-0.6s0.7-2.5,1.2-3.8c0.4-1.2,0.4-2.4,0.1-3.6
|
|
||||||
C70.8,48.2,70.7,46.6,70.7,45.1z"/>
|
|
||||||
<path class="st24" d="M59.2,32.4l0.7,1.8c0.5,3.1,2.6,5.6,5.5,6.7l3.4,1.6c1.1,0.5,1.8,1.4,2,2.6c-1.2,0-2.3,0.2-3-1
|
|
||||||
s-2.2-1.9-4.1-1.3s-2.9,0.1-3.6-2.3C59.3,37.9,58.9,35.1,59.2,32.4z"/>
|
|
||||||
<path class="st24" d="M78.3,43.3c-1.8-3.8-4.9-6.8-8.7-8.6c1.5,0,2.9-0.1,4.3,0c2.3,0.2,4.1,2,4.3,4.3
|
|
||||||
C78.3,40.4,78.4,41.9,78.3,43.3z"/>
|
|
||||||
<path class="st24" d="M65.8,57.8l-1.9-0.2C64.6,56.7,65.2,56.6,65.8,57.8z"/>
|
|
||||||
<path class="st29" d="M37.6,127.8c-0.9,2-1.6,4.1-2.6,6c-3.5,7.6-7.5,9-15.1,5.1l-1.3-0.5c-3.5-3.4-4.8-7.8-4.8-12.5
|
|
||||||
s0.4-10.5,0.6-15.7c0.1-2.1,0.3-4.1,0.4-6.2l0,0c0.8-5.5,1.2-11.1,4.4-16.1c2.3-3.5,4.7-6.3,8.9-7h0.1c2.2-1.8,4.4-1.5,6.6,0.1l0,0
|
|
||||||
c4.2,2.3,5.5,5.2,3.9,8.6S36,93,34,90.4l0,0c-1-1-0.5-3.3-2.8-3.3s-3.4,1.2-4.4,3c-2.1,3.8-2.3,8.2-4.4,11.9
|
|
||||||
c-0.3,0.2-0.3,0.4-0.1,0.7c-0.7,8.9-0.7,17.7,0,26.6c-0.2,0.2-0.2,0.4,0.1,0.5c-0.1,1,0.4,1.9,1.3,2.4c2.3,1.9,3.5,1.8,5-0.7
|
|
||||||
c1.7-2.7,2.8-5.7,3.3-8.8c0.3-1.8,0.1-2.1-1.7-2.8c-0.6-0.1-1.2-0.3-1.7-0.7c-0.6-0.5-1.1-1.2-1.3-1.9c-0.2-1,0.6-1.7,1.4-2.2
|
|
||||||
l0.5-0.2c3.4-0.5,6.9-1.1,10.3-1.4c1.3-0.1,2.5,0.8,2.8,2.1c0.1,1.2-0.4,2.3-1.4,2.9c-0.4,0.3-0.8,0.5-1.3,0.6c-1,0.2-1.7,1-1.6,2
|
|
||||||
C37.9,123.4,37.7,125.6,37.6,127.8z"/>
|
|
||||||
<path class="st24" d="M22.4,102c0.1-4.3,1.4-8.5,3.6-12.2c1.2-2.1,2.8-3.8,5.5-4.1s2.5,0.4,2.6,1.9c0,0.9,0,1.9-0.1,2.8l-0.4-0.2
|
|
||||||
c-1.1-1.4-2.6-2.2-4.1-1.4s-3.1,2.2-2.9,4.4C26.8,96.9,25.6,99.9,22.4,102z"/>
|
|
||||||
<path class="st24" d="M34,90.4l0.7,0.6c1.7,0.8,2.6,0.6,3-0.9c0.9-3.2,1-6.3-2.3-8.4c-0.3-0.2-0.4-0.5-0.6-0.7s1.7-0.1,2.2,0.3
|
|
||||||
c1.4,1.2,2.8,2.5,4,3.9c0.3,0.4,0.5,0.8,0.5,1.3c0.2,2.8-3.2,6.1-6,5.8C34.4,92.2,34,91.4,34,90.4z"/>
|
|
||||||
<path class="st24" d="M22.3,129.3c-0.4-1-0.7-2.1-0.9-3.2C21,119,21,112,21.6,104.9c0.2-0.8,0.4-1.5,0.7-2.2L22.3,129.3z"/>
|
|
||||||
<path class="st24" d="M46.4,81.8L46,81.6L46.4,81.8z"/>
|
|
||||||
<path class="st30" d="M33.9,188.1c-0.4,1.6-1,3.1-1.3,4.6c-0.9,4.8-1.8,9.7-2.6,14.6l-1.1,2.1c-0.7,1.5-2.3,2.4-3.9,2.1
|
|
||||||
c-1.5-0.2-2.7-1.3-3.1-2.7c-0.3-0.7-0.5-1.5-0.6-2.3c-0.2-2.4-0.6-4.7-0.7-7.1c-0.4-6.5-0.6-13.1-1-19.6c-0.1-2,0.2-4.2-0.9-6.1
|
|
||||||
c-0.6-4.1-1.2-8.1-1.7-12.2c-0.1-1.4-0.3-2.9-0.3-4.3s1.2-1.9,2-1.6c1.2,0.3,2.4,0.9,3.4,1.6c1,0.6,1.4,1.9,1,3
|
|
||||||
c-0.5,1.2-0.6,2.5-0.2,3.7c1.5,6.5,2.9,13,4.3,19.5c0.6,0.4,0.5,1,0.4,1.6s0.1-1.2,0.5-1.7c1.9-6.7,3.9-13.4,4.8-20.4
|
|
||||||
c0.3-1.9,0.6-3.8,1.1-5.6c0.3-0.9,0.6-1.8,1-2.7c0.5-1.2,1.9-2,3.2-1.7c1.5,0.3,2.5,1.6,2.5,3.1c-0.1,1.1-0.2,2.1-0.5,3.2
|
|
||||||
l-6.3,27.5C33.8,187.2,33.8,187.6,33.9,188.1z"/>
|
|
||||||
<path class="st29" d="M48.5,155.7c1.4-0.3,2.8-0.7,3.8,0.9c0.6,0.8,1.3,1.4,2.1,1.9c3.1,2.2,4.8,5.7,4.6,9.5
|
|
||||||
c-0.1,5.3-0.5,10.6-0.8,15.8s-2.3,12.5-4.9,18.4c-0.5,1.2-1.1,2.4-1.9,3.4c-1.4,1.9-3.4,2.2-5.5,1.1c-2.7-1.6-4.6-4.2-5.2-7.2
|
|
||||||
c-0.9-3.1-1.4-6.2-1.6-9.4c-0.3-6.4,0.4-12.8,1.9-19C42.5,165.5,45,160.3,48.5,155.7L48.5,155.7z"/>
|
|
||||||
<path class="st31" d="M28.1,183.3c-0.1,0.6-0.3,1.1-0.4,1.6l-0.5-1.5L28.1,183.3z"/>
|
|
||||||
<path class="st32" d="M158.6,175.5c0.1,0.7,0.1,1.4,0.1,2.1c-1.7,0.6-1.7,0.6-1.9,2.9c-1.9-1.6-3.7-3.5-6.3-4.1
|
|
||||||
c-1-0.4-1.6-1.3-1.5-2.3c-0.4-4.9,0.6-9.8,2.7-14.3c0.8-1.5,2.2-1.6,2.9-0.1c0.7,1.2,1.1,2.6,1.2,4c0.1,3-0.2,6-0.4,9.1
|
|
||||||
c0,0.6-0.3,1.2-0.3,1.8s-0.2,1.7,0.7,2.1c0.8,0.3,1.6,0.1,2.1-0.6L158.6,175.5z"/>
|
|
||||||
<path class="st29" d="M40,20.3c3.3-3.8,7.8-3.9,12.3-3.8c1.7,0.1,3,1.5,3,3.2c0,1.8-1.5,3.3-3.3,3.4h-0.5c-1.8-0.1-3.8-0.5-5.5,0.7
|
|
||||||
c0,1.7-0.2,3.4-0.1,5.2c0,4.1,0.2,8.3,0.3,12.4c0,1.2,0.3,1.8,1.6,1.9h3.3c1,0,1.9,0.7,2,1.7c0.1,1-0.4,1.9-1.3,2.3l-3.6,1.4
|
|
||||||
c-2.3,0.8-2.5,0.8-2.3,3.3s0.6,7.3,1,11c0.1,0.8,0.8,1.3,1.6,1.2c0,0,0.1,0,0.1,0c1.9-0.4,3.8-0.6,5.7-0.8c1.3-0.2,2.6,0.6,3,1.9
|
|
||||||
c0.5,1.4,0,3-1.3,3.9c-1.4,0.7-2.8,1.4-4.3,2c-1.8,0.6-3.7,1.1-5.6,1.4c-3.1,0.6-5.5-1-5.9-4.1c-1-6.5-1.7-13-0.8-19.5
|
|
||||||
c0.4-3.5,0.4-7,0.5-10.5v-1.6c0.7-4.6,0.7-9.2-0.1-13.8l0,0C39.1,22.2,39.2,21,40,20.3L40,20.3z"/>
|
|
||||||
<path class="st24" d="M39.9,23.1c0.3,0.4,0.7,0.8,0.7,1.2c0.1,4.2,0.5,8.4-0.6,12.6C40,32.3,39.9,27.7,39.9,23.1z"/>
|
|
||||||
<path class="st24" d="M40,20.2c0,1-0.1,1.9-0.1,2.9C38.7,21.6,38.7,21.6,40,20.2z"/>
|
|
||||||
<path class="st29" d="M35.9,68.9l-8,1.7c-3.6,0.7-6.1-1-6.1-4.6c-0.2-7.4-0.1-14.7,0.1-22.1s0.5-12.4,0.8-18.6c0-1.3,0-2.6,0.2-3.9
|
|
||||||
c0-1.3,0.9-2.4,2.2-2.8c1.3-0.4,2,0.6,2.8,1.4l0.3,0.3l0.3,24.9c0,4.7-0.1,9.3,0,13.9c0,1.1,0.1,2.2,0.2,3.3h4.4
|
|
||||||
c3.8,0.1,5,2.3,3.3,5.7C36.3,68.4,36.1,68.6,35.9,68.9z"/>
|
|
||||||
<path class="st29" d="M91.5,154.6c3.2,5.6,2.4,11.4,0.8,17.1c0,0.3-0.2,0.6-0.5,0.8l-1.3,0.2c-0.3,0-0.6-0.3-0.6-0.6
|
|
||||||
c-0.1-1.1-0.1-2.2-0.2-3.3c-0.1-2.7-0.1-5.4-0.3-8.1c0-0.7-0.4-1.2-1-1.5c-0.4-0.2-1.2,0.3-1.5,0.7c-2.5,3.4-3.8,7.5-3.9,11.7
|
|
||||||
c-0.1,1.3,0.7,2.6,2,3c5.5,2.1,7.7,6.7,8.7,12.2c0.7,3.3,0.7,6.6,0.1,9.9c-0.8,4.1-3,7.8-6.3,10.4c-2.3,0.7-4.6,1.3-6.9,1.8
|
|
||||||
c-4.2,0.6-8.1-2.3-8.7-6.5c-0.2-1.4,0-2.8,0.5-4.1c0.4-0.7,0.9-1.3,1.5-1.8c1.1-0.9,2.8-0.6,3.6,0.5c0.2,0.3,0.4,0.6,0.5,1
|
|
||||||
c0.2,0.6,0.1,1.2,0.3,1.9s1.1,1.8,2.4,1.6c2.8-0.6,4.7-2,5.4-4.8c1.3-4.2,0.9-8.7-0.9-12.7c-0.6-1.3-1.6-2.3-2.9-3
|
|
||||||
c-4.5-2.3-5.7-6.2-5.1-10.9c0.6-4.1,2-8.1,4.3-11.6c0.4-0.7,0.9-1.3,1.5-1.9C85.4,154.1,88.1,152.9,91.5,154.6z"/>
|
|
||||||
<path class="st29" d="M85.9,138.4c0.1-5.3,0.3-10.5,0.5-15.8c0-1-0.6-1.3-1.6-1c-1.8,0.6-3.6,1.2-5.5,1.6c-0.9,0.2-1.7,1-1.9,1.9
|
|
||||||
l-1.5,6.5c-0.6,1.6-1.1,3.2-1.8,4.8c-0.3,0.5-0.8,0.8-1.4,0.9c-0.8,0.1-1.4-0.5-1.5-1.3c0-0.1,0-0.1,0-0.2c0.1-1.7,0.3-3.4,0.5-5.1
|
|
||||||
s0.4-3.1,0.7-4.6l0,0c1-4.9,0.4-10.2,3.7-14.5c0.2-0.2,0.3-0.4,0.1-0.6c1.5-4.9,0.7-10.3,3.9-14.7l0,0c0.9-2.5,1.9-5,2.7-7.5
|
|
||||||
c0.8-2.1,2.1-4,3.8-5.5c2.1-2,4.7-1.4,5.6,1.4c0.5,2,0.9,4,1,6.1c0.2,1.4,0.3,2.9,0.3,4.3c-0.1,13.8-0.1,27.7-0.2,41.5
|
|
||||||
c0,0.6,0,1.3-0.1,1.9c-0.1,1.5-1.2,2.7-2.7,3c-1.4,0.4-3-0.2-3.7-1.5L85.9,138.4z"/>
|
|
||||||
<path class="st33" d="M102.1,104l0.4-1.6c0.2,0.5,0.3,1,0.5,1.6H102.1z"/>
|
|
||||||
<path class="st24" d="M80.1,96.3c-0.7,5-2,10-3.9,14.7c0-2.5-0.4-5,0.5-7.5c0.2-1.1,0-2.1-0.4-3.1c-0.1-1.1,0.2-2.2,0.9-3.1
|
|
||||||
C77.9,96.1,79,96.3,80.1,96.3z"/>
|
|
||||||
<path class="st24" d="M76.1,111.6l-3.7,14.5c-0.2-4.2-0.3-8.3,0.9-12.3C73.7,112.5,74.8,111.6,76.1,111.6z"/>
|
|
||||||
<path class="st24" d="M68.5,98.2c0,1.3,0,2.5-0.1,3.7c-0.1,3.1-0.2,3.3-3.7,4l-0.3-0.2c-0.4-3.5,0.7-6.1,3.9-7.7L68.5,98.2z"/>
|
|
||||||
<path class="st25" d="M68.3,98l-3.9,7.7c-1.5,1.8-3.5,3.5-4.3,5.6s1.2,4.4,1.9,6.6c1.9,5.6,4,11.1,6.1,16.7l0.3,0.9
|
|
||||||
c0.4,1.4-0.1,2.9-1.4,3.7c-1.3,0.7-3,0.2-3.8-1c-0.9-1.2-1.5-2.5-2.3-3.7l-5.1-18.7c-0.2-0.8-1-1.3-1.8-1.2
|
|
||||||
c-1.5,0.1-2.4,0.7-2.6,1.7v2.3c0.1,3.5,0.3,7,0.4,10.5c0.1,1.4,0,2.9-0.1,4.3c-0.4,3.2-2.2,4.1-5.3,2.6l-0.8-0.6
|
|
||||||
c0.1-7.1,0-14.3,0.2-21.4c0.3-9.1,1-18.1,1.5-27.2c0-0.6,0-1.3,0.1-1.9c0.1-1,0.8-1.8,1.7-2c8.5-3.1,14.3-0.1,17.8,6.4l1.4,2.5
|
|
||||||
c-0.2,0.2-0.1,0.4,0.1,0.6C68.4,94.3,68.3,96.2,68.3,98z"/>
|
|
||||||
<path class="st24" d="M106.7,96.4c-1.2-3.6-2.5-7.1-3.8-10.6c3.4,0.3,3.9,0.6,3.9,3.4S106.8,94,106.7,96.4z"/>
|
|
||||||
<path class="st24" d="M101.1,84.7h-1.9C99.8,83.7,100.4,83.7,101.1,84.7z"/>
|
|
||||||
<path class="st24" d="M103,85.8l-1.3-1L103,85.8z"/>
|
|
||||||
<path class="st34" d="M195.1,61.8c2.4-1.4,4.9-1.8,7.3,0c0.2,0.8,0.3,1.5,0.4,2.3c0.1,3-0.8,4.3-3.6,5.3c-1.2,0.5-2.4,0.7-3.6,0.8
|
|
||||||
c-1.7,0.2-3.2-1-3.4-2.7c-0.1-0.6,0-1.2,0.3-1.8C193.3,64.3,194.1,63,195.1,61.8z"/>
|
|
||||||
<path class="st35" d="M69.8,148.2c-0.5,0.2-1.1,0.7-1.7,0.7c-0.9,0-1.7-0.8-1.6-1.8c0,0,0-0.1,0-0.1c0.1-0.8,0.8-1.3,1.6-1.2
|
|
||||||
c0,0,0.1,0,0.1,0C69.3,145.9,69.9,146.8,69.8,148.2z"/>
|
|
||||||
<path class="st36" d="M103.7,149.9c-1,0.1-1.8-0.5-2-1.5c0-0.8,0.7-1.5,1.5-1.6c1-0.2,1.9,0.4,2.2,1.3
|
|
||||||
C105.6,148.9,104.8,149.8,103.7,149.9z"/>
|
|
||||||
<path class="st24" d="M132.8,111.6l0.3-19.2c0-2.1,1.1-2.4,2.8-1.8c0.6,0.2,1.1,0.6,1.6,1c3.1,3,5.4,6.5,5.8,10.8
|
|
||||||
c0.9,7.5,0.2,15.1-1.9,22.3c-0.8,2.1-1.7,4.1-2.9,6c-0.4,0.8-1.1,1.5-2,1.9c-3.4,1.3-4,1.6-4-2.3c0.1-6.2,0-12.5,0-18.7
|
|
||||||
L132.8,111.6z"/>
|
|
||||||
<path class="st29" d="M164.3,100.3c4,2,5.8,5.8,7.6,9.5c1,6.3,1,12.6,0,18.9c-0.4,1-0.9,2-1.3,3.1c-1.3,3.3-3.5,6.1-6.4,8.1
|
|
||||||
c-3.5,2.7-7.3,2.3-10.3-1c-1.1-1.2-1.9-2.5-2.5-4c-0.7-1.5-0.6-3.2,0.3-4.6c0.9-1.5,2.8-2,4.2-1.1c0.4,0.2,0.7,0.5,1,0.9
|
|
||||||
c0.5,0.7,0.7,1.5,1.2,2.1s1.8,1.5,3,0.3c1.6-1.4,2.6-3.3,3.1-5.4c1.1-4.2,1.5-8.5,0.9-12.8c-0.1-0.8-0.3-1.6-0.6-2.3
|
|
||||||
c-0.5-2.5-2.1-4.7-4.4-5.9c-3.9-2.2-4.8-4.6-4-8.8c0.9-4.3,3-8.2,6-11.3c0.9-0.9,2-1.5,3.2-2c1.6-0.4,3.2,0.5,3.8,2
|
|
||||||
c0.5,1.6,0.4,3.3-0.5,4.7c-0.4,0.8-1.5,1.2-2.3,0.7c-0.1,0-0.1-0.1-0.2-0.1c-0.5-0.5-1.3-0.5-1.8,0c-0.2,0.2-0.3,0.4-0.4,0.6
|
|
||||||
c-0.8,1.7-1.5,3.5-2.1,5.3c-0.2,0.8,0,1.6,0.4,2.3C162.6,100,163.6,100,164.3,100.3z"/>
|
|
||||||
<path class="st37" d="M47.7,198.5c-4.1-8.5-3.1-25.6,2.1-35.6c1.6,0.6,2.8,1.9,3.2,3.6c0.1,0.3,0.2,0.7,0.2,1
|
|
||||||
c-0.2,10.2-0.2,20.4-4.7,29.9C48.4,197.7,48.1,197.9,47.7,198.5z"/>
|
|
||||||
<path class="st38" d="M86.7,97.2c0,5.7,0.1,11.4,0.1,17.1c0,2.2-0.3,2.4-2.5,2.8l-4,0.7c-0.2-0.3-0.3-0.7-0.4-1
|
|
||||||
c2-6.5,3.9-13,5.9-19.6C86.1,96.8,86.4,96.8,86.7,97.2z"/>
|
|
||||||
<path class="st39" d="M86.7,97.2h-0.9c0.1-0.5,0.3-1,0.5-1.5L86.7,97.2z"/>
|
|
||||||
<path class="st40" d="M51.3,98.8v-9.1c0-2.1,0.8-2.9,2.9-2.8c4.1,0.1,7.6,3.1,8.2,7.2c0.2,1.3-0.1,2.6-0.7,3.7
|
|
||||||
c-1.9,2.9-3.9,5.8-6,8.6c-0.9,1.2-2.4,2-3.6,3c-1.6-1.4-0.5-3.3-0.7-4.9c-0.1-1.9-0.1-3.8,0-5.7L51.3,98.8z"/>
|
|
||||||
<path class="st28" d="M208.7,114.2c-1.4,0-2.8,0.7-3.7,1.8c-1.2,2.1-3,2.1-4.9,2c-0.4-0.3-0.6-0.7-0.8-1.1
|
|
||||||
c-0.3-1.4-0.4-2.8-0.1-4.2c0.1-0.4,0.3-0.9,0.5-1.3c0.9-2.1,2.5-4,3.4-6.2c0.7-1.8,2.3-3.1,4.2-3.5c3.7-1,6.4-3.1,6.7-7.1
|
|
||||||
c0.2-2.5-4-5.6-7.8-6.2c-0.6-0.1-1.2-0.3-1.8-0.6l-0.5-0.5c0-0.8,0.5-1.6,1.3-1.8c2.3-0.8,4.7-0.2,7,0c0.7,0,5.9,5.1,5.9,5.8
|
|
||||||
c0.1,2.5,0.1,5-0.1,7.5c0,0.7-0.9,1.3-1.4,1.8s-2.2,1.5-2.8,2.6c-0.8,1.6-2.4,2.5-4.2,2.4c-1.3,0-1.9,1-2.4,2
|
|
||||||
C206,110.2,207.2,112.2,208.7,114.2z"/>
|
|
||||||
<path class="st28" d="M192.4,98.8c0-1.8,1-3.4,2.5-4.3c2.4-1.4,3.9-3.6,5.8-5.5s1.8-1.7,3.2-1.7c2.8,2.8,0.1,4.2-1.5,5.7
|
|
||||||
c-5.7,4.6-9,11.6-8.9,18.9c-0.1,0.7-0.2,1.4-0.5,2c-0.3,0.7-0.9,1.1-1.6,1.2c-1.4-0.7-2.4-1.8-1.5-3.4c0.8-1.7,1.1-3.7,0.6-5.5
|
|
||||||
c-0.1-1.6-0.1-3.2,0-4.8C190.5,100.2,191.3,99.2,192.4,98.8z"/>
|
|
||||||
<path class="st24" d="M189.2,151.4c-0.5-5.2,2.8-8.8,5.2-12.7c3.5-1.9,6.4-5.1,11-4.6c1.9,0.1,3.8,0.1,5.7,0c1.3-0.1,2.6,0.2,3.6,1
|
|
||||||
c1,0.9,1.6,2.3,1.6,3.7l-0.2,0.2c-3.3-0.5-6.1-2.5-9.9-2.1c-6.2,0.6-9.8,3.8-12.7,8.7c-1.2,2-1.4,4.6-3.6,6L189.2,151.4z"/>
|
|
||||||
<path class="st28" d="M217.3,109.4c-0.8,0.9-1.8,1.7-1.9,3.1s-1.6,1.6-2.9,1.6c0.3-1,0.3-2.3,0.9-3c1.8-1.9,2.9-4.2,3.2-6.8
|
|
||||||
c0.2-0.8,0.6-1.5,1.1-2.1"/>
|
|
||||||
<path class="st24" d="M196.1,178.8c1.8,0.3,3.4,1.1,4.6,2.4c0.9,1.1,2.3,1.6,3.7,1.3l0.3,0.3c0.8,2.3-0.5,3.8-2.2,4.6
|
|
||||||
s-2.9-0.9-3.9-2s-3.4-3.4-3.1-6.2L196.1,178.8z"/>
|
|
||||||
<path class="st24" d="M189.2,164.9c-2.8-1.3-3-1.4-2.4-3.6c0.5-1.4,0.5-2.8,0.2-4.2c-0.6-2.2,0.3-4.5,2.2-5.7h0.2
|
|
||||||
c1.9,4.2,0,8.6,0.4,12.9L189.2,164.9z"/>
|
|
||||||
<path class="st24" d="M192.1,168.7c-2.2-0.3-2.4-2.1-2.9-3.8l0.3-0.2c2.3,0.1,2.9,1.7,2.9,3.7L192.1,168.7z"/>
|
|
||||||
<path class="st24" d="M191.4,115.1l1-0.9c1.3,1.3,1.4,3.3,0.1,4.7c0,0,0,0,0,0l-0.2,0.2c-0.4,0.3-0.6,0.2-0.9-0.1L191.4,115.1z"/>
|
|
||||||
<path class="st24" d="M204.6,175.9l1.1-0.5c0.3,0.3,0.5,0.6,0.6,1c0.1,0.1-0.3,0.4-0.3,0.4L204.6,175.9z"/>
|
|
||||||
<path class="st28" d="M191.4,119h0.9v1.8C191.8,120.4,190.2,120.3,191.4,119z"/>
|
|
||||||
<path class="st24" d="M195,177.8l0.9,0.9l-0.3,0.4c-0.4-0.2-0.8-0.5-0.9-1L195,177.8z"/>
|
|
||||||
<path class="st41" d="M194.6,178l0.7,0.7c1.9,2.6,3.7,5.2,5.6,7.7c0.3,0.5,0.9,0.6,1.4,0.3c0.1-0.1,0.2-0.1,0.2-0.2
|
|
||||||
c0.8-1.2,1.5-2.5,2.2-3.7l3.6-4.4c0.5-0.6,1-1.2,1.6-1.7c0.8-0.7,2.1-0.6,2.8,0.2c0.1,0.1,0.1,0.2,0.2,0.3c0.5,0.9,0.8,2,0.9,3.1
|
|
||||||
c0.2,7.8,0.2,15.7,0.2,23.5c0.1,0.8-0.1,1.6-0.5,2.3c-0.4,0.9-1.3,1.5-2.3,1.3c-0.9-0.2-1.7-0.7-2.2-1.4c-0.4-1-0.7-2.2-0.6-3.3
|
|
||||||
c-0.1-4.3,0-8.6,0-12.9v-2.7c-1.8,0.8-2.2,2.3-3,3.3c-2,2.6-3.2,2.8-6,1c-0.5-0.3-1-0.7-1.5-1.2c-2.2-0.3-1.5,1-1.2,2.1
|
|
||||||
c0,2.9,0.1,5.7,0.2,8.6c0.1,0.8,0.1,1.5,0,2.3c-0.2,1.3-1.2,2.4-2.5,2.6c-1.3,0.2-2.6-0.4-3.2-1.6c-0.5-1.3-0.9-2.8-0.9-4.2
|
|
||||||
c-0.1-6.6-0.1-13.3-0.1-20c0-0.3,0-0.6,0.1-0.9c0.2-1.6,1.5-2.3,3.1-1.7L194.6,178z"/>
|
|
||||||
<path class="st42" d="M192.4,168.4c-1-1.2-2-2.4-2.9-3.7c-1.2-3.5-1.3-7.3-0.3-10.9c0.1-0.8,0.2-1.5,0.2-2.3l2-4.8
|
|
||||||
c1.3-2.9,3.2-5.5,5.5-7.7c2-1.8,4.3-3.1,7.2-2.9c1.3,0.1,2.6-0.1,3.8-0.4c2.6-0.8,5.5,0.1,7.2,2.3l1,1c2.1,6.5,1.6,12.9-0.1,19.3
|
|
||||||
c-0.7,2.8-2.1,5.4-4,7.5c-4.4,5.2-11.9,6.6-17.9,3.4L192.4,168.4z"/>
|
|
||||||
<path class="st42" d="M192.5,118.9c-0.1-1.6-0.1-3.1-0.1-4.7c0-0.5,0-1,0.1-1.5c0.7-8.6,5.1-16.5,11.9-21.7
|
|
||||||
c2.8-2.2,5.3-2.5,7.9,0.3s2.2,5.5-0.4,8s-3.8,2.1-4.8-1.1c0-0.6,0.5-1.1,0.4-1.7c-0.1,0.4-0.3,0.9-0.5,1.3c-2.8,4.5-5.2,9.4-7,14.4
|
|
||||||
l0,0c-0.7,1.7-0.7,3.7,0,5.4l-0.2,0.3l0.3,0.2c1.2,2.3,2.7,2.9,4.3,1.8c0.8-0.7,1.6-1.5,2.3-2.3c0.6-0.7,1.3-1.4,2.1-2
|
|
||||||
c1.2-0.9,2.8-0.8,4,0.1c1,0.8,1.4,2.1,1.1,3.4c-1.2,5.1-7,9.3-12.1,8.8c-3.6-0.3-6.7-2.5-8.1-5.8
|
|
||||||
C193.2,121,192.9,119.9,192.5,118.9z"/>
|
|
||||||
<path class="st24" d="M207.9,96.9c-0.1,0.3-0.1,0.6-0.2,0.9c-0.1,0.8,0.3,1.6,1,2c0.9,0.4,1.9,0.2,2.6-0.5c1.4-1.6,2-3.7,1.6-5.8
|
|
||||||
c-0.4-2.2-2.6-3.7-4.8-3.2c-0.3,0.1-0.5,0.1-0.8,0.2c-1.5,0.6-2.8,1.4-4,2.5c-4.3,3.7-7.4,8.5-9,13.9l-1.8,5.8
|
|
||||||
c0.1-2.7,0.2-5.5,0.4-8.3c0.1-0.6,0.4-1.2,0.9-1.6c2.2-1.6,2.4-4,2.9-6.2c0.2-0.6,0.5-1.4,0.8-1.5c3.1-0.3,3.8-3.5,6.2-4.8
|
|
||||||
s0.8-1.9,0.2-3h2.9c2.1-0.1,4.1,0,5.1,2.4c0.3,0.6,0.8,1,1.4,1.3c1.3,0.6,2.2,1.9,2.1,3.4c0.1,1.8,0,3.4-1.8,4.5
|
|
||||||
c-0.5,0.4-1,0.8-1.3,1.4c-0.9,1.5-2.5,2.4-4.3,2.4c-1.9-0.2-3.5,1.1-3.9,2.9c-0.6,2.7-2.5,4.6-4.1,6.6c0.4-5.7,2.8-11.1,6.8-15.2
|
|
||||||
C207.1,96.5,207.5,96.5,207.9,96.9z"/>
|
|
||||||
<path class="st24" d="M200,117.5c-0.9-1.7-0.9-3.7,0-5.4V117.5z"/>
|
|
||||||
<path class="st24" d="M194.2,99.8c-0.6,0.3-1,0.5-1.1,0.4c-0.3-0.3-0.5-0.6-0.6-1l0.3-0.3L194.2,99.8z"/>
|
|
||||||
<path class="st28" d="M224.2,192.5c1.2,0.4,2.1,1.5,2.2,2.8c0.2,1.8-0.5,3.5-1.8,4.7c-0.7,0.5-1.6,0.4-2.1-0.3l0,0
|
|
||||||
c-1.3-1.7-0.9-5.4,0.8-7C223.5,192.5,223.9,192.6,224.2,192.5z"/>
|
|
||||||
<path class="st43" d="M210.1,148.8c-0.5,2.6-0.8,5.1-1.5,7.5c-0.5,1.5-1.4,2.9-2.5,4.1c-1,1-2.2,1.8-3.5,2.2
|
|
||||||
c-3.6,1.1-6.5-1.1-6.4-4.8c0.2-5.2,1.6-10.1,5.1-14.1c1.5-1.7,5.1-2.5,7-1.5c0.5,0.3,0.9,0.8,1.1,1.4
|
|
||||||
C209.7,145.3,210,147.1,210.1,148.8z"/>
|
|
||||||
<path class="st44" d="M207.9,96.9h-1.1c0.2-0.4,0.3-0.9,0.7-1.1s0.7,0,1,0.1L207.9,96.9z"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 59 KiB |
7
static/javascript/bootstrap.bundle.min.js
vendored
|
@ -1,78 +0,0 @@
|
||||||
window.addEventListener(
|
|
||||||
"pagehide",
|
|
||||||
(event) => {
|
|
||||||
if (document.getElementById('menu-checkbox')) {
|
|
||||||
if (document.getElementById('menu-checkbox').checked) {
|
|
||||||
localStorage.setItem('menuopen', true);
|
|
||||||
} else {
|
|
||||||
localStorage.removeItem('menuopen');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
false,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (document.getElementById('menu-checkbox')) {
|
|
||||||
if (localStorage.getItem('menuopen')) {
|
|
||||||
document.getElementById('menu-checkbox').checked=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let toggle = document.querySelector('#jour-nuit');
|
|
||||||
|
|
||||||
function lesgvGoDark(toggle) {
|
|
||||||
localStorage.removeItem('lightmode');
|
|
||||||
localStorage.setItem('darkmode', true);
|
|
||||||
toggle.innerText = 'Nuit';
|
|
||||||
document.body.classList.add('darkmode');
|
|
||||||
}
|
|
||||||
|
|
||||||
function lesgvGoLight(toggle) {
|
|
||||||
localStorage.removeItem('darkmode');
|
|
||||||
localStorage.setItem('lightmode', true);
|
|
||||||
toggle.innerText = 'Jour';
|
|
||||||
document.body.classList.remove('darkmode');
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleDarkmode() {
|
|
||||||
let toggle = document.querySelector('#jour-nuit');
|
|
||||||
if (document.body.classList.contains('darkmode')) {
|
|
||||||
lesgvGoLight(toggle);
|
|
||||||
} else {
|
|
||||||
lesgvGoDark(toggle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
toggle.addEventListener('click', function(e) {
|
|
||||||
if (document.body.classList.contains('darkmode')) {
|
|
||||||
lesgvGoLight(toggle);
|
|
||||||
} else {
|
|
||||||
lesgvGoDark(toggle);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Turn the theme off if the 'darkmode' key exists in localStorage
|
|
||||||
if (localStorage.getItem('darkmode')) {
|
|
||||||
lesgvGoDark(toggle);
|
|
||||||
} else if (localStorage.getItem('lightmode')) {
|
|
||||||
lesgvGoLight(toggle);
|
|
||||||
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
||||||
lesgvGoDark(toggle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
window.addEventListener(
|
|
||||||
"pagehide",
|
|
||||||
(event) => {
|
|
||||||
if (toggle) {
|
|
||||||
if (document.body.classList.contains('darkmode')) {
|
|
||||||
lesgvGoDark(toggle);
|
|
||||||
} else {
|
|
||||||
lesgvGoLight(toggle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
false,
|
|
||||||
);
|
|
|
@ -1,27 +0,0 @@
|
||||||
/*
|
|
||||||
// let toggle = document.querySelector('.toggle-darkmode');
|
|
||||||
let toggle = document.querySelector('#jour-nuit');
|
|
||||||
|
|
||||||
function lesgvGoDark(toggle) {
|
|
||||||
localStorage.removeItem('lightmode');
|
|
||||||
localStorage.setItem('darkmode', true);
|
|
||||||
toggle.innerText = 'Nuit';
|
|
||||||
document.body.classList.add('darkmode');
|
|
||||||
}
|
|
||||||
|
|
||||||
function lesgvGoLight(toggle) {
|
|
||||||
localStorage.removeItem('darkmode');
|
|
||||||
localStorage.setItem('lightmode', true);
|
|
||||||
toggle.innerText = 'Jour';
|
|
||||||
document.body.classList.remove('darkmode');
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleDarkmode() {
|
|
||||||
let toggle = document.querySelector('#jour-nuit');
|
|
||||||
if (document.body.classList.contains('darkmode')) {
|
|
||||||
lesgvGoLight(toggle);
|
|
||||||
} else {
|
|
||||||
lesgvGoDark(toggle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
2
static/javascript/jquery.slim.min.js
vendored
|
@ -1,16 +0,0 @@
|
||||||
function addResDigitaOrg (id) {
|
|
||||||
if (document.getElementById(id).value.split("@")[1] && !["lesgrandsvoisins.com","resdigita.com","resdigita.org","lesgv.com","lesgv.org"].includes(document.getElementById(id).value.split("@")[1])) {
|
|
||||||
document.getElementById(id).value = document.getElementById(id).value.split("@")[0] + "@lesgrandsvoisins.com";
|
|
||||||
}
|
|
||||||
return document.getElementById(id).value;
|
|
||||||
}
|
|
||||||
function addResDigitaOrgIdValue () {
|
|
||||||
document.getElementById("mail").value = addResDigitaOrg("idvalue");
|
|
||||||
}
|
|
||||||
function addResDigitaOrgMail () {
|
|
||||||
document.getElementById("idvalue").value = addResDigitaOrg("mail");
|
|
||||||
}
|
|
||||||
let idvalueInput = document.querySelector("#idvalue");
|
|
||||||
if (idvalueInput != null) {
|
|
||||||
idvalueInput.addEventListener("change",addResDigitaOrgIdValue);
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
{{define "title"}}Home{{end}}
|
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{define "body"}}
|
|
||||||
<div class="alert alert-info">
|
|
||||||
Bienvenue, <strong>{{ .Login.Login.WelcomeName }}</strong> !
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mt-3">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header">
|
|
||||||
Mon compte
|
|
||||||
</div>
|
|
||||||
<div class="list-group list-group-flush">
|
|
||||||
<a class="list-group-item list-group-item-action" href="/user">Modifier mon profil</a>
|
|
||||||
<a class="list-group-item list-group-item-action" href="/passwd">Modifier mon mot de passe</a>
|
|
||||||
<!--
|
|
||||||
<a class="list-group-item list-group-item-action" href="/directory">Annuaire</a>
|
|
||||||
-->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--
|
|
||||||
<div class="mt-3">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header">
|
|
||||||
Garage
|
|
||||||
</div>
|
|
||||||
<div class="list-group list-group-flush">
|
|
||||||
<a class="list-group-item list-group-item-action" href="/garage/key">Mes identifiants</a>
|
|
||||||
<a class="list-group-item list-group-item-action" href="/garage/website">Mes sites webs</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
-->
|
|
||||||
{{if .Common.CanInvite}}
|
|
||||||
<div class="card mt-3">
|
|
||||||
<div class="card-header">
|
|
||||||
Outils
|
|
||||||
</div>
|
|
||||||
<div class="list-group list-group-flush">
|
|
||||||
<!-- <a class="list-group-item list-group-item-action" href="/user/send_code">Envoyer un code d'invitation</a> -->
|
|
||||||
<a class="list-group-item list-group-item-action" href="/user/new">Créer un nouveau compte directement</a>
|
|
||||||
<a class="list-group-item list-group-item-action" href="/SOGo">Accéder à mes courriels, mon agenda et à mes contacts</a>
|
|
||||||
<a class="list-group-item list-group-item-action" href="https://www.lesgrandsvoisins.com/resdigita">Accéder au numérique des Grands Voisins .com</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{if .Common.CanAdmin}}
|
|
||||||
<div class="card mt-3">
|
|
||||||
<div class="card-header">
|
|
||||||
Administration
|
|
||||||
</div>
|
|
||||||
<div class="list-group list-group-flush">
|
|
||||||
<a class="list-group-item list-group-item-action" href="/admin/activate">Activer des Utilisateur·ices</a>
|
|
||||||
<a class="list-group-item list-group-item-action" href="/admin/users">Utilisateur·ices</a>
|
|
||||||
<a class="list-group-item list-group-item-action" href="/admin/groups">Groupes</a>
|
|
||||||
<!-- <a class="list-group-item list-group-item-action" href="/admin/mailing">Mailing lists</a> -->
|
|
||||||
<a class="list-group-item list-group-item-action" href="/admin/ldap/{{.BaseDN}}">Explorateur LDAP</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{end}}
|
|
|
@ -1,39 +0,0 @@
|
||||||
{{define "title"}}Activer des utilisateurs |{{end}}
|
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{define "body"}}
|
|
||||||
<table class="table mt-4">
|
|
||||||
<thead>
|
|
||||||
<th scope="col"></th>
|
|
||||||
<th scope="col">Login</th>
|
|
||||||
<th scope="col">Email</th>
|
|
||||||
<th scope="col">Nom d'ffichage</th>
|
|
||||||
<th scope="col">Prénom</th>
|
|
||||||
<th scope="col">Nom de famille</th>
|
|
||||||
<th scope="col">description</th>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{{with $root := .}}
|
|
||||||
{{range $user := $root.Users}}
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="/admin/activate/{{ $user.GetAttributeValue "cn" }}">
|
|
||||||
Activer
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="/admin/ldap/{{$user.DN}}">{{$user.GetAttributeValue "cn"}}</a>
|
|
||||||
</td>
|
|
||||||
<td>{{$user.GetAttributeValue "mail"}}</td>
|
|
||||||
<td>{{$user.GetAttributeValue "displayName"}}</td>
|
|
||||||
<td>{{$user.GetAttributeValue "givenName"}}</td>
|
|
||||||
<td>{{$user.GetAttributeValue "sn"}}</td>
|
|
||||||
<td>{{$user.GetAttributeValue "description"}}</td>
|
|
||||||
</tr>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{{end}}
|
|
|
@ -1,101 +0,0 @@
|
||||||
{{define "title"}}Nouvel objet |{{end}}
|
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
|
|
||||||
{{define "body"}}
|
|
||||||
<div class="d-flex">
|
|
||||||
<h2>Créer un objet</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mt-4">
|
|
||||||
<nav aria-label="breadcrumb">
|
|
||||||
<ol class="breadcrumb">
|
|
||||||
{{range .Path}}
|
|
||||||
<li class="breadcrumb-item"><a href="/admin/ldap/{{.DN}}">{{.Identifier}}</a></li>
|
|
||||||
{{end}}
|
|
||||||
<li class="breadcrumb-item active" aria-current="page">Nouvel objet</li>
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{if .Common.Error}}
|
|
||||||
<div class="alert alert-danger mt-4">Impossible de créer l'objet.
|
|
||||||
<div style="font-size: 0.8em">{{ .Common.Error }}</div>
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
<form method="POST" class="mt-4">
|
|
||||||
<!--
|
|
||||||
<div class="form-group">
|
|
||||||
<label>Parent:</label>
|
|
||||||
<input type="text" disabled="true" class="form-control" value="{{ .SuperDN }}" />
|
|
||||||
</div>
|
|
||||||
-->
|
|
||||||
{{if eq .Template "ml"}}
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="idvalue">Adresse complète de la mailing list :</label>
|
|
||||||
<input type="text" id="idvalue" name="idvalue" class="form-control" value="{{ .IdValue }}" placeholder="exemple@resdigita.org" pattern="^[-A-z0-9\.]+@resdigita.org" />
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="idvalue">Identifiant :</label>
|
|
||||||
<input type="text" id="idvalue" name="idvalue" class="form-control" value="{{ .IdValue }}" placeholder="exemple@resdigita.org" pattern="^[-A-z0-9\.]+@resdigita.org" />
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="idtype">Type d'identifiant :</label>
|
|
||||||
<input type="text" {{if .Template}}disabled="disabled"{{end}} id="idtype" name="idtype" class="form-control" value="{{ .IdType }}" />
|
|
||||||
</div>
|
|
||||||
{{ if eq .Template "user" }}
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="displayname">Nom affiché :</label>
|
|
||||||
<input type="text" id="displayname" name="displayname" class="form-control" value="{{ .DisplayName }}" />
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="mail">Email:</label>
|
|
||||||
<input type="text" id="mail" name="mail" class="form-control" value="{{ .Mail }}" />
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="mail" value="" />
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="othermailbox">Email de secours:</label>
|
|
||||||
<input type="text" id="othermailbox" name="othermailbox" class="form-control" value="{{ .OtherMailbox }}" />
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="mail" value="" />
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="givenname">Prénom :</label>
|
|
||||||
<input type="text" id="givenname" name="givenname" class="form-control" value="{{ .GivenName }}" />
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="givenname" value="" />
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="sn">Nom de Famille :</label>
|
|
||||||
<input type="text" id="sn" name="sn" class="form-control" value=" {{ .SN }}" />
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="sn" value="" />
|
|
||||||
{{ else }}
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="description">Description :</label>
|
|
||||||
<input type="text" id="description" name="description" class="form-control" value="{{ .Description }}" />
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="description" value="" />
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="member">Member :</label>
|
|
||||||
<input type="text" id="member" name="member" class="form-control" value="{{ .Member }}" />
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="member" value="" />
|
|
||||||
{{ end }}
|
|
||||||
<!--
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="soc">StructuralObjectClass :</label>
|
|
||||||
<input type="text" {{if .Template}}disabled="disabled"{{end}} id="soc" name="soc" class="form-control" value="{{ .StructuralObjectClass }}" />
|
|
||||||
</div>
|
|
||||||
-->
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="oc">ObjectClass :</label>
|
|
||||||
<textarea rows="5" {{if .Template}}disabled="disabled"{{end}} id="oc" name="oc" class="form-control">{{ .ObjectClass }}</textarea>
|
|
||||||
</div>
|
|
||||||
<button type="submit" class="btn btn-primary">Créer l'objet</button>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
{{end}}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{{define "title"}}Mailing lists |{{end}}
|
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{define "body"}}
|
|
||||||
|
|
||||||
<div class="d-flex">
|
|
||||||
<h4>Mailing lists</h4>
|
|
||||||
<a class="ml-auto btn btn-success" href="/admin/create/ml/{{.MailingBaseDN}}">Nouvelle mailing list</a>
|
|
||||||
<a class="ml-4 btn btn-info" href="/">Menu principal</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<table class="table mt-4">
|
|
||||||
<thead>
|
|
||||||
<th scope="col">Adresse</th>
|
|
||||||
<th scope="col">Description</th>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{{with $root := .}}
|
|
||||||
{{range $ml := $root.MailingLists}}
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="/admin/mailing/{{$ml.GetAttributeValue $root.MailingNameAttr}}">
|
|
||||||
{{$ml.GetAttributeValue $root.MailingNameAttr}}
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>{{$ml.GetAttributeValue "description"}}</td>
|
|
||||||
</tr>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
{{end}}
|
|
|
@ -1,117 +0,0 @@
|
||||||
{{define "title"}}ML {{.MailingList.GetAttributeValue .MailingNameAttr}} |{{end}}
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
{{define "body"}}
|
|
||||||
|
|
||||||
<div class="d-flex">
|
|
||||||
<h2>ML {{.MailingList.GetAttributeValue .MailingNameAttr}}
|
|
||||||
<a class="ml-auto btn btn-sm btn-dark" href="/admin/ldap/{{.MailingList.DN}}">Vue avancée</a>
|
|
||||||
</h2>
|
|
||||||
<a class="ml-auto btn btn-dark" href="/admin/mailing">Liste des ML</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{if .Common.Success}}
|
|
||||||
<div class="alert alert-success mt-2">Modification enregistrée.</div>
|
|
||||||
{{end}}
|
|
||||||
{{if .Common.Error}}
|
|
||||||
<div class="alert alert-danger mt-2">
|
|
||||||
Impossible d'effectuer la modification.
|
|
||||||
<div style="font-size: 0.8em">{{.Error}}</div>
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{with $desc := .MailingList.GetAttributeValue "description"}}{{if $desc}}
|
|
||||||
<p class="mt-4">{{$desc}}</p>
|
|
||||||
{{end}}{{end}}
|
|
||||||
|
|
||||||
<table class="table mt-4">
|
|
||||||
<thead>
|
|
||||||
<th scope="col">Adresse</th>
|
|
||||||
<th scope="col">Nom</th>
|
|
||||||
<th scope="col" style="width: 6em"></th>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{{with $root := .}}
|
|
||||||
{{range $member := $root.Members}}
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="/admin/ldap/{{$member.DN}}">
|
|
||||||
{{$member.GetAttributeValue "mail"}}
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>{{$member.GetAttributeValue "displayname"}}</td>
|
|
||||||
<td>
|
|
||||||
<form method="POST" onsubmit="return confirm('Supprimer de la ML ?');">
|
|
||||||
<input type="hidden" name="action" value="delete-member" />
|
|
||||||
<input type="hidden" name="member" value="{{.DN}}" />
|
|
||||||
<input type="submit" value="Suppr" class="form-control btn btn-danger btn-sm" />
|
|
||||||
</form>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
{{if not .Members}}
|
|
||||||
<tr><td>(aucun abonné)</td></tr>
|
|
||||||
{{end}}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<hr class="mt-4" />
|
|
||||||
<h5 class="mt-4">Ajouter un destinataire</h5>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<form method="POST">
|
|
||||||
<input type="hidden" name="action" value="add-member" />
|
|
||||||
<div class="row mt-4">
|
|
||||||
<div class="col-md-3"><strong>Utilisateur existant :</strong> </div>
|
|
||||||
<div class="col-md-5">
|
|
||||||
<input class="form-control" type="text" list="users" name="member" placeholder="Utilisateur..." />
|
|
||||||
<datalist id="users">
|
|
||||||
{{range .PossibleNewMembers}}
|
|
||||||
{{if .GetAttributeValue "mail"}}
|
|
||||||
<option value="{{.DN}}">{{if .GetAttributeValue "displayname"}}{{.GetAttributeValue "displayname"}} ({{.GetAttributeValue "mail" }}){{else}}{{.GetAttributeValue "mail"}}{{end}}</option>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
</datalist>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-2">
|
|
||||||
<input type="submit" value="Ajouter" class="form-control btn btn-success btn-sm" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
{{if .AllowGuest}}
|
|
||||||
<div class="row mt-4">
|
|
||||||
<div class="col-md-10">OU</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form method="POST">
|
|
||||||
<input type="hidden" name="action" value="add-external" />
|
|
||||||
<div class="row mt-4">
|
|
||||||
<div class="col-md-3"><strong>E-mail :</strong></div>
|
|
||||||
<div class="col-md-5">
|
|
||||||
<input class="form-control" type="text" name="mail" placeholder="machin@truc.net..." />
|
|
||||||
</div>
|
|
||||||
<div class="col-md-2">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row mt-4">
|
|
||||||
<div class="col-md-3"><strong>Nom (optionnel) :</strong></div>
|
|
||||||
<div class="col-md-5">
|
|
||||||
<input class="form-control" type="text" name="displayname" placeholder="Machin Truc..." />
|
|
||||||
</div>
|
|
||||||
<div class="col-md-2">
|
|
||||||
<input type="submit" value="Ajouter" class="form-control btn btn-success btn-sm" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<small class="form-text text-muted col-md-10">
|
|
||||||
Si un utilisateur existe déjà avec l'email spécifiée, celui-ci sera ajouté à la liste.
|
|
||||||
Sinon, un utilisateur invité sera créé.
|
|
||||||
</small>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{end}}
|
|
65
templates/admin_create.html
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
{{define "title"}}Nouvel objet |{{end}}
|
||||||
|
|
||||||
|
{{define "body"}}
|
||||||
|
<div class="d-flex">
|
||||||
|
<h4>Créer un objet</h4>
|
||||||
|
<a class="ml-auto btn btn-info" href="/">Menu principal</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<nav aria-label="breadcrumb">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
{{range .Path}}
|
||||||
|
<li class="breadcrumb-item"><a href="/admin/ldap/{{.DN}}">{{.Identifier}}</a></li>
|
||||||
|
{{end}}
|
||||||
|
<li class="breadcrumb-item active" aria-current="page">Nouvel objet</li>
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{if .Error}}
|
||||||
|
<div class="alert alert-danger mt-4">Impossible de créer l'objet.
|
||||||
|
<div style="font-size: 0.8em">{{ .Error }}</div>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<form method="POST" class="mt-4">
|
||||||
|
<!--
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Parent:</label>
|
||||||
|
<input type="text" disabled="true" class="form-control" value="{{ .SuperDN }}" />
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="idvalue">Identifiant:</label>
|
||||||
|
<input type="text" id="idvalue" name="idvalue" class="form-control" value="{{ .IdValue }}" />
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="idtype">Type d'identifiant:</label>
|
||||||
|
<input type="text" {{if .Template}}disabled="disabled"{{end}} id="idtype" name="idtype" class="form-control" value="{{ .IdType }}" />
|
||||||
|
</div>
|
||||||
|
{{ if eq .Template "user" }}
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="displayname">Nom:</label>
|
||||||
|
<input type="text" id="displayname" name="displayname" class="form-control" value="{{ .DisplayName }}" />
|
||||||
|
</div>
|
||||||
|
<input type="hidden" name="description" value="" />
|
||||||
|
{{ else }}
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="description">Description:</label>
|
||||||
|
<input type="text" id="description" name="description" class="form-control" value="{{ .Description }}" />
|
||||||
|
</div>
|
||||||
|
<input type="hidden" name="displayname" value="" />
|
||||||
|
{{ end }}
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="soc">StructuralObjectClass:</label>
|
||||||
|
<input type="text" {{if .Template}}disabled="disabled"{{end}} id="soc" name="soc" class="form-control" value="{{ .StructuralObjectClass }}" />
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="oc">ObjectClass:</label>
|
||||||
|
<textarea rows="5" {{if .Template}}disabled="disabled"{{end}} id="oc" name="oc" class="form-control">{{ .ObjectClass }}</textarea>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary">Créer l'objet</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{{end}}
|
|
@ -1,19 +1,11 @@
|
||||||
{{define "title"}}Liste des groupes |{{end}}
|
{{define "title"}}Liste des groupes |{{end}}
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
|
|
||||||
{{define "body"}}
|
{{define "body"}}
|
||||||
|
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<h2>Liste des groupes</h2>
|
<h4>Liste des groupes</h4>
|
||||||
<a class="ml-auto btn btn-success" href="/admin/create/group/{{.GroupBaseDN}}">Nouveau groupe</a>
|
<a class="ml-auto btn btn-success" href="/admin/create/group/{{.GroupBaseDN}}">Nouveau groupe</a>
|
||||||
</div>
|
<a class="ml-4 btn btn-info" href="/">Menu principal</a>
|
||||||
|
|
||||||
<div class="alert alert-warning mt-4">
|
|
||||||
Les groupes servent uniquement à contrôler l'accès à différentes fonctionalités de Deuxfleurs.
|
|
||||||
Ce ne sont pas des <a href="/admin/mailing">mailing lists</a>.
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="table mt-4">
|
<table class="table mt-4">
|
|
@ -1,13 +1,10 @@
|
||||||
{{define "title"}}Explorateur LDAP |{{end}}
|
{{define "title"}}Explorateur LDAP |{{end}}
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
|
|
||||||
{{define "body"}}
|
{{define "body"}}
|
||||||
|
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<h2>Explorateur LDAP</h2>
|
<h4>Explorateur LDAP</h4>
|
||||||
|
<a class="ml-auto btn btn-info" href="/">Menu principal</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
|
@ -26,17 +23,7 @@
|
||||||
|
|
||||||
<table class="table mt-4">
|
<table class="table mt-4">
|
||||||
<tbody>
|
<tbody>
|
||||||
{{range .ChildrenOU}}
|
{{range .Children}}
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="/admin/ldap/{{.DN}}">
|
|
||||||
🗀 {{.Identifier}}
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>{{.Name}}</td>
|
|
||||||
</tr>
|
|
||||||
{{end}}
|
|
||||||
{{range .ChildrenOther}}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<a href="/admin/ldap/{{.DN}}">
|
<a href="/admin/ldap/{{.DN}}">
|
||||||
|
@ -59,10 +46,10 @@
|
||||||
<hr class="mt-4" />
|
<hr class="mt-4" />
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{if .Common.Success}}
|
{{if .Success}}
|
||||||
<div class="alert alert-success mt-2">Modification enregistrée.</div>
|
<div class="alert alert-success mt-2">Modification enregistrée.</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
{{if .Common.Error}}
|
{{if .Error}}
|
||||||
<div class="alert alert-danger mt-2">
|
<div class="alert alert-danger mt-2">
|
||||||
Impossible d'effectuer la modification.
|
Impossible d'effectuer la modification.
|
||||||
<div style="font-size: 0.8em">{{.Error}}</div>
|
<div style="font-size: 0.8em">{{.Error}}</div>
|
||||||
|
@ -107,12 +94,8 @@
|
||||||
<div class="col-md-3"><strong>{{$key}}</strong></div>
|
<div class="col-md-3"><strong>{{$key}}</strong></div>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
{{range $value.Values}}
|
{{range $value.Values}}
|
||||||
{{if eq $key "creatorsname" "modifiersname" }}
|
|
||||||
<div><a href="/admin/ldap/{{.}}">{{.}}</a></div>
|
|
||||||
{{else}}
|
|
||||||
<div>{{.}}</div>
|
<div>{{.}}</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{end}}
|
{{end}}
|
|
@ -1,19 +1,15 @@
|
||||||
{{define "title"}}Liste des utilisateurs |{{end}}
|
{{define "title"}}Liste des utilisateurs |{{end}}
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
|
|
||||||
{{define "body"}}
|
{{define "body"}}
|
||||||
|
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<h2>Liste des utilisateurs</h2>
|
<h4>Liste des utilisateurs</h4>
|
||||||
<a class="ml-auto btn btn-success" href="/admin/create/user/{{.UserBaseDN}}">Nouvel utilisateur</a>
|
<a class="ml-auto btn btn-success" href="/admin/create/user/{{.UserBaseDN}}">Nouvel utilisateur</a>
|
||||||
|
<a class="ml-4 btn btn-info" href="/">Menu principal</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="table mt-4">
|
<table class="table mt-4">
|
||||||
<thead>
|
<thead>
|
||||||
<th scope="col"></th>
|
|
||||||
<th scope="col">Identifiant</th>
|
<th scope="col">Identifiant</th>
|
||||||
<th scope="col">Nom complet</th>
|
<th scope="col">Nom complet</th>
|
||||||
<th scope="col">Email</th>
|
<th scope="col">Email</th>
|
||||||
|
@ -22,17 +18,12 @@
|
||||||
{{with $root := .}}
|
{{with $root := .}}
|
||||||
{{range $user := $root.Users}}
|
{{range $user := $root.Users}}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
|
||||||
<a href="/admin/unactivate/{{ $user.GetAttributeValue "cn" }}">
|
|
||||||
Dèsactiver
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<a href="/admin/ldap/{{$user.DN}}">
|
<a href="/admin/ldap/{{$user.DN}}">
|
||||||
{{$user.GetAttributeValue $root.UserNameAttr}}
|
{{$user.GetAttributeValue $root.UserNameAttr}}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td>{{$user.GetAttributeValue "displayName"}}</td>
|
<td>{{$user.GetAttributeValue "displayname"}}</td>
|
||||||
<td>{{$user.GetAttributeValue "mail"}}</td>
|
<td>{{$user.GetAttributeValue "mail"}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{end}}
|
{{end}}
|
|
@ -1,7 +1,12 @@
|
||||||
{{define "title"}}Annuaire |{{end}}
|
{{define "title"}}Annuaire |{{end}}
|
||||||
|
|
||||||
{{define "admenu"}}
|
{{define "body"}}
|
||||||
{{end}}
|
<div class="d-flex">
|
||||||
|
<h4>Annuaire</h4>
|
||||||
|
<a class="ml-auto btn btn-info" href="/">Menu principal</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<form>
|
<form>
|
||||||
<div class="form-group form-row">
|
<div class="form-group form-row">
|
||||||
|
|
|
@ -1,237 +0,0 @@
|
||||||
{{define "title"}}Profile |{{end}}
|
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{define "body"}}
|
|
||||||
<div class="d-flex">
|
|
||||||
<h4>Mes identifiants</h4>
|
|
||||||
<a class="ml-auto btn btn-link" href="/garage/website">Mes sites webs</a>
|
|
||||||
<a class="ml-4 btn btn-info" href="/">Menu principal</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="proto" role="tablist">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" id="s3-tab" data-toggle="tab" href="#s3" role="tab" aria-controls="s3" aria-selected="true">S3</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" id="sftp-tab" data-toggle="tab" href="#sftp" role="tab" aria-controls="sftp" aria-selected="false">SFTP</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="tab-content" id="protocols">
|
|
||||||
<div class="tab-pane fade show active" id="s3" role="tabpanel" aria-labelledby="s3-tab">
|
|
||||||
<table class="table mt-4">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Identifiant de clé</th>
|
|
||||||
<td>{{ .Key.AccessKeyId }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Clé secrète</th>
|
|
||||||
<td>{{ .Key.SecretAccessKey }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Région</th>
|
|
||||||
<td>garage</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Endpoint URL</th>
|
|
||||||
<td>https://garage.resdigita.org</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Type d'URL</th>
|
|
||||||
<td>DNS et chemin (préférer chemin)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Signature</th>
|
|
||||||
<td>Version 4</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<p>Configurer votre logiciel :</p>
|
|
||||||
|
|
||||||
<div class="accordion" id="softconfig">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="awscli-title">
|
|
||||||
<h2 class="mb-0">
|
|
||||||
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#awscli" aria-expanded="false" aria-controls="awscli">
|
|
||||||
awscli
|
|
||||||
</button>
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
<div id="awscli" class="collapse show" aria-labelledby="awscli-title" data-parent="#softconfig">
|
|
||||||
<div class="card-body">
|
|
||||||
<p>Créez un fichier nommé <code>~/.awsrc</code> :</p>
|
|
||||||
<pre>
|
|
||||||
export AWS_ACCESS_KEY_ID={{ .Key.AccessKeyId }}
|
|
||||||
export AWS_SECRET_ACCESS_KEY={{ .Key.SecretAccessKey }}
|
|
||||||
export AWS_DEFAULT_REGION='garage'
|
|
||||||
|
|
||||||
function aws { command aws --endpoint-url https://garage.resdigita.org $@ ; }
|
|
||||||
aws --version
|
|
||||||
</pre>
|
|
||||||
<p>Ensuite vous pouvez utiliser awscli :</p>
|
|
||||||
<pre>
|
|
||||||
source ~/.awsrc
|
|
||||||
aws s3 ls
|
|
||||||
aws s3 ls s3://my-bucket
|
|
||||||
aws s3 cp /tmp/a.txt s3://my-bucket
|
|
||||||
...
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="minio-title">
|
|
||||||
<h2 class="mb-0">
|
|
||||||
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#minio" aria-expanded="true" aria-controls="minio">
|
|
||||||
Minio CLI
|
|
||||||
</button>
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="minio" class="collapse" aria-labelledby="minio-title" data-parent="#softconfig">
|
|
||||||
<div class="card-body">
|
|
||||||
<p>Vous pouvez configurer Minio CLI avec cette commande :</p>
|
|
||||||
<pre>
|
|
||||||
mc alias set \
|
|
||||||
garage \
|
|
||||||
https://garage.resdigita.org \
|
|
||||||
{{ .Key.AccessKeyId }} \
|
|
||||||
{{ .Key.SecretAccessKey }} \
|
|
||||||
--api S3v4
|
|
||||||
</pre>
|
|
||||||
<p>Et ensuite pour utiliser Minio CLI avec :</p>
|
|
||||||
<pre>
|
|
||||||
mc ls garage/
|
|
||||||
mc cp /tmp/a.txt garage/my-bucket/a.txt
|
|
||||||
...
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="winscp-title">
|
|
||||||
<h2 class="mb-0">
|
|
||||||
<button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#winscp" aria-expanded="true" aria-controls="winscp">
|
|
||||||
WinSCP
|
|
||||||
</button>
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="winscp" class="collapse" aria-labelledby="winscp-title" data-parent="#softconfig">
|
|
||||||
<div class="card-body">
|
|
||||||
Reportez vous <a href="">au guide</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="hugo-title">
|
|
||||||
<h2 class="mb-0">
|
|
||||||
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#hugo" aria-expanded="false" aria-controls="hugo">
|
|
||||||
Hugo
|
|
||||||
</button>
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
<div id="hugo" class="collapse" aria-labelledby="hugo-title" data-parent="#softconfig">
|
|
||||||
<div class="card-body">
|
|
||||||
<p>Dans votre fichier <code>config.toml</code>, rajoutez :</p>
|
|
||||||
<pre>
|
|
||||||
[[deployment.targets]]
|
|
||||||
URL = "s3://bucket?endpoint=garage.resdigita.org&s3ForcePathStyle=true&region=garage"
|
|
||||||
</pre>
|
|
||||||
<p>Assurez-vous d'avoir un fichier dans lequel les variables <code>AWS_ACCESS_KEY_ID</code> et <code>AWS_SECRET_ACCESS_KEY</code> sont définies,
|
|
||||||
ici on suppose que vous avez suivi les instructions de l'outil awscli (ci-dessus) et que vous avez un fichier <code>~/.awsrc</code> qui défini ces variables.
|
|
||||||
Ensuite : </p>
|
|
||||||
<pre>
|
|
||||||
source ~/.awsrc
|
|
||||||
hugo deploy
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="publii-title">
|
|
||||||
<h2 class="mb-0">
|
|
||||||
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#publii" aria-expanded="false" aria-controls="publii">
|
|
||||||
Publii
|
|
||||||
</button>
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
<div id="publii" class="collapse" aria-labelledby="publii-title" data-parent="#softconfig">
|
|
||||||
<div class="card-body">
|
|
||||||
<em>Bientôt...</em>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- sftp -->
|
|
||||||
<div class="tab-pane fade" id="sftp" role="tabpanel" aria-labelledby="sftp-tab">
|
|
||||||
<table class="table mt-4">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Nom d'utilisateur-ice</th>
|
|
||||||
<td>{{ .Login.Status.Info.Username }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Mot de passe</th>
|
|
||||||
<td>(votre mot de passe guichet)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Hôte</th>
|
|
||||||
<td>sftp://bagage.resdigita.org</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Port</th>
|
|
||||||
<td>2222</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>Configurer votre logiciel :</p>
|
|
||||||
|
|
||||||
<div class="accordion" id="softconfig2">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="filezilla-title">
|
|
||||||
<h2 class="mb-0">
|
|
||||||
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#filezilla" aria-expanded="false" aria-controls="filezilla">
|
|
||||||
scp
|
|
||||||
</button>
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
<div id="filezilla" class="collapse show" aria-labelledby="filezilla-title" data-parent="#softconfig">
|
|
||||||
<div class="card-body">
|
|
||||||
<p>Un exemple avec SCP :</p>
|
|
||||||
<pre>
|
|
||||||
scp -oHostKeyAlgorithms=+ssh-rsa -P2222 -r ./public {{ .Login.Status.Info.Username }}@bagage.resdigita.org:mon_bucket/
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header" id="filezilla-title">
|
|
||||||
<h2 class="mb-0">
|
|
||||||
<button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#filezilla" aria-expanded="false" aria-controls="filezilla">
|
|
||||||
Filezilla
|
|
||||||
</button>
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
<div id="filezilla" class="collapse" aria-labelledby="filezilla-title" data-parent="#softconfig">
|
|
||||||
<div class="card-body">
|
|
||||||
<em>Bientôt</em>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{end}}
|
|
|
@ -1,61 +0,0 @@
|
||||||
{{define "title"}}Inspecter le site web |{{end}}
|
|
||||||
|
|
||||||
{{define "admenu"}}
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{define "body"}}
|
|
||||||
<div class="d-flex">
|
|
||||||
<h4>Inspecter le site web</h4>
|
|
||||||
<a class="ml-auto btn btn-link" href="/garage/key">Mes identifiants</a>
|
|
||||||
<a class="ml-4 btn btn-success" href="/garage/website/new">Nouveau site web</a>
|
|
||||||
<a class="ml-4 btn btn-info" href="/garage/website">Mes sites webs</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<table class="table mt-4">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">ID</th>
|
|
||||||
<td>{{ .Bucket.Id }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">URLs</th>
|
|
||||||
<td>
|
|
||||||
{{ range $alias := .Bucket.GlobalAliases }}
|
|
||||||
{{ if contains $alias "." }}
|
|
||||||
https://{{ $alias }}
|
|
||||||
{{ else }}
|
|
||||||
https://{{ $alias }}.web.resdigita.org
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Document d'index</th>
|
|
||||||
<td> {{ .IndexDoc }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Document d'erreur</th>
|
|
||||||
<td>{{ .Common.ErrorDoc }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Nombre de fichiers</th>
|
|
||||||
<td>{{ .Bucket.Objects }} / {{ .MaxObjects }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th scope="row">Espace utilisé</th>
|
|
||||||
<td>{{ .Bucket.Bytes }} / {{ .MaxSize }} octets</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<h4>Configurer le nom de domaine</h4>
|
|
||||||
|
|
||||||
{{ range $alias := .Bucket.GlobalAliases }}
|
|
||||||
{{ if contains $alias "." }}
|
|
||||||
<p> Le nom de domaine {{ $alias }} n'est pas géré par Deuxfleurs, il vous revient donc de configurer la zone DNS. Vous devez ajouter une entrée <code>CNAME garage.resdigita.org</code> ou <code>ALIAS garage.resdigita.org</code> auprès de votre hébergeur DNS, qui est souvent aussi le bureau d'enregistrement (eg. Gandi, GoDaddy, BookMyName, etc.).</p>
|
|
||||||
{{ else }}
|
|
||||||
<p> Le nom de domaine https://{{ $alias }}.web.resdigita.org est fourni par Deuxfleurs, il n'y a pas de configuration à faire.</p>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{end}}
|
|