Early working version

This commit is contained in:
leduc 2021-04-26 02:34:15 +02:00
parent 50376aa518
commit 7aef822563
39 changed files with 9836 additions and 75 deletions

View File

@ -1,16 +1,57 @@
# Nerves
A termeal version with led strip on raspberry pi
A termeal version with neopixel led strip on raspberry pi (Raspberry Pi 1 is fine).
Termeal : color depends on port number of sniffed packet.
A change mode function is included but only scapy mode work yet.
Neopixel strip (3 wires : 5V,GND,IN) :
* Neopixel GPIO D18 #(-> pin 12)
* GND pin 9
* 5 V pin 4
Physical buttons :
* Func button : GPIO 23 (->pin 16) / GND pin 14
* Down button : GPIO 24 (->pin 18) / GND pin 20
# Control
2 physical buttons and Webpage (browse to pi address)
# Install
sudo apt install python3-pip
sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel
sudo python3 -m pip install --force-reinstall adafruit-blinka
sudo pip3 install scapy
For automatic shutdown :
sudo nano /etc/sudoers
add :
pi raspberrypi =NOPASSWD: /usr/bin/systemctl poweroff
# Autorun
To autorun nerves at boot time :
cd nerves
sudo cp /home/pi/nerves/autorun.conf /etc/supervisor/conf.d/
sudo supervisorctl reload
# Based on previous work :
https://github.com/loloster/termeal
https://github.com/s0r00t/sniffeal
* https://github.com/loloster/termeal
* https://github.com/s0r00t/sniffeal

6
autorun.conf Normal file
View File

@ -0,0 +1,6 @@
[program:nerves]
autorestart = True
directory = /home/pi/nerves
user = pi
command = sh /home/pi/nerves/autorun.sh
environment = STNORESTART="1", HOME="/home/pi/nerves/"

4
autorun.sh Normal file
View File

@ -0,0 +1,4 @@
#!/bin/bash
#sudo python3 /home/pi/nerves/ws.py &
#sudo python3 /home/pi/nerves/buttons.py &
sudo python3 /home/pi/nerves/nerves.py

85
buttons.py Normal file
View File

@ -0,0 +1,85 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# -*- mode: Python -*-
'''
Physical buttons handler for Nerves v0.1b
Func button : GPIO 23 (->pin 16) / ground pin 14
Down button : GPIO 24 (->pin 18) / ground 20
When button is pressed : button.value -> False
'''
from time import sleep
import board
import digitalio
import leds
crtfunc = 0
funcs = [0,1,2]
debug = 0
print("Loading Nerves buttons handler v0.1b")
funcbutton = digitalio.DigitalInOut(board.D23)
funcbutton.direction = digitalio.Direction.INPUT
funcbutton.pull = digitalio.Pull.UP
funcstate = True
downbutton = digitalio.DigitalInOut(board.D24)
downbutton.direction = digitalio.Direction.INPUT
downbutton.pull = digitalio.Pull.UP
def runforever():
global crtfunc, funcstate
while True:
#print(funcbutton.value, funcstate, crtfunc, downbutton.value)
#print(funcbutton.value, funcstate)
if not funcbutton.value:
if debug > 0:
print("func button pressed : ", funcbutton.value, funcstate )
sleep(0.2)
# Launch on button release
if funcbutton.value and funcstate == False :
crtfunc +=1
if crtfunc == len(funcs):
crtfunc = 0
print('Launch func', crtfunc)
if crtfunc == 0:
leds.mode = 0
if crtfunc == 1:
leds.mode = 1
sleep(0.2)
funcstate = funcbutton.value
if not downbutton.value:
if debug > 0:
print("down button pressed")
import os
print('will shutdown...')
leds.mode = -1
leds.cls()
os.system("systemctl poweroff")
sleep(0.005)
if __name__ == '__main__':
runforever()

42
cls.py Normal file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
SPDX-License-Identifier: MIT
'''
# Simple test for NeoPixels on Raspberry Pi
import time
import board
import neopixel
# Choose an open pin connected to the Data In of the NeoPixel strip, i.e. board.D18
# NeoPixels must be connected to D10, D12, D18 or D21 to work.
pixel_pin = board.D18
# The number of NeoPixels
num_pixels = 14
# The order of the pixel colors - RGB or GRB. Some NeoPixels have red and green reversed!
# For RGBW NeoPixels, simply change the ORDER to RGBW or GRBW.
ORDER = neopixel.GRB
pixels = neopixel.NeoPixel(
pixel_pin, num_pixels, brightness=0.2, auto_write=False, pixel_order=ORDER
)
def cls():
print('Cls')
pixels.fill((0, 0, 0))
pixels.show()
if __name__ == '__main__':
cls()

2
cls.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/bash
sudo python3 /home/pi/nerves/cls.py

2
down.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/bash
sudo shutdown -h now

104
leds.py
View File

@ -1,16 +1,18 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
sudo aot install python3-pip
sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel
sudo python3 -m pip install --force-reinstall adafruit-blinka
Neopixel GPIO D18 #(-> pin 12)
Ground pin 9
5 V pin 4
Modes :
-1 cls
0 Scappy
1 Rainbow
SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
SPDX-License-Identifier: MIT
'''
@ -22,11 +24,31 @@ import neopixel
# Choose an open pin connected to the Data In of the NeoPixel strip, i.e. board.D18
# NeoPixels must be connected to D10, D12, D18 or D21 to work.
pixel_pin = board.D18
pixel_pin = board.D18 #(-> pin 12)
# The number of NeoPixels
num_pixels = 6
num_pixels = 14
palette = [(0,0,0),
(255,0,0),
(0,255,0),
(0,0,255),
(255,255,0),
(0,255,255),
(255,0,255),
(192,192,192),
(128,128,128),
(128,0,0),
(128,128,0),
(0,128,0),
(128,0,128),
(0,128,128),
(0,0,128)
]
nbcolor = len(palette)
#print(nbcolor, "colors")
#print(palette)
# The order of the pixel colors - RGB or GRB. Some NeoPixels have red and green reversed!
# For RGBW NeoPixels, simply change the ORDER to RGBW or GRBW.
ORDER = neopixel.GRB
@ -35,6 +57,8 @@ pixels = neopixel.NeoPixel(
pixel_pin, num_pixels, brightness=0.2, auto_write=False, pixel_order=ORDER
)
# mode 0 : scapy
mode = 0
def wheel(pos):
# Input a value 0 to 255 to get a color value.
@ -57,18 +81,57 @@ def wheel(pos):
b = int(255 - pos * 3)
return (r, g, b) if ORDER in (neopixel.RGB, neopixel.GRB) else (r, g, b, 0)
# rainbow demo
def rainbow_cycle(wait):
for j in range(255):
for i in range(num_pixels):
pixel_index = (i * 256 // num_pixels) + j
pixels[i] = wheel(pixel_index & 255)
pixels.show()
time.sleep(wait)
if mode == 1:
for j in range(255):
for i in range(num_pixels):
pixel_index = (i * 256 // num_pixels) + j
pixels[i] = wheel(pixel_index & 255)
pixels.show()
time.sleep(wait)
# rainbow mode
def rainbow_mode(wait = 0.001):
if mode == 1:
for j in range(255):
for i in range(num_pixels):
pixel_index = (i * 256 // num_pixels) + j
pixels[i] = wheel(pixel_index & 255)
pixels.show()
time.sleep(wait)
def cls():
print('Cls')
mode = -1
pixels.fill((0, 0, 0))
pixels.show()
def ledscls():
print('Cls')
pixels.fill((0, 0, 0))
pixels.show()
def display(colors):
print("Incoming generated colors :",colors)
for pixel in range(num_pixels):
#print(pixel, colors[pixel], palette[colors[pixel]] )
pixels[pixel] = palette[colors[pixel]]
#print("pixels array :",pixels)
pixels.show()
while True:
def demo():
global mode
ledscls()
# Comment this line out if you have RGBW/GRBW NeoPixels
print("Demo.")
pixels.fill((255, 0, 0))
# Uncomment this line if you have RGBW/GRBW NeoPixels
# pixels.fill((255, 0, 0, 0))
@ -89,4 +152,11 @@ while True:
pixels.show()
time.sleep(1)
mode = 1
rainbow_cycle(0.001) # rainbow cycle with 1ms delay per step
ledscls()
if __name__ == '__main__':
demo()

225
nerves.py
View File

@ -5,8 +5,9 @@
Nerves
v 0.1
A termeal version with led strip on raspberry pi
A termeal version with fiber optics on raspberry pi
goes with leds mode 0
sniff packets from interface en0 using python module scapy (2.3.1)
generate led color for bhoreal in usb midi mode depending on packet port number
@ -26,91 +27,205 @@ log.infog("Nerves")
log.infog("v0.1b")
print("Loading...")
from OSC3 import OSCClient, OSCMessage
import adafruit_blinka.agnostic as agnostic
import board
import sys
print(
"Found system type: %s (sys.platform %s implementation %s) "
% (agnostic.board_id, sys.platform, sys.implementation.name)
)
from sys import platform
from time import sleep
import types
import random
from scapy.all import *
from threading import Thread
import traceback
import argparse
argsparser = argparse.ArgumentParser(description="Nerves v0.1")
argsparser.add_argument("-v","--verbose",action="store_true",help="Verbose output")
args = argsparser.parse_args()
verbose=args.verbose
import leds
import buttons
import ws
client = OSCClient()
msg = OSCMessage()
# from Adafruit_GPIO import Platform
# print("Platform = ", Platform.platform_detect(), Platform.pi_version())
#print("board contents: ", dir(board))
nerves = [[0,7],[1,3],[2,9],[4,13],[5,11],[6,12],[8,10]]
influx = [0]*(len(nerves)*2)
print(influx)
counter = 0
import argparse
parser = argparse.ArgumentParser(description="A Scanner Interface Darkly")
parser.add_argument("-i","--interface", help="interface to scan")
parser.add_argument("-x","--xcol",help="number of columns (8 by default)",type=int)
parser.add_argument("-y","--ycol",help="number of rows (8 by default)",type=int)
parser.add_argument("-f","--filter",help="tcpdump filter")
parser.add_argument("-c","--color",help="number of color",type=int)
parser.add_argument("-d","--display",help="type of side display",choices=["colors", "ports"])
parser.add_argument("-epi","--ephemeralportmin",help="ephemeral port min to exclude (32768 by default), set to 65536 to include all ports",type=int)
parser.add_argument("-epa","--ephemeralportmax",help="ephemeral port max to exclude (61000 by default)",type=int)
args = parser.parse_args()
if args.xcol:
xmax=args.xcol
else:
xmax=8
if args.ycol:
ymax=args.ycol
else:
ymax=8
if args.color:
nbcolor=args.color
else:
nbcolor=15
if args.display:
sidedisplay=args.display
else:
sidedisplay="ports"
if args.ephemeralportmin:
ephemeralportmin = args.ephemeralportmin
else:
ephemeralportmin = 32768
if args.ephemeralportmax:
ephemeralportmax = args.ephemeralportmax
else:
ephemeralportmax = 61000
def sendled(zzzport):
global counter
zzz = zzzport % 127
# zzz = led color
msg = OSCMessage()
msg.setAddress("/bhoreal/in")
msg.append(counter)
msg.append(zzz)
try:
client.sendto(msg, ('127.0.0.1', 9002))
msg.clearData()
except:
print('Connection refused')
pass
sleep(0.001)
counter += 1
if counter > 63:
#print("nerve",counter)
zzz = zzzport % leds.nbcolor # zzz = led color
influx[nerves[counter][0]] = zzz
influx[nerves[counter][1]] = zzz
#print("nerve",counter,"influx", influx)
leds.display(influx)
#print(len(nerves), "nerves")
if counter +1 == len(nerves):
counter = 0
else:
counter += 1
#print("next nerve", counter)
def print_summary(pkt):
if IP in pkt:
ip_src=pkt[IP].src
ip_dst=pkt[IP].dst
if TCP in pkt:
tcp_sport=pkt[TCP].sport
tcp_dport=pkt[TCP].dport
if tcp_sport < 50000:
print (" IP src " + str(ip_src) + " TCP sport " + str(tcp_sport) )
sendled(tcp_sport)
if tcp_dport < 50000:
print (" IP dst " + str(ip_dst) + " TCP dport " + str(tcp_dport))
sendled(tcp_dport)
if UDP in pkt:
udp_sport=pkt[UDP].sport
udp_dport=pkt[UDP].dport
if leds.mode == 0:
if udp_sport < 50000:
print (" IP src " + str(ip_src) + " UDP sport " + str(udp_sport) )
sendled(udp_sport)
if IP in pkt:
ip_src=pkt[IP].src
ip_dst=pkt[IP].dst
if udp_dport < 50000:
print (" IP dst " + str(ip_dst) + " UDP dport " + str(udp_dport))
sendled(udp_dport)
if TCP in pkt:
tcp_sport=pkt[TCP].sport
tcp_dport=pkt[TCP].dport
if tcp_sport < 50000:
print (" IP src " + str(ip_src) + " TCP sport " + str(tcp_sport) )
sendled(tcp_sport)
if tcp_dport < 50000:
print (" IP dst " + str(ip_dst) + " TCP dport " + str(tcp_dport))
sendled(tcp_dport)
if UDP in pkt:
udp_sport=pkt[UDP].sport
udp_dport=pkt[UDP].dport
if udp_sport < 50000:
print (" IP src " + str(ip_src) + " UDP sport " + str(udp_sport) )
sendled(udp_sport)
if udp_dport < 50000:
print (" IP dst " + str(ip_dst) + " UDP dport " + str(udp_dport))
sendled(udp_dport)
if ARP in pkt and pkt[ARP].op in (1,2):
print (" ARP")
sendled(67)
if ARP in pkt and pkt[ARP].op in (1,2):
print (" ARP")
sendled(67)
def handle_error(self,request,client_address): # All callbacks
pass
'''
def main():
print("Testing leds...")
leds.cls()
leds.demo()
leds.cls()
if platform == 'darwin':
sniff(iface='en0', prn=print_summary, store=0)
print("Running on", platform, "-> en0")
#sniff(iface='en0', prn=print_summary, store=0)
sniff(iface='en0', prn=print_summary, store=0,filter=args.filter)
else:
print("Running on", platform, "-> eth0")
sniff(iface='eth0', prn=print_summary, store=0)
'''
def main():
ws.Start(ws.serverIP, ws.wsPORT)
try:
ws_thread = Thread(target=ws.runforever, args=())
ws_thread.setDaemon(True)
ws_thread.start()
print("Launching buttons thread...")
buttons_thread = Thread(target=buttons.runforever, args=())
buttons_thread.setDaemon(True)
buttons_thread.start()
ws.sendWSall("/players Demo")
print("Testing leds...")
leds.cls()
leds.demo()
leds.cls()
# Start sniffing
leds.mode = 0
ws.sendWSall("/players Sniffing")
if platform == 'darwin':
print("Running on", platform, "-> en0")
#sniff(iface='en0', prn=print_summary, store=0)
sniff(iface='en0', prn=print_summary, store=0,filter=args.filter)
else:
print("Running on", platform, "-> eth0")
sniff(iface='eth0', prn=print_summary, store=0)
except Exception:
traceback.print_exc()
finally:
ws_thread.join()
buttons_thread.join()
if __name__ == '__main__':
main()

371
websocket_server.py Executable file
View File

@ -0,0 +1,371 @@
# Author: Johan Hanssen Seferidis
# License: MIT
import sys
import struct
from base64 import b64encode
from hashlib import sha1
import logging
from socket import error as SocketError
import errno
if sys.version_info[0] < 3:
from SocketServer import ThreadingMixIn, TCPServer, StreamRequestHandler
else:
from socketserver import ThreadingMixIn, TCPServer, StreamRequestHandler
logger = logging.getLogger(__name__)
logging.basicConfig()
'''
+-+-+-+-+-------+-+-------------+-------------------------------+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-------+-+-------------+-------------------------------+
|F|R|R|R| opcode|M| Payload len | Extended payload length |
|I|S|S|S| (4) |A| (7) | (16/64) |
|N|V|V|V| |S| | (if payload len==126/127) |
| |1|2|3| |K| | |
+-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
| Extended payload length continued, if payload len == 127 |
+ - - - - - - - - - - - - - - - +-------------------------------+
| Payload Data continued ... |
+---------------------------------------------------------------+
'''
FIN = 0x80
OPCODE = 0x0f
MASKED = 0x80
PAYLOAD_LEN = 0x7f
PAYLOAD_LEN_EXT16 = 0x7e
PAYLOAD_LEN_EXT64 = 0x7f
OPCODE_CONTINUATION = 0x0
OPCODE_TEXT = 0x1
OPCODE_BINARY = 0x2
OPCODE_CLOSE_CONN = 0x8
OPCODE_PING = 0x9
OPCODE_PONG = 0xA
# -------------------------------- API ---------------------------------
class API():
def run_forever(self):
try:
logger.info("Listening on port %d for clients.." % self.port)
self.serve_forever()
except KeyboardInterrupt:
self.server_close()
logger.info("Server terminated.")
except Exception as e:
logger.error(str(e), exc_info=True)
exit(1)
def new_client(self, client, server):
pass
def client_left(self, client, server):
pass
def message_received(self, client, server, message):
pass
def set_fn_new_client(self, fn):
self.new_client = fn
def set_fn_client_left(self, fn):
self.client_left = fn
def set_fn_message_received(self, fn):
self.message_received = fn
def send_message(self, client, msg):
self._unicast_(client, msg)
def send_message_to_all(self, msg):
self._multicast_(msg)
# ------------------------- Implementation -----------------------------
class WebsocketServer(ThreadingMixIn, TCPServer, API):
"""
A websocket server waiting for clients to connect.
Args:
port(int): Port to bind to
host(str): Hostname or IP to listen for connections. By default 127.0.0.1
is being used. To accept connections from any client, you should use
0.0.0.0.
loglevel: Logging level from logging module to use for logging. By default
warnings and errors are being logged.
Properties:
clients(list): A list of connected clients. A client is a dictionary
like below.
{
'id' : id,
'handler' : handler,
'address' : (addr, port)
}
"""
allow_reuse_address = True
daemon_threads = True # comment to keep threads alive until finished
clients = []
id_counter = 0
def __init__(self, port, host='127.0.0.1', loglevel=logging.WARNING):
logger.setLevel(loglevel)
TCPServer.__init__(self, (host, port), WebSocketHandler)
self.port = self.socket.getsockname()[1]
def _message_received_(self, handler, msg):
self.message_received(self.handler_to_client(handler), self, msg)
def _ping_received_(self, handler, msg):
handler.send_pong(msg)
def _pong_received_(self, handler, msg):
pass
def _new_client_(self, handler):
self.id_counter += 1
client = {
'id': self.id_counter,
'handler': handler,
'address': handler.client_address
}
self.clients.append(client)
self.new_client(client, self)
def _client_left_(self, handler):
client = self.handler_to_client(handler)
self.client_left(client, self)
if client in self.clients:
self.clients.remove(client)
def _unicast_(self, to_client, msg):
to_client['handler'].send_message(msg)
def _multicast_(self, msg):
for client in self.clients:
self._unicast_(client, msg)
def handler_to_client(self, handler):
for client in self.clients:
if client['handler'] == handler:
return client
class WebSocketHandler(StreamRequestHandler):
def __init__(self, socket, addr, server):
self.server = server
StreamRequestHandler.__init__(self, socket, addr, server)
def setup(self):
StreamRequestHandler.setup(self)
self.keep_alive = True
self.handshake_done = False
self.valid_client = False
def handle(self):
while self.keep_alive:
if not self.handshake_done:
self.handshake()
elif self.valid_client:
self.read_next_message()
def read_bytes(self, num):
# python3 gives ordinal of byte directly
bytes = self.rfile.read(num)
if sys.version_info[0] < 3:
return map(ord, bytes)
else:
return bytes
def read_next_message(self):
try:
b1, b2 = self.read_bytes(2)
except SocketError as e: # to be replaced with ConnectionResetError for py3
if e.errno == errno.ECONNRESET:
logger.info("Client closed connection.")
print("Error: {}".format(e))
self.keep_alive = 0
return
b1, b2 = 0, 0
except ValueError as e:
b1, b2 = 0, 0
fin = b1 & FIN
opcode = b1 & OPCODE
masked = b2 & MASKED
payload_length = b2 & PAYLOAD_LEN
if opcode == OPCODE_CLOSE_CONN:
logger.info("Client asked to close connection.")
self.keep_alive = 0
return
if not masked:
logger.warn("Client must always be masked.")
self.keep_alive = 0
return
if opcode == OPCODE_CONTINUATION:
logger.warn("Continuation frames are not supported.")
return
elif opcode == OPCODE_BINARY:
logger.warn("Binary frames are not supported.")
return
elif opcode == OPCODE_TEXT:
opcode_handler = self.server._message_received_
elif opcode == OPCODE_PING:
opcode_handler = self.server._ping_received_
elif opcode == OPCODE_PONG:
opcode_handler = self.server._pong_received_
else:
logger.warn("Unknown opcode %#x." % opcode)
self.keep_alive = 0
return
if payload_length == 126:
payload_length = struct.unpack(">H", self.rfile.read(2))[0]
elif payload_length == 127:
payload_length = struct.unpack(">Q", self.rfile.read(8))[0]
masks = self.read_bytes(4)
message_bytes = bytearray()
for message_byte in self.read_bytes(payload_length):
message_byte ^= masks[len(message_bytes) % 4]
message_bytes.append(message_byte)
opcode_handler(self, message_bytes.decode('utf8'))
def send_message(self, message):
self.send_text(message)
def send_pong(self, message):
self.send_text(message, OPCODE_PONG)
def send_text(self, message, opcode=OPCODE_TEXT):
"""
Important: Fragmented(=continuation) messages are not supported since
their usage cases are limited - when we don't know the payload length.
"""
# Validate message
if isinstance(message, bytes):
message = try_decode_UTF8(message) # this is slower but ensures we have UTF-8
if not message:
logger.warning("Can\'t send message, message is not valid UTF-8")
return False
elif sys.version_info < (3,0) and (isinstance(message, str) or isinstance(message, unicode)):
pass
elif isinstance(message, str):
pass
else:
logger.warning('Can\'t send message, message has to be a string or bytes. Given type is %s' % type(message))
return False
header = bytearray()
payload = encode_to_UTF8(message)
payload_length = len(payload)
# Normal payload
if payload_length <= 125:
header.append(FIN | opcode)
header.append(payload_length)
# Extended payload
elif payload_length >= 126 and payload_length <= 65535:
header.append(FIN | opcode)
header.append(PAYLOAD_LEN_EXT16)
header.extend(struct.pack(">H", payload_length))
# Huge extended payload
elif payload_length < 18446744073709551616:
header.append(FIN | opcode)
header.append(PAYLOAD_LEN_EXT64)
header.extend(struct.pack(">Q", payload_length))
else:
raise Exception("Message is too big. Consider breaking it into chunks.")
return
self.request.send(header + payload)
def read_http_headers(self):
headers = {}
# first line should be HTTP GET
http_get = self.rfile.readline().decode().strip()
assert http_get.upper().startswith('GET')
# remaining should be headers
while True:
header = self.rfile.readline().decode().strip()
if not header:
break
head, value = header.split(':', 1)
headers[head.lower().strip()] = value.strip()
return headers
def handshake(self):
headers = self.read_http_headers()
try:
assert headers['upgrade'].lower() == 'websocket'
except AssertionError:
self.keep_alive = False
return
try:
key = headers['sec-websocket-key']
except KeyError:
logger.warning("Client tried to connect but was missing a key")
self.keep_alive = False
return
response = self.make_handshake_response(key)
self.handshake_done = self.request.send(response.encode())
self.valid_client = True
self.server._new_client_(self)
@classmethod
def make_handshake_response(cls, key):
return \
'HTTP/1.1 101 Switching Protocols\r\n'\
'Upgrade: websocket\r\n' \
'Connection: Upgrade\r\n' \
'Sec-WebSocket-Accept: %s\r\n' \
'\r\n' % cls.calculate_response_key(key)
@classmethod
def calculate_response_key(cls, key):
GUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
hash = sha1(key.encode() + GUID.encode())
response_key = b64encode(hash.digest()).strip()
return response_key.decode('ASCII')
def finish(self):
self.server._client_left_(self)
def encode_to_UTF8(data):
try:
return data.encode('UTF-8')
except UnicodeEncodeError as e:
logger.error("Could not encode data to UTF-8 -- %s" % e)
return False
except Exception as e:
raise(e)
return False
def try_decode_UTF8(data):
try:
return data.decode('utf-8')
except UnicodeDecodeError:
return False
except Exception as e:
raise(e)

216
ws.py Normal file
View File

@ -0,0 +1,216 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# -*- mode: Python -*-
'''
Nerves WS server v0.1b
http page index.html get Server IP, Port from config.js
'''
#import socket
import types, json
import _thread, time
from websocket_server import WebsocketServer
import argparse
import leds
import traceback
debug = 1
Players=0
clientmode = False
broadcast = True
# record current values
crtvalueMMO3 = [0] * 32
crtfunc = 0
funcs = [0,1,2]
print("")
print("Loading Nerves WS server v0.1b")
print ("Arguments parsing if needed...")
argsparser = argparse.ArgumentParser(description="Nerves experimental v0.1b help mode")
argsparser.add_argument("-i","--IP",help="IP to bind to (0.0.0.0 by default)", type=str)
argsparser.add_argument("-p","--port",help="Websocket port to bind to (8081 by default)", type=str)
args = argsparser.parse_args()
# Server name
if args.IP:
serverIP = args.IP
else:
serverIP = "0.0.0.0"
# ORCA destination device
if args.port:
wsPORT = int(args.port)
else:
wsPORT = 8081
def Start(serverIP, wsPORT):
global wserver
print("Starting WS server ", serverIP, ":", wsPORT)
wserver = WebsocketServer(wsPORT,host=serverIP)
wserver.set_fn_new_client(new_client)
wserver.set_fn_client_left(client_left)
wserver.set_fn_message_received(message_received)
def runforever():
print("Running WS server...")
leds.mode = 0
wserver.run_forever()
# Called for every WS client connecting (after handshake)
def new_client(client, wserver):
global Players
print("New WS client connected and was given id %d" % client['id'])
#sendWSall("/status Hello %d" % client['id'])
#if current == True:
# sendallcurrentccvalues("mmo3")
# sendallcurrentccvalues("ocs2")
Players+=1
sendWSall("/status Hello %d" %(client['id']))
if Players > 1:
#sendWSall("/Players %d" %(Players))
sendWSall("/players connected:%d" %(Players))
else:
sendWSall("/players connected:%d" %(Players))
# Called for every WS client disconnecting
def client_left(client, wserver):
try:
print("WS Client(%d) disconnected" % client['id'])
Players-=1
sendWSall("/players %d" %(Players))
except:
print("Something weird if coming from",client,"on the wire...")
pass
# Called for each WS received message.
def message_received(client, wserver, message):
global crtfunc
print("")
if len(message) > 200:
message = message[:200]+'..'
wspath = message.split(" ")
if debug > 0:
print("Main got from WS", client['id'], "said :", message, "splitted in an wspath :", wspath)
else:
print("Main got WS Client", client['id'], "said :", message)
wscommand = wspath[0].split("/")
# debug
if debug > 0:
print("wscommand :",wscommand)
# noarg
if len(wspath) == 1:
args[0] = "noargs"
#print "noargs command"
# functions : /func 1
elif wscommand[1] == "func":
if debug > 0:
print("func function with ", wspath[1])
crtfunc +=1
if crtfunc == len(funcs):
crtfunc = 0
print('Launch func', crtfunc)
sendWSall("/players Function:"+str(crtfunc))
# shutdown : /down 1
elif wscommand[1] == "down":
if wspath[1] == '1':
import os
print('will shutdown...')
leds.mode = -1
leds.cls()
sendWSall("/players Stopping...")
os.system("systemctl poweroff")
# CC : /device/cc/2 127
elif wscommand[2] == "cc":
ccvr=int(wscommand[3]) #cc variable
ccvl=int(wspath[1]) #cc value
if debug > 0:
print("ccvr=%d/ccvl=%d"%(ccvr,ccvl))
if wscommand[1] == "ocs2":
crtvalueOCS2[ccvr]=ccvl
else:
crtvalueMMO3[ccvr]=ccvl
# Loop back : WS Client -> server -> WS Client
#sendWSall(message)
# Send through websocket.
# Different websocket library for client (websocket) or server (websocket_server.
# ws object is added here by main.py or client.py startup : midi3.ws =
def send(message):
if clientmode == True:
send(message)
else:
wserver.send_message_to_all(msg = message)
def sendWSall(message):
if broadcast == True:
if debug >0:
print("WS sending to all %s" % (message))
wserver.send_message_to_all(message)
# /send all current cc values
def sendallcurrentccvalues(nozoid):
if broadcast == True:
#print ""
print("sending all current cc values of", nozoid)
if nozoid == "mmo3":
for ccnumber in range(0,32):
sendWSall("/mmo3/cc/"+str(ccnumber)+" "+str(crtvalueMMO3[ccnumber]))
else:
for ccnumber in range(0,32):
sendWSall("/ocs2/cc/"+str(ccnumber)+" "+str(crtvalueOCS2[ccnumber]))
if __name__ == '__main__':
Start(serverIP, wsPORT)
try:
runforever()
except Exception:
traceback.print_exc()

1
www/config.js Normal file
View File

@ -0,0 +1 @@
websocket_uri = "ws://192.168.2.189:8081/"

Binary file not shown.

View File

@ -0,0 +1,828 @@
<?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>
<metadata>
Created by FontForge 20120731 at Sat Jun 6 06:35:01 2020
By www
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License (click below for details).
The font was created by Michal Sulik using Fony, bdfresize, potrace, autotrace and Fontforge.
If you use this font in any public work, please be so nice and leave a link in comments on http://msulik.deviantart.com/.
</metadata>
<defs>
<font id="BusLedDisplaySmall" horiz-adv-x="458" >
<font-face
font-family="Bus Led Display Small"
font-weight="500"
font-variant="small-caps"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="819"
descent="-205"
x-height="461"
cap-height="461"
bbox="34 -154 716 682"
underline-thickness="50"
underline-position="-101"
unicode-range="U+0001-02DD"
/>
<missing-glyph horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
<glyph glyph-name=".notdef" horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="$000" horiz-adv-x="49"
/>
<glyph glyph-name="$000" horiz-adv-x="49"
/>
<glyph glyph-name="$001" horiz-adv-x="49"
/>
<glyph glyph-name="$002" horiz-adv-x="49"
/>
<glyph glyph-name="$003" horiz-adv-x="49"
/>
<glyph glyph-name="$004" horiz-adv-x="49"
/>
<glyph glyph-name="$005" horiz-adv-x="49"
/>
<glyph glyph-name="$006" horiz-adv-x="49"
/>
<glyph glyph-name="$007" horiz-adv-x="49"
/>
<glyph glyph-name="$008" horiz-adv-x="49"
/>
<glyph glyph-name="$009" unicode="&#x9;" horiz-adv-x="49"
/>
<glyph glyph-name="$010" unicode="&#xa;" horiz-adv-x="49"
/>
<glyph glyph-name="$011" horiz-adv-x="49"
/>
<glyph glyph-name="$012" horiz-adv-x="49"
/>
<glyph glyph-name="$013" unicode="&#xd;" horiz-adv-x="49"
/>
<glyph glyph-name="$014" horiz-adv-x="49"
/>
<glyph glyph-name="$015" horiz-adv-x="49"
/>
<glyph glyph-name="$016" horiz-adv-x="49"
/>
<glyph glyph-name="$017" horiz-adv-x="49"
/>
<glyph glyph-name="$018" horiz-adv-x="49"
/>
<glyph glyph-name="$019" horiz-adv-x="49"
/>
<glyph glyph-name="$020" horiz-adv-x="49"
/>
<glyph glyph-name="$021" horiz-adv-x="49"
/>
<glyph glyph-name="$022" horiz-adv-x="49"
/>
<glyph glyph-name="$023" horiz-adv-x="49"
/>
<glyph glyph-name="$024" horiz-adv-x="49"
/>
<glyph glyph-name="$025" horiz-adv-x="49"
/>
<glyph glyph-name="$026" horiz-adv-x="49"
/>
<glyph glyph-name="$027" horiz-adv-x="49"
/>
<glyph glyph-name="$028" horiz-adv-x="49"
/>
<glyph glyph-name="$029" horiz-adv-x="49"
/>
<glyph glyph-name="$030" horiz-adv-x="49"
/>
<glyph glyph-name="$031" horiz-adv-x="49"
/>
<glyph glyph-name="$032" unicode=" " horiz-adv-x="199"
/>
<glyph glyph-name="$033" unicode="!" horiz-adv-x="150"
d="M50 0v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$034" unicode="&#x22;" horiz-adv-x="355"
d="M204 307v51h51v-51h-51zM50 307v51h51v-51h-51zM255 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$035" unicode="#" horiz-adv-x="662"
d="M357 0v51h52v-51h-52zM153 0v51h51v-51h-51zM460 102v52h51v-52h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM50 102v52h51v-52h-51zM409 205v51h51v-51h-51zM204 205v51h51v-51h-51zM562 307v51h51v-51h-51zM460 307v51h51v-51h-51z
M357 307v51h52v-51h-52zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM460 410v51h51v-51h-51zM255 410v51h51v-51h-51z" />
<glyph glyph-name="$036" unicode="$"
d="M204 -102v51h51v-51h-51zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM204 102v52h51v-52h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM204 307v51h51v-51h-51z
M357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM204 512v51h51v-51h-51z" />
<glyph glyph-name="$037" unicode="%" horiz-adv-x="560"
d="M409 0v51h51v-51h-51zM153 0v51h51v-51h-51zM306 51v51h51v-51h-51zM460 102v52h51v-52h-51zM204 102v52h51v-52h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 256v51h51v-51h-51zM306 307v51h51v-51h-51zM50 307v51h51v-51h-51zM204 358v52h51v-52h-51z
M357 410v51h52v-51h-52zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$038" unicode="&#x26;" horiz-adv-x="611"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM460 51v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM409 154v51h51v-51h-51zM50 154v51h51v-51h-51zM153 205v51h51v-51h-51zM511 256v51h51v-51h-51zM409 256v51h51v-51h-51zM306 256v51h51v-51h-51zM50 256
v51h51v-51h-51zM409 358v52h51v-52h-51zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="$039" unicode="'" horiz-adv-x="150"
d="M50 358v52h51v-52h-51zM50 461v51h51v-51h-51z" />
<glyph glyph-name="$040" unicode="(" horiz-adv-x="202"
d="M101 0v51h52v-51h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$041" unicode=")" horiz-adv-x="202"
d="M50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$042" unicode="*" horiz-adv-x="560"
d="M255 51v51h51v-51h-51zM460 154v51h51v-51h-51zM255 154v51h51v-51h-51zM50 154v51h51v-51h-51zM357 205v51h52v-51h-52zM153 205v51h51v-51h-51zM255 256v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM460 358v52h51v-52h-51zM255 358v52h51v-52h-51z
M50 358v52h51v-52h-51zM255 461v51h51v-51h-51z" />
<glyph glyph-name="$043" unicode="+" horiz-adv-x="355"
d="M153 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM153 307v51h51v-51h-51z" />
<glyph glyph-name="$044" unicode="," horiz-adv-x="202"
d="M50 -51v51h51v-51h-51zM101 51v51h52v-51h-52z" />
<glyph glyph-name="$045" unicode="-" horiz-adv-x="355"
d="M255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51z" />
<glyph glyph-name="$046" unicode="." horiz-adv-x="150"
d="M50 0v51h51v-51h-51z" />
<glyph glyph-name="$047" unicode="/" horiz-adv-x="406"
d="M50 -51v51h51v-51h-51zM101 51v51h52v-51h-52zM153 154v51h51v-51h-51zM204 256v51h51v-51h-51zM255 358v52h51v-52h-51zM306 461v51h51v-51h-51z" />
<glyph glyph-name="$048" unicode="0"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM153 154v51h51v-51h-51zM50 154v51h51v-51h-51zM357 256v51h52v-51h-52zM255 256v51h51v-51h-51zM50 256v51h51v-51h-51zM357 358v52h52v-52h-52zM50 358
v52h51v-52h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="$049" unicode="1" horiz-adv-x="304"
d="M204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM153 102v52h51v-52h-51zM153 205v51h51v-51h-51zM153 307v51h51v-51h-51zM50 358v52h51v-52h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="$050" unicode="2"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM306 154v51h51v-51h-51zM204 154v51h51v-51h-51zM357 256v51h52v-51h-52zM357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51z" />
<glyph glyph-name="$051" unicode="3" horiz-adv-x="406"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM306 307v51h51v-51h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$052" unicode="4"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM255 102v52h51v-52h-51zM357 154v51h52v-51h-52zM153 154v51h51v-51h-51zM50 154v51h51v-51h-51zM255 205v51h51v-51h-51zM101 256v51h52v-51h-52zM255 307v51h51v-51h-51zM101 358v52h52v-52h-52zM255 410v51h51v-51h-51z
" />
<glyph glyph-name="$053" unicode="5"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM255 256v51h51v-51h-51zM153 256v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$054" unicode="6"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM255 256v51h51v-51h-51zM153 256v51h51v-51h-51zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51z
M204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$055" unicode="7"
d="M153 0v51h51v-51h-51zM204 102v52h51v-52h-51zM255 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$056" unicode="8"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM306 205v51h51v-51h-51zM204 205v51h51v-51h-51zM101 205v51h52v-51h-52zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51z
M204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$057" unicode="9"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 256v51h51v-51h-51zM357 358v52h52v-52h-52zM50 358v52h51v-52h-51z
M255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="$058" unicode=":" horiz-adv-x="150"
d="M50 102v52h51v-52h-51zM50 307v51h51v-51h-51z" />
<glyph glyph-name="$059" unicode=";" horiz-adv-x="202"
d="M50 -51v51h51v-51h-51zM101 51v51h52v-51h-52zM101 256v51h52v-51h-52z" />
<glyph glyph-name="$060" unicode="&#x3c;" horiz-adv-x="304"
d="M204 -102v51h51v-51h-51zM153 0v51h51v-51h-51zM101 102v52h52v-52h-52zM50 205v51h51v-51h-51zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM204 512v51h51v-51h-51z" />
<glyph glyph-name="$061" unicode="=" horiz-adv-x="355"
d="M255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM50 102v52h51v-52h-51zM255 256v51h51v-51h-51zM153 256v51h51v-51h-51zM50 256v51h51v-51h-51z" />
<glyph glyph-name="$062" unicode="&#x3e;" horiz-adv-x="304"
d="M50 -102v51h51v-51h-51zM101 0v51h52v-51h-52zM153 102v52h51v-52h-51zM204 205v51h51v-51h-51zM153 307v51h51v-51h-51zM101 410v51h52v-51h-52zM50 512v51h51v-51h-51z" />
<glyph glyph-name="$063" unicode="?" horiz-adv-x="406"
d="M153 -51v51h51v-51h-51zM153 102v52h51v-52h-51zM255 205v51h51v-51h-51zM306 307v51h51v-51h-51zM50 358v52h51v-52h-51zM306 410v51h51v-51h-51zM204 461v51h51v-51h-51zM101 461v51h52v-51h-52z" />
<glyph glyph-name="$064" unicode="@" horiz-adv-x="560"
d="M409 0v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM409 102v52h51v-52h-51zM306 102v52h51v-52h-51zM204 102v52h51v-52h-51zM50 102v52h51v-52h-51zM460 205v51h51v-51h-51zM357 205v51h52v-51h-52zM153 205v51h51v-51h-51zM50 205
v51h51v-51h-51zM460 307v51h51v-51h-51zM357 307v51h52v-51h-52zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51zM409 410v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$065" unicode="A"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51z" />
<glyph glyph-name="$066" unicode="B"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 102v52h51v-52h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358
v52h52v-52h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$067" unicode="C"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$068" unicode="D"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410
v51h51v-51h-51z" />
<glyph glyph-name="$069" unicode="E"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$070" unicode="F"
d="M50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$071" unicode="G"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM255 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52z" />
<glyph glyph-name="$072" unicode="H"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52z
M50 410v51h51v-51h-51z" />
<glyph glyph-name="$073" unicode="I" horiz-adv-x="253"
d="M153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$074" unicode="J"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM357 307v51h52v-51h-52zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$075" unicode="K"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM255 307v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$076" unicode="L"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$077" unicode="M"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$078" unicode="N"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$079" unicode="O"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52z" />
<glyph glyph-name="$080" unicode="P"
d="M50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$081" unicode="Q" horiz-adv-x="509"
d="M409 0v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410
v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$082" unicode="R"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$083" unicode="S"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51z" />
<glyph glyph-name="$084" unicode="T"
d="M204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM204 205v51h51v-51h-51zM204 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$085" unicode="U"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$086" unicode="V"
d="M204 0v51h51v-51h-51zM255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM306 205v51h51v-51h-51zM101 205v51h52v-51h-52zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$087" unicode="W" horiz-adv-x="662"
d="M409 0v51h51v-51h-51zM204 0v51h51v-51h-51zM460 102v52h51v-52h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM511 205v51h51v-51h-51zM306 205v51h51v-51h-51zM101 205v51h52v-51h-52zM562 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M562 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$088" unicode="X"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM101 102v52h52v-52h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$089" unicode="Y"
d="M204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$090" unicode="Z"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM204 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$091" unicode="[" horiz-adv-x="253"
d="M153 -51v51h51v-51h-51zM50 -51v51h51v-51h-51zM50 51v51h51v-51h-51zM50 154v51h51v-51h-51zM50 256v51h51v-51h-51zM50 358v52h51v-52h-51zM153 461v51h51v-51h-51zM50 461v51h51v-51h-51z" />
<glyph glyph-name="$092" unicode="\" horiz-adv-x="406"
d="M306 -51v51h51v-51h-51zM255 51v51h51v-51h-51zM204 154v51h51v-51h-51zM153 256v51h51v-51h-51zM101 358v52h52v-52h-52zM50 461v51h51v-51h-51z" />
<glyph glyph-name="$093" unicode="]" horiz-adv-x="253"
d="M153 -51v51h51v-51h-51zM50 -51v51h51v-51h-51zM153 51v51h51v-51h-51zM153 154v51h51v-51h-51zM153 256v51h51v-51h-51zM153 358v52h51v-52h-51zM153 461v51h51v-51h-51zM50 461v51h51v-51h-51z" />
<glyph glyph-name="$094" unicode="^" horiz-adv-x="355"
d="M255 358v52h51v-52h-51zM50 358v52h51v-52h-51zM153 461v51h51v-51h-51z" />
<glyph glyph-name="$095" unicode="_"
d="M357 -51v51h52v-51h-52zM255 -51v51h51v-51h-51zM153 -51v51h51v-51h-51zM50 -51v51h51v-51h-51z" />
<glyph glyph-name="$096" unicode="`" horiz-adv-x="253"
d="M153 358v52h51v-52h-51zM50 461v51h51v-51h-51z" />
<glyph glyph-name="$097" unicode="a"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51z" />
<glyph glyph-name="$098" unicode="b"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 102v52h51v-52h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358
v52h52v-52h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$099" unicode="c"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$100" unicode="d"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410
v51h51v-51h-51z" />
<glyph glyph-name="$101" unicode="e"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$102" unicode="f"
d="M50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$103" unicode="g"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM255 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52z" />
<glyph glyph-name="$104" unicode="h"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52z
M50 410v51h51v-51h-51z" />
<glyph glyph-name="$105" unicode="i" horiz-adv-x="253"
d="M153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$106" unicode="j"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM357 307v51h52v-51h-52zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$107" unicode="k"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM255 307v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$108" unicode="l"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$109" unicode="m"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$110" unicode="n"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$111" unicode="o"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52z" />
<glyph glyph-name="$112" unicode="p"
d="M50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$113" unicode="q" horiz-adv-x="509"
d="M409 0v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410
v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="$114" unicode="r"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$115" unicode="s"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51z" />
<glyph glyph-name="$116" unicode="t"
d="M204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM204 205v51h51v-51h-51zM204 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$117" unicode="u"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$118" unicode="v"
d="M204 0v51h51v-51h-51zM255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM306 205v51h51v-51h-51zM101 205v51h52v-51h-52zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$119" unicode="w" horiz-adv-x="662"
d="M409 0v51h51v-51h-51zM204 0v51h51v-51h-51zM460 102v52h51v-52h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM511 205v51h51v-51h-51zM306 205v51h51v-51h-51zM101 205v51h52v-51h-52zM562 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M562 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$120" unicode="x"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM101 102v52h52v-52h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$121" unicode="y"
d="M204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$122" unicode="z"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM204 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="$123" unicode="{" horiz-adv-x="304"
d="M204 -51v51h51v-51h-51zM153 51v51h51v-51h-51zM153 154v51h51v-51h-51zM50 205v51h51v-51h-51zM153 256v51h51v-51h-51zM153 358v52h51v-52h-51zM204 461v51h51v-51h-51z" />
<glyph glyph-name="$124" unicode="|" horiz-adv-x="150"
d="M50 -51v51h51v-51h-51zM50 51v51h51v-51h-51zM50 154v51h51v-51h-51zM50 256v51h51v-51h-51zM50 358v52h51v-52h-51zM50 461v51h51v-51h-51z" />
<glyph glyph-name="$125" unicode="}" horiz-adv-x="304"
d="M50 -51v51h51v-51h-51zM101 51v51h52v-51h-52zM101 154v51h52v-51h-52zM204 205v51h51v-51h-51zM101 256v51h52v-51h-52zM101 358v52h52v-52h-52zM50 461v51h51v-51h-51z" />
<glyph glyph-name="$126" unicode="~"
d="M306 154v51h51v-51h-51zM50 154v51h51v-51h-51zM204 205v51h51v-51h-51zM357 256v51h52v-51h-52zM101 256v51h52v-51h-52z" />
<glyph glyph-name="$127" horiz-adv-x="49"
/>
<glyph glyph-name="uni0080" horiz-adv-x="49"
/>
<glyph glyph-name="uni0081" horiz-adv-x="49"
/>
<glyph glyph-name="uni0082" horiz-adv-x="49"
/>
<glyph glyph-name="uni0083" horiz-adv-x="49"
/>
<glyph glyph-name="uni0084" horiz-adv-x="49"
/>
<glyph glyph-name="uni0085" unicode="&#x85;" horiz-adv-x="49"
/>
<glyph glyph-name="uni0086" horiz-adv-x="49"
/>
<glyph glyph-name="uni0087" horiz-adv-x="49"
/>
<glyph glyph-name="uni0088" horiz-adv-x="49"
/>
<glyph glyph-name="uni0089" horiz-adv-x="49"
/>
<glyph glyph-name="uni008A" horiz-adv-x="49"
/>
<glyph glyph-name="uni008B" horiz-adv-x="49"
/>
<glyph glyph-name="uni008C" horiz-adv-x="49"
/>
<glyph glyph-name="uni008D" horiz-adv-x="49"
/>
<glyph glyph-name="uni008E" horiz-adv-x="49"
/>
<glyph glyph-name="uni008F" horiz-adv-x="49"
/>
<glyph glyph-name="uni0090" horiz-adv-x="49"
/>
<glyph glyph-name="uni0091" horiz-adv-x="49"
/>
<glyph glyph-name="uni0092" horiz-adv-x="49"
/>
<glyph glyph-name="uni0093" horiz-adv-x="49"
/>
<glyph glyph-name="uni0094" horiz-adv-x="49"
/>
<glyph glyph-name="uni0095" horiz-adv-x="49"
/>
<glyph glyph-name="uni0096" horiz-adv-x="49"
/>
<glyph glyph-name="uni0097" horiz-adv-x="49"
/>
<glyph glyph-name="uni0098" horiz-adv-x="49"
/>
<glyph glyph-name="uni0099" horiz-adv-x="49"
/>
<glyph glyph-name="uni009A" horiz-adv-x="49"
/>
<glyph glyph-name="uni009B" horiz-adv-x="49"
/>
<glyph glyph-name="uni009C" horiz-adv-x="49"
/>
<glyph glyph-name="uni009D" horiz-adv-x="49"
/>
<glyph glyph-name="uni009E" horiz-adv-x="49"
/>
<glyph glyph-name="uni009F" horiz-adv-x="49"
/>
<glyph glyph-name="uni00A0" unicode="&#xa0;" horiz-adv-x="49"
/>
<glyph glyph-name="currency" unicode="&#xa4;" horiz-adv-x="560"
d="M460 0v51h51v-51h-51zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM357 205v51h52v-51h-52zM153 205v51h51v-51h-51zM357 307v51h52v-51h-52zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM460 410v51h51v-51h-51z
M50 410v51h51v-51h-51z" />
<glyph glyph-name="section" unicode="&#xa7;"
d="M255 -102v51h51v-51h-51zM153 -102v51h51v-51h-51zM357 -51v51h52v-51h-52zM50 -51v51h51v-51h-51zM306 51v51h51v-51h-51zM204 102v52h51v-52h-51zM306 154v51h51v-51h-51zM101 154v51h52v-51h-52zM306 256v51h51v-51h-51zM101 256v51h52v-51h-52zM204 307v51h51v-51
h-51zM101 358v52h52v-52h-52zM357 461v51h52v-51h-52zM50 461v51h51v-51h-51zM255 512v51h51v-51h-51zM153 512v51h51v-51h-51z" />
<glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="304"
d="M204 461v51h51v-51h-51zM50 461v51h51v-51h-51z" />
<glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="662"
d="M460 -51v51h51v-51h-51zM357 -51v51h52v-51h-52zM255 -51v51h51v-51h-51zM153 -51v51h51v-51h-51zM562 51v51h51v-51h-51zM306 51v51h51v-51h-51zM204 51v51h51v-51h-51zM50 51v51h51v-51h-51zM409 102v52h51v-52h-51zM562 154v51h51v-51h-51zM153 154v51h51v-51h-51z
M50 154v51h51v-51h-51zM562 256v51h51v-51h-51zM153 256v51h51v-51h-51zM50 256v51h51v-51h-51zM409 307v51h51v-51h-51zM562 358v52h51v-52h-51zM306 358v52h51v-52h-51zM204 358v52h51v-52h-51zM50 358v52h51v-52h-51zM460 461v51h51v-51h-51zM357 461v51h52v-51h-52z
M255 461v51h51v-51h-51zM153 461v51h51v-51h-51z" />
<glyph glyph-name="guillemotleft" unicode="&#xab;" horiz-adv-x="355"
d="M255 154v51h51v-51h-51zM101 154v51h52v-51h-52zM204 256v51h51v-51h-51zM50 256v51h51v-51h-51zM255 358v52h51v-52h-51zM101 358v52h52v-52h-52zM255 154v51h51v-51h-51zM101 154v51h52v-51h-52zM204 256v51h51v-51h-51zM50 256v51h51v-51h-51zM255 358v52h51v-52h-51z
M101 358v52h52v-52h-52z" />
<glyph glyph-name="logicalnot" unicode="&#xac;"
d="M357 51v51h52v-51h-52zM357 154v51h52v-51h-52zM357 256v51h52v-51h-52zM255 256v51h51v-51h-51zM153 256v51h51v-51h-51zM50 256v51h51v-51h-51zM357 51v51h52v-51h-52zM357 154v51h52v-51h-52zM357 256v51h52v-51h-52zM255 256v51h51v-51h-51zM153 256v51h51v-51h-51z
M50 256v51h51v-51h-51z" />
<glyph glyph-name="uni00AD" unicode="&#xad;" horiz-adv-x="253"
d="M153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51z" />
<glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="765"
d="M562 -102v51h51v-51h-51zM460 -102v51h51v-51h-51zM357 -102v51h52v-51h-52zM255 -102v51h51v-51h-51zM153 -102v51h51v-51h-51zM613 0v51h52v-51h-52zM101 0v51h52v-51h-52zM460 51v51h51v-51h-51zM255 51v51h51v-51h-51zM665 102v52h51v-52h-51zM50 102v52h51v-52h-51z
M357 154v51h52v-51h-52zM255 154v51h51v-51h-51zM665 205v51h51v-51h-51zM460 205v51h51v-51h-51zM50 205v51h51v-51h-51zM255 256v51h51v-51h-51zM665 307v51h51v-51h-51zM460 307v51h51v-51h-51zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 358v52h51v-52h-51z
M613 410v51h52v-51h-52zM101 410v51h52v-51h-52zM562 512v51h51v-51h-51zM460 512v51h51v-51h-51zM357 512v51h52v-51h-52zM255 512v51h51v-51h-51zM153 512v51h51v-51h-51z" />
<glyph glyph-name="degree" unicode="&#xb0;" horiz-adv-x="304"
d="M101 154v51h52v-51h-52zM204 205v51h51v-51h-51zM50 256v51h51v-51h-51zM153 307v51h51v-51h-51z" />
<glyph glyph-name="plusminus" unicode="&#xb1;" horiz-adv-x="355"
d="M255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM50 102v52h51v-52h-51zM153 205v51h51v-51h-51zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51zM153 410v51h51v-51h-51zM255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM50 102v52h51v-52h-51z
M153 205v51h51v-51h-51zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="uni00B2" unicode="&#xb2;" horiz-adv-x="49"
/>
<glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="202"
d="M50 358v52h51v-52h-51zM101 461v51h52v-51h-52z" />
<glyph glyph-name="uni00B5" unicode="&#xb5;"
d="M50 -102v51h51v-51h-51zM357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM50 102v52h51v-52h-51zM306 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 -102v51h51v-51h-51zM357 0v51h52v-51h-52zM255 0v51
h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM50 102v52h51v-52h-51zM306 205v51h51v-51h-51zM50 205v51h51v-51h-51z" />
<glyph glyph-name="paragraph" unicode="&#xb6;" horiz-adv-x="560"
d="M460 -102v51h51v-51h-51zM255 -102v51h51v-51h-51zM460 0v51h51v-51h-51zM255 0v51h51v-51h-51zM460 102v52h51v-52h-51zM255 102v52h51v-52h-51zM460 205v51h51v-51h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM460 307v51h51v-51h-51z
M255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 358v52h51v-52h-51zM460 410v51h51v-51h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 461v51h51v-51h-51zM460 512v51h51v-51h-51zM357 512v51h52v-51h-52zM255 512v51h51v-51h-51zM153 512v51h51v-51h-51z
M460 -102v51h51v-51h-51zM255 -102v51h51v-51h-51zM460 0v51h51v-51h-51zM255 0v51h51v-51h-51zM460 102v52h51v-52h-51zM255 102v52h51v-52h-51zM460 205v51h51v-51h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM460 307v51h51v-51h-51z
M255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 358v52h51v-52h-51zM460 410v51h51v-51h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 461v51h51v-51h-51zM460 512v51h51v-51h-51zM357 512v51h52v-51h-52zM255 512v51h51v-51h-51zM153 512v51h51v-51h-51z
" />
<glyph glyph-name="periodcentered" unicode="&#xb7;" horiz-adv-x="150"
d="M50 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="cedilla" unicode="&#xb8;" horiz-adv-x="355"
d="M153 -154v52h51v-52h-51zM50 -154v52h51v-52h-51zM255 -102v51h51v-51h-51z" />
<glyph glyph-name="guillemotright" unicode="&#xbb;" horiz-adv-x="355"
d="M204 154v51h51v-51h-51zM50 154v51h51v-51h-51zM255 256v51h51v-51h-51zM101 256v51h52v-51h-52zM204 358v52h51v-52h-51zM50 358v52h51v-52h-51zM204 154v51h51v-51h-51zM50 154v51h51v-51h-51zM255 256v51h51v-51h-51zM101 256v51h52v-51h-52zM204 358v52h51v-52h-51z
M50 358v52h51v-52h-51z" />
<glyph glyph-name="Agrave" unicode="&#xc0;" horiz-adv-x="449"
d="M350 0v50h50v-50h-50zM50 0v50h50v-50h-50zM350 100v50h50v-50h-50zM50 100v50h50v-50h-50zM250 150v50h50v-50h-50zM150 150v50h50v-50h-50zM350 200v50h50v-50h-50zM50 200v50h50v-50h-50zM300 300v50h50v-50h-50zM100 300v50h50v-50h-50zM250 400v50h50v-50h-50z
M150 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50z" />
<glyph glyph-name="Aacute" unicode="&#xc1;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="Acircumflex" unicode="&#xc2;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM306 512v51h51v-51h-51zM101 512v51h52v-51h-52zM204 563v51h51v-51h-51z" />
<glyph glyph-name="Adieresis" unicode="&#xc4;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="765"
d="M665 0v51h51v-51h-51zM562 0v51h51v-51h-51zM460 0v51h51v-51h-51zM357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM562 205v51h51v-51h-51zM460 205v51h51v-51h-51zM357 205
v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM101 307v51h52v-51h-52zM665 410v51h51v-51h-51zM562 410v51h51v-51h-51zM460 410v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM665 0v51h51v-51h-51zM562 0v51h51
v-51h-51zM460 0v51h51v-51h-51zM357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM562 205v51h51v-51h-51zM460 205v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51z
M357 307v51h52v-51h-52zM101 307v51h52v-51h-52zM665 410v51h51v-51h-51zM562 410v51h51v-51h-51zM460 410v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="Ccedilla" unicode="&#xc7;"
d="M255 -154v52h51v-52h-51zM357 -102v51h52v-51h-52zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51z
M204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="Egrave" unicode="&#xc8;" horiz-adv-x="449"
d="M350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400
v50h50v-50h-50zM50 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50
h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100
h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM250 500h50v50h-50v-50zM150 550h50v50h-50v-50zM350 0h50v50
h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50z
M50 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50
h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM250 500h50v50h-50v-50zM150 550h50v50h-50v-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50z
M250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0
v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50
v-50zM250 500h50v50h-50v-50zM150 550h50v50h-50v-50z" />
<glyph glyph-name="Eacute" unicode="&#xc9;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51zM50 410v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="Ecircumflex" unicode="&#xca;" horiz-adv-x="449"
d="M350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400
v50h50v-50h-50zM50 400v50h50v-50h-50zM300 500v50h50v-50h-50zM100 500v50h50v-50h-50zM200 550v50h50v-50h-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50
v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 500h50v50h-50v-50zM100 500v50h50v-50h-50zM200 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50z
M150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 500
v50h50v-50h-50zM100 500h50v50h-50v-50zM200 550h50v50h-50v-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50
h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 500h50v50h-50v-50zM100 500v50h50v-50h-50zM200 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50z
M50 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 500v50h50v-50h-50zM100 500h50v50h-50v-50z
M200 550h50v50h-50v-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50
v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 500h50v50h-50v-50zM100 500v50h50v-50h-50zM200 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100h50v50h-50v-50zM250 200v50h50v-50h-50z
M150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 500v50h50v-50h-50zM100 500h50v50h-50v-50zM200 550h50v50h-50v-50z" />
<glyph glyph-name="Edieresis" unicode="&#xcb;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51zM50 410v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Iacute" unicode="&#xcd;" horiz-adv-x="253"
d="M153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM50 512v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="Icircumflex" unicode="&#xce;" horiz-adv-x="355"
d="M204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM153 102v52h51v-52h-51zM153 205v51h51v-51h-51zM153 307v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52zM255 512v51h51v-51h-51zM50 512v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="Idieresis" unicode="&#xcf;" horiz-adv-x="253"
d="M153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM153 563v51h51v-51h-51zM50 563v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102
v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM153 563v51h51v-51h-51zM50 563v51h51v-51h-51z" />
<glyph glyph-name="Eth" unicode="&#xd0;" horiz-adv-x="560"
d="M357 0v51h51v-51h-51zM255 0v51h51v-51h-51zM152 0v51h52v-51h-52zM460 102v52h51v-52h-51zM152 102v52h52v-52h-52zM460 205v51h51v-51h-51zM152 205v51h52v-51h-52zM460 307v51h51v-51h-51zM255 307v51h51v-51h-51zM152 307v51h52v-51h-52zM50 307v51h51v-51h-51z
M357 410v51h51v-51h-51zM255 410v51h51v-51h-51zM152 410v51h52v-51h-52zM357 0v51h51v-51h-51zM255 0v51h51v-51h-51zM152 0v51h52v-51h-52zM460 102v52h51v-52h-51zM152 102v52h52v-52h-52zM460 205v51h51v-51h-51zM152 205v51h52v-51h-52zM460 307v51h51v-51h-51z
M255 307v51h51v-51h-51zM152 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h51v-51h-51zM255 410v51h51v-51h-51zM152 410v51h52v-51h-52z" />
<glyph glyph-name="Ntilde" unicode="&#xd1;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM255 512v51h51v-51h-51zM50 512v51h51v-51h-51zM357 563v51h52v-51h-52zM153 563v51h51v-51h-51zM357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205
v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM255 512v51h51v-51h-51zM50 512v51h51v-51h-51zM357 563v51h52v-51h-52zM153 563v51
h51v-51h-51z" />
<glyph glyph-name="Ograve" unicode="&#xd2;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM204 512v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Oacute" unicode="&#xd3;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51z" />
<glyph glyph-name="Ocircumflex" unicode="&#xd4;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM306 512v51h51v-51h-51zM101 512v51h52v-51h-52zM204 563v51h51v-51h-51z" />
<glyph glyph-name="Odieresis" unicode="&#xd6;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="multiply" unicode="&#xd7;" horiz-adv-x="355"
d="M255 51v51h51v-51h-51zM50 51v51h51v-51h-51zM153 154v51h51v-51h-51zM255 256v51h51v-51h-51zM50 256v51h51v-51h-51z" />
<glyph glyph-name="Oslash" unicode="&#xd8;"
d="M50 -102v51h52v-51h-52zM306 0v51h52v-51h-52zM204 0v51h51v-51h-51zM102 0v51h51v-51h-51zM358 102v52h51v-52h-51zM153 102v52h51v-52h-51zM50 102v52h52v-52h-52zM358 205v51h51v-51h-51zM204 205v51h51v-51h-51zM50 205v51h52v-51h-52zM358 307v51h51v-51h-51z
M255 307v51h51v-51h-51zM50 307v51h52v-51h-52zM306 410v51h52v-51h-52zM204 410v51h51v-51h-51zM102 410v51h51v-51h-51zM358 512v51h51v-51h-51z" />
<glyph glyph-name="Ugrave" unicode="&#xd9;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 461
v51h51v-51h-51zM153 563v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51
h-52zM50 410v51h51v-51h-51zM204 461v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="Uacute" unicode="&#xda;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 461
v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="Ucircumflex" unicode="&#xdb;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 512v51h51v-51h-51zM101 512v51h52v-51h-52z
M204 563v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 512v51h51v-51h-51zM101 512
v51h52v-51h-52zM204 563v51h51v-51h-51z" />
<glyph glyph-name="Udieresis" unicode="&#xdc;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM306 563
v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Yacute" unicode="&#xdd;"
d="M204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 461v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="germandbls" unicode="&#xdf;"
d="M50 -51v51h51v-51h-51zM50 51v51h51v-51h-51zM255 102v52h51v-52h-51zM153 102v52h51v-52h-51zM357 154v51h52v-51h-52zM50 154v51h51v-51h-51zM357 256v51h52v-51h-52zM50 256v51h51v-51h-51zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM357 358v52h52v-52h-52z
M50 358v52h51v-52h-51zM357 461v51h52v-51h-52zM50 461v51h51v-51h-51zM255 512v51h51v-51h-51zM153 512v51h51v-51h-51z" />
<glyph glyph-name="agrave" unicode="&#xe0;" horiz-adv-x="449"
d="M350 0v50h50v-50h-50zM50 0v50h50v-50h-50zM350 100v50h50v-50h-50zM50 100v50h50v-50h-50zM250 150v50h50v-50h-50zM150 150v50h50v-50h-50zM350 200v50h50v-50h-50zM50 200v50h50v-50h-50zM300 300v50h50v-50h-50zM100 300v50h50v-50h-50zM250 400v50h50v-50h-50z
M150 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50z" />
<glyph glyph-name="aacute" unicode="&#xe1;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="acircumflex" unicode="&#xe2;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM306 512v51h51v-51h-51zM101 512v51h52v-51h-52zM204 563v51h51v-51h-51z" />
<glyph glyph-name="adieresis" unicode="&#xe4;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="ae" unicode="&#xe6;" horiz-adv-x="765"
d="M665 0v51h51v-51h-51zM562 0v51h51v-51h-51zM460 0v51h51v-51h-51zM357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM562 205v51h51v-51h-51zM460 205v51h51v-51h-51zM357 205
v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM101 307v51h52v-51h-52zM665 410v51h51v-51h-51zM562 410v51h51v-51h-51zM460 410v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM665 0v51h51v-51h-51zM562 0v51h51
v-51h-51zM460 0v51h51v-51h-51zM357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM562 205v51h51v-51h-51zM460 205v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51z
M357 307v51h52v-51h-52zM101 307v51h52v-51h-52zM665 410v51h51v-51h-51zM562 410v51h51v-51h-51zM460 410v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="ccedilla" unicode="&#xe7;"
d="M255 -154v52h51v-52h-51zM357 -102v51h52v-51h-52zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51z
M204 410v51h51v-51h-51zM101 410v51h52v-51h-52z" />
<glyph glyph-name="egrave" unicode="&#xe8;" horiz-adv-x="449"
d="M350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400
v50h50v-50h-50zM50 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50
h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100
h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM250 500h50v50h-50v-50zM150 550h50v50h-50v-50zM350 0h50v50
h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50z
M50 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50
h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM250 500h50v50h-50v-50zM150 550h50v50h-50v-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50z
M250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM250 500v50h50v-50h-50zM150 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0
v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50
v-50zM250 500h50v50h-50v-50zM150 550h50v50h-50v-50z" />
<glyph glyph-name="eacute" unicode="&#xe9;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51zM50 410v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="ecircumflex" unicode="&#xea;" horiz-adv-x="449"
d="M350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400
v50h50v-50h-50zM50 400v50h50v-50h-50zM300 500v50h50v-50h-50zM100 500v50h50v-50h-50zM200 550v50h50v-50h-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50
v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 500h50v50h-50v-50zM100 500v50h50v-50h-50zM200 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50z
M150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 500
v50h50v-50h-50zM100 500h50v50h-50v-50zM200 550h50v50h-50v-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50
h-50zM350 400h50v50h-50v-50zM250 400h50v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 500h50v50h-50v-50zM100 500v50h50v-50h-50zM200 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50z
M50 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 500v50h50v-50h-50zM100 500h50v50h-50v-50z
M200 550h50v50h-50v-50zM350 0h50v50h-50v-50zM250 0h50v50h-50v-50zM150 0h50v50h-50v-50zM50 0v50h50v-50h-50zM50 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200h50v50h-50v-50zM50 200v50h50v-50h-50zM50 300v50h50v-50h-50zM350 400h50v50h-50v-50zM250 400h50
v50h-50v-50zM150 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 500h50v50h-50v-50zM100 500v50h50v-50h-50zM200 550v50h50v-50h-50zM350 0v50h50v-50h-50zM250 0v50h50v-50h-50zM150 0v50h50v-50h-50zM50 0h50v50h-50v-50zM50 100h50v50h-50v-50zM250 200v50h50v-50h-50z
M150 200v50h50v-50h-50zM50 200h50v50h-50v-50zM50 300h50v50h-50v-50zM350 400v50h50v-50h-50zM250 400v50h50v-50h-50zM150 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 500v50h50v-50h-50zM100 500h50v50h-50v-50zM200 550h50v50h-50v-50z" />
<glyph glyph-name="edieresis" unicode="&#xeb;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51zM50 410v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="iacute" unicode="&#xed;" horiz-adv-x="253"
d="M153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM50 512v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="icircumflex" unicode="&#xee;" horiz-adv-x="355"
d="M204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM153 102v52h51v-52h-51zM153 205v51h51v-51h-51zM153 307v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52zM255 512v51h51v-51h-51zM50 512v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="idieresis" unicode="&#xef;" horiz-adv-x="253"
d="M153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM153 563v51h51v-51h-51zM50 563v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102
v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM153 563v51h51v-51h-51zM50 563v51h51v-51h-51z" />
<glyph glyph-name="eth" unicode="&#xf0;" horiz-adv-x="560"
d="M357 0v51h51v-51h-51zM255 0v51h51v-51h-51zM152 0v51h52v-51h-52zM460 102v52h51v-52h-51zM152 102v52h52v-52h-52zM460 205v51h51v-51h-51zM152 205v51h52v-51h-52zM460 307v51h51v-51h-51zM255 307v51h51v-51h-51zM152 307v51h52v-51h-52zM50 307v51h51v-51h-51z
M357 410v51h51v-51h-51zM255 410v51h51v-51h-51zM152 410v51h52v-51h-52zM357 0v51h51v-51h-51zM255 0v51h51v-51h-51zM152 0v51h52v-51h-52zM460 102v52h51v-52h-51zM152 102v52h52v-52h-52zM460 205v51h51v-51h-51zM152 205v51h52v-51h-52zM460 307v51h51v-51h-51z
M255 307v51h51v-51h-51zM152 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h51v-51h-51zM255 410v51h51v-51h-51zM152 410v51h52v-51h-52z" />
<glyph glyph-name="ntilde" unicode="&#xf1;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM255 512v51h51v-51h-51zM50 512v51h51v-51h-51zM357 563v51h52v-51h-52zM153 563v51h51v-51h-51zM357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205
v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM255 512v51h51v-51h-51zM50 512v51h51v-51h-51zM357 563v51h52v-51h-52zM153 563v51
h51v-51h-51z" />
<glyph glyph-name="ograve" unicode="&#xf2;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM204 512v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="oacute" unicode="&#xf3;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51z" />
<glyph glyph-name="ocircumflex" unicode="&#xf4;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM306 512v51h51v-51h-51zM101 512v51h52v-51h-52zM204 563v51h51v-51h-51z" />
<glyph glyph-name="odieresis" unicode="&#xf6;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="divide" unicode="&#xf7;"
d="M204 0v51h51v-51h-51zM357 154v51h52v-51h-52zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM50 154v51h51v-51h-51zM204 307v51h51v-51h-51z" />
<glyph glyph-name="oslash" unicode="&#xf8;"
d="M50 -102v51h52v-51h-52zM306 0v51h52v-51h-52zM204 0v51h51v-51h-51zM102 0v51h51v-51h-51zM358 102v52h51v-52h-51zM153 102v52h51v-52h-51zM50 102v52h52v-52h-52zM358 205v51h51v-51h-51zM204 205v51h51v-51h-51zM50 205v51h52v-51h-52zM358 307v51h51v-51h-51z
M255 307v51h51v-51h-51zM50 307v51h52v-51h-52zM306 410v51h52v-51h-52zM204 410v51h51v-51h-51zM102 410v51h51v-51h-51zM358 512v51h51v-51h-51z" />
<glyph glyph-name="ugrave" unicode="&#xf9;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 461
v51h51v-51h-51zM153 563v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51
h-52zM50 410v51h51v-51h-51zM204 461v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="uacute" unicode="&#xfa;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 461
v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="ucircumflex" unicode="&#xfb;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 512v51h51v-51h-51zM101 512v51h52v-51h-52z
M204 563v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 512v51h51v-51h-51zM101 512
v51h52v-51h-52zM204 563v51h51v-51h-51z" />
<glyph glyph-name="udieresis" unicode="&#xfc;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM306 563
v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="yacute" unicode="&#xfd;"
d="M204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 461v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="ydieresis" unicode="&#xff;" horiz-adv-x="449"
d="M200 0v50h50v-50h-50zM200 100v50h50v-50h-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM300 300v50h50v-50h-50zM100 300v50h50v-50h-50zM350 400v50h50v-50h-50zM50 400v50h50v-50h-50zM300 550v50h50v-50h-50zM100 550v50h50v-50h-50zM200 0v50h50v-50h-50z
M200 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200v50h50v-50h-50zM300 300h50v50h-50v-50zM100 300v50h50v-50h-50zM350 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 550h50v50h-50v-50zM100 550v50h50v-50h-50zM200 0h50v50h-50v-50zM200 100h50v50h-50v-50z
M250 200v50h50v-50h-50zM150 200h50v50h-50v-50zM300 300v50h50v-50h-50zM100 300h50v50h-50v-50zM350 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 550v50h50v-50h-50zM100 550h50v50h-50v-50zM200 0v50h50v-50h-50zM200 100v50h50v-50h-50zM250 200h50v50h-50v-50z
M150 200v50h50v-50h-50zM300 300h50v50h-50v-50zM100 300v50h50v-50h-50zM350 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 550h50v50h-50v-50zM100 550v50h50v-50h-50zM200 0h50v50h-50v-50zM200 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200h50v50h-50v-50z
M300 300v50h50v-50h-50zM100 300h50v50h-50v-50zM350 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 550v50h50v-50h-50zM100 550h50v50h-50v-50zM200 0v50h50v-50h-50zM200 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200v50h50v-50h-50zM300 300h50v50h-50v-50z
M100 300v50h50v-50h-50zM350 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 550h50v50h-50v-50zM100 550v50h50v-50h-50zM200 0h50v50h-50v-50zM200 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200h50v50h-50v-50zM300 300v50h50v-50h-50zM100 300h50v50h-50v-50z
M350 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 550v50h50v-50h-50zM100 550h50v50h-50v-50z" />
<glyph glyph-name="Abreve" unicode="&#x102;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM255 512v51h51v-51h-51zM153 512v51h51v-51h-51zM357 563v51h52v-51h-52zM50 563v51h51v-51h-51z" />
<glyph glyph-name="abreve" unicode="&#x103;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM255 512v51h51v-51h-51zM153 512v51h51v-51h-51zM357 563v51h52v-51h-52zM50 563v51h51v-51h-51z" />
<glyph glyph-name="Aogonek" unicode="&#x104;"
d="M306 -102v51h51v-51h-51zM357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52z
M255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="aogonek" unicode="&#x105;"
d="M306 -102v51h51v-51h-51zM357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM255 154v51h51v-51h-51zM153 154v51h51v-51h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM306 307v51h51v-51h-51zM101 307v51h52v-51h-52z
M255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="Cacute" unicode="&#x106;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z
M204 512v51h51v-51h-51zM306 563v51h51v-51h-51z" />
<glyph glyph-name="cacute" unicode="&#x107;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z
M204 512v51h51v-51h-51zM306 563v51h51v-51h-51z" />
<glyph glyph-name="Ccaron" unicode="&#x10c;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z
M204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="ccaron" unicode="&#x10d;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51zM101 410v51h52v-51h-52z
M204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Dcaron" unicode="&#x10e;"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410
v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51zM50 563v51h51v-51h-51z" />
<glyph glyph-name="dcaron" unicode="&#x10f;"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410
v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51zM50 563v51h51v-51h-51z" />
<glyph glyph-name="Dcroat" unicode="&#x110;" horiz-adv-x="560"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM460 102v52h51v-52h-51zM153 102v52h51v-52h-51zM460 205v51h51v-51h-51zM153 205v51h51v-51h-51zM460 307v51h51v-51h-51zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="dcroat" unicode="&#x111;" horiz-adv-x="560"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM460 102v52h51v-52h-51zM153 102v52h51v-52h-51zM460 205v51h51v-51h-51zM153 205v51h51v-51h-51zM460 307v51h51v-51h-51zM255 307v51h51v-51h-51zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="Eogonek" unicode="&#x118;"
d="M153 410v51h51v-51h-51zM306 -102v51h51v-51h-51zM357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410
v51h52v-51h-52zM255 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="eogonek" unicode="&#x119;"
d="M153 410v51h51v-51h-51zM306 -102v51h51v-51h-51zM357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410
v51h52v-51h-52zM255 410v51h51v-51h-51zM50 410v51h51v-51h-51z" />
<glyph glyph-name="Ecaron" unicode="&#x11a;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51zM50 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="ecaron" unicode="&#x11b;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410
v51h51v-51h-51zM50 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Lacute" unicode="&#x139;" horiz-adv-x="509"
d="M409 0v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM101 410v51h52v-51h-52zM50 512v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="lacute" unicode="&#x13a;" horiz-adv-x="509"
d="M409 0v51h51v-51h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM101 102v52h52v-52h-52zM101 205v51h52v-51h-52zM101 307v51h52v-51h-52zM101 410v51h52v-51h-52zM50 512v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="Lcaron" unicode="&#x13d;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM153 358v52h51v-52h-51zM50 410v51h51v-51h-51zM204 461v51h51v-51h-51z" />
<glyph glyph-name="lcaron" unicode="&#x13e;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM50 102v52h51v-52h-51zM50 205v51h51v-51h-51zM50 307v51h51v-51h-51zM50 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Lslash" unicode="&#x141;" horiz-adv-x="560"
d="M460 0v51h51v-51h-51zM357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM153 102v52h51v-52h-51zM50 154v51h51v-51h-51zM153 205v51h51v-51h-51zM255 256v51h51v-51h-51zM153 307v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="lslash" unicode="&#x142;" horiz-adv-x="560"
d="M460 0v51h51v-51h-51zM357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM153 102v52h51v-52h-51zM50 154v51h51v-51h-51zM153 205v51h51v-51h-51zM255 256v51h51v-51h-51zM153 307v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="Nacute" unicode="&#x143;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 461v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="nacute" unicode="&#x144;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 461v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="Ncaron" unicode="&#x147;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="ncaron" unicode="&#x148;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM357 102v52h52v-52h-52zM255 102v52h51v-52h-51zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM204 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM153 307v51h51v-51h-51zM50 307v51h51v-51h-51z
M357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Ohungarumlaut" unicode="&#x150;" horiz-adv-x="509"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM306 512v51h51v-51h-51zM50 512v51h51v-51h-51zM409 563v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="ohungarumlaut" unicode="&#x151;" horiz-adv-x="509"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM306 410v51h51v-51h-51zM204 410v51h51v-51h-51z
M101 410v51h52v-51h-52zM306 512v51h51v-51h-51zM50 512v51h51v-51h-51zM409 563v51h51v-51h-51zM153 563v51h51v-51h-51z" />
<glyph glyph-name="OE" unicode="&#x152;" horiz-adv-x="699"
d="M600 0v50h50v-50h-50zM500 0v50h50v-50h-50zM400 0v50h50v-50h-50zM300 0v50h50v-50h-50zM200 0v50h50v-50h-50zM100 0v50h50v-50h-50zM350 100v50h50v-50h-50zM50 100v50h50v-50h-50zM550 200v50h50v-50h-50zM450 200v50h50v-50h-50zM350 200v50h50v-50h-50zM50 200v50
h50v-50h-50zM350 300v50h50v-50h-50zM50 300v50h50v-50h-50zM600 400v50h50v-50h-50zM500 400v50h50v-50h-50zM400 400v50h50v-50h-50zM300 400v50h50v-50h-50zM200 400v50h50v-50h-50zM100 400v50h50v-50h-50z" />
<glyph glyph-name="oe" unicode="&#x153;" horiz-adv-x="699"
d="M600 0v50h50v-50h-50zM500 0v50h50v-50h-50zM400 0v50h50v-50h-50zM300 0v50h50v-50h-50zM200 0v50h50v-50h-50zM100 0v50h50v-50h-50zM350 100v50h50v-50h-50zM50 100v50h50v-50h-50zM550 200v50h50v-50h-50zM450 200v50h50v-50h-50zM350 200v50h50v-50h-50zM50 200v50
h50v-50h-50zM350 300v50h50v-50h-50zM50 300v50h50v-50h-50zM600 400v50h50v-50h-50zM500 400v50h50v-50h-50zM400 400v50h50v-50h-50zM300 400v50h50v-50h-50zM200 400v50h50v-50h-50zM100 400v50h50v-50h-50z" />
<glyph glyph-name="Racute" unicode="&#x154;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="racute" unicode="&#x155;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="Rcaron" unicode="&#x158;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="rcaron" unicode="&#x159;"
d="M357 0v51h52v-51h-52zM50 0v51h51v-51h-51zM306 102v52h51v-52h-51zM50 102v52h51v-52h-51zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 205v51h51v-51h-51zM357 256v51h52v-51h-52zM50 307v51h51v-51h-51zM357 358v52h52v-52h-52zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Sacute" unicode="&#x15a;"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="sacute" unicode="&#x15b;"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM153 512v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="Scedilla" unicode="&#x15e;"
d="M204 -154v52h51v-52h-51zM101 -154v52h52v-52h-52zM306 -102v51h51v-51h-51zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51z
M357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="scedilla" unicode="&#x15f;"
d="M204 -154v52h51v-52h-51zM101 -154v52h52v-52h-52zM306 -102v51h51v-51h-51zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51z
M357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51z" />
<glyph glyph-name="Scaron" unicode="&#x160;"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="scaron" unicode="&#x161;"
d="M255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM357 51v51h52v-51h-52zM50 51v51h51v-51h-51zM357 154v51h52v-51h-52zM255 205v51h51v-51h-51zM153 205v51h51v-51h-51zM50 256v51h51v-51h-51zM357 358v52h52v-52h-52zM50 358v52h51v-52h-51zM255 410v51h51v-51h-51z
M153 410v51h51v-51h-51zM204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="Tcommaaccent" unicode="&#x162;"
d="M255 -154v52h51v-52h-51zM153 -154v52h51v-52h-51zM306 -51v51h51v-51h-51zM204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM204 205v51h51v-51h-51zM204 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51
z" />
<glyph glyph-name="tcommaaccent" unicode="&#x163;"
d="M255 -154v52h51v-52h-51zM153 -154v52h51v-52h-51zM306 -51v51h51v-51h-51zM204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM204 205v51h51v-51h-51zM204 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51
z" />
<glyph glyph-name="Tcaron" unicode="&#x164;"
d="M204 512v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52zM204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM204 205v51h51v-51h-51zM204 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51z
" />
<glyph glyph-name="tcaron" unicode="&#x165;" horiz-adv-x="611"
d="M204 0v51h51v-51h-51zM204 102v52h51v-52h-51zM204 205v51h51v-51h-51zM204 307v51h51v-51h-51zM460 358v52h51v-52h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM511 461v51h51v-51h-51z" />
<glyph glyph-name="Uring" unicode="&#x16e;"
d="M255 459v53h51v-53h-51zM153 510v51h51v-51h-51zM306 561v51h51v-51h-51zM204 612v52h51v-52h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51z
M357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="uring" unicode="&#x16f;"
d="M255 459v53h51v-53h-51zM153 510v51h51v-51h-51zM306 561v51h51v-51h-51zM204 612v52h51v-52h-51zM306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51z
M357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51z" />
<glyph glyph-name="Uhungarumlaut" unicode="&#x170;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM255 461
v51h51v-51h-51zM153 461v51h51v-51h-51zM306 563v51h51v-51h-51zM204 563v51h51v-51h-51z" />
<glyph glyph-name="uhungarumlaut" unicode="&#x171;"
d="M306 0v51h51v-51h-51zM204 0v51h51v-51h-51zM101 0v51h52v-51h-52zM357 102v52h52v-52h-52zM50 102v52h51v-52h-51zM357 205v51h52v-51h-52zM50 205v51h51v-51h-51zM357 307v51h52v-51h-52zM50 307v51h51v-51h-51zM357 410v51h52v-51h-52zM50 410v51h51v-51h-51zM255 461
v51h51v-51h-51zM153 461v51h51v-51h-51zM306 563v51h51v-51h-51zM204 563v51h51v-51h-51z" />
<glyph glyph-name="Ydieresis" unicode="&#x178;" horiz-adv-x="449"
d="M200 0v50h50v-50h-50zM200 100v50h50v-50h-50zM250 200v50h50v-50h-50zM150 200v50h50v-50h-50zM300 300v50h50v-50h-50zM100 300v50h50v-50h-50zM350 400v50h50v-50h-50zM50 400v50h50v-50h-50zM300 550v50h50v-50h-50zM100 550v50h50v-50h-50zM200 0v50h50v-50h-50z
M200 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200v50h50v-50h-50zM300 300h50v50h-50v-50zM100 300v50h50v-50h-50zM350 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 550h50v50h-50v-50zM100 550v50h50v-50h-50zM200 0h50v50h-50v-50zM200 100h50v50h-50v-50z
M250 200v50h50v-50h-50zM150 200h50v50h-50v-50zM300 300v50h50v-50h-50zM100 300h50v50h-50v-50zM350 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 550v50h50v-50h-50zM100 550h50v50h-50v-50zM200 0v50h50v-50h-50zM200 100v50h50v-50h-50zM250 200h50v50h-50v-50z
M150 200v50h50v-50h-50zM300 300h50v50h-50v-50zM100 300v50h50v-50h-50zM350 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 550h50v50h-50v-50zM100 550v50h50v-50h-50zM200 0h50v50h-50v-50zM200 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200h50v50h-50v-50z
M300 300v50h50v-50h-50zM100 300h50v50h-50v-50zM350 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 550v50h50v-50h-50zM100 550h50v50h-50v-50zM200 0v50h50v-50h-50zM200 100v50h50v-50h-50zM250 200h50v50h-50v-50zM150 200v50h50v-50h-50zM300 300h50v50h-50v-50z
M100 300v50h50v-50h-50zM350 400h50v50h-50v-50zM50 400v50h50v-50h-50zM300 550h50v50h-50v-50zM100 550v50h50v-50h-50zM200 0h50v50h-50v-50zM200 100h50v50h-50v-50zM250 200v50h50v-50h-50zM150 200h50v50h-50v-50zM300 300v50h50v-50h-50zM100 300h50v50h-50v-50z
M350 400v50h50v-50h-50zM50 400h50v50h-50v-50zM300 550v50h50v-50h-50zM100 550h50v50h-50v-50z" />
<glyph glyph-name="Zacute" unicode="&#x179;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM204 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM153 512
v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="zacute" unicode="&#x17a;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM204 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM153 512
v51h51v-51h-51zM255 563v51h51v-51h-51z" />
<glyph glyph-name="Zdotaccent" unicode="&#x17b;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM204 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM204 563
v51h51v-51h-51z" />
<glyph glyph-name="zdotaccent" unicode="&#x17c;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM204 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM204 563
v51h51v-51h-51z" />
<glyph glyph-name="Zcaron" unicode="&#x17d;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM204 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM204 512
v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="zcaron" unicode="&#x17e;"
d="M357 0v51h52v-51h-52zM255 0v51h51v-51h-51zM153 0v51h51v-51h-51zM50 0v51h51v-51h-51zM101 102v52h52v-52h-52zM204 205v51h51v-51h-51zM306 307v51h51v-51h-51zM357 410v51h52v-51h-52zM255 410v51h51v-51h-51zM153 410v51h51v-51h-51zM50 410v51h51v-51h-51zM204 512
v51h51v-51h-51zM306 563v51h51v-51h-51zM101 563v51h52v-51h-52z" />
<glyph glyph-name="caron" unicode="&#x2c7;" horiz-adv-x="355"
d="M153 358v52h51v-52h-51zM255 461v51h51v-51h-51zM50 461v51h51v-51h-51z" />
<glyph glyph-name="breve" unicode="&#x2d8;" horiz-adv-x="355"
d="M204 358v52h51v-52h-51zM101 358v52h52v-52h-52zM255 461v51h51v-51h-51zM50 461v51h51v-51h-51z" />
<glyph glyph-name="dotaccent" unicode="&#x2d9;" horiz-adv-x="49"
/>
<glyph glyph-name="ogonek" unicode="&#x2db;" horiz-adv-x="304"
d="M204 -102v51h51v-51h-51zM101 -102v51h52v-51h-52zM50 0v51h51v-51h-51z" />
<glyph glyph-name="hungarumlaut" unicode="&#x2dd;" horiz-adv-x="355"
d="M204 358v52h51v-52h-51zM50 358v52h51v-52h-51zM255 461v51h51v-51h-51zM101 461v51h52v-51h-52z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
www/css/LED.eot Normal file

Binary file not shown.

519
www/css/LED.svg Normal file
View File

@ -0,0 +1,519 @@
<?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>
<metadata>
Created by FontForge 20110222 at Mon Mar 7 11:46:57 2011
By www-data
</metadata>
<defs>
<font id="LED" horiz-adv-x="463" >
<font-face
font-family="LED"
font-weight="500"
font-stretch="normal"
units-per-em="1000"
panose-1="0 0 0 0 0 0 0 0 0 0"
ascent="800"
descent="-200"
x-height="700"
cap-height="700"
bbox="-91 -200 898 863"
underline-thickness="20"
underline-position="-190"
unicode-range="U+0020-2122"
/>
<missing-glyph />
<glyph glyph-name="space" unicode=" " horiz-adv-x="282"
/>
<glyph glyph-name="exclam" unicode="!" horiz-adv-x="168"
d="M140 217l-112 70v301l112 112v-483zM140 0h-112v175h112v-175z" />
<glyph glyph-name="quotedbl" unicode="&#x22;" horiz-adv-x="325"
d="M303 413h-111v287h111v-287zM133 413h-112v287h112v-287z" />
<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="569"
d="M523 482l-10 -48h-111l-36 -168h111l-9 -48h-112l-44 -204h-48l43 204h-101l-44 -204h-47l42 204h-111l10 48h112l35 168h-112l10 48h113l43 204h48l-43 -204h102l42 204h48l-43 -204h112zM353 434h-101l-36 -168h102z" />
<glyph glyph-name="dollar" unicode="$" horiz-adv-x="462"
d="M289 732l-56 -62l-58 59v54l59 58l55 -56v-53zM434 700l-124 -112h-156l-63 63l51 49h32l59 -55l55 55h146zM142 428l-113 -70v229l49 53l64 -65v-147zM405 350l-98 -49h-155l-96 50l97 62h155zM434 114l-48 -53l-63 65v163l111 54v-229zM371 48l-48 -48h-39l-52 52
l-60 -52h-144l126 112h156zM285 -89l-55 -54l-60 63v47l60 57l55 -60v-53z" />
<glyph glyph-name="percent" unicode="%" horiz-adv-x="810"
d="M286 649l-63 -61h-81l-62 61l48 51h111zM350 474l-52 -48l-61 61v86l61 64l52 -50v-113zM128 488l-64 -63l-50 48v114l52 50l62 -64v-85zM685 700l-225 -367l-61 112l154 255h132zM285 410l-48 -46h-111l-48 46l64 63h81zM732 288l-62 -61h-81l-63 61l49 50h110zM796 113
l-51 -49l-61 62v86l62 63l50 -49v-113zM576 126l-66 -63l-49 49v114l51 49l64 -64v-85zM448 313l-187 -313h-131l190 313h128zM731 49l-47 -49h-110l-49 49l64 63h81z" />
<glyph glyph-name="ampersand" unicode="&#x26;" horiz-adv-x="561"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM140 427l-112 -70v231l49 49l63 -63v-147zM433 430l-56 -61l-55 62v73l63 64l48 -64v-74zM575 351l-92 -50h-36l-55 56l55 56h37zM363 357l-54 -56h-86l-98 51l99 61h85zM432 113l-47 -48l-63 61v162l55 55l55 -56v-174zM140 126
l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="quotesingle" unicode="'" horiz-adv-x="155"
d="M133 413h-112v287h112v-287z" />
<glyph glyph-name="parenleft" unicode="(" horiz-adv-x="280"
d="M266 700l-70 -112h-41l-64 63l49 49h126zM140 427l-112 -70v231l49 49l63 -63v-147zM140 126l-63 -63l-49 49v231l112 -56v-161zM266 0h-126l-49 49l64 63h41z" />
<glyph glyph-name="parenright" unicode=")" horiz-adv-x="280"
d="M189 651l-64 -63h-41l-70 112h126zM252 357l-112 56v161l62 63l50 -49v-231zM252 112l-50 -49l-62 63v147l112 70v-231zM189 49l-49 -49h-126l70 112h41z" />
<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="425"
d="M268 576l-58 -40l-55 43v135l57 40l56 -43v-135zM198 456l-119 -73l-65 28l6 69l129 75l49 -35v-64zM411 416l-54 -35l-135 74v67l50 31l130 -70z" />
<glyph glyph-name="plus" unicode="+" horiz-adv-x="465"
d="M286 422l-54 -58l-59 59v95l113 50v-146zM451 406l-47 -112h-104l-50 56l57 56h144zM217 351l-58 -57h-145l48 112h99zM286 182l-111 -49v147l57 56l54 -56v-98z" />
<glyph glyph-name="comma" unicode="," horiz-adv-x="155"
d="M133 -112h-112v287h112v-287z" />
<glyph glyph-name="hyphen" unicode="-" horiz-adv-x="335"
d="M322 408l-85 -110h-223l83 110h225z" />
<glyph glyph-name="period" unicode="." horiz-adv-x="200"
d="M163 0h-112v175h112v-175z" />
<glyph glyph-name="slash" unicode="/" horiz-adv-x="583"
d="M570 700l-226 -367l-62 112l155 255h133zM332 313l-187 -313h-131l189 313h129z" />
<glyph glyph-name="zero" unicode="0"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="one" unicode="1" horiz-adv-x="461"
d="M336 357l-111 70v147l111 112v-329zM336 14l-111 112v161l111 56v-329z" />
<glyph glyph-name="two" unicode="2"
d="M371 651l-63 -63h-273l105 112h182zM435 357l-113 70v147l63 63l50 -49v-231zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-63 -63l-49 49v231l112 -56v-161zM435 0h-295l-49 49l64 63h153z" />
<glyph glyph-name="three" unicode="3" horiz-adv-x="462"
d="M357 651l-63 -63h-154l-126 112h293zM420 357l-113 70v147l63 63l50 -49v-231zM392 350l-98 -49h-154l-98 49l98 63h154zM420 112l-50 -49l-63 63v161l113 56v-231zM357 49l-50 -49h-293l126 112h154z" />
<glyph glyph-name="four" unicode="4"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343z" />
<glyph glyph-name="five" unicode="5" horiz-adv-x="470"
d="M441 700l-126 -112h-154l-63 63l49 49h294zM147 427l-112 -70v231l50 49l62 -63v-147zM413 350l-98 -49h-154l-98 49l98 63h154zM441 112l-49 -49l-62 63v161l111 56v-231zM378 49l-48 -49h-302l133 112h154z" />
<glyph glyph-name="six" unicode="6"
d="M435 700l-127 -112h-153l-64 63l49 49h295zM140 427l-112 -70v231l49 49l63 -63v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="seven" unicode="7" horiz-adv-x="462"
d="M378 700l-112 -112h-154l-112 112h378zM392 357l-112 70v147l112 112v-329zM392 0l-112 112v175l112 56v-343z" />
<glyph glyph-name="eight" unicode="8"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49
l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="nine" unicode="9"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 56v161l63 63l50 -49v-231zM140 413l-112 -56v231l49 49l63 -63v-161zM406 350l-98 -63h-153l-99 63l99 49h153zM435 112l-50 -49l-63 63v147l113 70v-231zM371 49l-49 -49h-294l127 112h153z" />
<glyph glyph-name="colon" unicode=":" horiz-adv-x="168"
d="M140 315h-112v175h112v-175zM140 0h-112v175h112v-175z" />
<glyph glyph-name="semicolon" unicode=";" horiz-adv-x="168"
d="M140 315h-112v175h112v-175zM140 -112h-112v287h112v-287z" />
<glyph glyph-name="less" unicode="&#x3c;" horiz-adv-x="307"
d="M283 583l-132 -222h-127l196 339h63v-117zM283 0h-68l-194 339h130l132 -229v-110z" />
<glyph glyph-name="equal" unicode="="
d="M406 425l-98 -49h-153l-99 49l99 63h153zM406 260l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="greater" unicode="&#x3e;" horiz-adv-x="316"
d="M286 361h-127l-132 222v117h63zM289 339l-194 -339h-68v110l132 229h130z" />
<glyph glyph-name="question" unicode="?" horiz-adv-x="406"
d="M315 651l-63 -63h-154l-98 112h266zM378 357l-112 70v147l63 63l49 -49v-231zM350 350l-98 -49h-154v112h154zM210 0h-112v175h112v-175z" />
<glyph glyph-name="at" unicode="@" horiz-adv-x="756"
d="M700 351q-15 -90 -62 -148q-43 -53 -97 -61q-6 -1 -17 -1q-38 0 -60.5 23.5t-22.5 59.5q-6 -20 -19 -35q-35 -41 -80 -41q-22 0 -47 11q-75 34 -75 173l4 35q13 91 63 149t107 58t84 -52l5 -10l9 56l48 -1l-37 -209l-14 -85q-1 -8 -1.5 -17t-0.5 -13q0 -19 4 -31.5
t14 -20.5t25 -8q7 0 18 4t22.5 12.5t29.5 30.5t31.5 54.5t18.5 67t5 63.5q0 111 -68.5 181.5t-175.5 70.5q-22 0 -46 -3q-107 -15 -179 -104t-72 -211v-23q2 -11 2 -15l9 -54q27 -105 102 -166t172 -61q84 0 160 47q24 14 48 35q31 26 52 55l20 -35l-25 -28
q-112 -118 -258 -118q-150 0 -245 110t-95 278q0 52 20 105q17 47 49 91q46 61 107.5 98t132.5 45q11 2 23 2h19q130 0 214.5 -84.5t84.5 -215.5q0 -31 -6 -64zM462 471q-4 27 -22.5 43t-42.5 16q-15 0 -25 -5q-26 -11 -42 -33q-19 -26 -35 -75l-13 -48q-4 -24 -5 -44
t-1 -42q0 -18 3.5 -33t9.5 -27q16 -36 56 -36q25 0 44 19q14 14 23.5 31t22.5 53l17 73l2 9l7 41q1 10 1.5 20.5t0.5 15.5q0 15 -1 22z" />
<glyph glyph-name="A" unicode="A"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="B" unicode="B"
d="M371 651l-63 -63h-153l-113 112h280zM140 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM406 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-112 -112v329l112 -56v-161zM371 49l-49 -49h-280
l113 112h153z" />
<glyph glyph-name="C" unicode="C" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-64 63l49 49h280zM140 413l-112 -56v231l49 49l63 -63v-161zM140 126l-63 -63l-49 49v231l112 -70v-147zM420 0h-280l-49 49l64 63h153z" />
<glyph glyph-name="D" unicode="D"
d="M371 651l-63 -63h-153l-113 112h280zM140 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-112 -112v329l112 -56v-161zM371 49l-49 -49h-280l113 112h153z" />
<glyph glyph-name="E" unicode="E" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153z" />
<glyph glyph-name="F" unicode="F" horiz-adv-x="413"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="G" unicode="G"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM140 427l-112 -70v231l49 49l63 -63v-147zM406 350l-98 -49h-70l-98 49l98 63h70zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="H" unicode="H"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="I" unicode="I" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343z" />
<glyph glyph-name="J" unicode="J"
d="M435 357l-113 70v161l113 112v-343zM435 14l-113 112v161l113 56v-329zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153z" />
<glyph glyph-name="K" unicode="K"
d="M435 624l-114 -189l-129 -1l162 266h81v-76zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="L" unicode="L"
d="M140 427l-112 -70v343l112 -112v-161zM435 14l-113 112v161l113 56v-329zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153z" />
<glyph glyph-name="M" unicode="M" horiz-adv-x="756"
d="M715 700l-113 -112h-156l-68 70l-69 -70h-156l-111 112h673zM140 427l-112 -70v329l112 -112v-147zM728 357l-112 70v147l112 111v-328zM434 399l-56 -42l-56 42v175l55 57l57 -57v-175zM728 0l-112 112v175l112 56v-343zM435 112l-57 -112l-56 112v175l56 56l57 -56
v-175zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="N" unicode="N"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 0l-113 126v161l113 56v-343zM140 98l-112 -98v343l112 -56v-189z" />
<glyph glyph-name="O" unicode="O"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="P" unicode="P"
d="M371 651l-63 -63h-153l-113 112h280zM140 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM406 350l-98 -49h-153l-99 49l99 63h153zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="Q" unicode="Q" horiz-adv-x="464"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 144l-50 -50l-63 63v130l113 56v-199zM140 123l-63 -60l-49 49v231l112 -56v-164zM265 0h-125l-51 51l67 60zM436 -143l-255 255h159
l96 -95v-160z" />
<glyph glyph-name="R" unicode="R"
d="M371 651l-63 -63h-153l-113 112h280zM140 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM406 350l-98 -49h-153l-99 49l99 63h153zM140 112l-112 -112v343l112 -56v-175zM491 0l-164 111l-72 170h57l49 23z" />
<glyph glyph-name="S" unicode="S"
d="M435 700l-127 -112h-153l-64 63l49 49h295zM140 427l-112 -70v231l49 49l63 -63v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49l-63 63v161l113 56v-231zM371 49l-49 -49h-294l127 112h153z" />
<glyph glyph-name="T" unicode="T" horiz-adv-x="379"
d="M393 700l-78 -112h-55l-68 70l-72 -70h-57l-77 112h407zM246 419l-55 -62l-59 62v152l59 64l55 -63v-153zM246 62l-56 -62l-60 62v219l60 63l56 -63v-219z" />
<glyph glyph-name="U" unicode="U"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="V" unicode="V"
d="M435 357l-113 70v189l113 84v-343zM140 427l-112 -70v343l112 -84v-189zM435 344l-127 -344l-67 137l56 157zM227 135l-70 -135l-129 344l140 -51zM286 0h-110l57 111z" />
<glyph glyph-name="W" unicode="W" horiz-adv-x="757"
d="M728 357l-112 56v175l112 112v-343zM435 413l-57 -56l-56 56v175l56 112l57 -112v-175zM140 413l-112 -56v343l112 -112v-175zM435 126l-56 -57l-56 57v175l55 42l57 -42v-175zM729 113l-50 -48l-65 64v145l115 70v-231zM140 128l-64 -63l-48 48v232l112 -72v-145z
M666 52l-51 -52h-477l-49 51l63 61h158l68 -68l68 68h156z" />
<glyph glyph-name="X" unicode="X" horiz-adv-x="437"
d="M424 583l-132 -222h-63v111l132 228h63v-117zM209 361h-62l-133 228v111h68l127 -228v-111zM424 0h-68l-128 224v115h64l132 -229v-110zM209 224l-130 -224h-65v115l130 224h65v-115z" />
<glyph glyph-name="Y" unicode="Y"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM289 63l-58 -63l-57 63v217h115v-217z" />
<glyph glyph-name="Z" unicode="Z" horiz-adv-x="436"
d="M337 700l-66 -112h-145l-111 112h322zM422 585l-150 -256l-70 105l158 266h62v-115zM265 313l-162 -313h-89v106l126 216zM421 0h-299l59 112h127z" />
<glyph glyph-name="bracketleft" unicode="[" horiz-adv-x="287"
d="M280 700l-112 -112h-13l-113 112h238zM140 427l-112 -70v329l112 -112v-147zM140 126l-112 -112v329l112 -56v-161zM280 0h-238l113 112h13z" />
<glyph glyph-name="backslash" unicode="\" horiz-adv-x="583"
d="M298 445l-62 -112l-226 367h133zM566 0h-131l-187 313h129z" />
<glyph glyph-name="bracketright" unicode="]" horiz-adv-x="287"
d="M245 700l-112 -112h-14l-112 112h238zM259 357l-112 56v161l112 112v-329zM259 14l-112 112v147l112 70v-329zM245 0h-238l112 112h14z" />
<glyph glyph-name="asciicircum" unicode="^" horiz-adv-x="464"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147z" />
<glyph glyph-name="underscore" unicode="_" horiz-adv-x="354"
d="M354 -200h-354l-2 41h355z" />
<glyph glyph-name="grave" unicode="`"
d="M406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="a" unicode="a"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="b" unicode="b"
d="M371 651l-63 -63h-153l-113 112h280zM140 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM406 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-112 -112v329l112 -56v-161zM371 49l-49 -49h-280
l113 112h153z" />
<glyph glyph-name="c" unicode="c" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-64 63l49 49h280zM140 413l-112 -56v231l49 49l63 -63v-161zM140 126l-63 -63l-49 49v231l112 -70v-147zM420 0h-280l-49 49l64 63h153z" />
<glyph glyph-name="d" unicode="d"
d="M371 651l-63 -63h-153l-113 112h280zM140 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-112 -112v329l112 -56v-161zM371 49l-49 -49h-280l113 112h153z" />
<glyph glyph-name="e" unicode="e" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153z" />
<glyph glyph-name="f" unicode="f" horiz-adv-x="413"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="g" unicode="g"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM140 427l-112 -70v231l49 49l63 -63v-147zM406 350l-98 -49h-70l-98 49l98 63h70zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="h" unicode="h"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="i" unicode="i" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343z" />
<glyph glyph-name="j" unicode="j"
d="M435 357l-113 70v161l113 112v-343zM435 14l-113 112v161l113 56v-329zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153z" />
<glyph glyph-name="k" unicode="k"
d="M435 624l-114 -189l-129 -1l162 266h81v-76zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="l" unicode="l"
d="M140 427l-112 -70v343l112 -112v-161zM435 14l-113 112v161l113 56v-329zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153z" />
<glyph glyph-name="m" unicode="m" horiz-adv-x="756"
d="M715 700l-113 -112h-156l-68 70l-69 -70h-156l-111 112h673zM140 427l-112 -70v329l112 -112v-147zM728 357l-112 70v147l112 111v-328zM434 399l-56 -42l-56 42v175l55 57l57 -57v-175zM728 0l-112 112v175l112 56v-343zM435 112l-57 -112l-56 112v175l56 56l57 -56
v-175zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="n" unicode="n"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 0l-113 126v161l113 56v-343zM140 98l-112 -98v343l112 -56v-189z" />
<glyph glyph-name="o" unicode="o"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="p" unicode="p"
d="M371 651l-63 -63h-153l-113 112h280zM140 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM406 350l-98 -49h-153l-99 49l99 63h153zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="q" unicode="q" horiz-adv-x="464"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 144l-50 -50l-63 63v130l113 56v-199zM140 123l-63 -60l-49 49v231l112 -56v-164zM265 0h-125l-51 51l67 60zM436 -143l-255 255h159
l96 -95v-160z" />
<glyph glyph-name="r" unicode="r"
d="M371 651l-63 -63h-153l-113 112h280zM140 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM406 350l-98 -49h-153l-99 49l99 63h153zM140 112l-112 -112v343l112 -56v-175zM491 0l-164 111l-72 170h57l49 23z" />
<glyph glyph-name="s" unicode="s"
d="M435 700l-127 -112h-153l-64 63l49 49h295zM140 427l-112 -70v231l49 49l63 -63v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49l-63 63v161l113 56v-231zM371 49l-49 -49h-294l127 112h153z" />
<glyph glyph-name="t" unicode="t" horiz-adv-x="379"
d="M393 700l-78 -112h-55l-68 70l-72 -70h-57l-77 112h407zM246 419l-55 -62l-59 62v152l59 64l55 -63v-153zM246 62l-56 -62l-60 62v219l60 63l56 -63v-219z" />
<glyph glyph-name="u" unicode="u"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="v" unicode="v"
d="M435 357l-113 70v189l113 84v-343zM140 427l-112 -70v343l112 -84v-189zM435 344l-127 -344l-67 137l56 157zM227 135l-70 -135l-129 344l140 -51zM286 0h-110l57 111z" />
<glyph glyph-name="w" unicode="w" horiz-adv-x="757"
d="M728 357l-112 56v175l112 112v-343zM435 413l-57 -56l-56 56v175l56 112l57 -112v-175zM140 413l-112 -56v343l112 -112v-175zM435 126l-56 -57l-56 57v175l55 42l57 -42v-175zM729 113l-50 -48l-65 64v145l115 70v-231zM140 128l-64 -63l-48 48v232l112 -72v-145z
M666 52l-51 -52h-477l-49 51l63 61h158l68 -68l68 68h156z" />
<glyph glyph-name="x" unicode="x" horiz-adv-x="437"
d="M424 583l-132 -222h-63v111l132 228h63v-117zM209 361h-62l-133 228v111h68l127 -228v-111zM424 0h-68l-128 224v115h64l132 -229v-110zM209 224l-130 -224h-65v115l130 224h65v-115z" />
<glyph glyph-name="y" unicode="y"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM289 63l-58 -63l-57 63v217h115v-217z" />
<glyph glyph-name="z" unicode="z" horiz-adv-x="436"
d="M337 700l-66 -112h-145l-111 112h322zM422 585l-150 -256l-70 105l158 266h62v-115zM265 313l-162 -313h-89v106l126 216zM421 0h-299l59 112h127z" />
<glyph glyph-name="braceleft" unicode="{" horiz-adv-x="280"
d="M266 700l-70 -112h-41l-64 63l49 49h126zM140 427l-112 -70v231l49 49l63 -63v-147zM140 126l-63 -63l-49 49v231l112 -56v-161zM266 0h-126l-49 49l64 63h41z" />
<glyph glyph-name="bar" unicode="|" horiz-adv-x="168"
d="M140 427l-112 -70v343l112 -112v-161zM140 112l-112 -112v343l112 -56v-175z" />
<glyph glyph-name="braceright" unicode="}" horiz-adv-x="280"
d="M189 651l-64 -63h-41l-70 112h126zM252 357l-112 56v161l62 63l50 -49v-231zM252 112l-50 -49l-62 63v147l112 70v-231zM189 49l-49 -49h-126l70 112h41z" />
<glyph glyph-name="asciitilde" unicode="~" horiz-adv-x="578"
d="M555 470h-288l113 112h63zM300 580l-112 -112h-58l-113 112h283z" />
<glyph glyph-name="Adieresis" unicode="&#xc4;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM401 800l-82 -49l-77 49l77 63z
M215 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="Aring" unicode="&#xc5;"
d="M352 800l-98 -49h-70l-98 49l98 63h70zM420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175z
" />
<glyph glyph-name="Ccedilla" unicode="&#xc7;" horiz-adv-x="420"
d="M287 -145l-70 67l70 69v-136zM420 700l-112 -112h-153l-64 63l49 49h280zM140 413l-112 -56v231l49 49l63 -63v-161zM140 126l-63 -63l-49 49v231l112 -70v-147zM420 0h-280l-49 49l64 63h153z" />
<glyph glyph-name="Eacute" unicode="&#xc9;" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153zM391 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Ntilde" unicode="&#xd1;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 0l-113 126v161l113 56v-343zM140 98l-112 -98v343l112 -56v-189zM406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Odieresis" unicode="&#xd6;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM401 800
l-82 -49l-77 49l77 63zM215 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="Udieresis" unicode="&#xdc;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM401 800l-82 -49l-77 49l77 63zM215 800l-82 -49l-77 49l77 63z
" />
<glyph glyph-name="aacute" unicode="&#xe1;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM403 800l-98 -49h-153l-99 49l99 63
h153z" />
<glyph glyph-name="agrave" unicode="&#xe0;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM406 800l-98 -49h-153l-99 49l99 63
h153z" />
<glyph glyph-name="acircumflex" unicode="&#xe2;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM406 800l-98 -49h-153l-99 49l99 63
h153z" />
<glyph glyph-name="adieresis" unicode="&#xe4;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM401 800l-82 -49l-77 49l77 63z
M215 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="atilde" unicode="&#xe3;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM406 800l-98 -49h-153l-99 49l99 63
h153z" />
<glyph glyph-name="aring" unicode="&#xe5;"
d="M352 800l-98 -49h-70l-98 49l98 63h70zM420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175z
" />
<glyph glyph-name="ccedilla" unicode="&#xe7;" horiz-adv-x="420"
d="M287 -145l-70 67l70 69v-136zM420 700l-112 -112h-153l-64 63l49 49h280zM140 413l-112 -56v231l49 49l63 -63v-161zM140 126l-63 -63l-49 49v231l112 -70v-147zM420 0h-280l-49 49l64 63h153z" />
<glyph glyph-name="eacute" unicode="&#xe9;" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153zM391 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="egrave" unicode="&#xe8;" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153zM388 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="ecircumflex" unicode="&#xea;" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153zM396 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="edieresis" unicode="&#xeb;" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153zM386 800l-82 -49l-77 49l77 63zM200 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="iacute" unicode="&#xed;" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343zM265 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="igrave" unicode="&#xec;" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343zM268 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="icircumflex" unicode="&#xee;" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343zM271 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="idieresis" unicode="&#xef;" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343zM254 800l-82 -49l-77 49l77 63zM68 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="ntilde" unicode="&#xf1;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 0l-113 126v161l113 56v-343zM140 98l-112 -98v343l112 -56v-189zM406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="oacute" unicode="&#xf3;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800
l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="ograve" unicode="&#xf2;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800
l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="ocircumflex" unicode="&#xf4;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800
l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="odieresis" unicode="&#xf6;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM401 800
l-82 -49l-77 49l77 63zM215 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="otilde" unicode="&#xf5;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800
l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="uacute" unicode="&#xfa;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="ugrave" unicode="&#xf9;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="ucircumflex" unicode="&#xfb;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM403 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="udieresis" unicode="&#xfc;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM401 800l-82 -49l-77 49l77 63zM215 800l-82 -49l-77 49l77 63z
" />
<glyph glyph-name="dagger" unicode="&#x2020;" horiz-adv-x="0"
/>
<glyph glyph-name="degree" unicode="&#xb0;" horiz-adv-x="416"
/>
<glyph glyph-name="cent" unicode="&#xa2;" horiz-adv-x="436"
d="M283 733l-60 -58l-54 56v55l56 54l58 -53v-54zM422 700l-115 -112h-152l-61 61l46 51h30l54 -55l56 55h142zM140 412l-111 -54v229l50 50l61 -64v-161zM140 123l-63 -62l-49 49v234l112 -71v-150zM421 0h-139l-56 54l-56 -54h-31l-46 46l63 66h153zM282 -87l-56 -58
l-57 60v54l57 55l56 -55v-56z" />
<glyph glyph-name="sterling" unicode="&#xa3;" horiz-adv-x="532"
d="M490 700l-93 -112h-157l-62 61l50 51h262zM227 430l-55 -61l-57 59v160l48 48l64 -63v-143zM367 351l-95 -50h-32l-54 56l54 56h33zM156 358l-53 -57h-35l-82 57l67 55h49zM227 124l-113 -124v286l56 58l57 -58v-162zM518 0h-378l102 112h181z" />
<glyph glyph-name="section" unicode="&#xa7;"
d="M435 700l-127 -112h-153l-64 63l49 49h295zM140 471l-112 -70v187l49 49l63 -63v-103zM409 395l-102 -49h-153l-97 49l97 63h162zM140 171l-113 -56v274l113 -57v-161zM434 115l-112 56v161l112 55v-272zM406 108l-99 -63h-153l-98 63l98 49h153zM434 -70l-49 -49l-63 63
v87l112 70v-171zM371 -133l-49 -49h-295l127 112h153z" />
<glyph glyph-name="bullet" unicode="&#x2022;" horiz-adv-x="354"
d="M308 350q0 -55 -38 -93t-93 -38t-93 38t-38 93t38 93t93 38t93 -38t38 -93z" />
<glyph glyph-name="paragraph" unicode="&#xb6;" horiz-adv-x="0"
/>
<glyph glyph-name="germandbls" unicode="&#xdf;" horiz-adv-x="926"
d="M898 700l-127 -112h-153l-64 63l49 49h295zM435 700l-127 -112h-153l-64 63l49 49h295zM603 427l-112 -70v231l49 49l63 -63v-147zM140 427l-112 -70v231l49 49l63 -63v-147zM869 350l-98 -49h-153l-99 49l99 63h153zM406 350l-98 -49h-153l-99 49l99 63h153zM898 112
l-50 -49l-63 63v161l113 56v-231zM435 112l-50 -49l-63 63v161l113 56v-231zM834 49l-49 -49h-294l127 112h153zM371 49l-49 -49h-294l127 112h153z" />
<glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="768"
d="M719 316q0 -139 -98 -237t-237 -98q-140 0 -237.5 97.5t-97.5 237.5t97.5 237.5t237.5 97.5q139 0 237 -98t98 -237zM681 316q0 123 -87.5 209.5t-210.5 86.5q-122 0 -209 -87t-87 -210q0 -122 87 -209t210 -87q122 0 209.5 86.5t87.5 210.5zM580 147h-92l-129 172h-26
v-127q0 -15 14 -21.5t32 -6.5v-17h-155v17q21 0 34 6t13 20v280q0 21 -6 25t-37 4v17h163q27 0 42 -1.5t31 -7.5t28 -14q17 -12 23 -22.5t9 -23t3 -22.5q0 -22 -8.5 -40t-22 -30t-24.5 -17q-20 -10 -43 -10l116 -150q5 -7 12.5 -10.5t22.5 -3.5v-17zM461 430q-3 34 -24 50
q-15 12 -33 12l-51 4q-8 0 -14.5 -5.5t-6.5 -14.5l1 -135h16q17 0 28 1t26 7q59 20 59 69q0 8 -1 12z" />
<glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="768"
d="M720 321q0 -140 -97 -238t-238 -98q-139 0 -237 98t-98 238t97.5 237.5t237.5 97.5t237.5 -97.5t97.5 -237.5zM682 321q0 122 -87 209t-210 87q-122 0 -209.5 -86.5t-87.5 -209.5t87 -210t210 -87q122 0 209.5 86.5t87.5 210.5zM535 196q-32 -32 -51 -44q-42 -27 -93 -27
q-20 0 -30 1t-32 7q-60 16 -93 66.5t-33 113.5q0 49 18.5 89.5t57.5 68.5q26 18 54 26.5t52 8.5q30 0 63 -9q13 -4 27 -8q4 -1 12 -1q20 0 23 16h19l4 -125h-20q-4 24 -18 47q-19 31 -48 44q-10 4 -25 7t-25 3q-56 0 -92 -45q-19 -24 -29 -57t-10 -66q0 -62 30 -106t84 -44
q48 0 74 7.5t58 34.5l12 10z" />
<glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="865"
d="M831 285h-155v17q25 0 37 5.5t12 22.5v269l-130 -314h-18l-140 298v-253q0 -16 12.5 -22t37.5 -6v-17h-125v17q25 0 37 5.5t12 22.5v273q0 21 -9 27.5t-28 6.5h-14v17h111l128 -280l122 280h109v-17q-24 0 -35.5 -3.5t-11.5 -21.5v-282q0 -16 12 -22t36 -6v-17zM332 560
l-18 -1q0 35 -17 54t-58 19l-36 1v-303q0 -16 12.5 -22t36.5 -6v-17h-156v17q25 0 37.5 5.5t12.5 22.5v303l-36 -1q-40 0 -57.5 -19t-17.5 -54l-18 1l3 94h309z" />
<glyph glyph-name="acute" unicode="&#xb4;"
d="M406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="0"
d="M401 800l-82 -49l-77 49l77 63zM215 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="883"
d="M883 700l-112 -112h-153l-113 112h378zM420 700l-112 -112h-153l-113 112h378zM603 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM869 350l-98 -49h-153l-99 49l99 63h153zM406 350l-98 -49h-153l-99 49
l99 63h153zM603 126l-112 -112v329l112 -56v-161zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM883 0h-378l113 112h153z" />
<glyph glyph-name="Oslash" unicode="&#xd8;"
d="M309 498l-81 -135v211h81v-76zM234 126h-81v76l81 135v-211zM371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56
v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="plusminus" unicode="&#xb1;" horiz-adv-x="571"
/>
<glyph glyph-name="yen" unicode="&#xa5;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM289 234l-60 -45l-55 44v47h115v-46zM438 174l-78 -57h-51l-73 55l75 57h49zM223 172l-80 -55h-42l-75 55l75 57h47zM287 58l-57 -58l-57 58v56l57 42
l57 -43v-55z" />
<glyph glyph-name="mu" unicode="&#xb5;" horiz-adv-x="599"
/>
<glyph glyph-name="ordfeminine" unicode="&#xaa;" horiz-adv-x="324"
d="M294 700l-78 -78h-108l-79 78h265zM304 460l-79 49v103l79 78v-230zM98 509l-78 -49v230l78 -78v-103zM284 455l-68 -34h-108l-69 34l69 44h108zM304 210l-79 78v123l79 39v-240zM98 288l-78 -78v240l78 -39v-123z" />
<glyph glyph-name="ordmasculine" unicode="&#xba;" horiz-adv-x="324"
d="M260 666l-44 -44h-108l-44 44l34 34h127zM304 460l-79 49v103l44 44l35 -34v-162zM98 509l-78 -49v162l34 34l44 -44v-103zM304 288l-35 -34l-44 44v113l79 39v-162zM98 298l-44 -44l-34 34v162l78 -39v-113zM260 244l-35 -34h-127l-34 34l44 44h108z" />
<glyph glyph-name="ae" unicode="&#xe6;" horiz-adv-x="883"
d="M883 700l-112 -112h-153l-113 112h378zM420 700l-112 -112h-153l-113 112h378zM603 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM869 350l-98 -49h-153l-99 49l99 63h153zM406 350l-98 -49h-153l-99 49
l99 63h153zM603 126l-112 -112v329l112 -56v-161zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM883 0h-378l113 112h153z" />
<glyph glyph-name="oslash" unicode="&#xf8;"
d="M309 498l-81 -135v211h81v-76zM234 126h-81v76l81 135v-211zM371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56
v-161zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="questiondown" unicode="&#xbf;" horiz-adv-x="406"
d="M308 525h-112v175h112v-175zM308 287h-154l-98 63l98 49h154v-112zM140 126l-63 -63l-49 49v231l112 -70v-147zM406 0h-266l-49 49l63 63h154z" />
<glyph glyph-name="exclamdown" unicode="&#xa1;" horiz-adv-x="168"
d="M140 525h-112v175h112v-175zM140 112l-112 -112v483l112 -70v-301z" />
<glyph glyph-name="logicalnot" unicode="&#xac;" horiz-adv-x="742"
d="M707 0h-58v242h-633v58h691v-300z" />
<glyph glyph-name="florin" unicode="&#x192;" horiz-adv-x="520"
d="M515 644q0 -19 -15 -33t-37 -14q-16 0 -26 16q-12 15 -12 22l1 5l11 25l1 6q0 15 -21 15q-26 0 -48 -29t-28 -73l-20 -137l-2 -13h133l-10 -36h-127l-32 -258l-11 -48l-26 -116q-15 -66 -60 -126q-39 -50 -99 -50q-38 0 -62 20t-24 51q0 22 14 37t36 15q18 0 29.5 -10.5
t11.5 -26.5q0 -6 -8 -30l-4 -11l-1 -7v-5l6 -5h10q31 0 49 27.5t31 92.5l12 61l4 36l36 353h-122l14 36h116q16 130 68.5 204.5t130.5 74.5q33 0 57 -20t24 -49z" />
<glyph glyph-name="guillemotleft" unicode="&#xab;" horiz-adv-x="0"
/>
<glyph glyph-name="guillemotright" unicode="&#xbb;" horiz-adv-x="0"
/>
<glyph glyph-name="ellipsis" unicode="&#x2026;" horiz-adv-x="600"
d="M563 0h-112v175h112v-175zM363 0h-112v175h112v-175zM163 0h-112v175h112v-175z" />
<glyph glyph-name="nonbreakingspace" unicode="&#xa0;" horiz-adv-x="282"
/>
<glyph glyph-name="Agrave" unicode="&#xc0;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM406 800l-98 -49h-153l-99 49l99 63
h153z" />
<glyph glyph-name="Atilde" unicode="&#xc3;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM406 800l-98 -49h-153l-99 49l99 63
h153z" />
<glyph glyph-name="Otilde" unicode="&#xd5;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800
l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="OE" unicode="&#x152;" horiz-adv-x="883"
d="M883 700l-112 -112h-153l-113 112h378zM371 651l-63 -63h-153l-64 63l49 49h182zM603 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM869 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49
l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM603 126l-112 -112v329l112 -56v-161zM883 0h-378l113 112h153zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="oe" unicode="&#x153;" horiz-adv-x="883"
d="M883 700l-112 -112h-153l-113 112h378zM371 651l-63 -63h-153l-64 63l49 49h182zM603 427l-112 -70v329l112 -112v-147zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM869 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49
l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM603 126l-112 -112v329l112 -56v-161zM883 0h-378l113 112h153zM371 49l-49 -49h-182l-49 49l64 63h153z" />
<glyph glyph-name="endash" unicode="&#x2013;" horiz-adv-x="400"
d="M400 408l-46 -111h-354l47 111h353z" />
<glyph glyph-name="emdash" unicode="&#x2014;" horiz-adv-x="800"
d="M800 408l-46 -111h-754l47 111h753z" />
<glyph glyph-name="quotedblleft" unicode="&#x201c;" horiz-adv-x="325"
d="M303 413h-111v287h111v-287zM133 413h-112v287h112v-287z" />
<glyph glyph-name="quotedblright" unicode="&#x201d;" horiz-adv-x="325"
d="M303 413h-111v287h111v-287zM133 413h-112v287h112v-287z" />
<glyph glyph-name="quoteleft" unicode="&#x2018;" horiz-adv-x="155"
d="M133 413h-112v287h112v-287z" />
<glyph glyph-name="quoteright" unicode="&#x2019;" horiz-adv-x="155"
d="M133 413h-112v287h112v-287z" />
<glyph glyph-name="divide" unicode="&#xf7;" horiz-adv-x="571"
/>
<glyph glyph-name="ydieresis" unicode="&#xff;"
d="M401 800l-82 -49l-77 49l77 63zM215 800l-82 -49l-77 49l77 63zM435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM289 63l-58 -63l-57 63v217h115v-217z" />
<glyph glyph-name="Ydieresis" unicode="&#x178;"
d="M401 800l-82 -49l-77 49l77 63zM215 800l-82 -49l-77 49l77 63zM435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM406 350l-98 -49h-153l-99 49l99 63h153zM289 63l-58 -63l-57 63v217h115v-217z" />
<glyph glyph-name="currency" unicode="&#xa4;" horiz-adv-x="555"
d="M542 184l-70 -72l-87 84q-51 -30 -109 -30q-30 0 -57 7.5t-53 23.5l-81 -85l-71 72l81 85q-30 51 -30 109q0 30 7.5 57t23.5 53l-82 84l71 72l85 -85q49 30 106 30q60 0 110 -31l86 86l70 -72l-84 -85q30 -51 30 -109q0 -30 -7.5 -56.5t-22.5 -52.5zM389 378q0 47 -33 80
t-80 33t-80 -33t-33 -80t33 -80t80 -33t80 33t33 80z" />
<glyph glyph-name="guilsinglleft" unicode="&#x2039;" horiz-adv-x="0"
/>
<glyph glyph-name="guilsinglright" unicode="&#x203a;" horiz-adv-x="0"
/>
<glyph glyph-name="daggerdbl" unicode="&#x2021;" horiz-adv-x="0"
/>
<glyph glyph-name="periodcentered" unicode="&#xb7;" horiz-adv-x="200"
d="M163 266h-112v175h112v-175z" />
<glyph glyph-name="periodcentered" unicode="&#x2219;" horiz-adv-x="200"
d="M163 266h-112v175h112v-175z" />
<glyph glyph-name="quotesinglbase" unicode="&#x201a;" horiz-adv-x="0"
/>
<glyph glyph-name="quotedblbase" unicode="&#x201e;" horiz-adv-x="0"
/>
<glyph glyph-name="perthousand" unicode="&#x2030;" horiz-adv-x="0"
/>
<glyph glyph-name="Acircumflex" unicode="&#xc2;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM406 800l-98 -49h-153l-99 49l99 63
h153z" />
<glyph glyph-name="Ecircumflex" unicode="&#xca;" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153zM396 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Aacute" unicode="&#xc1;"
d="M420 700l-112 -112h-153l-113 112h378zM435 357l-113 70v147l113 112v-329zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 0l-113 112v175l113 56v-343zM140 112l-112 -112v343l112 -56v-175zM403 800l-98 -49h-153l-99 49l99 63
h153z" />
<glyph glyph-name="Edieresis" unicode="&#xcb;" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153zM386 800l-82 -49l-77 49l77 63zM200 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="Egrave" unicode="&#xc8;" horiz-adv-x="420"
d="M420 700l-112 -112h-153l-113 112h378zM140 427l-112 -70v329l112 -112v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM140 126l-112 -112v329l112 -56v-161zM420 0h-378l113 112h153zM388 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Iacute" unicode="&#xcd;" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343zM265 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Icircumflex" unicode="&#xce;" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343zM271 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Idieresis" unicode="&#xcf;" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343zM254 800l-82 -49l-77 49l77 63zM68 800l-82 -49l-77 49l77 63z" />
<glyph glyph-name="Igrave" unicode="&#xcc;" horiz-adv-x="168"
d="M140 357l-112 70v161l112 112v-343zM140 0l-112 112v175l112 56v-343zM268 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Oacute" unicode="&#xd3;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800
l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Ocircumflex" unicode="&#xd4;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800
l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Ograve" unicode="&#xd2;"
d="M371 651l-63 -63h-153l-64 63l49 49h182zM435 357l-113 70v147l63 63l50 -49v-231zM140 427l-112 -70v231l49 49l63 -63v-147zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800
l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Uacute" unicode="&#xda;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Ucircumflex" unicode="&#xdb;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM403 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Ugrave" unicode="&#xd9;"
d="M435 357l-113 70v161l113 112v-343zM140 427l-112 -70v343l112 -112v-161zM435 112l-50 -49l-63 63v161l113 56v-231zM140 126l-63 -63l-49 49v231l112 -56v-161zM371 49l-49 -49h-182l-49 49l64 63h153zM406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="circumflex" unicode="&#x2c6;"
d="M406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="tilde" unicode="&#x2dc;"
d="M406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="macron" unicode="&#xaf;"
d="M406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="cedilla" unicode="&#xb8;" horiz-adv-x="420"
d="M287 -145l-70 67l70 69v-136z" />
<glyph glyph-name="Scaron" unicode="&#x160;"
d="M435 700l-127 -112h-153l-64 63l49 49h295zM140 427l-112 -70v231l49 49l63 -63v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49l-63 63v161l113 56v-231zM371 49l-49 -49h-294l127 112h153zM406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="scaron" unicode="&#x161;"
d="M435 700l-127 -112h-153l-64 63l49 49h295zM140 427l-112 -70v231l49 49l63 -63v-147zM406 350l-98 -49h-153l-99 49l99 63h153zM435 112l-50 -49l-63 63v161l113 56v-231zM371 49l-49 -49h-294l127 112h153zM406 800l-98 -49h-153l-99 49l99 63h153z" />
<glyph glyph-name="Zcaron" unicode="&#x17d;" horiz-adv-x="0"
/>
<glyph glyph-name="zcaron" unicode="&#x17e;" horiz-adv-x="0"
/>
<glyph glyph-name="brokenbar" unicode="&#xa6;" horiz-adv-x="0"
/>
<glyph glyph-name="Eth" unicode="&#xd0;" horiz-adv-x="0"
/>
<glyph glyph-name="eth" unicode="&#xf0;" horiz-adv-x="0"
/>
<glyph glyph-name="Yacute" unicode="&#xdd;" horiz-adv-x="0"
/>
<glyph glyph-name="yacute" unicode="&#xfd;" horiz-adv-x="0"
/>
<glyph glyph-name="Thorn" unicode="&#xde;" horiz-adv-x="0"
/>
<glyph glyph-name="thorn" unicode="&#xfe;" horiz-adv-x="0"
/>
<glyph glyph-name="minus" unicode="&#xad;" horiz-adv-x="0"
/>
<glyph glyph-name="multiply" unicode="&#xd7;" horiz-adv-x="0"
/>
<glyph glyph-name="onesuperior" unicode="&#xb9;" horiz-adv-x="0"
/>
<glyph glyph-name="twosuperior" unicode="&#xb2;" horiz-adv-x="0"
/>
<glyph glyph-name="threesuperior" unicode="&#xb3;" horiz-adv-x="0"
/>
<glyph glyph-name="onehalf" unicode="&#xbd;" horiz-adv-x="0"
/>
<glyph glyph-name="onequarter" unicode="&#xbc;" horiz-adv-x="0"
/>
<glyph glyph-name="threequarters" unicode="&#xbe;" horiz-adv-x="0"
/>
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 49 KiB

BIN
www/css/LED.ttf Normal file

Binary file not shown.

BIN
www/css/LED.woff Normal file

Binary file not shown.

377
www/css/common.css Normal file
View File

@ -0,0 +1,377 @@
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 0.8fr 47px 0.7fr 2.8fr;
grid-template-areas: ". . ." ". . ." ". . ." ". . .";
}
.buttons-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr;
grid-template-areas: ". . ." ". . ." ". . ." ". . .";
}
.buttons-6container {
display: grid;
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . . . .";
}
.buttons-7container {
display: grid;
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . . . . .";
}
#title{
font-family: "Lucida Grande", Verdana, Arial, sans-serif;
text-align: center;
color: #ddd;
font-size: 4ex;
}
#text{
font-family: "Lucida Grande", Verdana, Arial, sans-serif;
text-align: center;
color: #ccc;
font-size: 2ex;
}
.encoders{
margin: 0 auto;
}
.mainGrid {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . . . . . .";
}
.buttonsGrid {
display: grid;
grid-template-columns: 70px 70px 70px 70px 70px 70px 70px 70px 70px 70px 70px 70px;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . . ." ". . . . ." ". . . . .";
}
.FxGrid {
display: grid;
grid-template-columns: 70px 70px 70px 70px 70px 70px 70px;
grid-template-rows: 1fr;
gap: 1px 1px;
align-items: stretch;
background-color: #020202;
grid-template-areas: ". . . . . . ,";
}
.RGYGrid {
display: grid;
grid-template-columns: 70px 70px 70px;
grid-template-rows: 1fr;
background-color: #020202;
gap: 1px 1px;
grid-template-areas: ". . .";
}
.RGBGrid {
display: grid;
grid-template-columns: 70px 70px 70px 70px 70px 70px;
grid-template-rows: 1fr;
gap: 1px 1px;
background-color: #020202;
grid-template-areas: ". . . . . .";
}
.TopRackGrid {
display: grid;
grid-template-columns: 120px 600px 30px 30px;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . .";
}
.TextGrid {
display: grid;
grid-template-columns: 250px 370px;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". .";
}
.Rackgrid {
display: grid;
grid-template-columns: 170px 70px 70px 70px 70px 70px 70px 70px 70px 70px;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . . . . . . . .";
}
.Settingrid {
display: grid;
grid-template-columns: 110px 80px 80px 100px 80px 80px 140px 40px;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . . . . . . .";
}
.ColorRackGrid {
display: grid;
grid-template-columns: 170px 70px 70px 70px 70px 70px 70px 70px 70px 70px;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . . . . . . . .";
}
.grid3 {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . .";
}
.encodersGrid {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
gap: 1px 1px;
grid-template-areas: "." "." "." "." ".";
}
.webaudiobut{
border-radius: 4px;
border : #002020 1px solid;
-webkit-box-shadow: 2px 4px 8px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 2px 4px 8px -1px rgba(0,0,0,0.72);
box-shadow: 2px 4px 8px -1px rgba(0,0,0,0.72);
background-image: linear-gradient(174deg, #111,#030303);
}
.content{
width : 800px;
padding : 10px 20px;
margin : 5px auto;
border-radius: 10px;
border : #212121 2px solid;
background-color: #000000;
background-image: linear-gradient(174deg, #222,#111);
-webkit-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
}
.Rackcontent{
width : 845px;
border-radius: 3px;
margin : 1px auto;
border : #111 2px solid;
background-color: #111;
-webkit-box-shadow: 4px 6px 44px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 44px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 44px -1px rgba(0,0,0,0.72);
}
.content-title {
color : #ddd;
border : none;
margin-top : 15px;
padding-bottom : 0;
margin-bottom : 0;
background-color : inherit;
}
.content-names {
padding : 10px;
padding-top : 0;
border : none;
box-shadow : none;
background-color : inherit;
}
.etherled {
color: #666;
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
font-size: 1.5ex;
text-align: middle;
margin-left: 20px
margin-top: 10px
}
a { text-decoration: none;
border: none;
outline: none;
}
a:hover, a:focus {
border: none;
outline: none;
color: #fff;
}
h2 {
position: relative;
line-height: 3ex;
color: #666;
text-align: middle;
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
font-size: 1.7ex;
margin-top : 1px;
text-shadow: 2px 3px #000;
}
@font-face {
font-family: "Bus Led Display Small";
src: url("7f37946c45abf5482c243bf326f82628.eot"); /* IE9*/
src: url("7f37946c45abf5482c243bf326f82628.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
url("7f37946c45abf5482c243bf326f82628.woff2") format("woff2"), /* chrome、firefox */
url("7f37946c45abf5482c243bf326f82628.woff") format("woff"), /* chrome、firefox */
url("7f37946c45abf5482c243bf326f82628.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
url("7f37946c45abf5482c243bf326f82628.svg#Bus Led Display Small") format("svg"); /* iOS 4.1- */
}
.busled{
color: #ccc;
background: #000;
font-family:"Bus Led Display Small" !important;
font-size:2em;
font-style:normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.7px;
-moz-osx-font-smoothing: grayscale;
}
.navled{
color: #ccc;
background: #000;
font-family:"Bus Led Display Small" !important;
font-size:1.5em;
margin-left: 2px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.7px;
-moz-osx-font-smoothing: grayscale;
}
.submit {
background: #000;
color: #f0f0f0;
width: 90px;
height: 20px;
text-align: center;
margin-left: 15px;
vertical-align: middle;
font-family:"Bus Led Display Small" !important;
font-size:1.1em;
font-style:normal;
border: 1px solid #555;
-webkit-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
}
.submite {
background: #000;
color: #f0f0f0;
width: 120px;
height: 25px;
text-align: center;
margin-left: 15px;
vertical-align: middle;
font-family:"Bus Led Display Small" !important;
font-size:1.3em;
font-style:normal;
border: 1px solid #033;
-webkit-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
}
.submitalign {
background: #000;
color: #f0f0f0;
width: 60px;
height: 30px;
text-align: center;
margin-left: 15px;
vertical-align: middle;
font-family:"Bus Led Display Small" !important;
font-size:1.4em;
font-style:normal;
border: 1px solid #001515;
-webkit-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
}
.submites {
background: #000;
color: #f0f0f0;
width: 30px;
height: 35px;
text-align: center;
margin-left: 15px;
vertical-align: middle;
font-family:"Bus Led Display Small" !important;
font-size:1.3em;
font-style:normal;
border: 1px solid #445;
-webkit-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
}
.submitext{
font-family: 'Bus Led Display Small';
color: #fff;
background: #000;
font-size: 5ex;"
border-radius: 5px;
border : #222222 2px solid;
-webkit-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
}
#overlay {
position: absolute;
top: 200px;
left: 650px;
-o-transform : scaleX(-1);
-webkit-transform : scaleX(-1);
transform : scaleX(-1);
-ms-filter : fliph; /*IE*/
filter : fliph; /*IE*/
}
#videoel {
-o-transform : scaleX(-1);
-webkit-transform : scaleX(-1);
transform : scaleX(-1);
-ms-filter : fliph; /*IE*/
filter : fliph; /*IE*/
}
.lasertext {
font-size: small;
font-family: Helvetica, Verdana, Arial, sans-serif;
color: #bbb;
}
.mgalign {
color: #aaa;
text-align: middle;
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
display: grid;
height: 400px;
grid-template-columns: 200px 200px 200px 200px;
grid-template-rows: 1Fr;
border-width: 1px solid #445;
gap: 1px 1px;
grid-template-areas: ". . . . . . . . . .";
}
.lasergrid {
display: grid;
height: 323px;
width: 200px;
grid-template-columns: 62px 62px 62px;
grid-template-rows: 30px 19px 10px 55px 19px 20px 16px 55px 19px 25px 16px 55px 19px;
line-height: 1;
justify-items: center;
align-items: center;
color:#88c;
}
.lissabox {
display: grid;
height: 353px;
width: 126px;
grid-template-columns: 124px;
grid-template-rows: 15px 338px;
background-color: #000000;
background-image: linear-gradient(147deg, #000000 0%, #434343 374%);
line-height: 1;
padding: 6px;
justify-items: center;
align-items: center;
border-color: #334;
border-style: groove;
border-width: 1px;
}

5
www/css/font-awesome.min.css vendored Normal file

File diff suppressed because one or more lines are too long

4522
www/css/fontawesome.css vendored Normal file

File diff suppressed because it is too large Load Diff

165
www/css/newstyle.css Normal file
View File

@ -0,0 +1,165 @@
.grid-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 0.8fr 47px 0.7fr 2.8fr;
grid-template-areas: ". . ." ". . ." ". . ." ". . .";
}
.buttons-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr;
grid-template-areas: ". . ." ". . ." ". . ." ". . .";
}
#title{
font-family: "Lucida Grande", Verdana, Arial, sans-serif;
text-align: center;
color: #ddd;
font-size: 3.3ex;
}
#text{
font-family: "Lucida Grande", Verdana, Arial, sans-serif;
text-align: center;
color: #ccc;
font-size: 2ex;
}
#smalltext{
font-family: "Lucida Grande", Verdana, Arial, sans-serif;
text-align: center;
color: #ccc;
font-size: 1.6ex;
}
.encoders{
margin: 0 auto;
}
.mainGrid {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . . . . . .";
}
.encodersGrid {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
gap: 1px 1px;
grid-template-areas: "." "." "." "." ".";
}
.content{
width : 880px;
padding : 10px 20px;
margin : 15px auto;
background-color: #000000;
background-image: linear-gradient(174deg, #222,#111);
border-radius: 20px;
border : #0b0b0b 2px solid;
-webkit-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
}
.contentB{
width : 880px;
padding : 10px 20px;
margin : 15px auto;
background-color: #000000;
background-image: linear-gradient(340deg, #000000 0%, #434343 374%);
border-radius: 20px;
border : #333 1px solid;
}
.content-title {
color : #ddd;
border : none;
margin-top : 15px;
padding-bottom : 0;
margin-bottom : 0;
background-color : inherit;
}
.content-names {
padding : 10px;
padding-top : 0;
border : none;
box-shadow : none;
background-color : inherit;
}
.TopRackGrid {
display: grid;
grid-template-columns: 120px 600px 80px 80px;
grid-template-rows: 1fr;
gap: 1px 1px;
grid-template-areas: ". . . .";
}
.webaudiobut{
border-radius: 5px;
border : #222222 2px solid;
-webkit-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
-moz-box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
box-shadow: 4px 6px 10px -1px rgba(0,0,0,0.72);
}
h2 {
position: relative;
line-height: 3ex;
color: #666;
text-align: middle;
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
font-size: 1.7ex;
margin-top : 1px;
text-shadow: 2px 3px #000;
}
@font-face {
font-family: "Bus Led Display Small";
src: url("7f37946c45abf5482c243bf326f82628.eot"); /* IE9*/
src: url("7f37946c45abf5482c243bf326f82628.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
url("7f37946c45abf5482c243bf326f82628.woff2") format("woff2"), /* chrome、firefox */
url("7f37946c45abf5482c243bf326f82628.woff") format("woff"), /* chrome、firefox */
url("7f37946c45abf5482c243bf326f82628.ttf") format("truetype"), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
url("7f37946c45abf5482c243bf326f82628.svg#Bus Led Display Small") format("svg"); /* iOS 4.1- */
}
.busled{
color: #ddd;
background: #090909;
font-family:"Bus Led Display Small" !important;
font-size:2em;font-style:normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.7px;
-moz-osx-font-smoothing: grayscale;}
.info {
background: #000;
width: 200px;
text-align: center;
vertical-align: middle;
height: 30px;
border: 2px solid #445;
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
color: #aaa;
font-size: 2ex;
}
.shade {
position: relative;
margin: -21px 0 0;
padding: 0;
display: block;
background: #00538F;
width: 100%;
height: 24px;
opacity: 0.25;
text-align: center;
}
.shadow {
-webkit-box-shadow: 4px 6px 14px -1px rgba(0,0,0,0.82);
-moz-box-shadow: 4px 6px 14px -1px rgba(0,0,0,0.82);
box-shadow: 4px 6px 14px -1px rgba(0,0,0,0.82);
}
a:link {
color: #bbb;
}
a:visited {
color: #999;
}

1
www/css/style.css Executable file
View File

@ -0,0 +1 @@
* { box-sizing: border-box; } body {margin: 0;}.row{display:table;padding:10px;width:100%;}.cell{width:8%;display:table-cell;height:75px;}body, html{background-color:#1d1c25;margin:0;padding:0;}.range{-webkit-appearance:none;-moz-appearance:none;position:absolute;left:50%;top:50%;width:200px;margin-top:10px;transform:translate(-50%, -50%);}input[type=range]::-webkit-slider-runnable-track{-webkit-appearance:none;background:linear-gradient(45deg, rgba(59,173,227,1) 0%, rgba(87,111,230,1) 25%, rgba(152,68,183,1) 51%, rgba(255,53,127,1) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3bade3 ', endColorstr='#ff357f ', GradientType=1 );height:2px;}input[type=range]:focus{outline:none;}input[type=range]::-moz-range-track{-moz-appearance:none;background:linear-gradient(45deg, rgba(59,173,227,1) 0%, rgba(87,111,230,1) 25%, rgba(152,68,183,1) 51%, rgba(255,53,127,1) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3bade3 ', endColorstr='#ff357f ', GradientType=1 );height:2px;}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid;border-radius:50%;height:25px;width:25px;max-width:80px;position:relative;bottom:11px;background-color:#1d1c25;cursor:-webkit-grab;-webkit-transition:border 1000ms ease;transition:border 1000ms ease;}input[type=range]::-moz-range-thumb{-moz-appearance:none;border:2px solid;border-radius:50%;height:25px;width:25px;max-width:80px;position:relative;bottom:11px;background-color:#1d1c25;cursor:-moz-grab;-moz-transition:border 1000ms ease;transition:border 1000ms ease;}.range.blue::-webkit-slider-thumb{border-color:rgb(59,173,227);}.range.ltpurple::-webkit-slider-thumb{border-color:rgb(87,111,230);}.range.purple::-webkit-slider-thumb{border-color:rgb(152,68,183);}.range.pink::-webkit-slider-thumb{border-color:rgb(255,53,127);}.range.blue::-moz-range-thumb{border-color:rgb(59,173,227);}.range.ltpurple::-moz-range-thumb{border-color:rgb(87,111,230);}.range.purple::-moz-range-thumb{border-color:rgb(152,68,183);}.range.pink::-moz-range-thumb{border-color:rgb(255,53,127);}input[type=range]::-webkit-slider-thumb:active{cursor:-webkit-grabbing;}input[type=range]::-moz-range-thumb:active{cursor:-moz-grabbing;}.range.blue{position:relative;background-color:rgba(31,27,27,0.09);width:75%;top:37.5px;}*{box-sizing:border-box;}body{margin:0;}#iy3nk{height:68px;}#il4ah{text-align:center;color:#ef4079;}#i7ox{font-family:Verdana, Geneva, sans-serif;color:#40acef;text-align:left;}#io5q{color:#40acef;}#iy2eh{text-align:center;}#i8a73{text-align:center;color:#4540ef;}#i3fzo{text-align:center;color:#7740ef;}#ikbjg{text-align:center;color:#b140ef;}@media (max-width: 768px){.cell{width:100%;display:block;}}

1
www/css/style2.css Executable file
View File

@ -0,0 +1 @@
input[type=range]::-webkit-slider-runnable-track{-webkit-appearance:none;background:linear-gradient(45deg, rgba(59,173,227,1) 0%, rgba(87,111,230,1) 25%, rgba(152,68,183,1) 51%, rgba(255,53,127,1) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3bade3 ', endColorstr='#ff357f ', GradientType=1 );height:2px;}input[type=range]:focus{outline:none;}input[type=range]::-moz-range-track{-moz-appearance:none;background:linear-gradient(45deg, rgba(59,173,227,1) 0%, rgba(87,111,230,1) 25%, rgba(152,68,183,1) 51%, rgba(255,53,127,1) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3bade3 ', endColorstr='#ff357f ', GradientType=1 );height:2px;}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid;border-radius:50%;height:25px;width:25px;max-width:80px;position:relative;bottom:11px;background-color:#1d1c25;cursor:-webkit-grab;-webkit-transition:border 1000ms ease;transition:border 1000ms ease;}input[type=range]::-moz-range-thumb{-moz-appearance:none;border:2px solid;border-radius:50%;height:25px;width:25px;max-width:80px;position:relative;bottom:11px;background-color:#1d1c25;cursor:-moz-grab;-moz-transition:border 1000ms ease;transition:border 1000ms ease;}.range.blue::-webkit-slider-thumb{border-color:rgb(59,173,227);}.range.ltpurple::-webkit-slider-thumb{border-color:rgb(87,111,230);}.range.purple::-webkit-slider-thumb{border-color:rgb(152,68,183);}.range.pink::-webkit-slider-thumb{border-color:rgb(255,53,127);}.range.blue::-moz-range-thumb{border-color:rgb(59,173,227);}.range.ltpurple::-moz-range-thumb{border-color:rgb(87,111,230);}.range.purple::-moz-range-thumb{border-color:rgb(152,68,183);}.range.pink::-moz-range-thumb{border-color:rgb(255,53,127);}input[type=range]::-webkit-slider-thumb:active{cursor:-webkit-grabbing;}input[type=range]::-moz-range-thumb:active{cursor:-moz-grabbing;}.range.blue{position:relative;background-color:rgba(31,27,27,0.09);width:75%;top:37.5px;}body{margin:0;}#iy3nk{font-family: "Lucida Grande", Verdana, Arial, sans-serif; font-size: 10ex; height:68px;}#il4ah{text-align:center;color:#ef4079;}#i7ox{font-family:Verdana, Geneva, sans-serif;color:#40acef;text-align:left;}#io5q{color:#40acef;}#iy2eh{text-align:center;}#i8a73{text-align:center;color:#4540ef;}#i3fzo{text-align:center;color:#7740ef;}#ikbjg{text-align:center;color:#b140ef;}@media (max-width: 768px){}

313
www/index.html Normal file
View File

@ -0,0 +1,313 @@
<!DOCTYPE html>
<html>
<head>
<title>Nerves</title>
<meta charset="utf-8" />
<meta name="apple-mobile-web-app-title" content="Nerves">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="apple-touch-icon" sizes="180x180" href="touch-icon-iphone-retina-mmo3.png">
<!-- Web audio buttons defaults -->
<script type="application/javascript" src="webcomponents-lite.js"></script>
<script>
WebAudioControlsOptions={
useMidi:1,
knobSrc:"knobs/simplegray.png",
knobSprites:100,
switchSrc:"knobs/switch_toggle.png",
sliderSrc:"knobs/vsliderbody.png",
sliderKnobsrc:"knobs/vsliderknob.png",
}
</script>
<script src="webaudio-controls.js"></script>
<link rel="stylesheet" href="css/newstyle.css" />
<link rel="stylesheet" type="text/css" href="selector.min.css">
<script type="application/javascript" src="selector.min.js"></script>
<script type="application/javascript" src="config.js"></script>
</head>
<body style="background-color: #000000;background-image: linear-gradient(174deg, #101010,#030303);">
<!--
Screen Rack
-->
<div class="content">
<div class="TopRackGrid">
<div>
<h2>
Nerves
</h2>
<webaudio-switch id="on" value="1" tooltip="Switch-B" height="35" width="85" src="knobs/power.png">
</webaudio-switch>
</div>
<div class="webaudiobut" style="background: #111;">
<div id="status" class="busled" align="center">
Nerves
</div>
<div id="players" class="busled" align="center">
0 Connected
</div>
</div>
<div align ="center" class="encoders">
<webaudio-switch class="webaudiobut" id="func" value="0" height="68" width="68" tooltip=" Switch-B" src="knobs/funcs.png" type="toggle"></webaudio-switch>
</div>
<div>
<webaudio-switch class="webaudiobut" id="down" value="0" height="68" width="68" tooltip=" Switch-B" src="knobs/down2.png" type="toggle"></webaudio-switch>
</div>
</div>
</div>
<!--
<div id="title" align ="center" style="font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
text-align: center;color: #ddd;font-size: 2ex;">
<a href="ocs2.html">OCS-2</a>
</div>
-->
</div>
<!--
JS
-->
<!-- LJ style WS : A nettoyer ! -->
<script type="text/javascript">
var LJ = websocket_uri
var _WS = {
uri: LJ,
ws: null,
init : function (e) {
_WS.s = new WebSocket(_WS.uri);
_WS.s.onopen = function (e) { _WS.onOpen(e); };
_WS.s.onclose = function (e) { _WS.onClose(e); };
_WS.s.onmessage = function (e) { _WS.onMessage(e); };
_WS.s.onerror = function (e) { _WS.onError(e); };
},
onOpen: function () {
var divtext = document.getElementById('status');
divtext.innerHTML="";
divtext.innerHTML= "Connected to "+LJ;
},
onClose: function () {
_WS.showout('DISCONNECTED');
},
onMessage: function (e) {
var res = e.data.split(" ");
//console.log(e.data)
//console.log(res[0].substring(0,6))
//console.log(res)
//console.log(res[0].slice(1))
var divtext = document.getElementById('status');
var divtextp = document.getElementById('players');
switch (res[0].substring(0,6)) {
case "/statu":
divtext.innerHTML="Nerves";
break;
case "/playe":
//divtext.innerHTML="OCS-2 ("+res[1]+" player(s))";
//divtextp.innerHTML=" ("+res[1]+" player(s))";
divtext.innerHTML="Nerves ";
divtextp.innerHTML=" "+res[1];
//console.log(res)
break;
case "/simul":
pl = e.data.slice(7);
//console.log(pl)
pl2 = eval(pl.replace(/[()]/g, ''));
break;
case "/plpoi":
//console.log("plpoint");
break;
default:
//console.log(e);
//console.log(res[0].slice(1))
//console.log(document.getElementById(res[0].slice(1)));
//console.log(res[0].slice(1)+" "+res[1])
//let documentX = document.getElementById(res[0].slice(1));
//documentX.value=res[1];
//document.getElementById(res[0].slice(1)).value = res[1];
document.getElementById(res[0].slice(1)).setAttribute('value',res[1]);
//document.getElementById(res[0].slice(1)).setValue(res[1],true);
document.getElementById(res[0].slice(1)).setValue(res[1],false);
//console.log(documentX.value)
//console.log(document.getElementById(res[0].slice(1)));
_WS.showin(e.data);
}
},
onError: function (e) {
_WS.showin('<span style="color: red;">ERROR:</span> ' + e.data);
},
showin: function (message) {
var divtext = document.getElementById('status');
divtext.innerHTML="";
divtext.innerHTML= message.toString();
},
showout: function (message) {
var divtext = document.getElementById('status');
divtext.innerHTML="";
divtext.innerHTML= message.toString();
},
showstatus: function (message) {
var divtext = document.getElementById('status');
divtext.innerHTML="";
divtext.innerHTML= message.toString();
},
send: function (message) {
if (!message.length) {
alert('Empty message not allowed !');
} else {
_WS.showout(message);
_WS.s.send(message);
}
},
close: function () {
_WS.showout('GOODBYE !');
_WS.s.close();
}
};
window.addEventListener('load', _WS.init, false);
</script>
<!--
web audio encoders scripts
-->
<script type="text/javascript">
var message="";
var log=[];
var knobs = document.getElementsByTagName('webaudio-knob');
var knobState = []
for(var i = 0; i < knobs.length; i++){
knobs[i].addEventListener("input",Dump,false);
knobs[i].addEventListener("change",Dump,false);
}
var sliders = document.getElementsByTagName('webaudio-slider');
for(var i = 0; i < sliders.length; i++){
sliders[i].addEventListener("input",Dump,false);
sliders[i].addEventListener("change",Dump,false);
}
var switches = document.getElementsByTagName('webaudio-switch');
for(var i = 0; i < switches.length; i++) {
switches[i].addEventListener("change",Dump,false);
}
function Dump(e) {
var str="";
str=e.type + " : " + e.target.id + " : " + e.target.value + " ";
//console.log(str);
log.unshift(str);
log.length=1;
str="";
for(var i=19;i>=0;--i) {
if(log[i])
str+=log[i]+"<br/>";
}
//var evview=document.getElementById("events");
//evview.innerHTML=str;
//console.log( e.type + "/" + e.target.id + "/" + e.target.value);
//console.log('/' + e.target.id + ' ' + e.target.value + ' ' + e.type);
//socket.emit('message', '/' + e.target.id + ' ' + e.target.value);
if (e.target.id === "on" && e.type === "change") {
window.location.reload();
}
if (e.target.id === "load" || e.target.id === "store") {
if (e.type === "change") {
if (e.target.id === "store") {
//var knobState = []
//var knobs = document.getElementsByTagName('webaudio-knob');
for (var i = 0; i < knobs.length; i++) {
var knob = knobs[i] ;
//console.log(knob) ;
knobState[i] = knob.getAttribute('id')+" "+knob.getAttribute('value') ;
localStorage.setItem(knob.getAttribute('id'),knob.getAttribute('value')) ;
}
//console.log(knobState) ;
console.log('store clique') ;
}
if (e.target.id === "load") {
if (knobState.length > 0) {
for (var i = 0; i < knobState.length; i++) {
ccstate=knobState[i] ;
_WS.send("/" + ccstate) ;
}
}
else {
for (var i = 0; i < knobs.length; i++) {
var knob = knobs[i];
var value = localStorage.getItem(knob.getAttribute('id'));
if ( value != null) {
ccstate = knob.getAttribute('id')+" "+value;
_WS.send("/" + ccstate) ;
console.log(ccstate) ;
}
else console.log("no localstorage");
}
}
console.log('load clique') ;
}
}
}
else {
_WS.send("/" + e.target.id + " " + e.target.value);
if (e.target.id === "on" && e.type === "change") {
window.location.reload();
}
if (e.target.id === "rate" && e.type === "change") {
e.target.value = 1 ;
}
if (e.target.id === "range" && e.type === "change") {
e.target.value = 1 ;
}
if (e.target.id === "select" && e.type === "change") {
e.target.value = 1 ;
}
}
}
</script>
</body>
</html>

BIN
www/knobs/cls.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
www/knobs/down2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
www/knobs/funcs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
www/knobs/power.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

1
www/selector.min.css vendored Executable file
View File

@ -0,0 +1 @@
div.selector-element{font-size: 0.75em; display:inline-block;position:relative;width:100%;max-width: 85px;height: 24px;font-family:sans-serif;color: #fbfff5;background-color: #111111}div.selector-element div.selector-selected{display:inline-block;width:100%;height:100%;position:relative;cursor:pointer;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;line-height:30px;padding:0 12px;transition:.15s ease-in-out;border:1px solid gray}div.selector-element div.selector-selected:hover{background-color: #060606}div.selector-element div.selector-selected:after{content:'';position:absolute;top:50%;right:22px;transform:translateY(-50%);height:0;width:0;border-top:5px solid silver;border-left:5px solid transparent;border-right:5px solid transparent}div.selector-element div.selector-selected p.selected-text{display:inline-block;margin:0;width:100%;height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding-right:30px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}div.selector-element div.selector-options{color: #dbdbdb; display:none;position:absolute;background-color: #111111;top:100%;width:100%;height:auto;max-height:156px;overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid grey;border-top:0;box-shadow:0 2px 3px rgba(0,0,0,0.2);z-index:1;transition:.2s ease-in-out}div.selector-element div.selector-options.options-search{max-height:220px}div.selector-element.open div.selector-options{display:block}div.selector-element div.selector-options div.selector-option{display:block;position:relative;width:100%;height:32px;border-bottom:1px solid silver;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 12px;line-height:31px;cursor:pointer;overflow:hidden;transition:.15s ease-in-out}div.selector-element div.selector-options div.selector-option.hide{height:0;border-bottom:0;transition:.1s ease-in-out}div.selector-element div.selector-options div.selector-option.option-selected{background-color: #111111}div.selector-element div.selector-options div.selector-option:hover{color: #fbfff5; background-color: #111111}div.selector-element div.selector-options div.selector-option:last-of-type{border-bottom:0}div.selector-element div.selector-options div.selector-option.option-disabled{opacity:.6}div.selector-element div.selector-options div.option-search{display:block;height:32px;line-height:33px;position:relative;width:100%;border-bottom:1px solid grey}div.selector-element div.selector-options div.option-search span{position:absolute;top:50%;transform:translateY(-48%) !important;height:14px;width:14px;cursor:pointer;z-index:1;background:url("../knobs/close.svg") center no-repeat;background-size:11px;right:12px}div.selector-element div.selector-options div.option-search input{display:inline-block;width:100%;height:100%;padding:0 36px 0 36px;font-family:sans-serif;font-size:1em;color: white;outline:0;border:0;background:url("../knobs/search.svg") left 13px center no-repeat;background-size:13px}

1
www/selector.min.js vendored Executable file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

1875
www/webaudio-controls.js Executable file

File diff suppressed because it is too large Load Diff

197
www/webcomponents-lite.js Executable file
View File

@ -0,0 +1,197 @@
(function(){/*
Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
'use strict';var p,q="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};function ca(){ca=function(){};q.Symbol||(q.Symbol=da)}var da=function(){var a=0;return function(b){return"jscomp_symbol_"+(b||"")+a++}}();
function ea(){ca();var a=q.Symbol.iterator;a||(a=q.Symbol.iterator=q.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&ba(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(this)}});ea=function(){}}function fa(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){ea();a={next:a};a[q.Symbol.iterator]=function(){return this};return a}function ia(a){ea();var b=a[Symbol.iterator];return b?b.call(a):fa(a)}
function ja(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c}
(function(){if(!function(){var a=document.createEvent("Event");a.initEvent("foo",!0,!0);a.preventDefault();return a.defaultPrevented}()){var a=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(a.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var b=/Trident/.test(navigator.userAgent);if(!window.CustomEvent||b&&"function"!==typeof window.CustomEvent)window.CustomEvent=function(a,b){b=b||{};var c=document.createEvent("CustomEvent");
c.initCustomEvent(a,!!b.bubbles,!!b.cancelable,b.detail);return c},window.CustomEvent.prototype=window.Event.prototype;if(!window.Event||b&&"function"!==typeof window.Event){var c=window.Event;window.Event=function(a,b){b=b||{};var c=document.createEvent("Event");c.initEvent(a,!!b.bubbles,!!b.cancelable);return c};if(c)for(var d in c)window.Event[d]=c[d];window.Event.prototype=c.prototype}if(!window.MouseEvent||b&&"function"!==typeof window.MouseEvent){b=window.MouseEvent;window.MouseEvent=function(a,
b){b=b||{};var c=document.createEvent("MouseEvent");c.initMouseEvent(a,!!b.bubbles,!!b.cancelable,b.view||window,b.detail,b.screenX,b.screenY,b.clientX,b.clientY,b.ctrlKey,b.altKey,b.shiftKey,b.metaKey,b.button,b.relatedTarget);return c};if(b)for(d in b)window.MouseEvent[d]=b[d];window.MouseEvent.prototype=b.prototype}Array.from||(Array.from=function(a){return[].slice.call(a)});Object.assign||(Object.assign=function(a,b){for(var c=[].slice.call(arguments,1),d=0,e;d<c.length;d++)if(e=c[d])for(var f=
a,m=e,n=Object.getOwnPropertyNames(m),t=0;t<n.length;t++)e=n[t],f[e]=m[e];return a})})(window.WebComponents);(function(){function a(){}function b(a,b){if(!a.childNodes.length)return[];switch(a.nodeType){case Node.DOCUMENT_NODE:return t.call(a,b);case Node.DOCUMENT_FRAGMENT_NODE:return C.call(a,b);default:return n.call(a,b)}}var c="undefined"===typeof HTMLTemplateElement,d=!(document.createDocumentFragment().cloneNode()instanceof DocumentFragment),e=!1;/Trident/.test(navigator.userAgent)&&function(){function a(a,b){if(a instanceof DocumentFragment)for(var d;d=a.firstChild;)c.call(this,d,b);else c.call(this,
a,b);return a}e=!0;var b=Node.prototype.cloneNode;Node.prototype.cloneNode=function(a){a=b.call(this,a);this instanceof DocumentFragment&&(a.__proto__=DocumentFragment.prototype);return a};DocumentFragment.prototype.querySelectorAll=HTMLElement.prototype.querySelectorAll;DocumentFragment.prototype.querySelector=HTMLElement.prototype.querySelector;Object.defineProperties(DocumentFragment.prototype,{nodeType:{get:function(){return Node.DOCUMENT_FRAGMENT_NODE},configurable:!0},localName:{get:function(){},
configurable:!0},nodeName:{get:function(){return"#document-fragment"},configurable:!0}});var c=Node.prototype.insertBefore;Node.prototype.insertBefore=a;var d=Node.prototype.appendChild;Node.prototype.appendChild=function(b){b instanceof DocumentFragment?a.call(this,b,null):d.call(this,b);return b};var f=Node.prototype.removeChild,h=Node.prototype.replaceChild;Node.prototype.replaceChild=function(b,c){b instanceof DocumentFragment?(a.call(this,b,c),f.call(this,c)):h.call(this,b,c);return c};Document.prototype.createDocumentFragment=
function(){var a=this.createElement("df");a.__proto__=DocumentFragment.prototype;return a};var g=Document.prototype.importNode;Document.prototype.importNode=function(a,b){b=g.call(this,a,b||!1);a instanceof DocumentFragment&&(b.__proto__=DocumentFragment.prototype);return b}}();var f=Node.prototype.cloneNode,h=Document.prototype.createElement,g=Document.prototype.importNode,k=Node.prototype.removeChild,l=Node.prototype.appendChild,m=Node.prototype.replaceChild,n=Element.prototype.querySelectorAll,
t=Document.prototype.querySelectorAll,C=DocumentFragment.prototype.querySelectorAll,eb=function(){if(!c){var a=document.createElement("template"),b=document.createElement("template");b.content.appendChild(document.createElement("div"));a.content.appendChild(b);a=a.cloneNode(!0);return 0===a.content.childNodes.length||0===a.content.firstChild.content.childNodes.length||d}}();if(c){var J=document.implementation.createHTMLDocument("template"),Ca=!0,Da=document.createElement("style");Da.textContent="template{display:none;}";
var Ea=document.head;Ea.insertBefore(Da,Ea.firstElementChild);a.prototype=Object.create(HTMLElement.prototype);var x=!document.createElement("div").hasOwnProperty("innerHTML");a.D=function(b){if(!b.content){b.content=J.createDocumentFragment();for(var c;c=b.firstChild;)l.call(b.content,c);if(x)b.__proto__=a.prototype;else if(b.cloneNode=function(b){return a.ca(this,b)},Ca)try{na(b),aa(b)}catch(Mg){Ca=!1}a.J(b.content)}};var na=function(b){Object.defineProperty(b,"innerHTML",{get:function(){for(var a=
"",b=this.content.firstChild;b;b=b.nextSibling)a+=b.outerHTML||b.data.replace(oa,U);return a},set:function(b){J.body.innerHTML=b;for(a.J(J);this.content.firstChild;)k.call(this.content,this.content.firstChild);for(;J.body.firstChild;)l.call(this.content,J.body.firstChild)},configurable:!0})},aa=function(a){Object.defineProperty(a,"outerHTML",{get:function(){return"<template>"+this.innerHTML+"</template>"},set:function(a){if(this.parentNode){J.body.innerHTML=a;for(a=this.ownerDocument.createDocumentFragment();J.body.firstChild;)l.call(a,
J.body.firstChild);m.call(this.parentNode,a,this)}else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");},configurable:!0})};na(a.prototype);aa(a.prototype);a.J=function(c){c=b(c,"template");for(var d=0,e=c.length,f;d<e&&(f=c[d]);d++)a.D(f)};document.addEventListener("DOMContentLoaded",function(){a.J(document)});Document.prototype.createElement=function(){var b=h.apply(this,arguments);"template"===b.localName&&a.D(b);return b};var oa=/[&\u00A0<>]/g,
U=function(a){switch(a){case "&":return"&amp;";case "<":return"&lt;";case ">":return"&gt;";case "\u00a0":return"&nbsp;"}}}if(c||eb){a.ca=function(a,b){var c=f.call(a,!1);this.D&&this.D(c);b&&(l.call(c.content,f.call(a.content,!0)),fb(c.content,a.content));return c};var fb=function(c,d){if(d.querySelectorAll&&(d=b(d,"template"),0!==d.length)){c=b(c,"template");for(var e=0,f=c.length,h,g;e<f;e++)g=d[e],h=c[e],a&&a.D&&a.D(g),m.call(h.parentNode,pa.call(g,!0),h)}},pa=Node.prototype.cloneNode=function(b){if(!e&&
d&&this instanceof DocumentFragment)if(b)var c=qa.call(this.ownerDocument,this,!0);else return this.ownerDocument.createDocumentFragment();else c=this.nodeType===Node.ELEMENT_NODE&&"template"===this.localName?a.ca(this,b):f.call(this,b);b&&fb(c,this);return c},qa=Document.prototype.importNode=function(c,d){d=d||!1;if("template"===c.localName)return a.ca(c,d);var e=g.call(this,c,d);if(d){fb(e,c);c=b(e,'script:not([type]),script[type="application/javascript"],script[type="text/javascript"]');for(var f,
k=0;k<c.length;k++){f=c[k];d=h.call(document,"script");d.textContent=f.textContent;for(var l=f.attributes,qa=0,pa;qa<l.length;qa++)pa=l[qa],d.setAttribute(pa.name,pa.value);m.call(f.parentNode,d,f)}}return e}}c&&(window.HTMLTemplateElement=a)})();var ka=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)};var la=0,ma,ra="undefined"!==typeof window?window:void 0,sa=ra||{},ta=sa.MutationObserver||sa.WebKitMutationObserver,ua="undefined"!==typeof Uint8ClampedArray&&"undefined"!==typeof importScripts&&"undefined"!==typeof MessageChannel;function va(){return"undefined"!==typeof ma?function(){ma(wa)}:xa()}function ya(){var a=0,b=new ta(wa),c=document.createTextNode("");b.observe(c,{characterData:!0});return function(){c.data=a=++a%2}}
function za(){var a=new MessageChannel;a.port1.onmessage=wa;return function(){return a.port2.postMessage(0)}}function xa(){var a=setTimeout;return function(){return a(wa,1)}}var Aa=Array(1E3);function wa(){for(var a=0;a<la;a+=2)(0,Aa[a])(Aa[a+1]),Aa[a]=void 0,Aa[a+1]=void 0;la=0}var Ba,Fa;
if("undefined"===typeof self&&"undefined"!==typeof process&&"[object process]"==={}.toString.call(process))Fa=function(){return process.ib(wa)};else{var Ga;if(ta)Ga=ya();else{var Ha;if(ua)Ha=za();else{var Ia;if(void 0===ra&&"function"===typeof require)try{var Ja=require("vertx");ma=Ja.kb||Ja.jb;Ia=va()}catch(a){Ia=xa()}else Ia=xa();Ha=Ia}Ga=Ha}Fa=Ga}Ba=Fa;function Ka(a,b){Aa[la]=a;Aa[la+1]=b;la+=2;2===la&&Ba()};function La(a,b){var c=this,d=new this.constructor(Ma);void 0===d[Na]&&Oa(d);var e=c.g;if(e){var f=arguments[e-1];Ka(function(){return Pa(e,d,f,c.f)})}else Qa(c,d,a,b);return d};function Ra(a){if(a&&"object"===typeof a&&a.constructor===this)return a;var b=new this(Ma);Sa(b,a);return b};var Na=Math.random().toString(36).substring(16);function Ma(){}var Ua=new Ta;function Va(a){try{return a.then}catch(b){return Ua.error=b,Ua}}function Wa(a,b,c,d){try{a.call(b,c,d)}catch(e){return e}}function Xa(a,b,c){Ka(function(a){var d=!1,f=Wa(c,b,function(c){d||(d=!0,b!==c?Sa(a,c):r(a,c))},function(b){d||(d=!0,u(a,b))});!d&&f&&(d=!0,u(a,f))},a)}function Ya(a,b){1===b.g?r(a,b.f):2===b.g?u(a,b.f):Qa(b,void 0,function(b){return Sa(a,b)},function(b){return u(a,b)})}
function Za(a,b,c){b.constructor===a.constructor&&c===La&&b.constructor.resolve===Ra?Ya(a,b):c===Ua?(u(a,Ua.error),Ua.error=null):void 0===c?r(a,b):"function"===typeof c?Xa(a,b,c):r(a,b)}function Sa(a,b){if(a===b)u(a,new TypeError("You cannot resolve a promise with itself"));else{var c=typeof b;null===b||"object"!==c&&"function"!==c?r(a,b):Za(a,b,Va(b))}}function $a(a){a.na&&a.na(a.f);ab(a)}function r(a,b){void 0===a.g&&(a.f=b,a.g=1,0!==a.I.length&&Ka(ab,a))}
function u(a,b){void 0===a.g&&(a.g=2,a.f=b,Ka($a,a))}function Qa(a,b,c,d){var e=a.I,f=e.length;a.na=null;e[f]=b;e[f+1]=c;e[f+2]=d;0===f&&a.g&&Ka(ab,a)}function ab(a){var b=a.I,c=a.g;if(0!==b.length){for(var d,e,f=a.f,h=0;h<b.length;h+=3)d=b[h],e=b[h+c],d?Pa(c,d,e,f):e(f);a.I.length=0}}function Ta(){this.error=null}var bb=new Ta;
function Pa(a,b,c,d){var e="function"===typeof c;if(e){try{var f=c(d)}catch(l){bb.error=l,f=bb}if(f===bb){var h=!0;var g=f.error;f.error=null}else var k=!0;if(b===f){u(b,new TypeError("A promises callback cannot return that same promise."));return}}else f=d,k=!0;void 0===b.g&&(e&&k?Sa(b,f):h?u(b,g):1===a?r(b,f):2===a&&u(b,f))}function cb(a,b){try{b(function(b){Sa(a,b)},function(b){u(a,b)})}catch(c){u(a,c)}}var db=0;function Oa(a){a[Na]=db++;a.g=void 0;a.f=void 0;a.I=[]};function gb(a,b){this.Ea=a;this.A=new a(Ma);this.A[Na]||Oa(this.A);if(ka(b))if(this.S=this.length=b.length,this.f=Array(this.length),0===this.length)r(this.A,this.f);else{this.length=this.length||0;for(a=0;void 0===this.g&&a<b.length;a++)hb(this,b[a],a);0===this.S&&r(this.A,this.f)}else u(this.A,Error("Array Methods must be provided an Array"))}
function hb(a,b,c){var d=a.Ea,e=d.resolve;e===Ra?(e=Va(b),e===La&&void 0!==b.g?ib(a,b.g,c,b.f):"function"!==typeof e?(a.S--,a.f[c]=b):d===v?(d=new d(Ma),Za(d,b,e),jb(a,d,c)):jb(a,new d(function(a){return a(b)}),c)):jb(a,e(b),c)}function ib(a,b,c,d){var e=a.A;void 0===e.g&&(a.S--,2===b?u(e,d):a.f[c]=d);0===a.S&&r(e,a.f)}function jb(a,b,c){Qa(b,void 0,function(b){return ib(a,1,c,b)},function(b){return ib(a,2,c,b)})};function kb(a){return(new gb(this,a)).A};function lb(a){var b=this;return ka(a)?new b(function(c,d){for(var e=a.length,f=0;f<e;f++)b.resolve(a[f]).then(c,d)}):new b(function(a,b){return b(new TypeError("You must pass an array to race."))})};function mb(a){var b=new this(Ma);u(b,a);return b};function v(a){this[Na]=db++;this.f=this.g=void 0;this.I=[];if(Ma!==a){if("function"!==typeof a)throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(this instanceof v)cb(this,a);else throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");}}v.prototype={constructor:v,then:La,a:function(a){return this.then(null,a)}};/*
Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
window.Promise||(window.Promise=v,v.prototype["catch"]=v.prototype.a,v.prototype.then=v.prototype.then,v.all=kb,v.race=lb,v.resolve=Ra,v.reject=mb);(function(a){function b(a,b){if("function"===typeof window.CustomEvent)return new CustomEvent(a,b);var c=document.createEvent("CustomEvent");c.initCustomEvent(a,!!b.bubbles,!!b.cancelable,b.detail);return c}function c(a){if(C)return a.ownerDocument!==document?a.ownerDocument:null;var b=a.__importDoc;if(!b&&a.parentNode){b=a.parentNode;if("function"===typeof b.closest)b=b.closest("link[rel=import]");else for(;!g(b)&&(b=b.parentNode););a.__importDoc=b}return b}function d(a){var b=m(document,"link[rel=import]:not([import-dependency])"),
c=b.length;c?n(b,function(b){return h(b,function(){0===--c&&a()})}):a()}function e(a){function b(){"loading"!==document.readyState&&document.body&&(document.removeEventListener("readystatechange",b),a())}document.addEventListener("readystatechange",b);b()}function f(a){e(function(){return d(function(){return a&&a()})})}function h(a,b){if(a.__loaded)b&&b();else if("script"===a.localName&&!a.src||"style"===a.localName&&!a.firstChild)a.__loaded=!0,b&&b();else{var c=function(d){a.removeEventListener(d.type,
c);a.__loaded=!0;b&&b()};a.addEventListener("load",c);aa&&"style"===a.localName||a.addEventListener("error",c)}}function g(a){return a.nodeType===Node.ELEMENT_NODE&&"link"===a.localName&&"import"===a.rel}function k(){var a=this;this.a={};this.b=0;this.c=new MutationObserver(function(b){return a.Ra(b)});this.c.observe(document.head,{childList:!0,subtree:!0});this.loadImports(document)}function l(a){n(m(a,"template"),function(a){n(m(a.content,'script:not([type]),script[type="application/javascript"],script[type="text/javascript"]'),
function(a){var b=document.createElement("script");n(a.attributes,function(a){return b.setAttribute(a.name,a.value)});b.textContent=a.textContent;a.parentNode.replaceChild(b,a)});l(a.content)})}function m(a,b){return a.childNodes.length?a.querySelectorAll(b):eb}function n(a,b,c){var d=a?a.length:0,e=c?-1:1;for(c=c?d-1:0;c<d&&0<=c;c+=e)b(a[c],c)}var t=document.createElement("link"),C="import"in t,eb=t.querySelectorAll("*"),J=null;!1==="currentScript"in document&&Object.defineProperty(document,"currentScript",
{get:function(){return J||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null)},configurable:!0});var Ca=/(url\()([^)]*)(\))/g,Da=/(@import[\s]+(?!url\())([^;]*)(;)/g,Ea=/(<link[^>]*)(rel=['|"]?stylesheet['|"]?[^>]*>)/g,x={La:function(a,b){a.href&&a.setAttribute("href",x.Y(a.getAttribute("href"),b));a.src&&a.setAttribute("src",x.Y(a.getAttribute("src"),b));if("style"===a.localName){var c=x.ta(a.textContent,b,Ca);a.textContent=x.ta(c,b,Da)}},ta:function(a,b,c){return a.replace(c,
function(a,c,d,e){a=d.replace(/["']/g,"");b&&(a=x.Y(a,b));return c+"'"+a+"'"+e})},Y:function(a,b){if(void 0===x.ba){x.ba=!1;try{var c=new URL("b","http://a");c.pathname="c%20d";x.ba="http://a/c%20d"===c.href}catch(Lg){}}if(x.ba)return(new URL(a,b)).href;c=x.Ba;c||(c=document.implementation.createHTMLDocument("temp"),x.Ba=c,c.ma=c.createElement("base"),c.head.appendChild(c.ma),c.la=c.createElement("a"));c.ma.href=b;c.la.href=a;return c.la.href||a}},na={async:!0,load:function(a,b,c){if(a)if(a.match(/^data:/)){a=
a.split(",");var d=a[1];d=-1<a[0].indexOf(";base64")?atob(d):decodeURIComponent(d);b(d)}else{var e=new XMLHttpRequest;e.open("GET",a,na.async);e.onload=function(){var a=e.responseURL||e.getResponseHeader("Location");a&&0===a.indexOf("/")&&(a=(location.origin||location.protocol+"//"+location.host)+a);var d=e.response||e.responseText;304===e.status||0===e.status||200<=e.status&&300>e.status?b(d,a):c(d)};e.send()}else c("error: href must be specified")}},aa=/Trident/.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent);
k.prototype.loadImports=function(a){var b=this;a=m(a,"link[rel=import]");n(a,function(a){return b.s(a)})};k.prototype.s=function(a){var b=this,c=a.href;if(void 0!==this.a[c]){var d=this.a[c];d&&d.__loaded&&(a.__import=d,this.h(a))}else this.b++,this.a[c]="pending",na.load(c,function(a,d){a=b.Sa(a,d||c);b.a[c]=a;b.b--;b.loadImports(a);b.L()},function(){b.a[c]=null;b.b--;b.L()})};k.prototype.Sa=function(a,b){if(!a)return document.createDocumentFragment();aa&&(a=a.replace(Ea,function(a,b,c){return-1===
a.indexOf("type=")?b+" type=import-disable "+c:a}));var c=document.createElement("template");c.innerHTML=a;if(c.content)a=c.content,l(a);else for(a=document.createDocumentFragment();c.firstChild;)a.appendChild(c.firstChild);if(c=a.querySelector("base"))b=x.Y(c.getAttribute("href"),b),c.removeAttribute("href");c=m(a,'link[rel=import],link[rel=stylesheet][href][type=import-disable],style:not([type]),link[rel=stylesheet][href]:not([type]),script:not([type]),script[type="application/javascript"],script[type="text/javascript"]');
var d=0;n(c,function(a){h(a);x.La(a,b);a.setAttribute("import-dependency","");"script"===a.localName&&!a.src&&a.textContent&&(a.setAttribute("src","data:text/javascript;charset=utf-8,"+encodeURIComponent(a.textContent+("\n//# sourceURL="+b+(d?"-"+d:"")+".js\n"))),a.textContent="",d++)});return a};k.prototype.L=function(){var a=this;if(!this.b){this.c.disconnect();this.flatten(document);var b=!1,c=!1,d=function(){c&&b&&(a.loadImports(document),a.b||(a.c.observe(document.head,{childList:!0,subtree:!0}),
a.Pa()))};this.Ua(function(){c=!0;d()});this.Ta(function(){b=!0;d()})}};k.prototype.flatten=function(a){var b=this;a=m(a,"link[rel=import]");n(a,function(a){var c=b.a[a.href];(a.__import=c)&&c.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&(b.a[a.href]=a,a.readyState="loading",a.__import=a,b.flatten(c),a.appendChild(c))})};k.prototype.Ta=function(a){function b(e){if(e<d){var f=c[e],g=document.createElement("script");f.removeAttribute("import-dependency");n(f.attributes,function(a){return g.setAttribute(a.name,
a.value)});J=g;f.parentNode.replaceChild(g,f);h(g,function(){J=null;b(e+1)})}else a()}var c=m(document,"script[import-dependency]"),d=c.length;b(0)};k.prototype.Ua=function(a){var b=m(document,"style[import-dependency],link[rel=stylesheet][import-dependency]"),d=b.length;if(d){var e=aa&&!!document.querySelector("link[rel=stylesheet][href][type=import-disable]");n(b,function(b){h(b,function(){b.removeAttribute("import-dependency");0===--d&&a()});if(e&&b.parentNode!==document.head){var f=document.createElement(b.localName);
f.__appliedElement=b;f.setAttribute("type","import-placeholder");b.parentNode.insertBefore(f,b.nextSibling);for(f=c(b);f&&c(f);)f=c(f);f.parentNode!==document.head&&(f=null);document.head.insertBefore(b,f);b.removeAttribute("type")}})}else a()};k.prototype.Pa=function(){var a=this,b=m(document,"link[rel=import]");n(b,function(b){return a.h(b)},!0)};k.prototype.h=function(a){a.__loaded||(a.__loaded=!0,a.import&&(a.import.readyState="complete"),a.dispatchEvent(b(a.import?"load":"error",{bubbles:!1,
cancelable:!1,detail:void 0})))};k.prototype.Ra=function(a){var b=this;n(a,function(a){return n(a.addedNodes,function(a){a&&a.nodeType===Node.ELEMENT_NODE&&(g(a)?b.s(a):b.loadImports(a))})})};var oa=null;if(C)t=m(document,"link[rel=import]"),n(t,function(a){a.import&&"loading"===a.import.readyState||(a.__loaded=!0)}),t=function(a){a=a.target;g(a)&&(a.__loaded=!0)},document.addEventListener("load",t,!0),document.addEventListener("error",t,!0);else{var U=Object.getOwnPropertyDescriptor(Node.prototype,
"baseURI");Object.defineProperty((!U||U.configurable?Node:Element).prototype,"baseURI",{get:function(){var a=g(this)?this:c(this);return a?a.href:U&&U.get?U.get.call(this):(document.querySelector("base")||window.location).href},configurable:!0,enumerable:!0});Object.defineProperty(HTMLLinkElement.prototype,"import",{get:function(){return this.__import||null},configurable:!0,enumerable:!0});e(function(){oa=new k})}f(function(){return document.dispatchEvent(b("HTMLImportsLoaded",{cancelable:!0,bubbles:!0,
detail:void 0}))});a.useNative=C;a.whenReady=f;a.importForElement=c;a.loadImports=function(a){oa&&oa.loadImports(a)}})(window.HTMLImports=window.HTMLImports||{});/*
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
window.WebComponents=window.WebComponents||{flags:{}};var nb=document.querySelector('script[src*="webcomponents-lite.js"]'),ob=/wc-(.+)/,w={};if(!w.noOpts){location.search.slice(1).split("&").forEach(function(a){a=a.split("=");var b;a[0]&&(b=a[0].match(ob))&&(w[b[1]]=a[1]||!0)});if(nb)for(var pb=0,qb;qb=nb.attributes[pb];pb++)"src"!==qb.name&&(w[qb.name]=qb.value||!0);if(w.log&&w.log.split){var rb=w.log.split(",");w.log={};rb.forEach(function(a){w.log[a]=!0})}else w.log={}}
window.WebComponents.flags=w;var sb=w.shadydom;sb&&(window.ShadyDOM=window.ShadyDOM||{},window.ShadyDOM.force=sb);var tb=w.register||w.ce;tb&&window.customElements&&(window.customElements.forcePolyfill=tb);/*
Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
var y=window.ShadyDOM||{};y.Na=!(!Element.prototype.attachShadow||!Node.prototype.getRootNode);var ub=Object.getOwnPropertyDescriptor(Node.prototype,"firstChild");y.M=!!(ub&&ub.configurable&&ub.get);y.sa=y.force||!y.Na;function vb(a){return a.__shady&&void 0!==a.__shady.firstChild}function z(a){return"ShadyRoot"===a.ya}function wb(a){a=a.getRootNode();if(z(a))return a}var xb=Element.prototype,yb=xb.matches||xb.matchesSelector||xb.mozMatchesSelector||xb.msMatchesSelector||xb.oMatchesSelector||xb.webkitMatchesSelector;
function zb(a,b){if(a&&b)for(var c=Object.getOwnPropertyNames(b),d=0,e;d<c.length&&(e=c[d]);d++){var f=Object.getOwnPropertyDescriptor(b,e);f&&Object.defineProperty(a,e,f)}}function Ab(a,b){for(var c=[],d=1;d<arguments.length;++d)c[d-1]=arguments[d];for(d=0;d<c.length;d++)zb(a,c[d]);return a}function Bb(a,b){for(var c in b)a[c]=b[c]}var Cb=document.createTextNode(""),Db=0,Eb=[];(new MutationObserver(function(){for(;Eb.length;)try{Eb.shift()()}catch(a){throw Cb.textContent=Db++,a;}})).observe(Cb,{characterData:!0});
function Fb(a){Eb.push(a);Cb.textContent=Db++}var Gb=!!document.contains;function Hb(a,b){for(;b;){if(b==a)return!0;b=b.parentNode}return!1};var Ib=[],Jb;function Kb(a){Jb||(Jb=!0,Fb(Lb));Ib.push(a)}function Lb(){Jb=!1;for(var a=!!Ib.length;Ib.length;)Ib.shift()();return a}Lb.list=Ib;function Mb(){this.a=!1;this.addedNodes=[];this.removedNodes=[];this.V=new Set}function Nb(a){a.a||(a.a=!0,Fb(function(){Ob(a)}))}function Ob(a){if(a.a){a.a=!1;var b=a.takeRecords();b.length&&a.V.forEach(function(a){a(b)})}}Mb.prototype.takeRecords=function(){if(this.addedNodes.length||this.removedNodes.length){var a=[{addedNodes:this.addedNodes,removedNodes:this.removedNodes}];this.addedNodes=[];this.removedNodes=[];return a}return[]};
function Pb(a,b){a.__shady=a.__shady||{};a.__shady.N||(a.__shady.N=new Mb);a.__shady.N.V.add(b);var c=a.__shady.N;return{Ca:b,C:c,Ga:a,takeRecords:function(){return c.takeRecords()}}}function Qb(a){var b=a&&a.C;b&&(b.V.delete(a.Ca),b.V.size||(a.Ga.__shady.N=null))}
function Rb(a,b){var c=b.getRootNode();return a.map(function(a){var b=c===a.target.getRootNode();if(b&&a.addedNodes){if(b=Array.from(a.addedNodes).filter(function(a){return c===a.getRootNode()}),b.length)return a=Object.create(a),Object.defineProperty(a,"addedNodes",{value:b,configurable:!0}),a}else if(b)return a}).filter(function(a){return a})};var A={},Sb=Element.prototype.insertBefore,Tb=Element.prototype.removeChild,Ub=Element.prototype.setAttribute,Vb=Element.prototype.removeAttribute,Wb=Element.prototype.cloneNode,Xb=Document.prototype.importNode,Yb=Element.prototype.addEventListener,Zb=Element.prototype.removeEventListener,$b=Window.prototype.addEventListener,ac=Window.prototype.removeEventListener,bc=Element.prototype.dispatchEvent,cc=Element.prototype.querySelector,dc=Element.prototype.querySelectorAll,ec=Node.prototype.contains||
HTMLElement.prototype.contains;A.appendChild=Element.prototype.appendChild;A.insertBefore=Sb;A.removeChild=Tb;A.setAttribute=Ub;A.removeAttribute=Vb;A.cloneNode=Wb;A.importNode=Xb;A.addEventListener=Yb;A.removeEventListener=Zb;A.ab=$b;A.bb=ac;A.dispatchEvent=bc;A.querySelector=cc;A.querySelectorAll=dc;A.contains=ec;var fc=/[&\u00A0"]/g,gc=/[&\u00A0<>]/g;function hc(a){switch(a){case "&":return"&amp;";case "<":return"&lt;";case ">":return"&gt;";case '"':return"&quot;";case "\u00a0":return"&nbsp;"}}function ic(a){for(var b={},c=0;c<a.length;c++)b[a[c]]=!0;return b}var jc=ic("area base br col command embed hr img input keygen link meta param source track wbr".split(" ")),kc=ic("style script xmp iframe noembed noframes plaintext noscript".split(" "));
function lc(a,b){"template"===a.localName&&(a=a.content);for(var c="",d=b?b(a):a.childNodes,e=0,f=d.length,h;e<f&&(h=d[e]);e++){a:{var g=h;var k=a;var l=b;switch(g.nodeType){case Node.ELEMENT_NODE:for(var m=g.localName,n="<"+m,t=g.attributes,C=0;k=t[C];C++)n+=" "+k.name+'="'+k.value.replace(fc,hc)+'"';n+=">";g=jc[m]?n:n+lc(g,l)+"</"+m+">";break a;case Node.TEXT_NODE:g=g.data;g=k&&kc[k.localName]?g:g.replace(gc,hc);break a;case Node.COMMENT_NODE:g="\x3c!--"+g.data+"--\x3e";break a;default:throw window.console.error(g),
Error("not implemented");}}c+=g}return c};var B={},D=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,!1),E=document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT,null,!1);function mc(a){var b=[];D.currentNode=a;for(a=D.firstChild();a;)b.push(a),a=D.nextSibling();return b}B.parentNode=function(a){D.currentNode=a;return D.parentNode()};B.firstChild=function(a){D.currentNode=a;return D.firstChild()};B.lastChild=function(a){D.currentNode=a;return D.lastChild()};B.previousSibling=function(a){D.currentNode=a;return D.previousSibling()};
B.nextSibling=function(a){D.currentNode=a;return D.nextSibling()};B.childNodes=mc;B.parentElement=function(a){E.currentNode=a;return E.parentNode()};B.firstElementChild=function(a){E.currentNode=a;return E.firstChild()};B.lastElementChild=function(a){E.currentNode=a;return E.lastChild()};B.previousElementSibling=function(a){E.currentNode=a;return E.previousSibling()};B.nextElementSibling=function(a){E.currentNode=a;return E.nextSibling()};
B.children=function(a){var b=[];E.currentNode=a;for(a=E.firstChild();a;)b.push(a),a=E.nextSibling();return b};B.innerHTML=function(a){return lc(a,function(a){return mc(a)})};B.textContent=function(a){switch(a.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:a=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);for(var b="",c;c=a.nextNode();)b+=c.nodeValue;return b;default:return a.nodeValue}};var nc=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML")||Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerHTML"),oc=document.implementation.createHTMLDocument("inert"),pc=Object.getOwnPropertyDescriptor(Document.prototype,"activeElement"),qc={parentElement:{get:function(){var a=this.__shady&&this.__shady.parentNode;a&&a.nodeType!==Node.ELEMENT_NODE&&(a=null);return void 0!==a?a:B.parentElement(this)},configurable:!0},parentNode:{get:function(){var a=this.__shady&&this.__shady.parentNode;
return void 0!==a?a:B.parentNode(this)},configurable:!0},nextSibling:{get:function(){var a=this.__shady&&this.__shady.nextSibling;return void 0!==a?a:B.nextSibling(this)},configurable:!0},previousSibling:{get:function(){var a=this.__shady&&this.__shady.previousSibling;return void 0!==a?a:B.previousSibling(this)},configurable:!0},className:{get:function(){return this.getAttribute("class")||""},set:function(a){this.setAttribute("class",a)},configurable:!0},nextElementSibling:{get:function(){if(this.__shady&&
void 0!==this.__shady.nextSibling){for(var a=this.nextSibling;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.nextSibling;return a}return B.nextElementSibling(this)},configurable:!0},previousElementSibling:{get:function(){if(this.__shady&&void 0!==this.__shady.previousSibling){for(var a=this.previousSibling;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.previousSibling;return a}return B.previousElementSibling(this)},configurable:!0}},rc={childNodes:{get:function(){if(vb(this)){if(!this.__shady.childNodes){this.__shady.childNodes=
[];for(var a=this.firstChild;a;a=a.nextSibling)this.__shady.childNodes.push(a)}var b=this.__shady.childNodes}else b=B.childNodes(this);b.item=function(a){return b[a]};return b},configurable:!0},childElementCount:{get:function(){return this.children.length},configurable:!0},firstChild:{get:function(){var a=this.__shady&&this.__shady.firstChild;return void 0!==a?a:B.firstChild(this)},configurable:!0},lastChild:{get:function(){var a=this.__shady&&this.__shady.lastChild;return void 0!==a?a:B.lastChild(this)},
configurable:!0},textContent:{get:function(){if(vb(this)){for(var a=[],b=0,c=this.childNodes,d;d=c[b];b++)d.nodeType!==Node.COMMENT_NODE&&a.push(d.textContent);return a.join("")}return B.textContent(this)},set:function(a){if("undefined"===typeof a||null===a)a="";switch(this.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:for(;this.firstChild;)this.removeChild(this.firstChild);(0<a.length||this.nodeType===Node.ELEMENT_NODE)&&this.appendChild(document.createTextNode(a));break;default:this.nodeValue=
a}},configurable:!0},firstElementChild:{get:function(){if(this.__shady&&void 0!==this.__shady.firstChild){for(var a=this.firstChild;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.nextSibling;return a}return B.firstElementChild(this)},configurable:!0},lastElementChild:{get:function(){if(this.__shady&&void 0!==this.__shady.lastChild){for(var a=this.lastChild;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.previousSibling;return a}return B.lastElementChild(this)},configurable:!0},children:{get:function(){var a=vb(this)?
Array.prototype.filter.call(this.childNodes,function(a){return a.nodeType===Node.ELEMENT_NODE}):B.children(this);a.item=function(b){return a[b]};return a},configurable:!0},innerHTML:{get:function(){var a="template"===this.localName?this.content:this;return vb(this)?lc(a):B.innerHTML(a)},set:function(a){for(var b="template"===this.localName?this.content:this;b.firstChild;)b.removeChild(b.firstChild);var c=this.localName;c&&"template"!==c||(c="div");c=oc.createElement(c);for(nc&&nc.set?nc.set.call(c,
a):c.innerHTML=a;c.firstChild;)b.appendChild(c.firstChild)},configurable:!0}},sc={shadowRoot:{get:function(){return this.__shady&&this.__shady.Va||null},configurable:!0}},tc={activeElement:{get:function(){var a=pc&&pc.get?pc.get.call(document):y.M?void 0:document.activeElement;if(a&&a.nodeType){var b=!!z(this);if(this===document||b&&this.host!==a&&A.contains.call(this.host,a)){for(b=wb(a);b&&b!==this;)a=b.host,b=wb(a);a=this===document?b?null:a:b===this?a:null}else a=null}else a=null;return a},set:function(){},
configurable:!0}};function F(a,b,c){for(var d in b){var e=Object.getOwnPropertyDescriptor(a,d);e&&e.configurable||!e&&c?Object.defineProperty(a,d,b[d]):c&&console.warn("Could not define",d,"on",a)}}function G(a){F(a,qc);F(a,rc);F(a,tc)}var uc=y.M?function(){}:function(a){a.__shady&&a.__shady.za||(a.__shady=a.__shady||{},a.__shady.za=!0,F(a,qc,!0))},vc=y.M?function(){}:function(a){a.__shady&&a.__shady.xa||(a.__shady=a.__shady||{},a.__shady.xa=!0,F(a,rc,!0),F(a,sc,!0))};function wc(a,b,c){uc(a);c=c||null;a.__shady=a.__shady||{};b.__shady=b.__shady||{};c&&(c.__shady=c.__shady||{});a.__shady.previousSibling=c?c.__shady.previousSibling:b.lastChild;var d=a.__shady.previousSibling;d&&d.__shady&&(d.__shady.nextSibling=a);(d=a.__shady.nextSibling=c)&&d.__shady&&(d.__shady.previousSibling=a);a.__shady.parentNode=b;c?c===b.__shady.firstChild&&(b.__shady.firstChild=a):(b.__shady.lastChild=a,b.__shady.firstChild||(b.__shady.firstChild=a));b.__shady.childNodes=null}
function xc(a){if(!a.__shady||void 0===a.__shady.firstChild){a.__shady=a.__shady||{};a.__shady.firstChild=B.firstChild(a);a.__shady.lastChild=B.lastChild(a);vc(a);for(var b=a.__shady.childNodes=B.childNodes(a),c=0,d;c<b.length&&(d=b[c]);c++)d.__shady=d.__shady||{},d.__shady.parentNode=a,d.__shady.nextSibling=b[c+1]||null,d.__shady.previousSibling=b[c-1]||null,uc(d)}};function yc(a,b,c){if(b===a)throw Error("Failed to execute 'appendChild' on 'Node': The new child element contains the parent.");if(c){var d=c.__shady&&c.__shady.parentNode;if(void 0!==d&&d!==a||void 0===d&&B.parentNode(c)!==a)throw Error("Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.");}if(c===b)return b;b.parentNode&&zc(b.parentNode,b);d=wb(a);var e;if(e=d)a:{if(!b.__noInsertionPoint){var f;"slot"===b.localName?f=[b]:
b.querySelectorAll&&(f=b.querySelectorAll("slot"));if(f&&f.length){e=f;break a}}e=void 0}(f=e)&&d.H.push.apply(d.H,[].concat(f instanceof Array?f:ja(ia(f))));d&&("slot"===a.localName||f)&&Ac(d);if(vb(a)){d=c;vc(a);a.__shady=a.__shady||{};void 0!==a.__shady.firstChild&&(a.__shady.childNodes=null);if(b.nodeType===Node.DOCUMENT_FRAGMENT_NODE){f=b.childNodes;for(e=0;e<f.length;e++)wc(f[e],a,d);b.__shady=b.__shady||{};d=void 0!==b.__shady.firstChild?null:void 0;b.__shady.firstChild=b.__shady.lastChild=
d;b.__shady.childNodes=d}else wc(b,a,d);if(Bc(a)){Ac(a.__shady.root);var h=!0}else a.__shady.root&&(h=!0)}h||(h=z(a)?a.host:a,c?(c=Cc(c),A.insertBefore.call(h,b,c)):A.appendChild.call(h,b));Dc(a,b);return b}
function zc(a,b){if(b.parentNode!==a)throw Error("The node to be removed is not a child of this node: "+b);var c=wb(b);if(vb(a)){b.__shady=b.__shady||{};a.__shady=a.__shady||{};b===a.__shady.firstChild&&(a.__shady.firstChild=b.__shady.nextSibling);b===a.__shady.lastChild&&(a.__shady.lastChild=b.__shady.previousSibling);var d=b.__shady.previousSibling,e=b.__shady.nextSibling;d&&(d.__shady=d.__shady||{},d.__shady.nextSibling=e);e&&(e.__shady=e.__shady||{},e.__shady.previousSibling=d);b.__shady.parentNode=
b.__shady.previousSibling=b.__shady.nextSibling=void 0;void 0!==a.__shady.childNodes&&(a.__shady.childNodes=null);if(Bc(a)){Ac(a.__shady.root);var f=!0}}Ec(b);if(c){(d=a&&"slot"===a.localName)&&(f=!0);Fc(c);e=c.l;for(var h in e)for(var g=e[h],k=0;k<g.length;k++){var l=g[k];if(Hb(b,l)){g.splice(k,1);var m=c.o.indexOf(l);0<=m&&c.o.splice(m,1);k--;if(m=l.__shady.K)for(l=0;l<m.length;l++){var n=m[l],t=B.parentNode(n);t&&A.removeChild.call(t,n)}m=!0}}(m||d)&&Ac(c)}f||(f=z(a)?a.host:a,(!a.__shady.root&&
"slot"!==b.localName||f===B.parentNode(b))&&A.removeChild.call(f,b));Dc(a,null,b);return b}function Ec(a){if(a.__shady&&void 0!==a.__shady.ka)for(var b=a.childNodes,c=0,d=b.length,e;c<d&&(e=b[c]);c++)Ec(e);a.__shady&&(a.__shady.ka=void 0)}function Cc(a){var b=a;a&&"slot"===a.localName&&(b=(b=a.__shady&&a.__shady.K)&&b.length?b[0]:Cc(a.nextSibling));return b}function Bc(a){return(a=a&&a.__shady&&a.__shady.root)&&Gc(a)}
function Hc(a,b){if("slot"===b)a=a.parentNode,Bc(a)&&Ac(a.__shady.root);else if("slot"===a.localName&&"name"===b&&(b=wb(a))){var c=a.Aa,d=Ic(a);if(d!==c){c=b.l[c];var e=c.indexOf(a);0<=e&&c.splice(e,1);c=b.l[d]||(b.l[d]=[]);c.push(a);1<c.length&&(b.l[d]=Jc(c))}Ac(b)}}function Dc(a,b,c){if(a=a.__shady&&a.__shady.N)b&&a.addedNodes.push(b),c&&a.removedNodes.push(c),Nb(a)}
function Kc(a){if(a&&a.nodeType){a.__shady=a.__shady||{};var b=a.__shady.ka;void 0===b&&(b=z(a)?a:(b=a.parentNode)?Kc(b):a,A.contains.call(document.documentElement,a)&&(a.__shady.ka=b));return b}}function Lc(a,b,c){var d=[];Mc(a.childNodes,b,c,d);return d}function Mc(a,b,c,d){for(var e=0,f=a.length,h;e<f&&(h=a[e]);e++){var g;if(g=h.nodeType===Node.ELEMENT_NODE){g=h;var k=b,l=c,m=d,n=k(g);n&&m.push(g);l&&l(n)?g=n:(Mc(g.childNodes,k,l,m),g=void 0)}if(g)break}}var Nc=null;
function Oc(a,b,c){Nc||(Nc=window.ShadyCSS&&window.ShadyCSS.ScopingShim);Nc&&"class"===b?Nc.setElementClass(a,c):(A.setAttribute.call(a,b,c),Hc(a,b))}function Pc(a,b){if(a.ownerDocument!==document)return A.importNode.call(document,a,b);var c=A.importNode.call(document,a,!1);if(b){a=a.childNodes;b=0;for(var d;b<a.length;b++)d=Pc(a[b],!0),c.appendChild(d)}return c};var Qc="__eventWrappers"+Date.now(),Rc={blur:!0,focus:!0,focusin:!0,focusout:!0,click:!0,dblclick:!0,mousedown:!0,mouseenter:!0,mouseleave:!0,mousemove:!0,mouseout:!0,mouseover:!0,mouseup:!0,wheel:!0,beforeinput:!0,input:!0,keydown:!0,keyup:!0,compositionstart:!0,compositionupdate:!0,compositionend:!0,touchstart:!0,touchend:!0,touchmove:!0,touchcancel:!0,pointerover:!0,pointerenter:!0,pointerdown:!0,pointermove:!0,pointerup:!0,pointercancel:!0,pointerout:!0,pointerleave:!0,gotpointercapture:!0,lostpointercapture:!0,
dragstart:!0,drag:!0,dragenter:!0,dragleave:!0,dragover:!0,drop:!0,dragend:!0,DOMActivate:!0,DOMFocusIn:!0,DOMFocusOut:!0,keypress:!0};function Sc(a,b){var c=[],d=a;for(a=a===window?window:a.getRootNode();d;)c.push(d),d=d.assignedSlot?d.assignedSlot:d.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&d.host&&(b||d!==a)?d.host:d.parentNode;c[c.length-1]===document&&c.push(window);return c}
function Tc(a,b){if(!z)return a;a=Sc(a,!0);for(var c=0,d,e,f,h;c<b.length;c++)if(d=b[c],f=d===window?window:d.getRootNode(),f!==e&&(h=a.indexOf(f),e=f),!z(f)||-1<h)return d}
var Uc={get composed(){!1!==this.isTrusted&&void 0===this.Z&&(this.Z=Rc[this.type]);return this.Z||!1},composedPath:function(){this.b||(this.b=Sc(this.__target,this.composed));return this.b},get target(){return Tc(this.currentTarget,this.composedPath())},get relatedTarget(){if(!this.$)return null;this.c||(this.c=Sc(this.$,!0));return Tc(this.currentTarget,this.c)},stopPropagation:function(){Event.prototype.stopPropagation.call(this);this.a=!0},stopImmediatePropagation:function(){Event.prototype.stopImmediatePropagation.call(this);
this.a=this.h=!0}};function Vc(a){function b(b,d){b=new a(b,d);b.Z=d&&!!d.composed;return b}Bb(b,a);b.prototype=a.prototype;return b}var Wc={focus:!0,blur:!0};function Xc(a){return a.__target!==a.target||a.$!==a.relatedTarget}function Yc(a,b,c){if(c=b.__handlers&&b.__handlers[a.type]&&b.__handlers[a.type][c])for(var d=0,e;(e=c[d])&&(!Xc(a)||a.target!==a.relatedTarget)&&(e.call(b,a),!a.h);d++);}
function Zc(a){var b=a.composedPath();Object.defineProperty(a,"currentTarget",{get:function(){return d},configurable:!0});for(var c=b.length-1;0<=c;c--){var d=b[c];Yc(a,d,"capture");if(a.a)return}Object.defineProperty(a,"eventPhase",{get:function(){return Event.AT_TARGET}});var e;for(c=0;c<b.length;c++){d=b[c];var f=d.__shady&&d.__shady.root;if(0===c||f&&f===e)if(Yc(a,d,"bubble"),d!==window&&(e=d.getRootNode()),a.a)break}}
function $c(a,b,c,d,e,f){for(var h=0;h<a.length;h++){var g=a[h],k=g.type,l=g.capture,m=g.once,n=g.passive;if(b===g.node&&c===k&&d===l&&e===m&&f===n)return h}return-1}
function ad(a,b,c){if(b){var d=typeof b;if("function"===d||"object"===d)if("object"!==d||b.handleEvent&&"function"===typeof b.handleEvent){if(c&&"object"===typeof c){var e=!!c.capture;var f=!!c.once;var h=!!c.passive}else e=!!c,h=f=!1;var g=c&&c.aa||this,k=b[Qc];if(k){if(-1<$c(k,g,a,e,f,h))return}else b[Qc]=[];k=function(e){f&&this.removeEventListener(a,b,c);e.__target||bd(e);if(g!==this){var h=Object.getOwnPropertyDescriptor(e,"currentTarget");Object.defineProperty(e,"currentTarget",{get:function(){return g},
configurable:!0})}if(e.composed||-1<e.composedPath().indexOf(g))if(Xc(e)&&e.target===e.relatedTarget)e.eventPhase===Event.BUBBLING_PHASE&&e.stopImmediatePropagation();else if(e.eventPhase===Event.CAPTURING_PHASE||e.bubbles||e.target===g||g instanceof Window){var k="function"===d?b.call(g,e):b.handleEvent&&b.handleEvent(e);g!==this&&(h?(Object.defineProperty(e,"currentTarget",h),h=null):delete e.currentTarget);return k}};b[Qc].push({node:this,type:a,capture:e,once:f,passive:h,cb:k});Wc[a]?(this.__handlers=
this.__handlers||{},this.__handlers[a]=this.__handlers[a]||{capture:[],bubble:[]},this.__handlers[a][e?"capture":"bubble"].push(k)):(this instanceof Window?A.ab:A.addEventListener).call(this,a,k,c)}}}
function cd(a,b,c){if(b){if(c&&"object"===typeof c){var d=!!c.capture;var e=!!c.once;var f=!!c.passive}else d=!!c,f=e=!1;var h=c&&c.aa||this,g=void 0;var k=null;try{k=b[Qc]}catch(l){}k&&(e=$c(k,h,a,d,e,f),-1<e&&(g=k.splice(e,1)[0].cb,k.length||(b[Qc]=void 0)));(this instanceof Window?A.bb:A.removeEventListener).call(this,a,g||b,c);g&&Wc[a]&&this.__handlers&&this.__handlers[a]&&(a=this.__handlers[a][d?"capture":"bubble"],g=a.indexOf(g),-1<g&&a.splice(g,1))}}
function dd(){for(var a in Wc)window.addEventListener(a,function(a){a.__target||(bd(a),Zc(a))},!0)}function bd(a){a.__target=a.target;a.$=a.relatedTarget;if(y.M){var b=Object.getPrototypeOf(a);if(!b.hasOwnProperty("__patchProto")){var c=Object.create(b);c.fb=b;zb(c,Uc);b.__patchProto=c}a.__proto__=b.__patchProto}else zb(a,Uc)}var ed=Vc(window.Event),fd=Vc(window.CustomEvent),gd=Vc(window.MouseEvent);function hd(a,b){return{index:a,O:[],U:b}}
function id(a,b,c,d){var e=0,f=0,h=0,g=0,k=Math.min(b-e,d-f);if(0==e&&0==f)a:{for(h=0;h<k;h++)if(a[h]!==c[h])break a;h=k}if(b==a.length&&d==c.length){g=a.length;for(var l=c.length,m=0;m<k-h&&jd(a[--g],c[--l]);)m++;g=m}e+=h;f+=h;b-=g;d-=g;if(0==b-e&&0==d-f)return[];if(e==b){for(b=hd(e,0);f<d;)b.O.push(c[f++]);return[b]}if(f==d)return[hd(e,b-e)];k=e;h=f;d=d-h+1;g=b-k+1;b=Array(d);for(l=0;l<d;l++)b[l]=Array(g),b[l][0]=l;for(l=0;l<g;l++)b[0][l]=l;for(l=1;l<d;l++)for(m=1;m<g;m++)if(a[k+m-1]===c[h+l-1])b[l][m]=
b[l-1][m-1];else{var n=b[l-1][m]+1,t=b[l][m-1]+1;b[l][m]=n<t?n:t}k=b.length-1;h=b[0].length-1;d=b[k][h];for(a=[];0<k||0<h;)0==k?(a.push(2),h--):0==h?(a.push(3),k--):(g=b[k-1][h-1],l=b[k-1][h],m=b[k][h-1],n=l<m?l<g?l:g:m<g?m:g,n==g?(g==d?a.push(0):(a.push(1),d=g),k--,h--):n==l?(a.push(3),k--,d=l):(a.push(2),h--,d=m));a.reverse();b=void 0;k=[];for(h=0;h<a.length;h++)switch(a[h]){case 0:b&&(k.push(b),b=void 0);e++;f++;break;case 1:b||(b=hd(e,0));b.U++;e++;b.O.push(c[f]);f++;break;case 2:b||(b=hd(e,0));
b.U++;e++;break;case 3:b||(b=hd(e,0)),b.O.push(c[f]),f++}b&&k.push(b);return k}function jd(a,b){return a===b};var kd={};function H(a,b,c){if(a!==kd)throw new TypeError("Illegal constructor");a=document.createDocumentFragment();a.__proto__=H.prototype;a.ya="ShadyRoot";xc(b);xc(a);a.host=b;a.Fa=c&&c.mode;b.__shady=b.__shady||{};b.__shady.root=a;b.__shady.Va="closed"!==a.Fa?a:null;a.T=!1;a.o=[];a.l={};a.H=[];c=B.childNodes(b);for(var d=0,e=c.length;d<e;d++)A.removeChild.call(b,c[d]);return a}H.prototype=Object.create(DocumentFragment.prototype);function Ac(a){a.T||(a.T=!0,Kb(function(){return ld(a)}))}
function ld(a){for(var b;a;){a.T&&(b=a);a:{var c=a;a=c.host.getRootNode();if(z(a))for(var d=c.host.childNodes,e=0;e<d.length;e++)if(c=d[e],"slot"==c.localName)break a;a=void 0}}b&&b._renderRoot()}
H.prototype._renderRoot=function(){this.T=!1;Fc(this);for(var a=0,b;a<this.o.length;a++){b=this.o[a];var c=b.__shady.assignedNodes;b.__shady.assignedNodes=[];b.__shady.K=[];if(b.__shady.oa=c)for(var d=0;d<c.length;d++){var e=c[d];e.__shady.ga=e.__shady.assignedSlot;e.__shady.assignedSlot===b&&(e.__shady.assignedSlot=null)}}for(b=this.host.firstChild;b;b=b.nextSibling)md(this,b);for(a=0;a<this.o.length;a++){b=this.o[a];if(!b.__shady.assignedNodes.length)for(c=b.firstChild;c;c=c.nextSibling)md(this,
c,b);c=b.parentNode;(c=c.__shady&&c.__shady.root)&&Gc(c)&&c._renderRoot();nd(this,b.__shady.K,b.__shady.assignedNodes);if(c=b.__shady.oa){for(d=0;d<c.length;d++)c[d].__shady.ga=null;b.__shady.oa=null;c.length>b.__shady.assignedNodes.length&&(b.__shady.ia=!0)}b.__shady.ia&&(b.__shady.ia=!1,od(this,b))}a=this.o;b=[];for(c=0;c<a.length;c++)d=a[c].parentNode,d.__shady&&d.__shady.root||!(0>b.indexOf(d))||b.push(d);for(a=0;a<b.length;a++){c=b[a];d=c===this?this.host:c;e=[];c=c.childNodes;for(var f=0;f<
c.length;f++){var h=c[f];if("slot"==h.localName){h=h.__shady.K;for(var g=0;g<h.length;g++)e.push(h[g])}else e.push(h)}c=void 0;f=B.childNodes(d);h=id(e,e.length,f,f.length);for(var k=g=0;g<h.length&&(c=h[g]);g++){for(var l=0,m;l<c.O.length&&(m=c.O[l]);l++)B.parentNode(m)===d&&A.removeChild.call(d,m),f.splice(c.index+k,1);k-=c.U}for(k=0;k<h.length&&(c=h[k]);k++)for(g=f[c.index],l=c.index;l<c.index+c.U;l++)m=e[l],A.insertBefore.call(d,m,g),f.splice(l,0,m)}};
function md(a,b,c){b.__shady=b.__shady||{};var d=b.__shady.ga;b.__shady.ga=null;c||(c=(a=a.l[b.slot||"__catchall"])&&a[0]);c?(c.__shady.assignedNodes.push(b),b.__shady.assignedSlot=c):b.__shady.assignedSlot=void 0;d!==b.__shady.assignedSlot&&b.__shady.assignedSlot&&(b.__shady.assignedSlot.__shady.ia=!0)}function nd(a,b,c){for(var d=0,e;d<c.length&&(e=c[d]);d++)if("slot"==e.localName){var f=e.__shady.assignedNodes;f&&f.length&&nd(a,b,f)}else b.push(c[d])}
function od(a,b){A.dispatchEvent.call(b,new Event("slotchange"));b.__shady.assignedSlot&&od(a,b.__shady.assignedSlot)}function Fc(a){if(a.H.length){for(var b=a.H,c,d=0;d<b.length;d++){var e=b[d];e.__shady=e.__shady||{};xc(e);xc(e.parentNode);var f=Ic(e);a.l[f]?(c=c||{},c[f]=!0,a.l[f].push(e)):a.l[f]=[e];a.o.push(e)}if(c)for(var h in c)a.l[h]=Jc(a.l[h]);a.H=[]}}function Ic(a){var b=a.name||a.getAttribute("name")||"__catchall";return a.Aa=b}
function Jc(a){return a.sort(function(a,c){a=pd(a);for(var b=pd(c),e=0;e<a.length;e++){c=a[e];var f=b[e];if(c!==f)return a=Array.from(c.parentNode.childNodes),a.indexOf(c)-a.indexOf(f)}})}function pd(a){var b=[];do b.unshift(a);while(a=a.parentNode);return b}function Gc(a){Fc(a);return!!a.o.length}H.prototype.addEventListener=function(a,b,c){"object"!==typeof c&&(c={capture:!!c});c.aa=this;this.host.addEventListener(a,b,c)};
H.prototype.removeEventListener=function(a,b,c){"object"!==typeof c&&(c={capture:!!c});c.aa=this;this.host.removeEventListener(a,b,c)};H.prototype.getElementById=function(a){return Lc(this,function(b){return b.id==a},function(a){return!!a})[0]||null};var qd=H.prototype;F(qd,rc,!0);F(qd,tc,!0);function rd(a){var b=a.getRootNode();z(b)&&ld(b);return a.__shady&&a.__shady.assignedSlot||null}
var sd={addEventListener:ad.bind(window),removeEventListener:cd.bind(window)},td={addEventListener:ad,removeEventListener:cd,appendChild:function(a){return yc(this,a)},insertBefore:function(a,b){return yc(this,a,b)},removeChild:function(a){return zc(this,a)},replaceChild:function(a,b){yc(this,a,b);zc(this,b);return a},cloneNode:function(a){if("template"==this.localName)var b=A.cloneNode.call(this,a);else if(b=A.cloneNode.call(this,!1),a){a=this.childNodes;for(var c=0,d;c<a.length;c++)d=a[c].cloneNode(!0),
b.appendChild(d)}return b},getRootNode:function(){return Kc(this)},contains:function(a){return Hb(this,a)},get isConnected(){var a=this.ownerDocument;if(Gb&&A.contains.call(a,this)||a.documentElement&&A.contains.call(a.documentElement,this))return!0;for(a=this;a&&!(a instanceof Document);)a=a.parentNode||(a instanceof H?a.host:void 0);return!!(a&&a instanceof Document)},dispatchEvent:function(a){Lb();return A.dispatchEvent.call(this,a)}},ud={get assignedSlot(){return rd(this)}},vd={querySelector:function(a){return Lc(this,
function(b){return yb.call(b,a)},function(a){return!!a})[0]||null},querySelectorAll:function(a){return Lc(this,function(b){return yb.call(b,a)})}},wd={assignedNodes:function(a){if("slot"===this.localName){var b=this.getRootNode();z(b)&&ld(b);return this.__shady?(a&&a.flatten?this.__shady.K:this.__shady.assignedNodes)||[]:[]}}},xd=Ab({setAttribute:function(a,b){Oc(this,a,b)},removeAttribute:function(a){A.removeAttribute.call(this,a);Hc(this,a)},attachShadow:function(a){if(!this)throw"Must provide a host.";
if(!a)throw"Not enough arguments.";return new H(kd,this,a)},get slot(){return this.getAttribute("slot")},set slot(a){Oc(this,"slot",a)},get assignedSlot(){return rd(this)}},vd,wd);Object.defineProperties(xd,sc);var yd=Ab({importNode:function(a,b){return Pc(a,b)},getElementById:function(a){return Lc(this,function(b){return b.id==a},function(a){return!!a})[0]||null}},vd);Object.defineProperties(yd,{_activeElement:tc.activeElement});
var zd=HTMLElement.prototype.blur,Ad=Ab({blur:function(){var a=this.__shady&&this.__shady.root;(a=a&&a.activeElement)?a.blur():zd.call(this)}});function I(a,b){for(var c=Object.getOwnPropertyNames(b),d=0;d<c.length;d++){var e=c[d],f=Object.getOwnPropertyDescriptor(b,e);f.value?a[e]=f.value:Object.defineProperty(a,e,f)}};if(y.sa){var ShadyDOM={inUse:y.sa,patch:function(a){return a},isShadyRoot:z,enqueue:Kb,flush:Lb,settings:y,filterMutations:Rb,observeChildren:Pb,unobserveChildren:Qb,nativeMethods:A,nativeTree:B};window.ShadyDOM=ShadyDOM;window.Event=ed;window.CustomEvent=fd;window.MouseEvent=gd;dd();var Bd=window.customElements&&window.customElements.nativeHTMLElement||HTMLElement;I(window.Node.prototype,td);I(window.Window.prototype,sd);I(window.Text.prototype,ud);I(window.DocumentFragment.prototype,vd);I(window.Element.prototype,
xd);I(window.Document.prototype,yd);window.HTMLSlotElement&&I(window.HTMLSlotElement.prototype,wd);I(Bd.prototype,Ad);y.M&&(G(window.Node.prototype),G(window.Text.prototype),G(window.DocumentFragment.prototype),G(window.Element.prototype),G(Bd.prototype),G(window.Document.prototype),window.HTMLSlotElement&&G(window.HTMLSlotElement.prototype));window.ShadowRoot=H};var Cd=new Set("annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" "));function Dd(a){var b=Cd.has(a);a=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(a);return!b&&a}function K(a){var b=a.isConnected;if(void 0!==b)return b;for(;a&&!(a.__CE_isImportDocument||a instanceof Document);)a=a.parentNode||(window.ShadowRoot&&a instanceof ShadowRoot?a.host:void 0);return!(!a||!(a.__CE_isImportDocument||a instanceof Document))}
function Ed(a,b){for(;b&&b!==a&&!b.nextSibling;)b=b.parentNode;return b&&b!==a?b.nextSibling:null}
function L(a,b,c){c=void 0===c?new Set:c;for(var d=a;d;){if(d.nodeType===Node.ELEMENT_NODE){var e=d;b(e);var f=e.localName;if("link"===f&&"import"===e.getAttribute("rel")){d=e.import;if(d instanceof Node&&!c.has(d))for(c.add(d),d=d.firstChild;d;d=d.nextSibling)L(d,b,c);d=Ed(a,e);continue}else if("template"===f){d=Ed(a,e);continue}if(e=e.__CE_shadowRoot)for(e=e.firstChild;e;e=e.nextSibling)L(e,b,c)}d=d.firstChild?d.firstChild:Ed(a,d)}}function M(a,b,c){a[b]=c};function Fd(){this.a=new Map;this.s=new Map;this.h=[];this.c=!1}function Gd(a,b,c){a.a.set(b,c);a.s.set(c.constructor,c)}function Hd(a,b){a.c=!0;a.h.push(b)}function Id(a,b){a.c&&L(b,function(b){return a.b(b)})}Fd.prototype.b=function(a){if(this.c&&!a.__CE_patched){a.__CE_patched=!0;for(var b=0;b<this.h.length;b++)this.h[b](a)}};function N(a,b){var c=[];L(b,function(a){return c.push(a)});for(b=0;b<c.length;b++){var d=c[b];1===d.__CE_state?a.connectedCallback(d):Jd(a,d)}}
function O(a,b){var c=[];L(b,function(a){return c.push(a)});for(b=0;b<c.length;b++){var d=c[b];1===d.__CE_state&&a.disconnectedCallback(d)}}
function P(a,b,c){c=void 0===c?{}:c;var d=c.$a||new Set,e=c.va||function(b){return Jd(a,b)},f=[];L(b,function(b){if("link"===b.localName&&"import"===b.getAttribute("rel")){var c=b.import;c instanceof Node&&(c.__CE_isImportDocument=!0,c.__CE_hasRegistry=!0);c&&"complete"===c.readyState?c.__CE_documentLoadHandled=!0:b.addEventListener("load",function(){var c=b.import;if(!c.__CE_documentLoadHandled){c.__CE_documentLoadHandled=!0;var f=new Set(d);f.delete(c);P(a,c,{$a:f,va:e})}})}else f.push(b)},d);if(a.c)for(b=
0;b<f.length;b++)a.b(f[b]);for(b=0;b<f.length;b++)e(f[b])}
function Jd(a,b){if(void 0===b.__CE_state){var c=b.ownerDocument;if(c.defaultView||c.__CE_isImportDocument&&c.__CE_hasRegistry)if(c=a.a.get(b.localName)){c.constructionStack.push(b);var d=c.constructor;try{try{if(new d!==b)throw Error("The custom element constructor did not produce the element being upgraded.");}finally{c.constructionStack.pop()}}catch(h){throw b.__CE_state=2,h;}b.__CE_state=1;b.__CE_definition=c;if(c.attributeChangedCallback)for(c=c.observedAttributes,d=0;d<c.length;d++){var e=c[d],
f=b.getAttribute(e);null!==f&&a.attributeChangedCallback(b,e,null,f,null)}K(b)&&a.connectedCallback(b)}}}Fd.prototype.connectedCallback=function(a){var b=a.__CE_definition;b.connectedCallback&&b.connectedCallback.call(a)};Fd.prototype.disconnectedCallback=function(a){var b=a.__CE_definition;b.disconnectedCallback&&b.disconnectedCallback.call(a)};
Fd.prototype.attributeChangedCallback=function(a,b,c,d,e){var f=a.__CE_definition;f.attributeChangedCallback&&-1<f.observedAttributes.indexOf(b)&&f.attributeChangedCallback.call(a,b,c,d,e)};function Kd(a){var b=document;this.j=a;this.a=b;this.C=void 0;P(this.j,this.a);"loading"===this.a.readyState&&(this.C=new MutationObserver(this.b.bind(this)),this.C.observe(this.a,{childList:!0,subtree:!0}))}Kd.prototype.disconnect=function(){this.C&&this.C.disconnect()};Kd.prototype.b=function(a){var b=this.a.readyState;"interactive"!==b&&"complete"!==b||this.disconnect();for(b=0;b<a.length;b++)for(var c=a[b].addedNodes,d=0;d<c.length;d++)P(this.j,c[d])};function Ld(){var a=this;this.b=this.a=void 0;this.c=new Promise(function(b){a.b=b;a.a&&b(a.a)})}Ld.prototype.resolve=function(a){if(this.a)throw Error("Already resolved.");this.a=a;this.b&&this.b(a)};function Q(a){this.da=!1;this.j=a;this.ha=new Map;this.ea=function(a){return a()};this.R=!1;this.fa=[];this.Da=new Kd(a)}
Q.prototype.define=function(a,b){var c=this;if(!(b instanceof Function))throw new TypeError("Custom element constructors must be functions.");if(!Dd(a))throw new SyntaxError("The element name '"+a+"' is not valid.");if(this.j.a.get(a))throw Error("A custom element with name '"+a+"' has already been defined.");if(this.da)throw Error("A custom element is already being defined.");this.da=!0;try{var d=function(a){var b=e[a];if(void 0!==b&&!(b instanceof Function))throw Error("The '"+a+"' callback must be a function.");
return b},e=b.prototype;if(!(e instanceof Object))throw new TypeError("The custom element constructor's prototype is not an object.");var f=d("connectedCallback");var h=d("disconnectedCallback");var g=d("adoptedCallback");var k=d("attributeChangedCallback");var l=b.observedAttributes||[]}catch(m){return}finally{this.da=!1}b={localName:a,constructor:b,connectedCallback:f,disconnectedCallback:h,adoptedCallback:g,attributeChangedCallback:k,observedAttributes:l,constructionStack:[]};Gd(this.j,a,b);this.fa.push(b);
this.R||(this.R=!0,this.ea(function(){return Md(c)}))};function Md(a){if(!1!==a.R){a.R=!1;for(var b=a.fa,c=[],d=new Map,e=0;e<b.length;e++)d.set(b[e].localName,[]);P(a.j,document,{va:function(b){if(void 0===b.__CE_state){var e=b.localName,f=d.get(e);f?f.push(b):a.j.a.get(e)&&c.push(b)}}});for(e=0;e<c.length;e++)Jd(a.j,c[e]);for(;0<b.length;){var f=b.shift();e=f.localName;f=d.get(f.localName);for(var h=0;h<f.length;h++)Jd(a.j,f[h]);(e=a.ha.get(e))&&e.resolve(void 0)}}}
Q.prototype.get=function(a){if(a=this.j.a.get(a))return a.constructor};Q.prototype.a=function(a){if(!Dd(a))return Promise.reject(new SyntaxError("'"+a+"' is not a valid custom element name."));var b=this.ha.get(a);if(b)return b.c;b=new Ld;this.ha.set(a,b);this.j.a.get(a)&&!this.fa.some(function(b){return b.localName===a})&&b.resolve(void 0);return b.c};Q.prototype.b=function(a){this.Da.disconnect();var b=this.ea;this.ea=function(c){return a(function(){return b(c)})}};
window.CustomElementRegistry=Q;Q.prototype.define=Q.prototype.define;Q.prototype.get=Q.prototype.get;Q.prototype.whenDefined=Q.prototype.a;Q.prototype.polyfillWrapFlushCallback=Q.prototype.b;var Nd=window.Document.prototype.createElement,Od=window.Document.prototype.createElementNS,Pd=window.Document.prototype.importNode,Qd=window.Document.prototype.prepend,Rd=window.Document.prototype.append,Sd=window.DocumentFragment.prototype.prepend,Td=window.DocumentFragment.prototype.append,Ud=window.Node.prototype.cloneNode,Vd=window.Node.prototype.appendChild,Wd=window.Node.prototype.insertBefore,Xd=window.Node.prototype.removeChild,Yd=window.Node.prototype.replaceChild,Zd=Object.getOwnPropertyDescriptor(window.Node.prototype,
"textContent"),$d=window.Element.prototype.attachShadow,ae=Object.getOwnPropertyDescriptor(window.Element.prototype,"innerHTML"),be=window.Element.prototype.getAttribute,ce=window.Element.prototype.setAttribute,de=window.Element.prototype.removeAttribute,ee=window.Element.prototype.getAttributeNS,fe=window.Element.prototype.setAttributeNS,ge=window.Element.prototype.removeAttributeNS,he=window.Element.prototype.insertAdjacentElement,ie=window.Element.prototype.prepend,je=window.Element.prototype.append,
ke=window.Element.prototype.before,le=window.Element.prototype.after,me=window.Element.prototype.replaceWith,ne=window.Element.prototype.remove,oe=window.HTMLElement,pe=Object.getOwnPropertyDescriptor(window.HTMLElement.prototype,"innerHTML"),qe=window.HTMLElement.prototype.insertAdjacentElement;var re=new function(){};function se(){var a=te;window.HTMLElement=function(){function b(){var b=this.constructor,d=a.s.get(b);if(!d)throw Error("The custom element being constructed was not registered with `customElements`.");var e=d.constructionStack;if(0===e.length)return e=Nd.call(document,d.localName),Object.setPrototypeOf(e,b.prototype),e.__CE_state=1,e.__CE_definition=d,a.b(e),e;d=e.length-1;var f=e[d];if(f===re)throw Error("The HTMLElement constructor was either called reentrantly for this constructor or called multiple times.");
e[d]=re;Object.setPrototypeOf(f,b.prototype);a.b(f);return f}b.prototype=oe.prototype;return b}()};function ue(a,b,c){function d(b){return function(c){for(var d=[],e=0;e<arguments.length;++e)d[e-0]=arguments[e];e=[];for(var f=[],l=0;l<d.length;l++){var m=d[l];m instanceof Element&&K(m)&&f.push(m);if(m instanceof DocumentFragment)for(m=m.firstChild;m;m=m.nextSibling)e.push(m);else e.push(m)}b.apply(this,d);for(d=0;d<f.length;d++)O(a,f[d]);if(K(this))for(d=0;d<e.length;d++)f=e[d],f instanceof Element&&N(a,f)}}void 0!==c.X&&(b.prepend=d(c.X));void 0!==c.append&&(b.append=d(c.append))};function ve(){var a=te;M(Document.prototype,"createElement",function(b){if(this.__CE_hasRegistry){var c=a.a.get(b);if(c)return new c.constructor}b=Nd.call(this,b);a.b(b);return b});M(Document.prototype,"importNode",function(b,c){b=Pd.call(this,b,c);this.__CE_hasRegistry?P(a,b):Id(a,b);return b});M(Document.prototype,"createElementNS",function(b,c){if(this.__CE_hasRegistry&&(null===b||"http://www.w3.org/1999/xhtml"===b)){var d=a.a.get(c);if(d)return new d.constructor}b=Od.call(this,b,c);a.b(b);return b});
ue(a,Document.prototype,{X:Qd,append:Rd})};function we(){var a=te;function b(b,d){Object.defineProperty(b,"textContent",{enumerable:d.enumerable,configurable:!0,get:d.get,set:function(b){if(this.nodeType===Node.TEXT_NODE)d.set.call(this,b);else{var c=void 0;if(this.firstChild){var e=this.childNodes,g=e.length;if(0<g&&K(this)){c=Array(g);for(var k=0;k<g;k++)c[k]=e[k]}}d.set.call(this,b);if(c)for(b=0;b<c.length;b++)O(a,c[b])}}})}M(Node.prototype,"insertBefore",function(b,d){if(b instanceof DocumentFragment){var c=Array.prototype.slice.apply(b.childNodes);
b=Wd.call(this,b,d);if(K(this))for(d=0;d<c.length;d++)N(a,c[d]);return b}c=K(b);d=Wd.call(this,b,d);c&&O(a,b);K(this)&&N(a,b);return d});M(Node.prototype,"appendChild",function(b){if(b instanceof DocumentFragment){var c=Array.prototype.slice.apply(b.childNodes);b=Vd.call(this,b);if(K(this))for(var e=0;e<c.length;e++)N(a,c[e]);return b}c=K(b);e=Vd.call(this,b);c&&O(a,b);K(this)&&N(a,b);return e});M(Node.prototype,"cloneNode",function(b){b=Ud.call(this,b);this.ownerDocument.__CE_hasRegistry?P(a,b):
Id(a,b);return b});M(Node.prototype,"removeChild",function(b){var c=K(b),e=Xd.call(this,b);c&&O(a,b);return e});M(Node.prototype,"replaceChild",function(b,d){if(b instanceof DocumentFragment){var c=Array.prototype.slice.apply(b.childNodes);b=Yd.call(this,b,d);if(K(this))for(O(a,d),d=0;d<c.length;d++)N(a,c[d]);return b}c=K(b);var f=Yd.call(this,b,d),h=K(this);h&&O(a,d);c&&O(a,b);h&&N(a,b);return f});Zd&&Zd.get?b(Node.prototype,Zd):Hd(a,function(a){b(a,{enumerable:!0,configurable:!0,get:function(){for(var a=
[],b=0;b<this.childNodes.length;b++)a.push(this.childNodes[b].textContent);return a.join("")},set:function(a){for(;this.firstChild;)Xd.call(this,this.firstChild);Vd.call(this,document.createTextNode(a))}})})};function xe(a){var b=Element.prototype;function c(b){return function(c){for(var d=[],e=0;e<arguments.length;++e)d[e-0]=arguments[e];e=[];for(var g=[],k=0;k<d.length;k++){var l=d[k];l instanceof Element&&K(l)&&g.push(l);if(l instanceof DocumentFragment)for(l=l.firstChild;l;l=l.nextSibling)e.push(l);else e.push(l)}b.apply(this,d);for(d=0;d<g.length;d++)O(a,g[d]);if(K(this))for(d=0;d<e.length;d++)g=e[d],g instanceof Element&&N(a,g)}}void 0!==ke&&(b.before=c(ke));void 0!==ke&&(b.after=c(le));void 0!==
me&&M(b,"replaceWith",function(b){for(var c=[],d=0;d<arguments.length;++d)c[d-0]=arguments[d];d=[];for(var h=[],g=0;g<c.length;g++){var k=c[g];k instanceof Element&&K(k)&&h.push(k);if(k instanceof DocumentFragment)for(k=k.firstChild;k;k=k.nextSibling)d.push(k);else d.push(k)}g=K(this);me.apply(this,c);for(c=0;c<h.length;c++)O(a,h[c]);if(g)for(O(a,this),c=0;c<d.length;c++)h=d[c],h instanceof Element&&N(a,h)});void 0!==ne&&M(b,"remove",function(){var b=K(this);ne.call(this);b&&O(a,this)})};function ye(){var a=te;function b(b,c){Object.defineProperty(b,"innerHTML",{enumerable:c.enumerable,configurable:!0,get:c.get,set:function(b){var d=this,e=void 0;K(this)&&(e=[],L(this,function(a){a!==d&&e.push(a)}));c.set.call(this,b);if(e)for(var f=0;f<e.length;f++){var l=e[f];1===l.__CE_state&&a.disconnectedCallback(l)}this.ownerDocument.__CE_hasRegistry?P(a,this):Id(a,this);return b}})}function c(b,c){M(b,"insertAdjacentElement",function(b,d){var e=K(d);b=c.call(this,b,d);e&&O(a,d);K(b)&&N(a,d);
return b})}$d&&M(Element.prototype,"attachShadow",function(a){return this.__CE_shadowRoot=a=$d.call(this,a)});ae&&ae.get?b(Element.prototype,ae):pe&&pe.get?b(HTMLElement.prototype,pe):Hd(a,function(a){b(a,{enumerable:!0,configurable:!0,get:function(){return Ud.call(this,!0).innerHTML},set:function(a){var b="template"===this.localName,c=b?this.content:this,d=Nd.call(document,this.localName);for(d.innerHTML=a;0<c.childNodes.length;)Xd.call(c,c.childNodes[0]);for(a=b?d.content:d;0<a.childNodes.length;)Vd.call(c,
a.childNodes[0])}})});M(Element.prototype,"setAttribute",function(b,c){if(1!==this.__CE_state)return ce.call(this,b,c);var d=be.call(this,b);ce.call(this,b,c);c=be.call(this,b);a.attributeChangedCallback(this,b,d,c,null)});M(Element.prototype,"setAttributeNS",function(b,c,f){if(1!==this.__CE_state)return fe.call(this,b,c,f);var d=ee.call(this,b,c);fe.call(this,b,c,f);f=ee.call(this,b,c);a.attributeChangedCallback(this,c,d,f,b)});M(Element.prototype,"removeAttribute",function(b){if(1!==this.__CE_state)return de.call(this,
b);var c=be.call(this,b);de.call(this,b);null!==c&&a.attributeChangedCallback(this,b,c,null,null)});M(Element.prototype,"removeAttributeNS",function(b,c){if(1!==this.__CE_state)return ge.call(this,b,c);var d=ee.call(this,b,c);ge.call(this,b,c);var e=ee.call(this,b,c);d!==e&&a.attributeChangedCallback(this,c,d,e,b)});qe?c(HTMLElement.prototype,qe):he?c(Element.prototype,he):console.warn("Custom Elements: `Element#insertAdjacentElement` was not patched.");ue(a,Element.prototype,{X:ie,append:je});xe(a)}
;var ze=window.customElements;if(!ze||ze.forcePolyfill||"function"!=typeof ze.define||"function"!=typeof ze.get){var te=new Fd;se();ve();ue(te,DocumentFragment.prototype,{X:Sd,append:Td});we();ye();document.__CE_hasRegistry=!0;var customElements=new Q(te);Object.defineProperty(window,"customElements",{configurable:!0,enumerable:!0,value:customElements})};function Ae(){this.end=this.start=0;this.rules=this.parent=this.previous=null;this.cssText=this.parsedCssText="";this.atRule=!1;this.type=0;this.parsedSelector=this.selector=this.keyframesName=""}
function Be(a){a=a.replace(Ce,"").replace(De,"");var b=Ee,c=a,d=new Ae;d.start=0;d.end=c.length;for(var e=d,f=0,h=c.length;f<h;f++)if("{"===c[f]){e.rules||(e.rules=[]);var g=e,k=g.rules[g.rules.length-1]||null;e=new Ae;e.start=f+1;e.parent=g;e.previous=k;g.rules.push(e)}else"}"===c[f]&&(e.end=f+1,e=e.parent||d);return b(d,a)}
function Ee(a,b){var c=b.substring(a.start,a.end-1);a.parsedCssText=a.cssText=c.trim();a.parent&&(c=b.substring(a.previous?a.previous.end:a.parent.start,a.start-1),c=Fe(c),c=c.replace(Ge," "),c=c.substring(c.lastIndexOf(";")+1),c=a.parsedSelector=a.selector=c.trim(),a.atRule=0===c.indexOf("@"),a.atRule?0===c.indexOf("@media")?a.type=He:c.match(Ie)&&(a.type=Je,a.keyframesName=a.selector.split(Ge).pop()):a.type=0===c.indexOf("--")?Ke:Le);if(c=a.rules)for(var d=0,e=c.length,f;d<e&&(f=c[d]);d++)Ee(f,
b);return a}function Fe(a){return a.replace(/\\([0-9a-f]{1,6})\s/gi,function(a,c){a=c;for(c=6-a.length;c--;)a="0"+a;return"\\"+a})}
function Me(a,b,c){c=void 0===c?"":c;var d="";if(a.cssText||a.rules){var e=a.rules,f;if(f=e)f=e[0],f=!(f&&f.selector&&0===f.selector.indexOf("--"));if(f){f=0;for(var h=e.length,g;f<h&&(g=e[f]);f++)d=Me(g,b,d)}else b?b=a.cssText:(b=a.cssText,b=b.replace(Ne,"").replace(Oe,""),b=b.replace(Pe,"").replace(Qe,"")),(d=b.trim())&&(d=" "+d+"\n")}d&&(a.selector&&(c+=a.selector+" {\n"),c+=d,a.selector&&(c+="}\n\n"));return c}
var Le=1,Je=7,He=4,Ke=1E3,Ce=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,De=/@import[^;]*;/gim,Ne=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,Oe=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,Pe=/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,Qe=/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,Ie=/^@[^\s]*keyframes/,Ge=/\s+/g;var R=!(window.ShadyDOM&&window.ShadyDOM.inUse),Re;function Se(a){Re=a&&a.shimcssproperties?!1:R||!(navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)||!window.CSS||!CSS.supports||!CSS.supports("box-shadow","0 0 0 var(--foo)"))}window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?Re=window.ShadyCSS.nativeCss:window.ShadyCSS?(Se(window.ShadyCSS),window.ShadyCSS=void 0):Se(window.WebComponents&&window.WebComponents.flags);var S=Re;var Te=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi,Ue=/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,Ve=/(--[\w-]+)\s*([:,;)]|$)/gi,We=/(animation\s*:)|(animation-name\s*:)/,Xe=/@media\s(.*)/,Ye=/\{[^}]*\}/g;var Ze=new Set;function $e(a,b){if(!a)return"";"string"===typeof a&&(a=Be(a));b&&af(a,b);return Me(a,S)}function bf(a){!a.__cssRules&&a.textContent&&(a.__cssRules=Be(a.textContent));return a.__cssRules||null}function cf(a){return!!a.parent&&a.parent.type===Je}function af(a,b,c,d){if(a){var e=!1,f=a.type;if(d&&f===He){var h=a.selector.match(Xe);h&&(window.matchMedia(h[1]).matches||(e=!0))}f===Le?b(a):c&&f===Je?c(a):f===Ke&&(e=!0);if((a=a.rules)&&!e){e=0;f=a.length;for(var g;e<f&&(g=a[e]);e++)af(g,b,c,d)}}}
function df(a,b,c,d){var e=document.createElement("style");b&&e.setAttribute("scope",b);e.textContent=a;ef(e,c,d);return e}var T=null;function ef(a,b,c){b=b||document.head;b.insertBefore(a,c&&c.nextSibling||b.firstChild);T?a.compareDocumentPosition(T)===Node.DOCUMENT_POSITION_PRECEDING&&(T=a):T=a}
function ff(a,b){var c=a.indexOf("var(");if(-1===c)return b(a,"","","");a:{var d=0;var e=c+3;for(var f=a.length;e<f;e++)if("("===a[e])d++;else if(")"===a[e]&&0===--d)break a;e=-1}d=a.substring(c+4,e);c=a.substring(0,c);a=ff(a.substring(e+1),b);e=d.indexOf(",");return-1===e?b(c,d.trim(),"",a):b(c,d.substring(0,e).trim(),d.substring(e+1).trim(),a)}function gf(a,b){R?a.setAttribute("class",b):window.ShadyDOM.nativeMethods.setAttribute.call(a,"class",b)}
function V(a){var b=a.localName,c="";b?-1<b.indexOf("-")||(c=b,b=a.getAttribute&&a.getAttribute("is")||""):(b=a.is,c=a.extends);return{is:b,P:c}};function hf(){}function jf(a,b,c){var d=W;a.__styleScoped?a.__styleScoped=null:kf(d,a,b||"",c)}function kf(a,b,c,d){b.nodeType===Node.ELEMENT_NODE&&lf(b,c,d);if(b="template"===b.localName?(b.content||b.gb).childNodes:b.children||b.childNodes)for(var e=0;e<b.length;e++)kf(a,b[e],c,d)}
function lf(a,b,c){if(b)if(a.classList)c?(a.classList.remove("style-scope"),a.classList.remove(b)):(a.classList.add("style-scope"),a.classList.add(b));else if(a.getAttribute){var d=a.getAttribute(mf);c?d&&(b=d.replace("style-scope","").replace(b,""),gf(a,b)):gf(a,(d?d+" ":"")+"style-scope "+b)}}function nf(a,b,c){var d=W,e=a.__cssBuild;R||"shady"===e?b=$e(b,c):(a=V(a),b=of(d,b,a.is,a.P,c)+"\n\n");return b.trim()}
function of(a,b,c,d,e){var f=pf(c,d);c=c?qf+c:"";return $e(b,function(b){b.c||(b.selector=b.m=rf(a,b,a.b,c,f),b.c=!0);e&&e(b,c,f)})}function pf(a,b){return b?"[is="+a+"]":a}function rf(a,b,c,d,e){var f=b.selector.split(sf);if(!cf(b)){b=0;for(var h=f.length,g;b<h&&(g=f[b]);b++)f[b]=c.call(a,g,d,e)}return f.join(sf)}function tf(a){return a.replace(uf,function(a,c,d){-1<d.indexOf("+")?d=d.replace(/\+/g,"___"):-1<d.indexOf("___")&&(d=d.replace(/___/g,"+"));return":"+c+"("+d+")"})}
hf.prototype.b=function(a,b,c){var d=!1;a=a.trim();var e=uf.test(a);e&&(a=a.replace(uf,function(a,b,c){return":"+b+"("+c.replace(/\s/g,"")+")"}),a=tf(a));a=a.replace(vf,wf+" $1");a=a.replace(xf,function(a,e,g){d||(a=yf(g,e,b,c),d=d||a.stop,e=a.Ka,g=a.value);return e+g});e&&(a=tf(a));return a};
function yf(a,b,c,d){var e=a.indexOf(zf);0<=a.indexOf(wf)?a=Af(a,d):0!==e&&(a=c?Bf(a,c):a);c=!1;0<=e&&(b="",c=!0);if(c){var f=!0;c&&(a=a.replace(Cf,function(a,b){return" > "+b}))}a=a.replace(Df,function(a,b,c){return'[dir="'+c+'"] '+b+", "+b+'[dir="'+c+'"]'});return{value:a,Ka:b,stop:f}}function Bf(a,b){a=a.split(Ef);a[0]+=b;return a.join(Ef)}
function Af(a,b){var c=a.match(Ff);return(c=c&&c[2].trim()||"")?c[0].match(Gf)?a.replace(Ff,function(a,c,f){return b+f}):c.split(Gf)[0]===b?c:Hf:a.replace(wf,b)}function If(a){a.selector===Jf&&(a.selector="html")}hf.prototype.c=function(a){return a.match(zf)?this.b(a,Kf):Bf(a.trim(),Kf)};q.Object.defineProperties(hf.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"style-scope"}}});
var uf=/:(nth[-\w]+)\(([^)]+)\)/,Kf=":not(.style-scope)",sf=",",xf=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g,Gf=/[[.:#*]/,wf=":host",Jf=":root",zf="::slotted",vf=new RegExp("^("+zf+")"),Ff=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Cf=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Df=/(.*):dir\((?:(ltr|rtl))\)/,qf=".",Ef=":",mf="class",Hf="should_not_match",W=new hf;function Lf(a,b,c,d){this.w=a||null;this.b=b||null;this.ja=c||[];this.G=null;this.P=d||"";this.a=this.u=this.B=null}function X(a){return a?a.__styleInfo:null}function Mf(a,b){return a.__styleInfo=b}Lf.prototype.c=function(){return this.w};Lf.prototype._getStyleRules=Lf.prototype.c;var Nf,Of=window.Element.prototype;Nf=Of.matches||Of.matchesSelector||Of.mozMatchesSelector||Of.msMatchesSelector||Of.oMatchesSelector||Of.webkitMatchesSelector;var Pf=navigator.userAgent.match("Trident");function Qf(){}function Rf(a){var b={},c=[],d=0;af(a,function(a){Sf(a);a.index=d++;a=a.i.cssText;for(var c;c=Ve.exec(a);){var e=c[1];":"!==c[2]&&(b[e]=!0)}},function(a){c.push(a)});a.b=c;a=[];for(var e in b)a.push(e);return a}
function Sf(a){if(!a.i){var b={},c={};Tf(a,c)&&(b.v=c,a.rules=null);b.cssText=a.parsedCssText.replace(Ye,"").replace(Te,"");a.i=b}}function Tf(a,b){var c=a.i;if(c){if(c.v)return Object.assign(b,c.v),!0}else{c=a.parsedCssText;for(var d;a=Te.exec(c);){d=(a[2]||a[3]).trim();if("inherit"!==d||"unset"!==d)b[a[1].trim()]=d;d=!0}return d}}
function Uf(a,b,c){b&&(b=0<=b.indexOf(";")?Vf(a,b,c):ff(b,function(b,e,f,h){if(!e)return b+h;(e=Uf(a,c[e],c))&&"initial"!==e?"apply-shim-inherit"===e&&(e="inherit"):e=Uf(a,c[f]||f,c)||f;return b+(e||"")+h}));return b&&b.trim()||""}
function Vf(a,b,c){b=b.split(";");for(var d=0,e,f;d<b.length;d++)if(e=b[d]){Ue.lastIndex=0;if(f=Ue.exec(e))e=Uf(a,c[f[1]],c);else if(f=e.indexOf(":"),-1!==f){var h=e.substring(f);h=h.trim();h=Uf(a,h,c)||h;e=e.substring(0,f)+h}b[d]=e&&e.lastIndexOf(";")===e.length-1?e.slice(0,-1):e||""}return b.join(";")}
function Wf(a,b){var c={},d=[];af(a,function(a){a.i||Sf(a);var e=a.m||a.parsedSelector;b&&a.i.v&&e&&Nf.call(b,e)&&(Tf(a,c),a=a.index,e=parseInt(a/32,10),d[e]=(d[e]||0)|1<<a%32)},null,!0);return{v:c,key:d}}
function Xf(a,b,c,d){b.i||Sf(b);if(b.i.v){var e=V(a);a=e.is;e=e.P;e=a?pf(a,e):"html";var f=b.parsedSelector,h=":host > *"===f||"html"===f,g=0===f.indexOf(":host")&&!h;"shady"===c&&(h=f===e+" > *."+e||-1!==f.indexOf("html"),g=!h&&0===f.indexOf(e));"shadow"===c&&(h=":host > *"===f||"html"===f,g=g&&!h);if(h||g)c=e,g&&(R&&!b.m&&(b.m=rf(W,b,W.b,a?qf+a:"",e)),c=b.m||e),d({Xa:c,Qa:g,hb:h})}}
function Yf(a,b){var c={},d={},e=b&&b.__cssBuild;af(b,function(b){Xf(a,b,e,function(e){Nf.call(a.b||a,e.Xa)&&(e.Qa?Tf(b,c):Tf(b,d))})},null,!0);return{Wa:d,Oa:c}}
function Zf(a,b,c,d){var e=V(b),f=pf(e.is,e.P),h=new RegExp("(?:^|[^.#[:])"+(b.extends?"\\"+f.slice(0,-1)+"\\]":f)+"($|[.:[\\s>+~])");e=X(b).w;var g=$f(e,d);return nf(b,e,function(b){var e="";b.i||Sf(b);b.i.cssText&&(e=Vf(a,b.i.cssText,c));b.cssText=e;if(!R&&!cf(b)&&b.cssText){var k=e=b.cssText;null==b.ra&&(b.ra=We.test(e));if(b.ra)if(null==b.W){b.W=[];for(var n in g)k=g[n],k=k(e),e!==k&&(e=k,b.W.push(n))}else{for(n=0;n<b.W.length;++n)k=g[b.W[n]],e=k(e);k=e}b.cssText=k;b.m=b.m||b.selector;e="."+d;
n=b.m.split(",");k=0;for(var t=n.length,C;k<t&&(C=n[k]);k++)n[k]=C.match(h)?C.replace(f,e):e+" "+C;b.selector=n.join(",")}})}function $f(a,b){a=a.b;var c={};if(!R&&a)for(var d=0,e=a[d];d<a.length;e=a[++d]){var f=e,h=b;f.h=new RegExp("\\b"+f.keyframesName+"(?!\\B|-)","g");f.a=f.keyframesName+"-"+h;f.m=f.m||f.selector;f.selector=f.m.replace(f.keyframesName,f.a);c[e.keyframesName]=ag(e)}return c}function ag(a){return function(b){return b.replace(a.h,a.a)}}
function bg(a,b){var c=cg,d=bf(a);a.textContent=$e(d,function(a){var d=a.cssText=a.parsedCssText;a.i&&a.i.cssText&&(d=d.replace(Ne,"").replace(Oe,""),a.cssText=Vf(c,d,b))})}q.Object.defineProperties(Qf.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"x-scope"}}});var cg=new Qf;var dg={},eg=window.customElements;if(eg&&!R){var fg=eg.define;eg.define=function(a,b,c){var d=document.createComment(" Shady DOM styles for "+a+" "),e=document.head;e.insertBefore(d,(T?T.nextSibling:null)||e.firstChild);T=d;dg[a]=d;return fg.call(eg,a,b,c)}};function gg(){this.cache={}}gg.prototype.store=function(a,b,c,d){var e=this.cache[a]||[];e.push({v:b,styleElement:c,u:d});100<e.length&&e.shift();this.cache[a]=e};gg.prototype.fetch=function(a,b,c){if(a=this.cache[a])for(var d=a.length-1;0<=d;d--){var e=a[d],f;a:{for(f=0;f<c.length;f++){var h=c[f];if(e.v[h]!==b[h]){f=!1;break a}}f=!0}if(f)return e}};function hg(){}
function ig(a){for(var b=0;b<a.length;b++){var c=a[b];if(c.target!==document.documentElement&&c.target!==document.head)for(var d=0;d<c.addedNodes.length;d++){var e=c.addedNodes[d];if(e.nodeType===Node.ELEMENT_NODE){var f=e.getRootNode();var h=e;var g=[];h.classList?g=Array.from(h.classList):h instanceof window.SVGElement&&h.hasAttribute("class")&&(g=h.getAttribute("class").split(/\s+/));h=g;g=h.indexOf(W.a);if((h=-1<g?h[g+1]:"")&&f===e.ownerDocument)jf(e,h,!0);else if(f.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&
(f=f.host))if(f=V(f).is,h===f)for(e=window.ShadyDOM.nativeMethods.querySelectorAll.call(e,":not(."+W.a+")"),f=0;f<e.length;f++)lf(e[f],h);else h&&jf(e,h,!0),jf(e,f)}}}}
if(!R){var jg=new MutationObserver(ig),kg=function(a){jg.observe(a,{childList:!0,subtree:!0})};if(window.customElements&&!window.customElements.polyfillWrapFlushCallback)kg(document);else{var lg=function(){kg(document.body)};window.HTMLImports?window.HTMLImports.whenReady(lg):requestAnimationFrame(function(){if("loading"===document.readyState){var a=function(){lg();document.removeEventListener("readystatechange",a)};document.addEventListener("readystatechange",a)}else lg()})}hg=function(){ig(jg.takeRecords())}}
var mg=hg;var ng={};var og=Promise.resolve();function pg(a){if(a=ng[a])a._applyShimCurrentVersion=a._applyShimCurrentVersion||0,a._applyShimValidatingVersion=a._applyShimValidatingVersion||0,a._applyShimNextVersion=(a._applyShimNextVersion||0)+1}function qg(a){return a._applyShimCurrentVersion===a._applyShimNextVersion}function rg(a){a._applyShimValidatingVersion=a._applyShimNextVersion;a.qa||(a.qa=!0,og.then(function(){a._applyShimCurrentVersion=a._applyShimNextVersion;a.qa=!1}))};var sg=null,tg=window.HTMLImports&&window.HTMLImports.whenReady||null,ug;function vg(a){requestAnimationFrame(function(){tg?tg(a):(sg||(sg=new Promise(function(a){ug=a}),"complete"===document.readyState?ug():document.addEventListener("readystatechange",function(){"complete"===document.readyState&&ug()})),sg.then(function(){a&&a()}))})};var wg=new gg;function Y(){var a=this;this.L={};this.c=document.documentElement;var b=new Ae;b.rules=[];this.h=Mf(this.c,new Lf(b));this.s=!1;this.b=this.a=null;vg(function(){xg(a)})}p=Y.prototype;p.wa=function(){mg()};p.Ma=function(a){return bf(a)};p.Za=function(a){return $e(a)};
p.prepareTemplate=function(a,b,c){if(!a.Ia){a.Ia=!0;a.name=b;a.extends=c;ng[b]=a;var d=(d=a.content.querySelector("style"))?d.getAttribute("css-build")||"":"";var e=[];for(var f=a.content.querySelectorAll("style"),h=0;h<f.length;h++){var g=f[h];if(g.hasAttribute("shady-unscoped")){if(!R){var k=g.textContent;Ze.has(k)||(Ze.add(k),k=g.cloneNode(!0),document.head.appendChild(k));g.parentNode.removeChild(g)}}else e.push(g.textContent),g.parentNode.removeChild(g)}e=e.join("").trim();c={is:b,extends:c,
eb:d};R||jf(a.content,b);xg(this);f=Ue.test(e)||Te.test(e);Ue.lastIndex=0;Te.lastIndex=0;e=Be(e);f&&S&&this.a&&this.a.transformRules(e,b);a._styleAst=e;a.a=d;d=[];S||(d=Rf(a._styleAst));if(!d.length||S)e=R?a.content:null,b=dg[b],f=nf(c,a._styleAst),b=f.length?df(f,c.is,e,b):void 0,a.pa=b;a.Ha=d}};
function yg(a){!a.b&&window.ShadyCSS&&window.ShadyCSS.CustomStyleInterface&&(a.b=window.ShadyCSS.CustomStyleInterface,a.b.transformCallback=function(b){a.ua(b)},a.b.validateCallback=function(){requestAnimationFrame(function(){(a.b.enqueued||a.s)&&a.F()})})}function xg(a){!a.a&&window.ShadyCSS&&window.ShadyCSS.ApplyShim&&(a.a=window.ShadyCSS.ApplyShim,a.a.invalidCallback=pg);yg(a)}
p.F=function(){xg(this);if(this.b){var a=this.b.processStyles();if(this.b.enqueued){if(S)for(var b=0;b<a.length;b++){var c=this.b.getStyleForCustomStyle(a[b]);if(c&&S&&this.a){var d=bf(c);xg(this);this.a.transformRules(d);c.textContent=$e(d)}}else for(zg(this,this.c,this.h),b=0;b<a.length;b++)(c=this.b.getStyleForCustomStyle(a[b]))&&bg(c,this.h.B);this.b.enqueued=!1;this.s&&!S&&this.styleDocument()}}};
p.styleElement=function(a,b){var c=V(a).is,d=X(a);if(!d){var e=V(a);d=e.is;e=e.P;var f=dg[d];d=ng[d];if(d){var h=d._styleAst;var g=d.Ha}d=Mf(a,new Lf(h,f,g,e))}a!==this.c&&(this.s=!0);b&&(d.G=d.G||{},Object.assign(d.G,b));if(S){if(d.G){b=d.G;for(var k in b)null===k?a.style.removeProperty(k):a.style.setProperty(k,b[k])}if(((k=ng[c])||a===this.c)&&k&&k.pa&&!qg(k)){if(qg(k)||k._applyShimValidatingVersion!==k._applyShimNextVersion)xg(this),this.a&&this.a.transformRules(k._styleAst,c),k.pa.textContent=
nf(a,d.w),rg(k);R&&(c=a.shadowRoot)&&(c.querySelector("style").textContent=nf(a,d.w));d.w=k._styleAst}}else if(zg(this,a,d),d.ja&&d.ja.length){c=d;k=V(a).is;d=(b=wg.fetch(k,c.B,c.ja))?b.styleElement:null;h=c.u;(g=b&&b.u)||(g=this.L[k]=(this.L[k]||0)+1,g=k+"-"+g);c.u=g;g=c.u;e=cg;e=d?d.textContent||"":Zf(e,a,c.B,g);f=X(a);var l=f.a;l&&!R&&l!==d&&(l._useCount--,0>=l._useCount&&l.parentNode&&l.parentNode.removeChild(l));R?f.a?(f.a.textContent=e,d=f.a):e&&(d=df(e,g,a.shadowRoot,f.b)):d?d.parentNode||
(Pf&&-1<e.indexOf("@media")&&(d.textContent=e),ef(d,null,f.b)):e&&(d=df(e,g,null,f.b));d&&(d._useCount=d._useCount||0,f.a!=d&&d._useCount++,f.a=d);g=d;R||(d=c.u,f=e=a.getAttribute("class")||"",h&&(f=e.replace(new RegExp("\\s*x-scope\\s*"+h+"\\s*","g")," ")),f+=(f?" ":"")+"x-scope "+d,e!==f&&gf(a,f));b||wg.store(k,c.B,g,c.u)}};function Ag(a,b){return(b=b.getRootNode().host)?X(b)?b:Ag(a,b):a.c}
function zg(a,b,c){a=Ag(a,b);var d=X(a);a=Object.create(d.B||null);var e=Yf(b,c.w);b=Wf(d.w,b).v;Object.assign(a,e.Oa,b,e.Wa);b=c.G;for(var f in b)if((e=b[f])||0===e)a[f]=e;f=cg;b=Object.getOwnPropertyNames(a);for(e=0;e<b.length;e++)d=b[e],a[d]=Uf(f,a[d],a);c.B=a}p.styleDocument=function(a){this.styleSubtree(this.c,a)};
p.styleSubtree=function(a,b){var c=a.shadowRoot;(c||a===this.c)&&this.styleElement(a,b);if(b=c&&(c.children||c.childNodes))for(a=0;a<b.length;a++)this.styleSubtree(b[a]);else if(a=a.children||a.childNodes)for(b=0;b<a.length;b++)this.styleSubtree(a[b])};p.ua=function(a){var b=this,c=bf(a);af(c,function(a){if(R)If(a);else{var c=W;a.selector=a.parsedSelector;If(a);a.selector=a.m=rf(c,a,c.c,void 0,void 0)}S&&(xg(b),b.a&&b.a.transformRule(a))});S?a.textContent=$e(c):this.h.w.rules.push(c)};
p.getComputedStyleValue=function(a,b){var c;S||(c=(X(a)||X(Ag(this,a))).B[b]);return(c=c||window.getComputedStyle(a).getPropertyValue(b))?c.trim():""};p.Ya=function(a,b){var c=a.getRootNode();b=b?b.split(/\s/):[];c=c.host&&c.host.localName;if(!c){var d=a.getAttribute("class");if(d){d=d.split(/\s/);for(var e=0;e<d.length;e++)if(d[e]===W.a){c=d[e+1];break}}}c&&b.push(W.a,c);S||(c=X(a))&&c.u&&b.push(cg.a,c.u);gf(a,b.join(" "))};p.Ja=function(a){return X(a)};Y.prototype.flush=Y.prototype.wa;
Y.prototype.prepareTemplate=Y.prototype.prepareTemplate;Y.prototype.styleElement=Y.prototype.styleElement;Y.prototype.styleDocument=Y.prototype.styleDocument;Y.prototype.styleSubtree=Y.prototype.styleSubtree;Y.prototype.getComputedStyleValue=Y.prototype.getComputedStyleValue;Y.prototype.setElementClass=Y.prototype.Ya;Y.prototype._styleInfoForNode=Y.prototype.Ja;Y.prototype.transformCustomStyleForDocument=Y.prototype.ua;Y.prototype.getStyleAst=Y.prototype.Ma;Y.prototype.styleAstToString=Y.prototype.Za;
Y.prototype.flushCustomStyles=Y.prototype.F;Object.defineProperties(Y.prototype,{nativeShadow:{get:function(){return R}},nativeCss:{get:function(){return S}}});var Z=new Y,Bg,Cg;window.ShadyCSS&&(Bg=window.ShadyCSS.ApplyShim,Cg=window.ShadyCSS.CustomStyleInterface);window.ShadyCSS={ScopingShim:Z,prepareTemplate:function(a,b,c){Z.F();Z.prepareTemplate(a,b,c)},styleSubtree:function(a,b){Z.F();Z.styleSubtree(a,b)},styleElement:function(a){Z.F();Z.styleElement(a)},styleDocument:function(a){Z.F();Z.styleDocument(a)},getComputedStyleValue:function(a,b){return Z.getComputedStyleValue(a,b)},nativeCss:S,nativeShadow:R};Bg&&(window.ShadyCSS.ApplyShim=Bg);
Cg&&(window.ShadyCSS.CustomStyleInterface=Cg);var Dg=window.customElements,Eg=window.HTMLImports,Fg=window.HTMLTemplateElement;window.WebComponents=window.WebComponents||{};if(Dg&&Dg.polyfillWrapFlushCallback){var Gg,Hg=function(){if(Gg){Fg.J&&Fg.J(window.document);var a=Gg;Gg=null;a();return!0}},Ig=Eg.whenReady;Dg.polyfillWrapFlushCallback(function(a){Gg=a;Ig(Hg)});Eg.whenReady=function(a){Ig(function(){Hg()?Eg.whenReady(a):a()})}}
Eg.whenReady(function(){requestAnimationFrame(function(){window.WebComponents.ready=!0;document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})});var Jg=document.createElement("style");Jg.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var Kg=document.querySelector("head");Kg.insertBefore(Jg,Kg.firstChild);}).call(this);
//# sourceMappingURL=webcomponents-lite.js.map

File diff suppressed because one or more lines are too long