39710 lines
408 KiB
JavaScript
39710 lines
408 KiB
JavaScript
import stream from 'stream';
|
|
import zlib from 'zlib';
|
|
import MD5 from 'crypto-js/md5.js';
|
|
import * as fontkit from 'fontkit';
|
|
import fs from 'fs';
|
|
import { EventEmitter } from 'events';
|
|
import LineBreaker from 'linebreak';
|
|
import _JPEG from 'jay-peg';
|
|
import PNG from '@react-pdf/png-js';
|
|
import CryptoJS from 'crypto-js';
|
|
|
|
/*
|
|
PDFReference - represents a reference to another object in the PDF object heirarchy
|
|
By Devon Govett
|
|
*/
|
|
|
|
class PDFReference extends stream.Writable {
|
|
constructor(document, id, data) {
|
|
super({
|
|
decodeStrings: false
|
|
});
|
|
this.finalize = this.finalize.bind(this);
|
|
this.document = document;
|
|
this.id = id;
|
|
if (data == null) {
|
|
data = {};
|
|
}
|
|
this.data = data;
|
|
this.gen = 0;
|
|
this.deflate = null;
|
|
this.compress = this.document.compress && !this.data.Filter;
|
|
this.uncompressedLength = 0;
|
|
this.chunks = [];
|
|
}
|
|
initDeflate() {
|
|
this.data.Filter = 'FlateDecode';
|
|
this.deflate = zlib.createDeflate();
|
|
this.deflate.on('data', chunk => {
|
|
this.chunks.push(chunk);
|
|
return this.data.Length += chunk.length;
|
|
});
|
|
return this.deflate.on('end', this.finalize);
|
|
}
|
|
_write(chunk, encoding, callback) {
|
|
if (!(chunk instanceof Uint8Array)) {
|
|
chunk = Buffer.from(chunk + '\n', 'binary');
|
|
}
|
|
this.uncompressedLength += chunk.length;
|
|
if (this.data.Length == null) {
|
|
this.data.Length = 0;
|
|
}
|
|
if (this.compress) {
|
|
if (!this.deflate) {
|
|
this.initDeflate();
|
|
}
|
|
this.deflate.write(chunk);
|
|
} else {
|
|
this.chunks.push(chunk);
|
|
this.data.Length += chunk.length;
|
|
}
|
|
return callback();
|
|
}
|
|
end() {
|
|
super.end(...arguments);
|
|
if (this.deflate) {
|
|
return this.deflate.end();
|
|
}
|
|
return this.finalize();
|
|
}
|
|
finalize() {
|
|
this.offset = this.document._offset;
|
|
this.document._write(`${this.id} ${this.gen} obj`);
|
|
this.document._write(PDFObject.convert(this.data));
|
|
if (this.chunks.length) {
|
|
this.document._write('stream');
|
|
for (let chunk of Array.from(this.chunks)) {
|
|
this.document._write(chunk);
|
|
}
|
|
this.chunks.length = 0; // free up memory
|
|
this.document._write('\nendstream');
|
|
}
|
|
this.document._write('endobj');
|
|
return this.document._refEnd(this);
|
|
}
|
|
toString() {
|
|
return `${this.id} ${this.gen} R`;
|
|
}
|
|
}
|
|
|
|
/*
|
|
PDFTree - abstract base class for name and number tree objects
|
|
*/
|
|
|
|
class PDFTree {
|
|
constructor(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
this._items = {};
|
|
// disable /Limits output for this tree
|
|
this.limits = typeof options.limits === 'boolean' ? options.limits : true;
|
|
}
|
|
add(key, val) {
|
|
return this._items[key] = val;
|
|
}
|
|
get(key) {
|
|
return this._items[key];
|
|
}
|
|
toString() {
|
|
// Needs to be sorted by key
|
|
const sortedKeys = Object.keys(this._items).sort((a, b) => this._compareKeys(a, b));
|
|
const out = ['<<'];
|
|
if (this.limits && sortedKeys.length > 1) {
|
|
const first = sortedKeys[0],
|
|
last = sortedKeys[sortedKeys.length - 1];
|
|
out.push(` /Limits ${PDFObject.convert([this._dataForKey(first), this._dataForKey(last)])}`);
|
|
}
|
|
out.push(` /${this._keysName()} [`);
|
|
for (let key of sortedKeys) {
|
|
out.push(` ${PDFObject.convert(this._dataForKey(key))} ${PDFObject.convert(this._items[key])}`);
|
|
}
|
|
out.push(']');
|
|
out.push('>>');
|
|
return out.join('\n');
|
|
}
|
|
_compareKeys( /*a, b*/
|
|
) {
|
|
throw new Error('Must be implemented by subclasses');
|
|
}
|
|
_keysName() {
|
|
throw new Error('Must be implemented by subclasses');
|
|
}
|
|
_dataForKey( /*k*/
|
|
) {
|
|
throw new Error('Must be implemented by subclasses');
|
|
}
|
|
}
|
|
|
|
/*
|
|
PDFNameTree - represents a name tree object
|
|
*/
|
|
|
|
class PDFNameTree extends PDFTree {
|
|
_compareKeys(a, b) {
|
|
return a.localeCompare(b);
|
|
}
|
|
_keysName() {
|
|
return 'Names';
|
|
}
|
|
_dataForKey(k) {
|
|
return new String(k);
|
|
}
|
|
}
|
|
|
|
/*
|
|
PDFObject - converts JavaScript types into their corresponding PDF types.
|
|
By Devon Govett
|
|
*/
|
|
|
|
const pad = (str, length) => (Array(length + 1).join('0') + str).slice(-length);
|
|
const escapableRe = /[\n\r\t\b\f()\\]/g;
|
|
const escapable = {
|
|
'\n': '\\n',
|
|
'\r': '\\r',
|
|
'\t': '\\t',
|
|
'\b': '\\b',
|
|
'\f': '\\f',
|
|
'\\': '\\\\',
|
|
'(': '\\(',
|
|
')': '\\)'
|
|
};
|
|
|
|
// Convert little endian UTF-16 to big endian
|
|
const swapBytes = function (buff) {
|
|
const l = buff.length;
|
|
if (l & 0x01) {
|
|
throw new Error('Buffer length must be even');
|
|
} else {
|
|
for (let i = 0, end = l - 1; i < end; i += 2) {
|
|
const a = buff[i];
|
|
buff[i] = buff[i + 1];
|
|
buff[i + 1] = a;
|
|
}
|
|
}
|
|
return buff;
|
|
};
|
|
class PDFObject {
|
|
static convert(object) {
|
|
// String literals are converted to the PDF name type
|
|
if (typeof object === 'string') {
|
|
return `/${object}`;
|
|
}
|
|
|
|
// String objects are converted to PDF strings (UTF-16)
|
|
if (object instanceof String) {
|
|
let string = object;
|
|
// Detect if this is a unicode string
|
|
let isUnicode = false;
|
|
for (let i = 0, end = string.length; i < end; i++) {
|
|
if (string.charCodeAt(i) > 0x7f) {
|
|
isUnicode = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
// If so, encode it as big endian UTF-16
|
|
if (isUnicode) {
|
|
string = swapBytes(Buffer.from(`\ufeff${string}`, 'utf16le')).toString('binary');
|
|
}
|
|
|
|
// Escape characters as required by the spec
|
|
string = string.replace(escapableRe, c => escapable[c]);
|
|
return `(${string})`;
|
|
|
|
// Buffers are converted to PDF hex strings
|
|
}
|
|
if (Buffer.isBuffer(object)) {
|
|
return `<${object.toString('hex')}>`;
|
|
}
|
|
if (object instanceof PDFReference || object instanceof PDFNameTree) {
|
|
return object.toString();
|
|
}
|
|
if (object instanceof Date) {
|
|
return `(D:${pad(object.getUTCFullYear(), 4)}` + pad(object.getUTCMonth() + 1, 2) + pad(object.getUTCDate(), 2) + pad(object.getUTCHours(), 2) + pad(object.getUTCMinutes(), 2) + pad(object.getUTCSeconds(), 2) + 'Z)';
|
|
}
|
|
if (Array.isArray(object)) {
|
|
const items = Array.from(object).map(e => PDFObject.convert(e)).join(' ');
|
|
return `[${items}]`;
|
|
}
|
|
if ({}.toString.call(object) === '[object Object]') {
|
|
const out = ['<<'];
|
|
for (let key in object) {
|
|
const val = object[key];
|
|
out.push(`/${key} ${PDFObject.convert(val)}`);
|
|
}
|
|
out.push('>>');
|
|
return out.join('\n');
|
|
}
|
|
if (typeof object === 'number') {
|
|
return PDFObject.number(object);
|
|
}
|
|
return `${object}`;
|
|
}
|
|
static number(n) {
|
|
if (n > -1e21 && n < 1e21) {
|
|
return Math.round(n * 1e6) / 1e6;
|
|
}
|
|
throw new Error(`unsupported number: ${n}`);
|
|
}
|
|
}
|
|
|
|
/*
|
|
PDFPage - represents a single page in the PDF document
|
|
By Devon Govett
|
|
*/
|
|
|
|
/**
|
|
* @type {SideDefinition<Size>}
|
|
*/
|
|
const DEFAULT_MARGINS = {
|
|
top: 72,
|
|
left: 72,
|
|
bottom: 72,
|
|
right: 72
|
|
};
|
|
const SIZES = {
|
|
'4A0': [4767.87, 6740.79],
|
|
'2A0': [3370.39, 4767.87],
|
|
A0: [2383.94, 3370.39],
|
|
A1: [1683.78, 2383.94],
|
|
A2: [1190.55, 1683.78],
|
|
A3: [841.89, 1190.55],
|
|
A4: [595.28, 841.89],
|
|
A5: [419.53, 595.28],
|
|
A6: [297.64, 419.53],
|
|
A7: [209.76, 297.64],
|
|
A8: [147.4, 209.76],
|
|
A9: [104.88, 147.4],
|
|
A10: [73.7, 104.88],
|
|
B0: [2834.65, 4008.19],
|
|
B1: [2004.09, 2834.65],
|
|
B2: [1417.32, 2004.09],
|
|
B3: [1000.63, 1417.32],
|
|
B4: [708.66, 1000.63],
|
|
B5: [498.9, 708.66],
|
|
B6: [354.33, 498.9],
|
|
B7: [249.45, 354.33],
|
|
B8: [175.75, 249.45],
|
|
B9: [124.72, 175.75],
|
|
B10: [87.87, 124.72],
|
|
C0: [2599.37, 3676.54],
|
|
C1: [1836.85, 2599.37],
|
|
C2: [1298.27, 1836.85],
|
|
C3: [918.43, 1298.27],
|
|
C4: [649.13, 918.43],
|
|
C5: [459.21, 649.13],
|
|
C6: [323.15, 459.21],
|
|
C7: [229.61, 323.15],
|
|
C8: [161.57, 229.61],
|
|
C9: [113.39, 161.57],
|
|
C10: [79.37, 113.39],
|
|
RA0: [2437.8, 3458.27],
|
|
RA1: [1729.13, 2437.8],
|
|
RA2: [1218.9, 1729.13],
|
|
RA3: [864.57, 1218.9],
|
|
RA4: [609.45, 864.57],
|
|
SRA0: [2551.18, 3628.35],
|
|
SRA1: [1814.17, 2551.18],
|
|
SRA2: [1275.59, 1814.17],
|
|
SRA3: [907.09, 1275.59],
|
|
SRA4: [637.8, 907.09],
|
|
EXECUTIVE: [521.86, 756.0],
|
|
FOLIO: [612.0, 936.0],
|
|
LEGAL: [612.0, 1008.0],
|
|
LETTER: [612.0, 792.0],
|
|
TABLOID: [792.0, 1224.0]
|
|
};
|
|
class PDFPage {
|
|
constructor(document, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
this.document = document;
|
|
this._options = options;
|
|
this.size = options.size || 'letter';
|
|
this.layout = options.layout || 'portrait';
|
|
this.userUnit = options.userUnit || 1.0;
|
|
|
|
// process margins
|
|
if (typeof options.margin === 'number') {
|
|
this.margins = {
|
|
top: options.margin,
|
|
left: options.margin,
|
|
bottom: options.margin,
|
|
right: options.margin
|
|
};
|
|
|
|
// default to 1 inch margins
|
|
} else {
|
|
this.margins = options.margins || DEFAULT_MARGINS;
|
|
}
|
|
|
|
// calculate page dimensions
|
|
const dimensions = Array.isArray(this.size) ? this.size : SIZES[this.size.toUpperCase()];
|
|
this.width = dimensions[this.layout === 'portrait' ? 0 : 1];
|
|
this.height = dimensions[this.layout === 'portrait' ? 1 : 0];
|
|
this.content = this.document.ref();
|
|
if (options.font) document.font(options.font, options.fontFamily);
|
|
if (options.fontSize) document.fontSize(options.fontSize);
|
|
|
|
// Initialize the Font, XObject, and ExtGState dictionaries
|
|
this.resources = this.document.ref({
|
|
ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI']
|
|
});
|
|
|
|
// The page dictionary
|
|
this.dictionary = this.document.ref({
|
|
Type: 'Page',
|
|
Parent: this.document._root.data.Pages,
|
|
MediaBox: [0, 0, this.width, this.height],
|
|
Contents: this.content,
|
|
Resources: this.resources,
|
|
UserUnit: this.userUnit
|
|
});
|
|
this.markings = [];
|
|
}
|
|
|
|
// Lazily create these objects
|
|
get fonts() {
|
|
const data = this.resources.data;
|
|
return data.Font != null ? data.Font : data.Font = {};
|
|
}
|
|
get xobjects() {
|
|
const data = this.resources.data;
|
|
return data.XObject != null ? data.XObject : data.XObject = {};
|
|
}
|
|
get ext_gstates() {
|
|
const data = this.resources.data;
|
|
return data.ExtGState != null ? data.ExtGState : data.ExtGState = {};
|
|
}
|
|
get patterns() {
|
|
const data = this.resources.data;
|
|
return data.Pattern != null ? data.Pattern : data.Pattern = {};
|
|
}
|
|
get colorSpaces() {
|
|
const data = this.resources.data;
|
|
return data.ColorSpace || (data.ColorSpace = {});
|
|
}
|
|
get annotations() {
|
|
const data = this.dictionary.data;
|
|
return data.Annots != null ? data.Annots : data.Annots = [];
|
|
}
|
|
get structParentTreeKey() {
|
|
const data = this.dictionary.data;
|
|
return data.StructParents != null ? data.StructParents : data.StructParents = this.document.createStructParentTreeNextKey();
|
|
}
|
|
maxY() {
|
|
return this.height - this.margins.bottom;
|
|
}
|
|
write(chunk) {
|
|
return this.content.write(chunk);
|
|
}
|
|
|
|
// Set tab order if document is tagged for accessibility.
|
|
_setTabOrder() {
|
|
if (!this.dictionary.Tabs && this.document.hasMarkInfoDictionary()) {
|
|
this.dictionary.data.Tabs = 'S';
|
|
}
|
|
}
|
|
end() {
|
|
this._setTabOrder();
|
|
this.dictionary.end();
|
|
this.resources.data.ColorSpace = this.resources.data.ColorSpace || {};
|
|
for (let color of Object.values(this.document.spotColors)) {
|
|
this.resources.data.ColorSpace[color.id] = color;
|
|
}
|
|
this.resources.end();
|
|
return this.content.end();
|
|
}
|
|
}
|
|
|
|
/*
|
|
PDFSecurity - represents PDF security settings
|
|
By Yang Liu <hi@zesik.com>
|
|
*/
|
|
|
|
const wordArrayToBuffer = wordArray => {
|
|
const byteArray = [];
|
|
for (let i = 0; i < wordArray.sigBytes; i++) {
|
|
byteArray.push(wordArray.words[Math.floor(i / 4)] >> 8 * (3 - i % 4) & 0xff);
|
|
}
|
|
return Buffer.from(byteArray);
|
|
};
|
|
class PDFSecurity {
|
|
static generateFileID(info) {
|
|
if (info === void 0) {
|
|
info = {};
|
|
}
|
|
let infoStr = `${info.CreationDate.getTime()}\n`;
|
|
for (let key in info) {
|
|
if (!info.hasOwnProperty(key)) continue;
|
|
infoStr += `${key}: ${info[key].valueOf()}\n`;
|
|
}
|
|
return wordArrayToBuffer(MD5(infoStr));
|
|
}
|
|
}
|
|
|
|
const {
|
|
number: number$2
|
|
} = PDFObject;
|
|
let PDFGradient$1 = class PDFGradient {
|
|
constructor(doc) {
|
|
this.doc = doc;
|
|
this.stops = [];
|
|
this.embedded = false;
|
|
this.transform = [1, 0, 0, 1, 0, 0];
|
|
}
|
|
stop(pos, color, opacity) {
|
|
if (opacity == null) {
|
|
opacity = 1;
|
|
}
|
|
color = this.doc._normalizeColor(color);
|
|
if (this.stops.length === 0) {
|
|
if (color.length === 3) {
|
|
this._colorSpace = 'DeviceRGB';
|
|
} else if (color.length === 4) {
|
|
this._colorSpace = 'DeviceCMYK';
|
|
} else if (color.length === 1) {
|
|
this._colorSpace = 'DeviceGray';
|
|
} else {
|
|
throw new Error('Unknown color space');
|
|
}
|
|
} else if (this._colorSpace === 'DeviceRGB' && color.length !== 3 || this._colorSpace === 'DeviceCMYK' && color.length !== 4 || this._colorSpace === 'DeviceGray' && color.length !== 1) {
|
|
throw new Error('All gradient stops must use the same color space');
|
|
}
|
|
opacity = Math.max(0, Math.min(1, opacity));
|
|
this.stops.push([pos, color, opacity]);
|
|
return this;
|
|
}
|
|
setTransform(m11, m12, m21, m22, dx, dy) {
|
|
this.transform = [m11, m12, m21, m22, dx, dy];
|
|
return this;
|
|
}
|
|
embed(m) {
|
|
let fn;
|
|
const stopsLength = this.stops.length;
|
|
if (stopsLength === 0) {
|
|
return;
|
|
}
|
|
this.embedded = true;
|
|
this.matrix = m;
|
|
|
|
// if the last stop comes before 100%, add a copy at 100%
|
|
const last = this.stops[stopsLength - 1];
|
|
if (last[0] < 1) {
|
|
this.stops.push([1, last[1], last[2]]);
|
|
}
|
|
const bounds = [];
|
|
const encode = [];
|
|
const stops = [];
|
|
for (let i = 0; i < stopsLength - 1; i++) {
|
|
encode.push(0, 1);
|
|
if (i + 2 !== stopsLength) {
|
|
bounds.push(this.stops[i + 1][0]);
|
|
}
|
|
fn = this.doc.ref({
|
|
FunctionType: 2,
|
|
Domain: [0, 1],
|
|
C0: this.stops[i + 0][1],
|
|
C1: this.stops[i + 1][1],
|
|
N: 1
|
|
});
|
|
stops.push(fn);
|
|
fn.end();
|
|
}
|
|
|
|
// if there are only two stops, we don't need a stitching function
|
|
if (stopsLength === 1) {
|
|
fn = stops[0];
|
|
} else {
|
|
fn = this.doc.ref({
|
|
FunctionType: 3,
|
|
// stitching function
|
|
Domain: [0, 1],
|
|
Functions: stops,
|
|
Bounds: bounds,
|
|
Encode: encode
|
|
});
|
|
fn.end();
|
|
}
|
|
this.id = `Sh${++this.doc._gradCount}`;
|
|
const shader = this.shader(fn);
|
|
shader.end();
|
|
const pattern = this.doc.ref({
|
|
Type: 'Pattern',
|
|
PatternType: 2,
|
|
Shading: shader,
|
|
Matrix: this.matrix.map(number$2)
|
|
});
|
|
pattern.end();
|
|
if (this.stops.some(stop => stop[2] < 1)) {
|
|
let grad = this.opacityGradient();
|
|
grad._colorSpace = 'DeviceGray';
|
|
for (let stop of this.stops) {
|
|
grad.stop(stop[0], [stop[2]]);
|
|
}
|
|
grad = grad.embed(this.matrix);
|
|
const pageBBox = [0, 0, this.doc.page.width, this.doc.page.height];
|
|
const form = this.doc.ref({
|
|
Type: 'XObject',
|
|
Subtype: 'Form',
|
|
FormType: 1,
|
|
BBox: pageBBox,
|
|
Group: {
|
|
Type: 'Group',
|
|
S: 'Transparency',
|
|
CS: 'DeviceGray'
|
|
},
|
|
Resources: {
|
|
ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],
|
|
Pattern: {
|
|
Sh1: grad
|
|
}
|
|
}
|
|
});
|
|
form.write('/Pattern cs /Sh1 scn');
|
|
form.end(`${pageBBox.join(' ')} re f`);
|
|
const gstate = this.doc.ref({
|
|
Type: 'ExtGState',
|
|
SMask: {
|
|
Type: 'Mask',
|
|
S: 'Luminosity',
|
|
G: form
|
|
}
|
|
});
|
|
gstate.end();
|
|
const opacityPattern = this.doc.ref({
|
|
Type: 'Pattern',
|
|
PatternType: 1,
|
|
PaintType: 1,
|
|
TilingType: 2,
|
|
BBox: pageBBox,
|
|
XStep: pageBBox[2],
|
|
YStep: pageBBox[3],
|
|
Resources: {
|
|
ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],
|
|
Pattern: {
|
|
Sh1: pattern
|
|
},
|
|
ExtGState: {
|
|
Gs1: gstate
|
|
}
|
|
}
|
|
});
|
|
opacityPattern.write('/Gs1 gs /Pattern cs /Sh1 scn');
|
|
opacityPattern.end(`${pageBBox.join(' ')} re f`);
|
|
this.doc.page.patterns[this.id] = opacityPattern;
|
|
} else {
|
|
this.doc.page.patterns[this.id] = pattern;
|
|
}
|
|
return pattern;
|
|
}
|
|
apply(stroke) {
|
|
// apply gradient transform to existing document ctm
|
|
const [m0, m1, m2, m3, m4, m5] = this.doc._ctm;
|
|
const [m11, m12, m21, m22, dx, dy] = this.transform;
|
|
const m = [m0 * m11 + m2 * m12, m1 * m11 + m3 * m12, m0 * m21 + m2 * m22, m1 * m21 + m3 * m22, m0 * dx + m2 * dy + m4, m1 * dx + m3 * dy + m5];
|
|
if (!this.embedded || m.join(' ') !== this.matrix.join(' ')) {
|
|
this.embed(m);
|
|
}
|
|
this.doc._setColorSpace('Pattern', stroke);
|
|
const op = stroke ? 'SCN' : 'scn';
|
|
return this.doc.addContent(`/${this.id} ${op}`);
|
|
}
|
|
};
|
|
let PDFLinearGradient$1 = class PDFLinearGradient extends PDFGradient$1 {
|
|
constructor(doc, x1, y1, x2, y2) {
|
|
super(doc);
|
|
this.x1 = x1;
|
|
this.y1 = y1;
|
|
this.x2 = x2;
|
|
this.y2 = y2;
|
|
}
|
|
shader(fn) {
|
|
return this.doc.ref({
|
|
ShadingType: 2,
|
|
ColorSpace: this._colorSpace,
|
|
Coords: [this.x1, this.y1, this.x2, this.y2],
|
|
Function: fn,
|
|
Extend: [true, true]
|
|
});
|
|
}
|
|
opacityGradient() {
|
|
return new PDFLinearGradient(this.doc, this.x1, this.y1, this.x2, this.y2);
|
|
}
|
|
};
|
|
let PDFRadialGradient$1 = class PDFRadialGradient extends PDFGradient$1 {
|
|
constructor(doc, x1, y1, r1, x2, y2, r2) {
|
|
super(doc);
|
|
this.doc = doc;
|
|
this.x1 = x1;
|
|
this.y1 = y1;
|
|
this.r1 = r1;
|
|
this.x2 = x2;
|
|
this.y2 = y2;
|
|
this.r2 = r2;
|
|
}
|
|
shader(fn) {
|
|
return this.doc.ref({
|
|
ShadingType: 3,
|
|
ColorSpace: this._colorSpace,
|
|
Coords: [this.x1, this.y1, this.r1, this.x2, this.y2, this.r2],
|
|
Function: fn,
|
|
Extend: [true, true]
|
|
});
|
|
}
|
|
opacityGradient() {
|
|
return new PDFRadialGradient(this.doc, this.x1, this.y1, this.r1, this.x2, this.y2, this.r2);
|
|
}
|
|
};
|
|
var Gradient = {
|
|
PDFGradient: PDFGradient$1,
|
|
PDFLinearGradient: PDFLinearGradient$1,
|
|
PDFRadialGradient: PDFRadialGradient$1
|
|
};
|
|
|
|
/*
|
|
PDF tiling pattern support. Uncolored only.
|
|
*/
|
|
|
|
const underlyingColorSpaces = ['DeviceCMYK', 'DeviceRGB'];
|
|
let PDFTilingPattern$1 = class PDFTilingPattern {
|
|
constructor(doc, bBox, xStep, yStep, stream) {
|
|
this.doc = doc;
|
|
this.bBox = bBox;
|
|
this.xStep = xStep;
|
|
this.yStep = yStep;
|
|
this.stream = stream;
|
|
}
|
|
createPattern() {
|
|
// no resources needed for our current usage
|
|
// required entry
|
|
const resources = this.doc.ref();
|
|
resources.end();
|
|
// apply default transform matrix (flipped in the default doc._ctm)
|
|
// see document.js & gradient.js
|
|
const [m0, m1, m2, m3, m4, m5] = this.doc._ctm;
|
|
const [m11, m12, m21, m22, dx, dy] = [1, 0, 0, 1, 0, 0];
|
|
const m = [m0 * m11 + m2 * m12, m1 * m11 + m3 * m12, m0 * m21 + m2 * m22, m1 * m21 + m3 * m22, m0 * dx + m2 * dy + m4, m1 * dx + m3 * dy + m5];
|
|
const pattern = this.doc.ref({
|
|
Type: 'Pattern',
|
|
PatternType: 1,
|
|
// tiling
|
|
PaintType: 2,
|
|
// 1-colored, 2-uncolored
|
|
TilingType: 2,
|
|
// 2-no distortion
|
|
BBox: this.bBox,
|
|
XStep: this.xStep,
|
|
YStep: this.yStep,
|
|
Matrix: m.map(v => +v.toFixed(5)),
|
|
Resources: resources
|
|
});
|
|
pattern.end(this.stream);
|
|
return pattern;
|
|
}
|
|
embedPatternColorSpaces() {
|
|
// map each pattern to an underlying color space
|
|
// and embed on each page
|
|
underlyingColorSpaces.forEach(csName => {
|
|
const csId = this.getPatternColorSpaceId(csName);
|
|
if (this.doc.page.colorSpaces[csId]) return;
|
|
const cs = this.doc.ref(['Pattern', csName]);
|
|
cs.end();
|
|
this.doc.page.colorSpaces[csId] = cs;
|
|
});
|
|
}
|
|
getPatternColorSpaceId(underlyingColorspace) {
|
|
return `CsP${underlyingColorspace}`;
|
|
}
|
|
embed() {
|
|
if (!this.id) {
|
|
this.doc._patternCount = this.doc._patternCount + 1;
|
|
this.id = 'P' + this.doc._patternCount;
|
|
this.pattern = this.createPattern();
|
|
}
|
|
|
|
// patterns are embedded in each page
|
|
if (!this.doc.page.patterns[this.id]) {
|
|
this.doc.page.patterns[this.id] = this.pattern;
|
|
}
|
|
}
|
|
apply(stroke, patternColor) {
|
|
// do any embedding/creating that might be needed
|
|
this.embedPatternColorSpaces();
|
|
this.embed();
|
|
const normalizedColor = this.doc._normalizeColor(patternColor);
|
|
if (!normalizedColor) throw Error(`invalid pattern color. (value: ${patternColor})`);
|
|
|
|
// select one of the pattern color spaces
|
|
const csId = this.getPatternColorSpaceId(this.doc._getColorSpace(normalizedColor));
|
|
this.doc._setColorSpace(csId, stroke);
|
|
|
|
// stroke/fill using the pattern and color (in the above underlying color space)
|
|
const op = stroke ? 'SCN' : 'scn';
|
|
return this.doc.addContent(`${normalizedColor.join(' ')} /${this.id} ${op}`);
|
|
}
|
|
};
|
|
var pattern = {
|
|
PDFTilingPattern: PDFTilingPattern$1
|
|
};
|
|
|
|
class SpotColor {
|
|
constructor(doc, name, C, M, Y, K) {
|
|
this.id = 'CS' + Object.keys(doc.spotColors).length;
|
|
this.name = name;
|
|
this.values = [C, M, Y, K];
|
|
this.ref = doc.ref(['Separation', this.name, 'DeviceCMYK', {
|
|
Range: [0, 1, 0, 1, 0, 1, 0, 1],
|
|
C0: [0, 0, 0, 0],
|
|
C1: this.values.map(value => value / 100),
|
|
FunctionType: 2,
|
|
Domain: [0, 1],
|
|
N: 1
|
|
}]);
|
|
this.ref.end();
|
|
}
|
|
toString() {
|
|
return `${this.ref.id} 0 R`;
|
|
}
|
|
}
|
|
|
|
const {
|
|
PDFGradient,
|
|
PDFLinearGradient,
|
|
PDFRadialGradient
|
|
} = Gradient;
|
|
const {
|
|
PDFTilingPattern
|
|
} = pattern;
|
|
var ColorMixin = {
|
|
initColor() {
|
|
this.spotColors = {};
|
|
// The opacity dictionaries
|
|
this._opacityRegistry = {};
|
|
this._opacityCount = 0;
|
|
this._patternCount = 0;
|
|
return this._gradCount = 0;
|
|
},
|
|
_normalizeColor(color) {
|
|
if (typeof color === 'string') {
|
|
if (color.charAt(0) === '#') {
|
|
if (color.length === 4) {
|
|
color = color.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i, '#$1$1$2$2$3$3');
|
|
}
|
|
const hex = parseInt(color.slice(1), 16);
|
|
color = [hex >> 16, hex >> 8 & 0xff, hex & 0xff];
|
|
} else if (namedColors[color]) {
|
|
color = namedColors[color];
|
|
} else if (this.spotColors[color]) {
|
|
return this.spotColors[color];
|
|
}
|
|
}
|
|
if (Array.isArray(color)) {
|
|
// RGB
|
|
if (color.length === 3) {
|
|
color = color.map(part => part / 255);
|
|
// CMYK
|
|
} else if (color.length === 4) {
|
|
color = color.map(part => part / 100);
|
|
}
|
|
return color;
|
|
}
|
|
return null;
|
|
},
|
|
_setColor(color, stroke) {
|
|
if (color instanceof PDFGradient) {
|
|
color.apply(stroke);
|
|
return true;
|
|
// see if tiling pattern, decode & apply it it
|
|
} else if (Array.isArray(color) && color[0] instanceof PDFTilingPattern) {
|
|
color[0].apply(stroke, color[1]);
|
|
return true;
|
|
}
|
|
// any other case should be a normal color and not a pattern
|
|
return this._setColorCore(color, stroke);
|
|
},
|
|
_setColorCore(color, stroke) {
|
|
color = this._normalizeColor(color);
|
|
if (!color) {
|
|
return false;
|
|
}
|
|
const op = stroke ? 'SCN' : 'scn';
|
|
const space = this._getColorSpace(color);
|
|
this._setColorSpace(space, stroke);
|
|
if (color instanceof SpotColor) {
|
|
this.page.colorSpaces[color.id] = color.ref;
|
|
this.addContent(`1 ${op}`);
|
|
} else {
|
|
this.addContent(`${color.join(' ')} ${op}`);
|
|
}
|
|
return true;
|
|
},
|
|
_setColorSpace(space, stroke) {
|
|
const op = stroke ? 'CS' : 'cs';
|
|
return this.addContent(`/${space} ${op}`);
|
|
},
|
|
_getColorSpace(color) {
|
|
if (color instanceof SpotColor) {
|
|
return color.id;
|
|
}
|
|
return color.length === 4 ? 'DeviceCMYK' : 'DeviceRGB';
|
|
},
|
|
fillColor(color, opacity) {
|
|
const set = this._setColor(color, false);
|
|
if (set) {
|
|
this.fillOpacity(opacity);
|
|
}
|
|
|
|
// save this for text wrapper, which needs to reset
|
|
// the fill color on new pages
|
|
this._fillColor = [color, opacity];
|
|
return this;
|
|
},
|
|
strokeColor(color, opacity) {
|
|
const set = this._setColor(color, true);
|
|
if (set) {
|
|
this.strokeOpacity(opacity);
|
|
}
|
|
return this;
|
|
},
|
|
opacity(opacity) {
|
|
this._doOpacity(opacity, opacity);
|
|
return this;
|
|
},
|
|
fillOpacity(opacity) {
|
|
this._doOpacity(opacity, null);
|
|
return this;
|
|
},
|
|
strokeOpacity(opacity) {
|
|
this._doOpacity(null, opacity);
|
|
return this;
|
|
},
|
|
_doOpacity(fillOpacity, strokeOpacity) {
|
|
let dictionary, name;
|
|
if (fillOpacity == null && strokeOpacity == null) {
|
|
return;
|
|
}
|
|
if (fillOpacity != null) {
|
|
fillOpacity = Math.max(0, Math.min(1, fillOpacity));
|
|
}
|
|
if (strokeOpacity != null) {
|
|
strokeOpacity = Math.max(0, Math.min(1, strokeOpacity));
|
|
}
|
|
const key = `${fillOpacity}_${strokeOpacity}`;
|
|
if (this._opacityRegistry[key]) {
|
|
[dictionary, name] = this._opacityRegistry[key];
|
|
} else {
|
|
dictionary = {
|
|
Type: 'ExtGState'
|
|
};
|
|
if (fillOpacity != null) {
|
|
dictionary.ca = fillOpacity;
|
|
}
|
|
if (strokeOpacity != null) {
|
|
dictionary.CA = strokeOpacity;
|
|
}
|
|
dictionary = this.ref(dictionary);
|
|
dictionary.end();
|
|
const id = ++this._opacityCount;
|
|
name = `Gs${id}`;
|
|
this._opacityRegistry[key] = [dictionary, name];
|
|
}
|
|
this.page.ext_gstates[name] = dictionary;
|
|
return this.addContent(`/${name} gs`);
|
|
},
|
|
linearGradient(x1, y1, x2, y2) {
|
|
return new PDFLinearGradient(this, x1, y1, x2, y2);
|
|
},
|
|
radialGradient(x1, y1, r1, x2, y2, r2) {
|
|
return new PDFRadialGradient(this, x1, y1, r1, x2, y2, r2);
|
|
},
|
|
pattern(bbox, xStep, yStep, stream) {
|
|
return new PDFTilingPattern(this, bbox, xStep, yStep, stream);
|
|
},
|
|
addSpotColor(name, C, M, Y, K) {
|
|
const color = new SpotColor(this, name, C, M, Y, K);
|
|
this.spotColors[name] = color;
|
|
return this;
|
|
}
|
|
};
|
|
var namedColors = {
|
|
aliceblue: [240, 248, 255],
|
|
antiquewhite: [250, 235, 215],
|
|
aqua: [0, 255, 255],
|
|
aquamarine: [127, 255, 212],
|
|
azure: [240, 255, 255],
|
|
beige: [245, 245, 220],
|
|
bisque: [255, 228, 196],
|
|
black: [0, 0, 0],
|
|
blanchedalmond: [255, 235, 205],
|
|
blue: [0, 0, 255],
|
|
blueviolet: [138, 43, 226],
|
|
brown: [165, 42, 42],
|
|
burlywood: [222, 184, 135],
|
|
cadetblue: [95, 158, 160],
|
|
chartreuse: [127, 255, 0],
|
|
chocolate: [210, 105, 30],
|
|
coral: [255, 127, 80],
|
|
cornflowerblue: [100, 149, 237],
|
|
cornsilk: [255, 248, 220],
|
|
crimson: [220, 20, 60],
|
|
cyan: [0, 255, 255],
|
|
darkblue: [0, 0, 139],
|
|
darkcyan: [0, 139, 139],
|
|
darkgoldenrod: [184, 134, 11],
|
|
darkgray: [169, 169, 169],
|
|
darkgreen: [0, 100, 0],
|
|
darkgrey: [169, 169, 169],
|
|
darkkhaki: [189, 183, 107],
|
|
darkmagenta: [139, 0, 139],
|
|
darkolivegreen: [85, 107, 47],
|
|
darkorange: [255, 140, 0],
|
|
darkorchid: [153, 50, 204],
|
|
darkred: [139, 0, 0],
|
|
darksalmon: [233, 150, 122],
|
|
darkseagreen: [143, 188, 143],
|
|
darkslateblue: [72, 61, 139],
|
|
darkslategray: [47, 79, 79],
|
|
darkslategrey: [47, 79, 79],
|
|
darkturquoise: [0, 206, 209],
|
|
darkviolet: [148, 0, 211],
|
|
deeppink: [255, 20, 147],
|
|
deepskyblue: [0, 191, 255],
|
|
dimgray: [105, 105, 105],
|
|
dimgrey: [105, 105, 105],
|
|
dodgerblue: [30, 144, 255],
|
|
firebrick: [178, 34, 34],
|
|
floralwhite: [255, 250, 240],
|
|
forestgreen: [34, 139, 34],
|
|
fuchsia: [255, 0, 255],
|
|
gainsboro: [220, 220, 220],
|
|
ghostwhite: [248, 248, 255],
|
|
gold: [255, 215, 0],
|
|
goldenrod: [218, 165, 32],
|
|
gray: [128, 128, 128],
|
|
grey: [128, 128, 128],
|
|
green: [0, 128, 0],
|
|
greenyellow: [173, 255, 47],
|
|
honeydew: [240, 255, 240],
|
|
hotpink: [255, 105, 180],
|
|
indianred: [205, 92, 92],
|
|
indigo: [75, 0, 130],
|
|
ivory: [255, 255, 240],
|
|
khaki: [240, 230, 140],
|
|
lavender: [230, 230, 250],
|
|
lavenderblush: [255, 240, 245],
|
|
lawngreen: [124, 252, 0],
|
|
lemonchiffon: [255, 250, 205],
|
|
lightblue: [173, 216, 230],
|
|
lightcoral: [240, 128, 128],
|
|
lightcyan: [224, 255, 255],
|
|
lightgoldenrodyellow: [250, 250, 210],
|
|
lightgray: [211, 211, 211],
|
|
lightgreen: [144, 238, 144],
|
|
lightgrey: [211, 211, 211],
|
|
lightpink: [255, 182, 193],
|
|
lightsalmon: [255, 160, 122],
|
|
lightseagreen: [32, 178, 170],
|
|
lightskyblue: [135, 206, 250],
|
|
lightslategray: [119, 136, 153],
|
|
lightslategrey: [119, 136, 153],
|
|
lightsteelblue: [176, 196, 222],
|
|
lightyellow: [255, 255, 224],
|
|
lime: [0, 255, 0],
|
|
limegreen: [50, 205, 50],
|
|
linen: [250, 240, 230],
|
|
magenta: [255, 0, 255],
|
|
maroon: [128, 0, 0],
|
|
mediumaquamarine: [102, 205, 170],
|
|
mediumblue: [0, 0, 205],
|
|
mediumorchid: [186, 85, 211],
|
|
mediumpurple: [147, 112, 219],
|
|
mediumseagreen: [60, 179, 113],
|
|
mediumslateblue: [123, 104, 238],
|
|
mediumspringgreen: [0, 250, 154],
|
|
mediumturquoise: [72, 209, 204],
|
|
mediumvioletred: [199, 21, 133],
|
|
midnightblue: [25, 25, 112],
|
|
mintcream: [245, 255, 250],
|
|
mistyrose: [255, 228, 225],
|
|
moccasin: [255, 228, 181],
|
|
navajowhite: [255, 222, 173],
|
|
navy: [0, 0, 128],
|
|
oldlace: [253, 245, 230],
|
|
olive: [128, 128, 0],
|
|
olivedrab: [107, 142, 35],
|
|
orange: [255, 165, 0],
|
|
orangered: [255, 69, 0],
|
|
orchid: [218, 112, 214],
|
|
palegoldenrod: [238, 232, 170],
|
|
palegreen: [152, 251, 152],
|
|
paleturquoise: [175, 238, 238],
|
|
palevioletred: [219, 112, 147],
|
|
papayawhip: [255, 239, 213],
|
|
peachpuff: [255, 218, 185],
|
|
peru: [205, 133, 63],
|
|
pink: [255, 192, 203],
|
|
plum: [221, 160, 221],
|
|
powderblue: [176, 224, 230],
|
|
purple: [128, 0, 128],
|
|
red: [255, 0, 0],
|
|
rosybrown: [188, 143, 143],
|
|
royalblue: [65, 105, 225],
|
|
saddlebrown: [139, 69, 19],
|
|
salmon: [250, 128, 114],
|
|
sandybrown: [244, 164, 96],
|
|
seagreen: [46, 139, 87],
|
|
seashell: [255, 245, 238],
|
|
sienna: [160, 82, 45],
|
|
silver: [192, 192, 192],
|
|
skyblue: [135, 206, 235],
|
|
slateblue: [106, 90, 205],
|
|
slategray: [112, 128, 144],
|
|
slategrey: [112, 128, 144],
|
|
snow: [255, 250, 250],
|
|
springgreen: [0, 255, 127],
|
|
steelblue: [70, 130, 180],
|
|
tan: [210, 180, 140],
|
|
teal: [0, 128, 128],
|
|
thistle: [216, 191, 216],
|
|
tomato: [255, 99, 71],
|
|
turquoise: [64, 224, 208],
|
|
violet: [238, 130, 238],
|
|
wheat: [245, 222, 179],
|
|
white: [255, 255, 255],
|
|
whitesmoke: [245, 245, 245],
|
|
yellow: [255, 255, 0],
|
|
yellowgreen: [154, 205, 50]
|
|
};
|
|
|
|
let cx;
|
|
let cy;
|
|
let px;
|
|
let py;
|
|
let sx;
|
|
let sy;
|
|
cx = cy = px = py = sx = sy = 0;
|
|
|
|
// parseDataPath copy pasted from svgo
|
|
// https://github.com/svg/svgo/blob/e4918ccdd1a2b5831defe0f00c1286744b479448/lib/path.js
|
|
|
|
/**
|
|
* @typedef {'M' | 'm' | 'Z' | 'z' | 'L' | 'l' | 'H' | 'h' | 'V' | 'v' | 'C' | 'c' | 'S' | 's' | 'Q' | 'q' | 'T' | 't' | 'A' | 'a'} PathDataCommand
|
|
*/
|
|
|
|
/**
|
|
* @typedef {Object} PathDataItem
|
|
* @property {PathDataCommand} command
|
|
* @property {number[]} args
|
|
*/
|
|
|
|
const argsCountPerCommand = {
|
|
M: 2,
|
|
m: 2,
|
|
Z: 0,
|
|
z: 0,
|
|
L: 2,
|
|
l: 2,
|
|
H: 1,
|
|
h: 1,
|
|
V: 1,
|
|
v: 1,
|
|
C: 6,
|
|
c: 6,
|
|
S: 4,
|
|
s: 4,
|
|
Q: 4,
|
|
q: 4,
|
|
T: 2,
|
|
t: 2,
|
|
A: 7,
|
|
a: 7
|
|
};
|
|
|
|
/**
|
|
* @type {(c: string) => c is PathDataCommand}
|
|
*/
|
|
const isCommand = c => {
|
|
return c in argsCountPerCommand;
|
|
};
|
|
|
|
/**
|
|
* @type {(c: string) => boolean}
|
|
*/
|
|
const isWsp = c => {
|
|
const codePoint = c.codePointAt(0);
|
|
return codePoint === 0x20 || codePoint === 0x9 || codePoint === 0xd || codePoint === 0xa;
|
|
};
|
|
|
|
/**
|
|
* @type {(c: string) => boolean}
|
|
*/
|
|
const isDigit = c => {
|
|
const codePoint = c.codePointAt(0);
|
|
if (codePoint == null) {
|
|
return false;
|
|
}
|
|
return 48 <= codePoint && codePoint <= 57;
|
|
};
|
|
|
|
/**
|
|
* @typedef {'none' | 'sign' | 'whole' | 'decimal_point' | 'decimal' | 'e' | 'exponent_sign' | 'exponent'} ReadNumberState
|
|
*/
|
|
|
|
/**
|
|
* @type {(string: string, cursor: number) => [number, number | null]}
|
|
*/
|
|
const readNumber = (string, cursor) => {
|
|
let i = cursor;
|
|
let value = '';
|
|
let state = /** @type {ReadNumberState} */'none';
|
|
for (; i < string.length; i += 1) {
|
|
const c = string[i];
|
|
if (c === '+' || c === '-') {
|
|
if (state === 'none') {
|
|
state = 'sign';
|
|
value += c;
|
|
continue;
|
|
}
|
|
if (state === 'e') {
|
|
state = 'exponent_sign';
|
|
value += c;
|
|
continue;
|
|
}
|
|
}
|
|
if (isDigit(c)) {
|
|
if (state === 'none' || state === 'sign' || state === 'whole') {
|
|
state = 'whole';
|
|
value += c;
|
|
continue;
|
|
}
|
|
if (state === 'decimal_point' || state === 'decimal') {
|
|
state = 'decimal';
|
|
value += c;
|
|
continue;
|
|
}
|
|
if (state === 'e' || state === 'exponent_sign' || state === 'exponent') {
|
|
state = 'exponent';
|
|
value += c;
|
|
continue;
|
|
}
|
|
}
|
|
if (c === '.') {
|
|
if (state === 'none' || state === 'sign' || state === 'whole') {
|
|
state = 'decimal_point';
|
|
value += c;
|
|
continue;
|
|
}
|
|
}
|
|
if (c === 'E' || c === 'e') {
|
|
if (state === 'whole' || state === 'decimal_point' || state === 'decimal') {
|
|
state = 'e';
|
|
value += c;
|
|
continue;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
const number = Number.parseFloat(value);
|
|
if (Number.isNaN(number)) {
|
|
return [cursor, null];
|
|
}
|
|
// step back to delegate iteration to parent loop
|
|
return [i - 1, number];
|
|
};
|
|
|
|
/**
|
|
* @type {(string: string) => Array<PathDataItem>}
|
|
*/
|
|
const parsePathData = string => {
|
|
/**
|
|
* @type {Array<PathDataItem>}
|
|
*/
|
|
const pathData = [];
|
|
/**
|
|
* @type {null | PathDataCommand}
|
|
*/
|
|
let command = null;
|
|
let args = /** @type {number[]} */[];
|
|
let argsCount = 0;
|
|
let canHaveComma = false;
|
|
let hadComma = false;
|
|
for (let i = 0; i < string.length; i += 1) {
|
|
const c = string.charAt(i);
|
|
if (isWsp(c)) {
|
|
continue;
|
|
}
|
|
// allow comma only between arguments
|
|
if (canHaveComma && c === ',') {
|
|
if (hadComma) {
|
|
break;
|
|
}
|
|
hadComma = true;
|
|
continue;
|
|
}
|
|
if (isCommand(c)) {
|
|
if (hadComma) {
|
|
return pathData;
|
|
}
|
|
if (command == null) {
|
|
// moveto should be leading command
|
|
if (c !== 'M' && c !== 'm') {
|
|
return pathData;
|
|
}
|
|
} else {
|
|
// stop if previous command arguments are not flushed
|
|
if (args.length !== 0) {
|
|
return pathData;
|
|
}
|
|
}
|
|
command = c;
|
|
args = [];
|
|
argsCount = argsCountPerCommand[command];
|
|
canHaveComma = false;
|
|
// flush command without arguments
|
|
if (argsCount === 0) {
|
|
pathData.push({
|
|
command,
|
|
args
|
|
});
|
|
}
|
|
continue;
|
|
}
|
|
// avoid parsing arguments if no command detected
|
|
if (command == null) {
|
|
return pathData;
|
|
}
|
|
// read next argument
|
|
let newCursor = i;
|
|
let number = null;
|
|
if (command === 'A' || command === 'a') {
|
|
const position = args.length;
|
|
if (position === 0 || position === 1) {
|
|
// allow only positive number without sign as first two arguments
|
|
if (c !== '+' && c !== '-') {
|
|
[newCursor, number] = readNumber(string, i);
|
|
}
|
|
}
|
|
if (position === 2 || position === 5 || position === 6) {
|
|
[newCursor, number] = readNumber(string, i);
|
|
}
|
|
if (position === 3 || position === 4) {
|
|
// read flags
|
|
if (c === '0') {
|
|
number = 0;
|
|
}
|
|
if (c === '1') {
|
|
number = 1;
|
|
}
|
|
}
|
|
} else {
|
|
[newCursor, number] = readNumber(string, i);
|
|
}
|
|
if (number == null) {
|
|
return pathData;
|
|
}
|
|
args.push(number);
|
|
canHaveComma = true;
|
|
hadComma = false;
|
|
i = newCursor;
|
|
// flush arguments when necessary count is reached
|
|
if (args.length === argsCount) {
|
|
pathData.push({
|
|
command,
|
|
args
|
|
});
|
|
// subsequent moveto coordinates are threated as implicit lineto commands
|
|
if (command === 'M') {
|
|
command = 'L';
|
|
}
|
|
if (command === 'm') {
|
|
command = 'l';
|
|
}
|
|
args = [];
|
|
}
|
|
}
|
|
return pathData;
|
|
};
|
|
const apply = function (commands, doc) {
|
|
// current point, control point, and subpath starting point
|
|
cx = cy = px = py = sx = sy = 0;
|
|
|
|
// run the commands
|
|
for (let i = 0; i < commands.length; i++) {
|
|
const {
|
|
command,
|
|
args
|
|
} = commands[i];
|
|
if (typeof runners[command] === 'function') {
|
|
runners[command](doc, args);
|
|
}
|
|
}
|
|
};
|
|
const runners = {
|
|
M(doc, a) {
|
|
cx = a[0];
|
|
cy = a[1];
|
|
px = py = null;
|
|
sx = cx;
|
|
sy = cy;
|
|
return doc.moveTo(cx, cy);
|
|
},
|
|
m(doc, a) {
|
|
cx += a[0];
|
|
cy += a[1];
|
|
px = py = null;
|
|
sx = cx;
|
|
sy = cy;
|
|
return doc.moveTo(cx, cy);
|
|
},
|
|
C(doc, a) {
|
|
cx = a[4];
|
|
cy = a[5];
|
|
px = a[2];
|
|
py = a[3];
|
|
return doc.bezierCurveTo(...a);
|
|
},
|
|
c(doc, a) {
|
|
doc.bezierCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy, a[4] + cx, a[5] + cy);
|
|
px = cx + a[2];
|
|
py = cy + a[3];
|
|
cx += a[4];
|
|
return cy += a[5];
|
|
},
|
|
S(doc, a) {
|
|
if (px === null) {
|
|
px = cx;
|
|
py = cy;
|
|
}
|
|
doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), a[0], a[1], a[2], a[3]);
|
|
px = a[0];
|
|
py = a[1];
|
|
cx = a[2];
|
|
return cy = a[3];
|
|
},
|
|
s(doc, a) {
|
|
if (px === null) {
|
|
px = cx;
|
|
py = cy;
|
|
}
|
|
doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), cx + a[0], cy + a[1], cx + a[2], cy + a[3]);
|
|
px = cx + a[0];
|
|
py = cy + a[1];
|
|
cx += a[2];
|
|
return cy += a[3];
|
|
},
|
|
Q(doc, a) {
|
|
px = a[0];
|
|
py = a[1];
|
|
cx = a[2];
|
|
cy = a[3];
|
|
return doc.quadraticCurveTo(a[0], a[1], cx, cy);
|
|
},
|
|
q(doc, a) {
|
|
doc.quadraticCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy);
|
|
px = cx + a[0];
|
|
py = cy + a[1];
|
|
cx += a[2];
|
|
return cy += a[3];
|
|
},
|
|
T(doc, a) {
|
|
if (px === null) {
|
|
px = cx;
|
|
py = cy;
|
|
} else {
|
|
px = cx - (px - cx);
|
|
py = cy - (py - cy);
|
|
}
|
|
doc.quadraticCurveTo(px, py, a[0], a[1]);
|
|
px = cx - (px - cx);
|
|
py = cy - (py - cy);
|
|
cx = a[0];
|
|
return cy = a[1];
|
|
},
|
|
t(doc, a) {
|
|
if (px === null) {
|
|
px = cx;
|
|
py = cy;
|
|
} else {
|
|
px = cx - (px - cx);
|
|
py = cy - (py - cy);
|
|
}
|
|
doc.quadraticCurveTo(px, py, cx + a[0], cy + a[1]);
|
|
cx += a[0];
|
|
return cy += a[1];
|
|
},
|
|
A(doc, a) {
|
|
solveArc(doc, cx, cy, a);
|
|
cx = a[5];
|
|
return cy = a[6];
|
|
},
|
|
a(doc, a) {
|
|
a[5] += cx;
|
|
a[6] += cy;
|
|
solveArc(doc, cx, cy, a);
|
|
cx = a[5];
|
|
return cy = a[6];
|
|
},
|
|
L(doc, a) {
|
|
cx = a[0];
|
|
cy = a[1];
|
|
px = py = null;
|
|
return doc.lineTo(cx, cy);
|
|
},
|
|
l(doc, a) {
|
|
cx += a[0];
|
|
cy += a[1];
|
|
px = py = null;
|
|
return doc.lineTo(cx, cy);
|
|
},
|
|
H(doc, a) {
|
|
cx = a[0];
|
|
px = py = null;
|
|
return doc.lineTo(cx, cy);
|
|
},
|
|
h(doc, a) {
|
|
cx += a[0];
|
|
px = py = null;
|
|
return doc.lineTo(cx, cy);
|
|
},
|
|
V(doc, a) {
|
|
cy = a[0];
|
|
px = py = null;
|
|
return doc.lineTo(cx, cy);
|
|
},
|
|
v(doc, a) {
|
|
cy += a[0];
|
|
px = py = null;
|
|
return doc.lineTo(cx, cy);
|
|
},
|
|
Z(doc) {
|
|
doc.closePath();
|
|
cx = sx;
|
|
return cy = sy;
|
|
},
|
|
z(doc) {
|
|
doc.closePath();
|
|
cx = sx;
|
|
return cy = sy;
|
|
}
|
|
};
|
|
const solveArc = function (doc, x, y, coords) {
|
|
const [rx, ry, rot, large, sweep, ex, ey] = coords;
|
|
const segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y);
|
|
for (let seg of segs) {
|
|
const bez = segmentToBezier(...seg);
|
|
doc.bezierCurveTo(...bez);
|
|
}
|
|
};
|
|
|
|
// from Inkscape svgtopdf, thanks!
|
|
const arcToSegments = function (x, y, rx, ry, large, sweep, rotateX, ox, oy) {
|
|
const th = rotateX * (Math.PI / 180);
|
|
const sin_th = Math.sin(th);
|
|
const cos_th = Math.cos(th);
|
|
rx = Math.abs(rx);
|
|
ry = Math.abs(ry);
|
|
px = cos_th * (ox - x) * 0.5 + sin_th * (oy - y) * 0.5;
|
|
py = cos_th * (oy - y) * 0.5 - sin_th * (ox - x) * 0.5;
|
|
let pl = px * px / (rx * rx) + py * py / (ry * ry);
|
|
if (pl > 1) {
|
|
pl = Math.sqrt(pl);
|
|
rx *= pl;
|
|
ry *= pl;
|
|
}
|
|
const a00 = cos_th / rx;
|
|
const a01 = sin_th / rx;
|
|
const a10 = -sin_th / ry;
|
|
const a11 = cos_th / ry;
|
|
const x0 = a00 * ox + a01 * oy;
|
|
const y0 = a10 * ox + a11 * oy;
|
|
const x1 = a00 * x + a01 * y;
|
|
const y1 = a10 * x + a11 * y;
|
|
const d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);
|
|
let sfactor_sq = 1 / d - 0.25;
|
|
if (sfactor_sq < 0) {
|
|
sfactor_sq = 0;
|
|
}
|
|
let sfactor = Math.sqrt(sfactor_sq);
|
|
if (sweep === large) {
|
|
sfactor = -sfactor;
|
|
}
|
|
const xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);
|
|
const yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);
|
|
const th0 = Math.atan2(y0 - yc, x0 - xc);
|
|
const th1 = Math.atan2(y1 - yc, x1 - xc);
|
|
let th_arc = th1 - th0;
|
|
if (th_arc < 0 && sweep === 1) {
|
|
th_arc += 2 * Math.PI;
|
|
} else if (th_arc > 0 && sweep === 0) {
|
|
th_arc -= 2 * Math.PI;
|
|
}
|
|
const segments = Math.ceil(Math.abs(th_arc / (Math.PI * 0.5 + 0.001)));
|
|
const result = [];
|
|
for (let i = 0; i < segments; i++) {
|
|
const th2 = th0 + i * th_arc / segments;
|
|
const th3 = th0 + (i + 1) * th_arc / segments;
|
|
result[i] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th];
|
|
}
|
|
return result;
|
|
};
|
|
const segmentToBezier = function (cx, cy, th0, th1, rx, ry, sin_th, cos_th) {
|
|
const a00 = cos_th * rx;
|
|
const a01 = -sin_th * ry;
|
|
const a10 = sin_th * rx;
|
|
const a11 = cos_th * ry;
|
|
const th_half = 0.5 * (th1 - th0);
|
|
const t = 8 / 3 * Math.sin(th_half * 0.5) * Math.sin(th_half * 0.5) / Math.sin(th_half);
|
|
const x1 = cx + Math.cos(th0) - t * Math.sin(th0);
|
|
const y1 = cy + Math.sin(th0) + t * Math.cos(th0);
|
|
const x3 = cx + Math.cos(th1);
|
|
const y3 = cy + Math.sin(th1);
|
|
const x2 = x3 + t * Math.sin(th1);
|
|
const y2 = y3 - t * Math.cos(th1);
|
|
return [a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y2, a10 * x2 + a11 * y2, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3];
|
|
};
|
|
class SVGPath {
|
|
static apply(doc, path) {
|
|
const commands = parsePathData(path);
|
|
apply(commands, doc);
|
|
}
|
|
}
|
|
|
|
const {
|
|
number: number$1
|
|
} = PDFObject;
|
|
|
|
// This constant is used to approximate a symmetrical arc using a cubic
|
|
// Bezier curve.
|
|
const KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);
|
|
var VectorMixin = {
|
|
initVector() {
|
|
this._ctm = [1, 0, 0, 1, 0, 0]; // current transformation matrix
|
|
return this._ctmStack = [];
|
|
},
|
|
save() {
|
|
this._ctmStack.push(this._ctm.slice());
|
|
// TODO: save/restore colorspace and styles so not setting it unnessesarily all the time?
|
|
return this.addContent('q');
|
|
},
|
|
restore() {
|
|
this._ctm = this._ctmStack.pop() || [1, 0, 0, 1, 0, 0];
|
|
return this.addContent('Q');
|
|
},
|
|
closePath() {
|
|
return this.addContent('h');
|
|
},
|
|
lineWidth(w) {
|
|
return this.addContent(`${number$1(w)} w`);
|
|
},
|
|
_CAP_STYLES: {
|
|
BUTT: 0,
|
|
ROUND: 1,
|
|
SQUARE: 2
|
|
},
|
|
lineCap(c) {
|
|
if (typeof c === 'string') {
|
|
c = this._CAP_STYLES[c.toUpperCase()];
|
|
}
|
|
return this.addContent(`${c} J`);
|
|
},
|
|
_JOIN_STYLES: {
|
|
MITER: 0,
|
|
ROUND: 1,
|
|
BEVEL: 2
|
|
},
|
|
lineJoin(j) {
|
|
if (typeof j === 'string') {
|
|
j = this._JOIN_STYLES[j.toUpperCase()];
|
|
}
|
|
return this.addContent(`${j} j`);
|
|
},
|
|
miterLimit(m) {
|
|
return this.addContent(`${number$1(m)} M`);
|
|
},
|
|
dash(length, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const originalLength = length;
|
|
if (!Array.isArray(length)) {
|
|
length = [length, options.space || length];
|
|
}
|
|
const valid = length.every(x => Number.isFinite(x) && x > 0);
|
|
if (!valid) {
|
|
throw new Error(`dash(${JSON.stringify(originalLength)}, ${JSON.stringify(options)}) invalid, lengths must be numeric and greater than zero`);
|
|
}
|
|
length = length.map(number$1).join(' ');
|
|
return this.addContent(`[${length}] ${number$1(options.phase || 0)} d`);
|
|
},
|
|
undash() {
|
|
return this.addContent('[] 0 d');
|
|
},
|
|
moveTo(x, y) {
|
|
return this.addContent(`${number$1(x)} ${number$1(y)} m`);
|
|
},
|
|
lineTo(x, y) {
|
|
return this.addContent(`${number$1(x)} ${number$1(y)} l`);
|
|
},
|
|
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {
|
|
return this.addContent(`${number$1(cp1x)} ${number$1(cp1y)} ${number$1(cp2x)} ${number$1(cp2y)} ${number$1(x)} ${number$1(y)} c`);
|
|
},
|
|
quadraticCurveTo(cpx, cpy, x, y) {
|
|
return this.addContent(`${number$1(cpx)} ${number$1(cpy)} ${number$1(x)} ${number$1(y)} v`);
|
|
},
|
|
rect(x, y, w, h) {
|
|
return this.addContent(`${number$1(x)} ${number$1(y)} ${number$1(w)} ${number$1(h)} re`);
|
|
},
|
|
roundedRect(x, y, w, h, r) {
|
|
if (r == null) {
|
|
r = 0;
|
|
}
|
|
r = Math.min(r, 0.5 * w, 0.5 * h);
|
|
|
|
// amount to inset control points from corners (see `ellipse`)
|
|
const c = r * (1.0 - KAPPA);
|
|
this.moveTo(x + r, y);
|
|
this.lineTo(x + w - r, y);
|
|
this.bezierCurveTo(x + w - c, y, x + w, y + c, x + w, y + r);
|
|
this.lineTo(x + w, y + h - r);
|
|
this.bezierCurveTo(x + w, y + h - c, x + w - c, y + h, x + w - r, y + h);
|
|
this.lineTo(x + r, y + h);
|
|
this.bezierCurveTo(x + c, y + h, x, y + h - c, x, y + h - r);
|
|
this.lineTo(x, y + r);
|
|
this.bezierCurveTo(x, y + c, x + c, y, x + r, y);
|
|
return this.closePath();
|
|
},
|
|
ellipse(x, y, r1, r2) {
|
|
// based on http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas/2173084#2173084
|
|
if (r2 == null) {
|
|
r2 = r1;
|
|
}
|
|
x -= r1;
|
|
y -= r2;
|
|
const ox = r1 * KAPPA;
|
|
const oy = r2 * KAPPA;
|
|
const xe = x + r1 * 2;
|
|
const ye = y + r2 * 2;
|
|
const xm = x + r1;
|
|
const ym = y + r2;
|
|
this.moveTo(x, ym);
|
|
this.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);
|
|
this.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);
|
|
this.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);
|
|
this.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);
|
|
return this.closePath();
|
|
},
|
|
circle(x, y, radius) {
|
|
return this.ellipse(x, y, radius);
|
|
},
|
|
arc(x, y, radius, startAngle, endAngle, anticlockwise) {
|
|
if (anticlockwise == null) {
|
|
anticlockwise = false;
|
|
}
|
|
const TWO_PI = 2.0 * Math.PI;
|
|
const HALF_PI = 0.5 * Math.PI;
|
|
let deltaAng = endAngle - startAngle;
|
|
if (Math.abs(deltaAng) > TWO_PI) {
|
|
// draw only full circle if more than that is specified
|
|
deltaAng = TWO_PI;
|
|
} else if (deltaAng !== 0 && anticlockwise !== deltaAng < 0) {
|
|
// necessary to flip direction of rendering
|
|
const dir = anticlockwise ? -1 : 1;
|
|
deltaAng = dir * TWO_PI + deltaAng;
|
|
}
|
|
const numSegs = Math.ceil(Math.abs(deltaAng) / HALF_PI);
|
|
const segAng = deltaAng / numSegs;
|
|
const handleLen = segAng / HALF_PI * KAPPA * radius;
|
|
let curAng = startAngle;
|
|
|
|
// component distances between anchor point and control point
|
|
let deltaCx = -Math.sin(curAng) * handleLen;
|
|
let deltaCy = Math.cos(curAng) * handleLen;
|
|
|
|
// anchor point
|
|
let ax = x + Math.cos(curAng) * radius;
|
|
let ay = y + Math.sin(curAng) * radius;
|
|
|
|
// calculate and render segments
|
|
this.moveTo(ax, ay);
|
|
for (let segIdx = 0; segIdx < numSegs; segIdx++) {
|
|
// starting control point
|
|
const cp1x = ax + deltaCx;
|
|
const cp1y = ay + deltaCy;
|
|
|
|
// step angle
|
|
curAng += segAng;
|
|
|
|
// next anchor point
|
|
ax = x + Math.cos(curAng) * radius;
|
|
ay = y + Math.sin(curAng) * radius;
|
|
|
|
// next control point delta
|
|
deltaCx = -Math.sin(curAng) * handleLen;
|
|
deltaCy = Math.cos(curAng) * handleLen;
|
|
|
|
// ending control point
|
|
const cp2x = ax - deltaCx;
|
|
const cp2y = ay - deltaCy;
|
|
|
|
// render segment
|
|
this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, ax, ay);
|
|
}
|
|
return this;
|
|
},
|
|
polygon() {
|
|
for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
points[_key] = arguments[_key];
|
|
}
|
|
this.moveTo(...(points.shift() || []));
|
|
for (let point of points) {
|
|
this.lineTo(...(point || []));
|
|
}
|
|
return this.closePath();
|
|
},
|
|
path(path) {
|
|
SVGPath.apply(this, path);
|
|
return this;
|
|
},
|
|
_windingRule(rule) {
|
|
if (/even-?odd/.test(rule)) {
|
|
return '*';
|
|
}
|
|
return '';
|
|
},
|
|
fill(color, rule) {
|
|
if (/(even-?odd)|(non-?zero)/.test(color)) {
|
|
rule = color;
|
|
color = null;
|
|
}
|
|
if (color) {
|
|
this.fillColor(color);
|
|
}
|
|
return this.addContent(`f${this._windingRule(rule)}`);
|
|
},
|
|
stroke(color) {
|
|
if (color) {
|
|
this.strokeColor(color);
|
|
}
|
|
return this.addContent('S');
|
|
},
|
|
fillAndStroke(fillColor, strokeColor, rule) {
|
|
if (strokeColor == null) {
|
|
strokeColor = fillColor;
|
|
}
|
|
const isFillRule = /(even-?odd)|(non-?zero)/;
|
|
if (isFillRule.test(fillColor)) {
|
|
rule = fillColor;
|
|
fillColor = null;
|
|
}
|
|
if (isFillRule.test(strokeColor)) {
|
|
rule = strokeColor;
|
|
strokeColor = fillColor;
|
|
}
|
|
if (fillColor) {
|
|
this.fillColor(fillColor);
|
|
this.strokeColor(strokeColor);
|
|
}
|
|
return this.addContent(`B${this._windingRule(rule)}`);
|
|
},
|
|
clip(rule) {
|
|
return this.addContent(`W${this._windingRule(rule)} n`);
|
|
},
|
|
transform(m11, m12, m21, m22, dx, dy) {
|
|
// keep track of the current transformation matrix
|
|
if (m11 === 1 && m12 === 0 && m21 === 0 && m22 === 1 && dx === 0 && dy === 0) {
|
|
// Ignore identity transforms
|
|
return this;
|
|
}
|
|
const m = this._ctm;
|
|
const [m0, m1, m2, m3, m4, m5] = m;
|
|
m[0] = m0 * m11 + m2 * m12;
|
|
m[1] = m1 * m11 + m3 * m12;
|
|
m[2] = m0 * m21 + m2 * m22;
|
|
m[3] = m1 * m21 + m3 * m22;
|
|
m[4] = m0 * dx + m2 * dy + m4;
|
|
m[5] = m1 * dx + m3 * dy + m5;
|
|
const values = [m11, m12, m21, m22, dx, dy].map(v => number$1(v)).join(' ');
|
|
return this.addContent(`${values} cm`);
|
|
},
|
|
translate(x, y) {
|
|
return this.transform(1, 0, 0, 1, x, y);
|
|
},
|
|
rotate(angle, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
let y;
|
|
const rad = angle * Math.PI / 180;
|
|
const cos = Math.cos(rad);
|
|
const sin = Math.sin(rad);
|
|
let x = y = 0;
|
|
if (options.origin != null) {
|
|
[x, y] = options.origin;
|
|
const x1 = x * cos - y * sin;
|
|
const y1 = x * sin + y * cos;
|
|
x -= x1;
|
|
y -= y1;
|
|
}
|
|
return this.transform(cos, sin, -sin, cos, x, y);
|
|
},
|
|
scale(xFactor, yFactor, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
let y;
|
|
if (yFactor == null) {
|
|
yFactor = xFactor;
|
|
}
|
|
if (typeof yFactor === 'object') {
|
|
options = yFactor;
|
|
yFactor = xFactor;
|
|
}
|
|
let x = y = 0;
|
|
if (options.origin != null) {
|
|
[x, y] = options.origin;
|
|
x -= xFactor * x;
|
|
y -= yFactor * y;
|
|
}
|
|
return this.transform(xFactor, 0, 0, yFactor, x, y);
|
|
}
|
|
};
|
|
|
|
const range = (left, right, inclusive) => {
|
|
let range = [];
|
|
let end = right + 1 ;
|
|
for (let i = left; i < end ; i++ ) {
|
|
range.push(i);
|
|
}
|
|
return range;
|
|
};
|
|
|
|
const WIN_ANSI_MAP = {
|
|
402: 131,
|
|
8211: 150,
|
|
8212: 151,
|
|
8216: 145,
|
|
8217: 146,
|
|
8218: 130,
|
|
8220: 147,
|
|
8221: 148,
|
|
8222: 132,
|
|
8224: 134,
|
|
8225: 135,
|
|
8226: 149,
|
|
8230: 133,
|
|
8364: 128,
|
|
8240: 137,
|
|
8249: 139,
|
|
8250: 155,
|
|
710: 136,
|
|
8482: 153,
|
|
338: 140,
|
|
339: 156,
|
|
732: 152,
|
|
352: 138,
|
|
353: 154,
|
|
376: 159,
|
|
381: 142,
|
|
382: 158
|
|
};
|
|
const characters = `\
|
|
.notdef .notdef .notdef .notdef
|
|
.notdef .notdef .notdef .notdef
|
|
.notdef .notdef .notdef .notdef
|
|
.notdef .notdef .notdef .notdef
|
|
.notdef .notdef .notdef .notdef
|
|
.notdef .notdef .notdef .notdef
|
|
.notdef .notdef .notdef .notdef
|
|
.notdef .notdef .notdef .notdef
|
|
|
|
space exclam quotedbl numbersign
|
|
dollar percent ampersand quotesingle
|
|
parenleft parenright asterisk plus
|
|
comma hyphen period slash
|
|
zero one two three
|
|
four five six seven
|
|
eight nine colon semicolon
|
|
less equal greater question
|
|
|
|
at A B C
|
|
D E F G
|
|
H I J K
|
|
L M N O
|
|
P Q R S
|
|
T U V W
|
|
X Y Z bracketleft
|
|
backslash bracketright asciicircum underscore
|
|
|
|
grave a b c
|
|
d e f g
|
|
h i j k
|
|
l m n o
|
|
p q r s
|
|
t u v w
|
|
x y z braceleft
|
|
bar braceright asciitilde .notdef
|
|
|
|
Euro .notdef quotesinglbase florin
|
|
quotedblbase ellipsis dagger daggerdbl
|
|
circumflex perthousand Scaron guilsinglleft
|
|
OE .notdef Zcaron .notdef
|
|
.notdef quoteleft quoteright quotedblleft
|
|
quotedblright bullet endash emdash
|
|
tilde trademark scaron guilsinglright
|
|
oe .notdef zcaron ydieresis
|
|
|
|
space exclamdown cent sterling
|
|
currency yen brokenbar section
|
|
dieresis copyright ordfeminine guillemotleft
|
|
logicalnot hyphen registered macron
|
|
degree plusminus twosuperior threesuperior
|
|
acute mu paragraph periodcentered
|
|
cedilla onesuperior ordmasculine guillemotright
|
|
onequarter onehalf threequarters questiondown
|
|
|
|
Agrave Aacute Acircumflex Atilde
|
|
Adieresis Aring AE Ccedilla
|
|
Egrave Eacute Ecircumflex Edieresis
|
|
Igrave Iacute Icircumflex Idieresis
|
|
Eth Ntilde Ograve Oacute
|
|
Ocircumflex Otilde Odieresis multiply
|
|
Oslash Ugrave Uacute Ucircumflex
|
|
Udieresis Yacute Thorn germandbls
|
|
|
|
agrave aacute acircumflex atilde
|
|
adieresis aring ae ccedilla
|
|
egrave eacute ecircumflex edieresis
|
|
igrave iacute icircumflex idieresis
|
|
eth ntilde ograve oacute
|
|
ocircumflex otilde odieresis divide
|
|
oslash ugrave uacute ucircumflex
|
|
udieresis yacute thorn ydieresis\
|
|
`.split(/\s+/);
|
|
function parse(contents) {
|
|
const obj = {
|
|
attributes: {},
|
|
glyphWidths: {},
|
|
kernPairs: {}
|
|
};
|
|
let section = '';
|
|
for (let line of contents.split('\n')) {
|
|
var match;
|
|
var a;
|
|
if (match = line.match(/^Start(\w+)/)) {
|
|
section = match[1];
|
|
continue;
|
|
} else if (match = line.match(/^End(\w+)/)) {
|
|
section = '';
|
|
continue;
|
|
}
|
|
switch (section) {
|
|
case 'FontMetrics':
|
|
match = line.match(/(^\w+)\s+(.*)/);
|
|
var key = match[1];
|
|
var value = match[2];
|
|
if (a = obj.attributes[key]) {
|
|
if (!Array.isArray(a)) {
|
|
a = obj.attributes[key] = [a];
|
|
}
|
|
a.push(value);
|
|
} else {
|
|
obj.attributes[key] = value;
|
|
}
|
|
break;
|
|
case 'CharMetrics':
|
|
if (!/^CH?\s/.test(line)) {
|
|
continue;
|
|
}
|
|
var name = line.match(/\bN\s+(\.?\w+)\s*;/)[1];
|
|
obj.glyphWidths[name] = +line.match(/\bWX\s+(\d+)\s*;/)[1];
|
|
break;
|
|
case 'KernPairs':
|
|
match = line.match(/^KPX\s+(\.?\w+)\s+(\.?\w+)\s+(-?\d+)/);
|
|
if (match) {
|
|
obj.kernPairs[match[1] + match[2]] = parseInt(match[3]);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
return obj;
|
|
}
|
|
class AFMFont {
|
|
static open(filename) {
|
|
return new AFMFont(fs.readFileSync(filename, 'utf8'));
|
|
}
|
|
static fromJson(json) {
|
|
return new AFMFont(json);
|
|
}
|
|
constructor(contents) {
|
|
if (typeof contents === 'string') {
|
|
this.contents = contents;
|
|
this.parse();
|
|
} else {
|
|
this.attributes = contents.attributes;
|
|
this.glyphWidths = contents.glyphWidths;
|
|
this.kernPairs = contents.kernPairs;
|
|
}
|
|
this.charWidths = range(0, 255).map(i => this.glyphWidths[characters[i]]);
|
|
this.bbox = Array.from(this.attributes.FontBBox.split(/\s+/)).map(e => +e);
|
|
this.ascender = +(this.attributes.Ascender || 0);
|
|
this.descender = +(this.attributes.Descender || 0);
|
|
this.xHeight = +(this.attributes.XHeight || 0);
|
|
this.capHeight = +(this.attributes.CapHeight || 0);
|
|
this.lineGap = this.bbox[3] - this.bbox[1] - (this.ascender - this.descender);
|
|
}
|
|
parse() {
|
|
const parsed = parse(this.contents);
|
|
this.attributes = parsed.attributes;
|
|
this.glyphWidths = parsed.glyphWidths;
|
|
this.kernPairs = parsed.kernPairs;
|
|
}
|
|
encodeText(text) {
|
|
const res = [];
|
|
for (let i = 0, end = text.length, asc = 0 <= end; asc ? i < end : i > end; asc ? i++ : i--) {
|
|
let char = text.charCodeAt(i);
|
|
char = WIN_ANSI_MAP[char] || char;
|
|
res.push(char.toString(16));
|
|
}
|
|
return res;
|
|
}
|
|
glyphsForString(string) {
|
|
const glyphs = [];
|
|
for (let i = 0, end = string.length, asc = 0 <= end; asc ? i < end : i > end; asc ? i++ : i--) {
|
|
const charCode = string.charCodeAt(i);
|
|
glyphs.push(this.characterToGlyph(charCode));
|
|
}
|
|
return glyphs;
|
|
}
|
|
characterToGlyph(character) {
|
|
return characters[WIN_ANSI_MAP[character] || character] || '.notdef';
|
|
}
|
|
widthOfGlyph(glyph) {
|
|
return this.glyphWidths[glyph] || 0;
|
|
}
|
|
getKernPair(left, right) {
|
|
return this.kernPairs[left + right] || 0;
|
|
}
|
|
advancesForGlyphs(glyphs) {
|
|
const advances = [];
|
|
for (let index = 0; index < glyphs.length; index++) {
|
|
const left = glyphs[index];
|
|
const right = glyphs[index + 1];
|
|
advances.push(this.widthOfGlyph(left) + this.getKernPair(left, right));
|
|
}
|
|
return advances;
|
|
}
|
|
}
|
|
|
|
var attributes = [
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 12:43:52 1997",
|
|
"UniqueID 43052",
|
|
"VMusage 37169 48194"
|
|
],
|
|
FontName: "Helvetica-Bold",
|
|
FullName: "Helvetica Bold",
|
|
FamilyName: "Helvetica",
|
|
Weight: "Bold",
|
|
ItalicAngle: "0",
|
|
IsFixedPitch: "false",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-170 -228 1003 962 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "002.000",
|
|
Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "718",
|
|
XHeight: "532",
|
|
Ascender: "718",
|
|
Descender: "-207",
|
|
StdHW: "118",
|
|
StdVW: "140"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 12:45:12 1997",
|
|
"UniqueID 43053",
|
|
"VMusage 14482 68586"
|
|
],
|
|
FontName: "Helvetica-BoldOblique",
|
|
FullName: "Helvetica Bold Oblique",
|
|
FamilyName: "Helvetica",
|
|
Weight: "Bold",
|
|
ItalicAngle: "-12",
|
|
IsFixedPitch: "false",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-174 -228 1114 962",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "002.000",
|
|
Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "718",
|
|
XHeight: "532",
|
|
Ascender: "718",
|
|
Descender: "-207",
|
|
StdHW: "118",
|
|
StdVW: "140"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 12:44:31 1997",
|
|
"UniqueID 43055",
|
|
"VMusage 14960 69346"
|
|
],
|
|
FontName: "Helvetica-Oblique",
|
|
FullName: "Helvetica Oblique",
|
|
FamilyName: "Helvetica",
|
|
Weight: "Medium",
|
|
ItalicAngle: "-12",
|
|
IsFixedPitch: "false",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-170 -225 1116 931 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "002.000",
|
|
Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "718",
|
|
XHeight: "523",
|
|
Ascender: "718",
|
|
Descender: "-207",
|
|
StdHW: "76",
|
|
StdVW: "88"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 12:38:23 1997",
|
|
"UniqueID 43054",
|
|
"VMusage 37069 48094"
|
|
],
|
|
FontName: "Helvetica",
|
|
FullName: "Helvetica",
|
|
FamilyName: "Helvetica",
|
|
Weight: "Medium",
|
|
ItalicAngle: "0",
|
|
IsFixedPitch: "false",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-166 -225 1000 931 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "002.000",
|
|
Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "718",
|
|
XHeight: "523",
|
|
Ascender: "718",
|
|
Descender: "-207",
|
|
StdHW: "76",
|
|
StdVW: "88"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 12:52:56 1997",
|
|
"UniqueID 43065",
|
|
"VMusage 41636 52661"
|
|
],
|
|
FontName: "Times-Bold",
|
|
FullName: "Times Bold",
|
|
FamilyName: "Times",
|
|
Weight: "Bold",
|
|
ItalicAngle: "0",
|
|
IsFixedPitch: "false",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-168 -218 1000 935 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "002.000",
|
|
Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "676",
|
|
XHeight: "461",
|
|
Ascender: "683",
|
|
Descender: "-217",
|
|
StdHW: "44",
|
|
StdVW: "139"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 13:04:06 1997",
|
|
"UniqueID 43066",
|
|
"VMusage 45874 56899"
|
|
],
|
|
FontName: "Times-BoldItalic",
|
|
FullName: "Times Bold Italic",
|
|
FamilyName: "Times",
|
|
Weight: "Bold",
|
|
ItalicAngle: "-15",
|
|
IsFixedPitch: "false",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-200 -218 996 921",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "002.000",
|
|
Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "669",
|
|
XHeight: "462",
|
|
Ascender: "683",
|
|
Descender: "-217",
|
|
StdHW: "42",
|
|
StdVW: "121"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 12:56:55 1997",
|
|
"UniqueID 43067",
|
|
"VMusage 47727 58752"
|
|
],
|
|
FontName: "Times-Italic",
|
|
FullName: "Times Italic",
|
|
FamilyName: "Times",
|
|
Weight: "Medium",
|
|
ItalicAngle: "-15.5",
|
|
IsFixedPitch: "false",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-169 -217 1010 883 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "002.000",
|
|
Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "653",
|
|
XHeight: "441",
|
|
Ascender: "683",
|
|
Descender: "-217",
|
|
StdHW: "32",
|
|
StdVW: "76"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 12:49:17 1997",
|
|
"UniqueID 43068",
|
|
"VMusage 43909 54934"
|
|
],
|
|
FontName: "Times-Roman",
|
|
FullName: "Times Roman",
|
|
FamilyName: "Times",
|
|
Weight: "Roman",
|
|
ItalicAngle: "0",
|
|
IsFixedPitch: "false",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-168 -218 1000 898 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "002.000",
|
|
Notice: "Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "662",
|
|
XHeight: "450",
|
|
Ascender: "683",
|
|
Descender: "-217",
|
|
StdHW: "28",
|
|
StdVW: "84"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Mon Jun 23 16:28:00 1997",
|
|
"UniqueID 43048",
|
|
"VMusage 41139 52164"
|
|
],
|
|
FontName: "Courier-Bold",
|
|
FullName: "Courier Bold",
|
|
FamilyName: "Courier",
|
|
Weight: "Bold",
|
|
ItalicAngle: "0",
|
|
IsFixedPitch: "true",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-113 -250 749 801 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "003.000",
|
|
Notice: "Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "562",
|
|
XHeight: "439",
|
|
Ascender: "629",
|
|
Descender: "-157",
|
|
StdHW: "84",
|
|
StdVW: "106"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Mon Jun 23 16:28:46 1997",
|
|
"UniqueID 43049",
|
|
"VMusage 17529 79244"
|
|
],
|
|
FontName: "Courier-BoldOblique",
|
|
FullName: "Courier Bold Oblique",
|
|
FamilyName: "Courier",
|
|
Weight: "Bold",
|
|
ItalicAngle: "-12",
|
|
IsFixedPitch: "true",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-57 -250 869 801",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "003.000",
|
|
Notice: "Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "562",
|
|
XHeight: "439",
|
|
Ascender: "629",
|
|
Descender: "-157",
|
|
StdHW: "84",
|
|
StdVW: "106"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 17:37:52 1997",
|
|
"UniqueID 43051",
|
|
"VMusage 16248 75829"
|
|
],
|
|
FontName: "Courier-Oblique",
|
|
FullName: "Courier Oblique",
|
|
FamilyName: "Courier",
|
|
Weight: "Medium",
|
|
ItalicAngle: "-12",
|
|
IsFixedPitch: "true",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-27 -250 849 805 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "003.000",
|
|
Notice: "Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "562",
|
|
XHeight: "426",
|
|
Ascender: "629",
|
|
Descender: "-157",
|
|
StdHW: "51",
|
|
StdVW: "51"
|
|
},
|
|
{
|
|
Comment: [
|
|
"Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
"Creation Date: Thu May 1 17:27:09 1997",
|
|
"UniqueID 43050",
|
|
"VMusage 39754 50779"
|
|
],
|
|
FontName: "Courier",
|
|
FullName: "Courier",
|
|
FamilyName: "Courier",
|
|
Weight: "Medium",
|
|
ItalicAngle: "0",
|
|
IsFixedPitch: "true",
|
|
CharacterSet: "ExtendedRoman",
|
|
FontBBox: "-23 -250 715 805 ",
|
|
UnderlinePosition: "-100",
|
|
UnderlineThickness: "50",
|
|
Version: "003.000",
|
|
Notice: "Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.",
|
|
EncodingScheme: "AdobeStandardEncoding",
|
|
CapHeight: "562",
|
|
XHeight: "426",
|
|
Ascender: "629",
|
|
Descender: "-157",
|
|
StdHW: "51",
|
|
StdVW: "51"
|
|
}
|
|
];
|
|
var glyphWidths = {
|
|
space: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
exclam: [
|
|
333,
|
|
333,
|
|
278,
|
|
278,
|
|
333,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
quotedbl: [
|
|
474,
|
|
474,
|
|
355,
|
|
355,
|
|
555,
|
|
555,
|
|
420,
|
|
408,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
numbersign: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
dollar: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
percent: [
|
|
889,
|
|
889,
|
|
889,
|
|
889,
|
|
1000,
|
|
833,
|
|
833,
|
|
833,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ampersand: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
833,
|
|
778,
|
|
778,
|
|
778,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
quoteright: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
parenleft: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
parenright: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
asterisk: [
|
|
389,
|
|
389,
|
|
389,
|
|
389,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
plus: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
570,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
comma: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
hyphen: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
period: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
slash: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
zero: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
one: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
two: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
three: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
four: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
five: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
six: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
seven: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
eight: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
nine: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
colon: [
|
|
333,
|
|
333,
|
|
278,
|
|
278,
|
|
333,
|
|
333,
|
|
333,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
semicolon: [
|
|
333,
|
|
333,
|
|
278,
|
|
278,
|
|
333,
|
|
333,
|
|
333,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
less: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
570,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
equal: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
570,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
greater: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
570,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
question: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
at: [
|
|
975,
|
|
975,
|
|
1015,
|
|
1015,
|
|
930,
|
|
832,
|
|
920,
|
|
921,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
A: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
B: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
C: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
D: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
E: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
F: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
667,
|
|
611,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
G: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
H: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
I: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
J: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
389,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
K: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
778,
|
|
667,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
L: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
M: [
|
|
833,
|
|
833,
|
|
833,
|
|
833,
|
|
944,
|
|
889,
|
|
833,
|
|
889,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
N: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
O: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
P: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
611,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Q: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
R: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
611,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
S: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
556,
|
|
556,
|
|
500,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
T: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
U: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
V: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
W: [
|
|
944,
|
|
944,
|
|
944,
|
|
944,
|
|
1000,
|
|
889,
|
|
833,
|
|
944,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
X: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Y: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
722,
|
|
611,
|
|
556,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Z: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
bracketleft: [
|
|
333,
|
|
333,
|
|
278,
|
|
278,
|
|
333,
|
|
333,
|
|
389,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
backslash: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
bracketright: [
|
|
333,
|
|
333,
|
|
278,
|
|
278,
|
|
333,
|
|
333,
|
|
389,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
asciicircum: [
|
|
584,
|
|
584,
|
|
469,
|
|
469,
|
|
581,
|
|
570,
|
|
422,
|
|
469,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
underscore: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
quoteleft: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
a: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
b: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
c: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
d: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
e: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
f: [
|
|
333,
|
|
333,
|
|
278,
|
|
278,
|
|
333,
|
|
333,
|
|
278,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
g: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
h: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
i: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
j: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
333,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
k: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
556,
|
|
500,
|
|
444,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
l: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
m: [
|
|
889,
|
|
889,
|
|
833,
|
|
833,
|
|
833,
|
|
778,
|
|
722,
|
|
778,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
n: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
o: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
p: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
q: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
r: [
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
444,
|
|
389,
|
|
389,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
s: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
389,
|
|
389,
|
|
389,
|
|
389,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
t: [
|
|
333,
|
|
333,
|
|
278,
|
|
278,
|
|
333,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
u: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
v: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
444,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
w: [
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
x: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
y: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
444,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
z: [
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
389,
|
|
389,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
braceleft: [
|
|
389,
|
|
389,
|
|
334,
|
|
334,
|
|
394,
|
|
348,
|
|
400,
|
|
480,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
bar: [
|
|
280,
|
|
280,
|
|
260,
|
|
260,
|
|
220,
|
|
220,
|
|
275,
|
|
200,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
braceright: [
|
|
389,
|
|
389,
|
|
334,
|
|
334,
|
|
394,
|
|
348,
|
|
400,
|
|
480,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
asciitilde: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
520,
|
|
570,
|
|
541,
|
|
541,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
exclamdown: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
389,
|
|
389,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
cent: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
sterling: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
fraction: [
|
|
167,
|
|
167,
|
|
167,
|
|
167,
|
|
167,
|
|
167,
|
|
167,
|
|
167,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
yen: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
florin: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
section: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
currency: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
quotesingle: [
|
|
238,
|
|
238,
|
|
191,
|
|
191,
|
|
278,
|
|
278,
|
|
214,
|
|
180,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
quotedblleft: [
|
|
500,
|
|
500,
|
|
333,
|
|
333,
|
|
500,
|
|
500,
|
|
556,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
guillemotleft: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
guilsinglleft: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
guilsinglright: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
fi: [
|
|
611,
|
|
611,
|
|
500,
|
|
500,
|
|
556,
|
|
556,
|
|
500,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
fl: [
|
|
611,
|
|
611,
|
|
500,
|
|
500,
|
|
556,
|
|
556,
|
|
500,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
endash: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
dagger: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
daggerdbl: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
periodcentered: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
paragraph: [
|
|
556,
|
|
556,
|
|
537,
|
|
537,
|
|
540,
|
|
500,
|
|
523,
|
|
453,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
bullet: [
|
|
350,
|
|
350,
|
|
350,
|
|
350,
|
|
350,
|
|
350,
|
|
350,
|
|
350,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
quotesinglbase: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
quotedblbase: [
|
|
500,
|
|
500,
|
|
333,
|
|
333,
|
|
500,
|
|
500,
|
|
556,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
quotedblright: [
|
|
500,
|
|
500,
|
|
333,
|
|
333,
|
|
500,
|
|
500,
|
|
556,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
guillemotright: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ellipsis: [
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
889,
|
|
1000,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
perthousand: [
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
questiondown: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
grave: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
acute: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
circumflex: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
tilde: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
macron: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
breve: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
dotaccent: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
dieresis: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ring: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
cedilla: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
hungarumlaut: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ogonek: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
caron: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
emdash: [
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
889,
|
|
1000,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
AE: [
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
944,
|
|
889,
|
|
889,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ordfeminine: [
|
|
370,
|
|
370,
|
|
370,
|
|
370,
|
|
300,
|
|
266,
|
|
276,
|
|
276,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Lslash: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Oslash: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
OE: [
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
944,
|
|
944,
|
|
889,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ordmasculine: [
|
|
365,
|
|
365,
|
|
365,
|
|
365,
|
|
330,
|
|
300,
|
|
310,
|
|
310,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ae: [
|
|
889,
|
|
889,
|
|
889,
|
|
889,
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
dotlessi: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
lslash: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
oslash: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
oe: [
|
|
944,
|
|
944,
|
|
944,
|
|
944,
|
|
722,
|
|
722,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
germandbls: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Idieresis: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
eacute: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
abreve: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
uhungarumlaut: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ecaron: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ydieresis: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
722,
|
|
611,
|
|
556,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
divide: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
570,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Yacute: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
722,
|
|
611,
|
|
556,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Acircumflex: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
aacute: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ucircumflex: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
yacute: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
444,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
scommaaccent: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
389,
|
|
389,
|
|
389,
|
|
389,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ecircumflex: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Uring: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Udieresis: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
aogonek: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Uacute: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
uogonek: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Edieresis: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Dcroat: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
commaaccent: [
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
250,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
copyright: [
|
|
737,
|
|
737,
|
|
737,
|
|
737,
|
|
747,
|
|
747,
|
|
760,
|
|
760,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Emacron: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ccaron: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
aring: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ncommaaccent: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
lacute: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
agrave: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Tcommaaccent: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Cacute: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
atilde: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Edotaccent: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
scaron: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
389,
|
|
389,
|
|
389,
|
|
389,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
scedilla: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
389,
|
|
389,
|
|
389,
|
|
389,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
iacute: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
lozenge: [
|
|
494,
|
|
494,
|
|
471,
|
|
471,
|
|
494,
|
|
494,
|
|
471,
|
|
471,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Rcaron: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
611,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Gcommaaccent: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ucircumflex: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
acircumflex: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Amacron: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
rcaron: [
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
444,
|
|
389,
|
|
389,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ccedilla: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Zdotaccent: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Thorn: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
611,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Omacron: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Racute: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
611,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Sacute: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
556,
|
|
556,
|
|
500,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
dcaron: [
|
|
743,
|
|
743,
|
|
643,
|
|
643,
|
|
672,
|
|
608,
|
|
544,
|
|
588,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Umacron: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
uring: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
threesuperior: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
300,
|
|
300,
|
|
300,
|
|
300,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ograve: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Agrave: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Abreve: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
multiply: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
570,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
uacute: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Tcaron: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
partialdiff: [
|
|
494,
|
|
494,
|
|
476,
|
|
476,
|
|
494,
|
|
494,
|
|
476,
|
|
476,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ydieresis: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
444,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Nacute: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
icircumflex: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ecircumflex: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
adieresis: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
edieresis: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
cacute: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
nacute: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
umacron: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ncaron: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Iacute: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
plusminus: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
570,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
brokenbar: [
|
|
280,
|
|
280,
|
|
260,
|
|
260,
|
|
220,
|
|
220,
|
|
275,
|
|
200,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
registered: [
|
|
737,
|
|
737,
|
|
737,
|
|
737,
|
|
747,
|
|
747,
|
|
760,
|
|
760,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Gbreve: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Idotaccent: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
summation: [
|
|
600,
|
|
600,
|
|
600,
|
|
600,
|
|
600,
|
|
600,
|
|
600,
|
|
600,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Egrave: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
racute: [
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
444,
|
|
389,
|
|
389,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
omacron: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Zacute: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Zcaron: [
|
|
611,
|
|
611,
|
|
611,
|
|
611,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
greaterequal: [
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Eth: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ccedilla: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
lcommaaccent: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
tcaron: [
|
|
389,
|
|
389,
|
|
317,
|
|
317,
|
|
416,
|
|
366,
|
|
300,
|
|
326,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
eogonek: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Uogonek: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Aacute: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Adieresis: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
egrave: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
zacute: [
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
389,
|
|
389,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
iogonek: [
|
|
278,
|
|
278,
|
|
222,
|
|
222,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Oacute: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
oacute: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
amacron: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
sacute: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
389,
|
|
389,
|
|
389,
|
|
389,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
idieresis: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ocircumflex: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ugrave: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Delta: [
|
|
612,
|
|
612,
|
|
612,
|
|
612,
|
|
612,
|
|
612,
|
|
612,
|
|
612,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
thorn: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
twosuperior: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
300,
|
|
300,
|
|
300,
|
|
300,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Odieresis: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
mu: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
576,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
igrave: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ohungarumlaut: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Eogonek: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
dcroat: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
threequarters: [
|
|
834,
|
|
834,
|
|
834,
|
|
834,
|
|
750,
|
|
750,
|
|
750,
|
|
750,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Scedilla: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
556,
|
|
556,
|
|
500,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
lcaron: [
|
|
400,
|
|
400,
|
|
299,
|
|
299,
|
|
394,
|
|
382,
|
|
300,
|
|
344,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Kcommaaccent: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
778,
|
|
667,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Lacute: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
trademark: [
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
980,
|
|
980,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
edotaccent: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Igrave: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Imacron: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Lcaron: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
667,
|
|
611,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
onehalf: [
|
|
834,
|
|
834,
|
|
834,
|
|
834,
|
|
750,
|
|
750,
|
|
750,
|
|
750,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
lessequal: [
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ocircumflex: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ntilde: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Uhungarumlaut: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Eacute: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
emacron: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
444,
|
|
444,
|
|
444,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
gbreve: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
onequarter: [
|
|
834,
|
|
834,
|
|
834,
|
|
834,
|
|
750,
|
|
750,
|
|
750,
|
|
750,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Scaron: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
556,
|
|
556,
|
|
500,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Scommaaccent: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
556,
|
|
556,
|
|
500,
|
|
556,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ohungarumlaut: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
degree: [
|
|
400,
|
|
400,
|
|
400,
|
|
400,
|
|
400,
|
|
400,
|
|
400,
|
|
400,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ograve: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ccaron: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ugrave: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
radical: [
|
|
549,
|
|
549,
|
|
453,
|
|
453,
|
|
549,
|
|
549,
|
|
453,
|
|
453,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Dcaron: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
rcommaaccent: [
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
444,
|
|
389,
|
|
389,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ntilde: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
otilde: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Rcommaaccent: [
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
722,
|
|
667,
|
|
611,
|
|
667,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Lcommaaccent: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
667,
|
|
611,
|
|
556,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Atilde: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Aogonek: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Aring: [
|
|
722,
|
|
722,
|
|
667,
|
|
667,
|
|
722,
|
|
667,
|
|
611,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Otilde: [
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
778,
|
|
722,
|
|
722,
|
|
722,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
zdotaccent: [
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
389,
|
|
389,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Ecaron: [
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
667,
|
|
611,
|
|
611,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Iogonek: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
kcommaaccent: [
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
556,
|
|
500,
|
|
444,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
minus: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
606,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Icircumflex: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
389,
|
|
389,
|
|
333,
|
|
333,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ncaron: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
tcommaaccent: [
|
|
333,
|
|
333,
|
|
278,
|
|
278,
|
|
333,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
logicalnot: [
|
|
584,
|
|
584,
|
|
584,
|
|
584,
|
|
570,
|
|
606,
|
|
675,
|
|
564,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
odieresis: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
udieresis: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
notequal: [
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
549,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
gcommaaccent: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
eth: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
zcaron: [
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
444,
|
|
389,
|
|
389,
|
|
444,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
ncommaaccent: [
|
|
611,
|
|
611,
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
onesuperior: [
|
|
333,
|
|
333,
|
|
333,
|
|
333,
|
|
300,
|
|
300,
|
|
300,
|
|
300,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
imacron: [
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
278,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
],
|
|
Euro: [
|
|
556,
|
|
556,
|
|
556,
|
|
556,
|
|
500,
|
|
500,
|
|
500,
|
|
500,
|
|
600,
|
|
600,
|
|
600,
|
|
600
|
|
]
|
|
};
|
|
var kernPairs = {
|
|
AC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
ACacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
ACcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
ACcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
ATcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
ATcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Au: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Auacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Audieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Augrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Auhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Auogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Auring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Av: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Aw: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Ay: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Ayacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Aydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
AacuteC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AacuteCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AacuteCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AacuteCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AacuteG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AacuteGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AacuteGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AacuteO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AacuteT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AacuteTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AacuteTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AacuteU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AacuteV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AacuteW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AacuteY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AacuteYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AacuteYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Aacuteu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacuteuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacuteucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacuteudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacuteugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacuteuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacuteumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacuteuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacuteuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aacutev: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Aacutew: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Aacutey: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Aacuteyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Aacuteydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
AbreveC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AbreveCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AbreveCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AbreveCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AbreveG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AbreveGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AbreveGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AbreveO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AbreveT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AbreveTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AbreveTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AbreveU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AbreveV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AbreveW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AbreveY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AbreveYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AbreveYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Abreveu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abreveuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abreveucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abreveudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abreveugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abreveuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abreveumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abreveuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abreveuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Abrevev: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Abrevew: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Abrevey: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Abreveyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Abreveydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
AcircumflexC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AcircumflexCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AcircumflexCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AcircumflexCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AcircumflexG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AcircumflexGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AcircumflexGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AcircumflexO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AcircumflexT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AcircumflexTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AcircumflexTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AcircumflexU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AcircumflexV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AcircumflexW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AcircumflexY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AcircumflexYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AcircumflexYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Acircumflexu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Acircumflexv: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Acircumflexw: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Acircumflexy: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Acircumflexyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Acircumflexydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
AdieresisC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AdieresisCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AdieresisCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AdieresisCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AdieresisG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AdieresisGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AdieresisGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AdieresisO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AdieresisT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AdieresisTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AdieresisTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AdieresisU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AdieresisV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AdieresisW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AdieresisY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AdieresisYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AdieresisYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Adieresisu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Adieresisv: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Adieresisw: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Adieresisy: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Adieresisyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Adieresisydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
AgraveC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AgraveCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AgraveCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AgraveCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AgraveG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AgraveGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AgraveGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AgraveO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AgraveT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AgraveTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AgraveTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AgraveU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AgraveV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AgraveW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AgraveY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AgraveYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AgraveYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Agraveu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agraveuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agraveucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agraveudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agraveugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agraveuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agraveumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agraveuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agraveuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Agravev: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Agravew: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Agravey: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Agraveyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Agraveydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
AmacronC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AmacronCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AmacronCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AmacronCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AmacronG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AmacronGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AmacronGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AmacronO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AmacronT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AmacronTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AmacronTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AmacronU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AmacronV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AmacronW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AmacronY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AmacronYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AmacronYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Amacronu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Amacronv: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Amacronw: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Amacrony: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Amacronyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Amacronydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
AogonekC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AogonekCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AogonekCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AogonekCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AogonekG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AogonekGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AogonekGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AogonekO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AogonekT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AogonekTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AogonekTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AogonekU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AogonekV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AogonekW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AogonekY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AogonekYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AogonekYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Aogoneku: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aogonekv: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Aogonekw: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-52
|
|
],
|
|
Aogoneky: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-34,
|
|
-34,
|
|
-55,
|
|
-52
|
|
],
|
|
Aogonekyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-34,
|
|
-34,
|
|
-55,
|
|
-52
|
|
],
|
|
Aogonekydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-34,
|
|
-34,
|
|
-55,
|
|
-52
|
|
],
|
|
AringC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AringCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AringCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AringCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AringG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AringGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AringGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AringO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AringQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AringT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AringTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AringTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AringU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AringV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AringW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AringY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AringYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AringYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Aringu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Aringv: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Aringw: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Aringy: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Aringyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Aringydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
AtildeC: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AtildeCacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AtildeCcaron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AtildeCcedilla: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-65,
|
|
-30,
|
|
-40
|
|
],
|
|
AtildeG: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AtildeGbreve: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AtildeGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-60,
|
|
-35,
|
|
-40
|
|
],
|
|
AtildeO: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeOacute: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeOdieresis: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeOgrave: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeOmacron: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeOslash: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeOtilde: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeQ: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-45,
|
|
-55,
|
|
-40,
|
|
-55
|
|
],
|
|
AtildeT: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AtildeTcaron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AtildeTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-95,
|
|
-55,
|
|
-37,
|
|
-111
|
|
],
|
|
AtildeU: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeUacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeUcircumflex: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeUdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeUgrave: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeUhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeUmacron: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeUogonek: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeUring: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55
|
|
],
|
|
AtildeV: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-145,
|
|
-95,
|
|
-105,
|
|
-135
|
|
],
|
|
AtildeW: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-130,
|
|
-100,
|
|
-95,
|
|
-90
|
|
],
|
|
AtildeY: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AtildeYacute: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
AtildeYdieresis: [
|
|
-110,
|
|
-110,
|
|
-100,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-55,
|
|
-105
|
|
],
|
|
Atildeu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildeuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildeucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildeudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildeugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildeuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildeumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildeuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildeuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30,
|
|
-20
|
|
],
|
|
Atildev: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-100,
|
|
-74,
|
|
-55,
|
|
-74
|
|
],
|
|
Atildew: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-90,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Atildey: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Atildeyacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
Atildeydieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-92
|
|
],
|
|
BA: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAacute: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAbreve: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAcircumflex: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAdieresis: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAgrave: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAmacron: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAogonek: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAring: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BAtilde: [
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-35
|
|
],
|
|
BU: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
BUacute: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
BUcircumflex: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
BUdieresis: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
BUgrave: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
BUhungarumlaut: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
BUmacron: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
BUogonek: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
BUring: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
DA: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAacute: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAbreve: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAcircumflex: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAdieresis: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAgrave: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAmacron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAogonek: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAring: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DAtilde: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DV: [
|
|
-40,
|
|
-40,
|
|
-70,
|
|
-70,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-40
|
|
],
|
|
DW: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-30
|
|
],
|
|
DY: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
DYacute: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
DYdieresis: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
Dcomma: [
|
|
-30,
|
|
-30,
|
|
-70,
|
|
-70
|
|
],
|
|
Dperiod: [
|
|
-30,
|
|
-30,
|
|
-70,
|
|
-70,
|
|
-20
|
|
],
|
|
DcaronA: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAacute: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAbreve: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAcircumflex: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAdieresis: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAgrave: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAmacron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAogonek: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAring: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronAtilde: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcaronV: [
|
|
-40,
|
|
-40,
|
|
-70,
|
|
-70,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-40
|
|
],
|
|
DcaronW: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-30
|
|
],
|
|
DcaronY: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
DcaronYacute: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
DcaronYdieresis: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
Dcaroncomma: [
|
|
-30,
|
|
-30,
|
|
-70,
|
|
-70
|
|
],
|
|
Dcaronperiod: [
|
|
-30,
|
|
-30,
|
|
-70,
|
|
-70,
|
|
-20
|
|
],
|
|
DcroatA: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAacute: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAbreve: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAcircumflex: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAdieresis: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAgrave: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAmacron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAogonek: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAring: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatAtilde: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-35,
|
|
-25,
|
|
-35,
|
|
-40
|
|
],
|
|
DcroatV: [
|
|
-40,
|
|
-40,
|
|
-70,
|
|
-70,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-40
|
|
],
|
|
DcroatW: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-30
|
|
],
|
|
DcroatY: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
DcroatYacute: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
DcroatYdieresis: [
|
|
-70,
|
|
-70,
|
|
-90,
|
|
-90,
|
|
-40,
|
|
-50,
|
|
-40,
|
|
-55
|
|
],
|
|
Dcroatcomma: [
|
|
-30,
|
|
-30,
|
|
-70,
|
|
-70
|
|
],
|
|
Dcroatperiod: [
|
|
-30,
|
|
-30,
|
|
-70,
|
|
-70,
|
|
-20
|
|
],
|
|
FA: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAacute: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAbreve: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAcircumflex: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAdieresis: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAgrave: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAmacron: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAogonek: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAring: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
FAtilde: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-90,
|
|
-100,
|
|
-115,
|
|
-74
|
|
],
|
|
Fa: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Faacute: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Fabreve: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Facircumflex: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Fadieresis: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Fagrave: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Famacron: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Faogonek: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Faring: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Fatilde: [
|
|
-20,
|
|
-20,
|
|
-50,
|
|
-50,
|
|
-25,
|
|
-95,
|
|
-75,
|
|
-15
|
|
],
|
|
Fcomma: [
|
|
-100,
|
|
-100,
|
|
-150,
|
|
-150,
|
|
-92,
|
|
-129,
|
|
-135,
|
|
-80
|
|
],
|
|
Fperiod: [
|
|
-100,
|
|
-100,
|
|
-150,
|
|
-150,
|
|
-110,
|
|
-129,
|
|
-135,
|
|
-80
|
|
],
|
|
JA: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAbreve: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAcircumflex: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAdieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAgrave: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAmacron: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAogonek: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAring: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
JAtilde: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-25,
|
|
-40,
|
|
-60
|
|
],
|
|
Jcomma: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
-25
|
|
],
|
|
Jperiod: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-10,
|
|
-25
|
|
],
|
|
Ju: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Juacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jucircumflex: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Judieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jugrave: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Juhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jumacron: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Juogonek: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Juring: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
KO: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KOacute: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KOcircumflex: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KOdieresis: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KOgrave: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KOhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KOmacron: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KOslash: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KOtilde: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
Ke: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Keacute: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kecaron: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kecircumflex: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kedieresis: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kedotaccent: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kegrave: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kemacron: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Keogonek: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Ko: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Koacute: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kocircumflex: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kodieresis: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kograve: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kohungarumlaut: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Komacron: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Koslash: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kotilde: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Ku: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kuring: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Ky: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-45,
|
|
-20,
|
|
-40,
|
|
-25
|
|
],
|
|
Kyacute: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-45,
|
|
-20,
|
|
-40,
|
|
-25
|
|
],
|
|
Kydieresis: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-45,
|
|
-20,
|
|
-40,
|
|
-25
|
|
],
|
|
KcommaaccentO: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KcommaaccentOacute: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KcommaaccentOcircumflex: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KcommaaccentOdieresis: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KcommaaccentOgrave: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KcommaaccentOhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KcommaaccentOmacron: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KcommaaccentOslash: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
KcommaaccentOtilde: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-30
|
|
],
|
|
Kcommaaccente: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccenteacute: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccentecaron: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccentecircumflex: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccentedieresis: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccentedotaccent: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccentegrave: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccentemacron: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccenteogonek: [
|
|
-15,
|
|
-15,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-35,
|
|
-25
|
|
],
|
|
Kcommaaccento: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentoacute: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentocircumflex: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentodieresis: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentograve: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentohungarumlaut: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentomacron: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentoslash: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentotilde: [
|
|
-35,
|
|
-35,
|
|
-40,
|
|
-40,
|
|
-25,
|
|
-25,
|
|
-40,
|
|
-35
|
|
],
|
|
Kcommaaccentu: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccentuacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccentucircumflex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccentudieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccentugrave: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccentuhungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccentumacron: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccentuogonek: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccenturing: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-20,
|
|
-40,
|
|
-15
|
|
],
|
|
Kcommaaccenty: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-45,
|
|
-20,
|
|
-40,
|
|
-25
|
|
],
|
|
Kcommaaccentyacute: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-45,
|
|
-20,
|
|
-40,
|
|
-25
|
|
],
|
|
Kcommaaccentydieresis: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-45,
|
|
-20,
|
|
-40,
|
|
-25
|
|
],
|
|
LT: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LTcaron: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LV: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-100
|
|
],
|
|
LW: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-74
|
|
],
|
|
LY: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
LYacute: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
LYdieresis: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
Lquotedblright: [
|
|
-140,
|
|
-140,
|
|
-140,
|
|
-140,
|
|
-20
|
|
],
|
|
Lquoteright: [
|
|
-140,
|
|
-140,
|
|
-160,
|
|
-160,
|
|
-110,
|
|
-55,
|
|
-37,
|
|
-92
|
|
],
|
|
Ly: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
Lyacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
Lydieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
LacuteT: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LacuteTcaron: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LacuteTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LacuteV: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-100
|
|
],
|
|
LacuteW: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-74
|
|
],
|
|
LacuteY: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
LacuteYacute: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
LacuteYdieresis: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
Lacutequotedblright: [
|
|
-140,
|
|
-140,
|
|
-140,
|
|
-140,
|
|
-20
|
|
],
|
|
Lacutequoteright: [
|
|
-140,
|
|
-140,
|
|
-160,
|
|
-160,
|
|
-110,
|
|
-55,
|
|
-37,
|
|
-92
|
|
],
|
|
Lacutey: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
Lacuteyacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
Lacuteydieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
LcommaaccentT: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LcommaaccentTcaron: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LcommaaccentTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LcommaaccentV: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-100
|
|
],
|
|
LcommaaccentW: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-74
|
|
],
|
|
LcommaaccentY: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
LcommaaccentYacute: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
LcommaaccentYdieresis: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
Lcommaaccentquotedblright: [
|
|
-140,
|
|
-140,
|
|
-140,
|
|
-140,
|
|
-20
|
|
],
|
|
Lcommaaccentquoteright: [
|
|
-140,
|
|
-140,
|
|
-160,
|
|
-160,
|
|
-110,
|
|
-55,
|
|
-37,
|
|
-92
|
|
],
|
|
Lcommaaccenty: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
Lcommaaccentyacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
Lcommaaccentydieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
LslashT: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LslashTcaron: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LslashTcommaaccent: [
|
|
-90,
|
|
-90,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-18,
|
|
-20,
|
|
-92
|
|
],
|
|
LslashV: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-100
|
|
],
|
|
LslashW: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-74
|
|
],
|
|
LslashY: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
LslashYacute: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
LslashYdieresis: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-37,
|
|
-20,
|
|
-100
|
|
],
|
|
Lslashquotedblright: [
|
|
-140,
|
|
-140,
|
|
-140,
|
|
-140,
|
|
-20
|
|
],
|
|
Lslashquoteright: [
|
|
-140,
|
|
-140,
|
|
-160,
|
|
-160,
|
|
-110,
|
|
-55,
|
|
-37,
|
|
-92
|
|
],
|
|
Lslashy: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
Lslashyacute: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
Lslashydieresis: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-55,
|
|
-37,
|
|
-30,
|
|
-55
|
|
],
|
|
OA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Ocomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Operiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OacuteA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OacuteT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OacuteTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OacuteTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OacuteV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OacuteW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OacuteX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OacuteY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OacuteYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OacuteYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Oacutecomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Oacuteperiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OcircumflexA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OcircumflexT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OcircumflexTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OcircumflexTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OcircumflexV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OcircumflexW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OcircumflexX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OcircumflexY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OcircumflexYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OcircumflexYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Ocircumflexcomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Ocircumflexperiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OdieresisA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OdieresisT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OdieresisTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OdieresisTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OdieresisV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OdieresisW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OdieresisX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OdieresisY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OdieresisYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OdieresisYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Odieresiscomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Odieresisperiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OgraveA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OgraveT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OgraveTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OgraveTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OgraveV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OgraveW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OgraveX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OgraveY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OgraveYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OgraveYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Ogravecomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Ograveperiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OhungarumlautA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OhungarumlautT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OhungarumlautTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OhungarumlautTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OhungarumlautV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OhungarumlautW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OhungarumlautX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OhungarumlautY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OhungarumlautYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OhungarumlautYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Ohungarumlautcomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Ohungarumlautperiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OmacronA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OmacronT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OmacronTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OmacronTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OmacronV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OmacronW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OmacronX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OmacronY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OmacronYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OmacronYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Omacroncomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Omacronperiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OslashA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OslashT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OslashTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OslashTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OslashV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OslashW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OslashX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OslashY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OslashYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OslashYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Oslashcomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Oslashperiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OtildeA: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAacute: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAbreve: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAdieresis: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAgrave: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAmacron: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAogonek: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAring: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeAtilde: [
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-55,
|
|
-35
|
|
],
|
|
OtildeT: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OtildeTcaron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OtildeTcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OtildeV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OtildeW: [
|
|
-50,
|
|
-50,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35
|
|
],
|
|
OtildeX: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
OtildeY: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OtildeYacute: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
OtildeYdieresis: [
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-70,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50
|
|
],
|
|
Otildecomma: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
Otildeperiod: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
PA: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAacute: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAbreve: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAcircumflex: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAdieresis: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAgrave: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAmacron: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAogonek: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAring: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
PAtilde: [
|
|
-100,
|
|
-100,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-85,
|
|
-90,
|
|
-92
|
|
],
|
|
Pa: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Paacute: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Pabreve: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Pacircumflex: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Padieresis: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Pagrave: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Pamacron: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Paogonek: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Paring: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Patilde: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-10,
|
|
-40,
|
|
-80,
|
|
-15
|
|
],
|
|
Pcomma: [
|
|
-120,
|
|
-120,
|
|
-180,
|
|
-180,
|
|
-92,
|
|
-129,
|
|
-135,
|
|
-111
|
|
],
|
|
Pe: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Peacute: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Pecaron: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Pecircumflex: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Pedieresis: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Pedotaccent: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Pegrave: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Pemacron: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Peogonek: [
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-50,
|
|
-80
|
|
],
|
|
Po: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Poacute: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Pocircumflex: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Podieresis: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Pograve: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Pohungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Pomacron: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Poslash: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Potilde: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-55,
|
|
-80
|
|
],
|
|
Pperiod: [
|
|
-120,
|
|
-120,
|
|
-180,
|
|
-180,
|
|
-110,
|
|
-129,
|
|
-135,
|
|
-111
|
|
],
|
|
QU: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
QUacute: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
QUcircumflex: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
QUdieresis: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
QUgrave: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
QUhungarumlaut: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
QUmacron: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
QUogonek: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
QUring: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
Qcomma: [
|
|
20,
|
|
20
|
|
],
|
|
Qperiod: [
|
|
20,
|
|
20,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
RO: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ROacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ROcircumflex: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ROdieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ROgrave: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ROhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ROmacron: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ROslash: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ROtilde: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RT: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RTcaron: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RTcommaaccent: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RU: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RUacute: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RUcircumflex: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RUdieresis: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RUgrave: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RUhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RUmacron: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RUogonek: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RUring: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55,
|
|
-18,
|
|
-18,
|
|
-80
|
|
],
|
|
RW: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-55
|
|
],
|
|
RY: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RYacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RYdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RacuteO: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteOacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteOcircumflex: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteOdieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteOgrave: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteOhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteOmacron: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteOslash: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteOtilde: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteT: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RacuteTcaron: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RacuteTcommaaccent: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RacuteU: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteUacute: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteUcircumflex: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteUdieresis: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteUgrave: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteUhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteUmacron: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteUogonek: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteUring: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RacuteV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55,
|
|
-18,
|
|
-18,
|
|
-80
|
|
],
|
|
RacuteW: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-55
|
|
],
|
|
RacuteY: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RacuteYacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RacuteYdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RcaronO: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronOacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronOcircumflex: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronOdieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronOgrave: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronOhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronOmacron: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronOslash: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronOtilde: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronT: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RcaronTcaron: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RcaronTcommaaccent: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RcaronU: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronUacute: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronUcircumflex: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronUdieresis: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronUgrave: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronUhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronUmacron: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronUogonek: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronUring: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcaronV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55,
|
|
-18,
|
|
-18,
|
|
-80
|
|
],
|
|
RcaronW: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-55
|
|
],
|
|
RcaronY: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RcaronYacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RcaronYdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RcommaaccentO: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentOacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentOcircumflex: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentOdieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentOgrave: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentOhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentOmacron: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentOslash: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentOtilde: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentT: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RcommaaccentTcaron: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RcommaaccentTcommaaccent: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-30,
|
|
0,
|
|
-60
|
|
],
|
|
RcommaaccentU: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentUacute: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentUcircumflex: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentUdieresis: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentUgrave: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentUhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentUmacron: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentUogonek: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentUring: [
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
RcommaaccentV: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-55,
|
|
-18,
|
|
-18,
|
|
-80
|
|
],
|
|
RcommaaccentW: [
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-30,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-55
|
|
],
|
|
RcommaaccentY: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RcommaaccentYacute: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
RcommaaccentYdieresis: [
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-50,
|
|
-35,
|
|
-18,
|
|
-18,
|
|
-65
|
|
],
|
|
TA: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAacute: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAbreve: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAcircumflex: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAdieresis: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAgrave: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAmacron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAogonek: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAring: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TAtilde: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TO: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TOacute: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TOdieresis: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TOgrave: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TOmacron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TOslash: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TOtilde: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
Ta: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Taacute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tabreve: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tacircumflex: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tadieresis: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tagrave: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tamacron: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Taogonek: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Taring: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tatilde: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcolon: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-50
|
|
],
|
|
Tcomma: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-92,
|
|
-74,
|
|
-74
|
|
],
|
|
Te: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Teacute: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tecaron: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tecircumflex: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-52,
|
|
-70
|
|
],
|
|
Tedieresis: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-30
|
|
],
|
|
Tedotaccent: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tegrave: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-70
|
|
],
|
|
Temacron: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-30
|
|
],
|
|
Teogonek: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Thyphen: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-74,
|
|
-92
|
|
],
|
|
To: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Toacute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tocircumflex: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Todieresis: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tograve: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tohungarumlaut: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tomacron: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Toslash: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Totilde: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tperiod: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-92,
|
|
-74,
|
|
-74
|
|
],
|
|
Tr: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tracute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Trcommaaccent: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tsemicolon: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-74,
|
|
-74,
|
|
-65,
|
|
-55
|
|
],
|
|
Tu: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tuacute: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tucircumflex: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tudieresis: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tugrave: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tuhungarumlaut: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tumacron: [
|
|
-90,
|
|
-90,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tuogonek: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Turing: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tw: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Ty: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-34,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Tyacute: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-34,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Tydieresis: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-34,
|
|
-37,
|
|
-34,
|
|
-80
|
|
],
|
|
TcaronA: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAacute: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAbreve: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAcircumflex: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAdieresis: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAgrave: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAmacron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAogonek: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAring: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronAtilde: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcaronO: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcaronOacute: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcaronOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcaronOdieresis: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcaronOgrave: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcaronOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcaronOmacron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcaronOslash: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcaronOtilde: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
Tcarona: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronaacute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronabreve: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronacircumflex: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronadieresis: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcaronagrave: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcaronamacron: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcaronaogonek: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronaring: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronatilde: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcaroncolon: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-50
|
|
],
|
|
Tcaroncomma: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-92,
|
|
-74,
|
|
-74
|
|
],
|
|
Tcarone: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcaroneacute: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcaronecaron: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcaronecircumflex: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-52,
|
|
-30
|
|
],
|
|
Tcaronedieresis: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-30
|
|
],
|
|
Tcaronedotaccent: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcaronegrave: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-70
|
|
],
|
|
Tcaronemacron: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-30
|
|
],
|
|
Tcaroneogonek: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcaronhyphen: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-74,
|
|
-92
|
|
],
|
|
Tcarono: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronoacute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronocircumflex: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronodieresis: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronograve: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronohungarumlaut: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronomacron: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronoslash: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronotilde: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcaronperiod: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-92,
|
|
-74,
|
|
-74
|
|
],
|
|
Tcaronr: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcaronracute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcaronrcommaaccent: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcaronsemicolon: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-74,
|
|
-74,
|
|
-65,
|
|
-55
|
|
],
|
|
Tcaronu: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronuacute: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronucircumflex: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronudieresis: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronugrave: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronuhungarumlaut: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronumacron: [
|
|
-90,
|
|
-90,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronuogonek: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronuring: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcaronw: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Tcarony: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-34,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Tcaronyacute: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-34,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Tcaronydieresis: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-34,
|
|
-37,
|
|
-34,
|
|
-80
|
|
],
|
|
TcommaaccentA: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAacute: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAbreve: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAcircumflex: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAdieresis: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAgrave: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAmacron: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAogonek: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAring: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentAtilde: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-55,
|
|
-50,
|
|
-93
|
|
],
|
|
TcommaaccentO: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcommaaccentOacute: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcommaaccentOcircumflex: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcommaaccentOdieresis: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcommaaccentOgrave: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcommaaccentOhungarumlaut: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcommaaccentOmacron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcommaaccentOslash: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
TcommaaccentOtilde: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-18,
|
|
-18,
|
|
-18,
|
|
-18
|
|
],
|
|
Tcommaaccenta: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentaacute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentabreve: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentacircumflex: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentadieresis: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcommaaccentagrave: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcommaaccentamacron: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcommaaccentaogonek: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentaring: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentatilde: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-92,
|
|
-92,
|
|
-40
|
|
],
|
|
Tcommaaccentcolon: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-74,
|
|
-74,
|
|
-55,
|
|
-50
|
|
],
|
|
Tcommaaccentcomma: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-92,
|
|
-74,
|
|
-74
|
|
],
|
|
Tcommaaccente: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcommaaccenteacute: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcommaaccentecaron: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcommaaccentecircumflex: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-52,
|
|
-30
|
|
],
|
|
Tcommaaccentedieresis: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-30
|
|
],
|
|
Tcommaaccentedotaccent: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcommaaccentegrave: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-30
|
|
],
|
|
Tcommaaccentemacron: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-52,
|
|
-52,
|
|
-52,
|
|
-70
|
|
],
|
|
Tcommaaccenteogonek: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-70
|
|
],
|
|
Tcommaaccenthyphen: [
|
|
-120,
|
|
-120,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-74,
|
|
-92
|
|
],
|
|
Tcommaaccento: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentoacute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentocircumflex: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentodieresis: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentograve: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentohungarumlaut: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentomacron: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentoslash: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentotilde: [
|
|
-80,
|
|
-80,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-95,
|
|
-92,
|
|
-80
|
|
],
|
|
Tcommaaccentperiod: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-92,
|
|
-74,
|
|
-74
|
|
],
|
|
Tcommaaccentr: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcommaaccentracute: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcommaaccentrcommaaccent: [
|
|
-80,
|
|
-80,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcommaaccentsemicolon: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-74,
|
|
-74,
|
|
-65,
|
|
-55
|
|
],
|
|
Tcommaaccentu: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccentuacute: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccentucircumflex: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccentudieresis: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccentugrave: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccentuhungarumlaut: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccentumacron: [
|
|
-90,
|
|
-90,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccentuogonek: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccenturing: [
|
|
-90,
|
|
-90,
|
|
-120,
|
|
-120,
|
|
-92,
|
|
-37,
|
|
-55,
|
|
-45
|
|
],
|
|
Tcommaaccentw: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Tcommaaccenty: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-34,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Tcommaaccentyacute: [
|
|
-60,
|
|
-60,
|
|
-120,
|
|
-120,
|
|
-34,
|
|
-37,
|
|
-74,
|
|
-80
|
|
],
|
|
Tcommaaccentydieresis: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-34,
|
|
-37,
|
|
-34,
|
|
-80
|
|
],
|
|
UA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Ucomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Uperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
UacuteA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UacuteAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Uacutecomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Uacuteperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
UcircumflexA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UcircumflexAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Ucircumflexcomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Ucircumflexperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
UdieresisA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UdieresisAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Udieresiscomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Udieresisperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
UgraveA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UgraveAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Ugravecomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Ugraveperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
UhungarumlautA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UhungarumlautAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Uhungarumlautcomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Uhungarumlautperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
UmacronA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UmacronAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Umacroncomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Umacronperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
UogonekA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UogonekAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Uogonekcomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Uogonekperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
UringA: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAogonek: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAring: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
UringAtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-45,
|
|
-40,
|
|
-40
|
|
],
|
|
Uringcomma: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
Uringperiod: [
|
|
-30,
|
|
-30,
|
|
-40,
|
|
-40,
|
|
-50,
|
|
0,
|
|
-25
|
|
],
|
|
VA: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAacute: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAbreve: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAcircumflex: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAdieresis: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAgrave: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAmacron: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAogonek: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAring: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VAtilde: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-135,
|
|
-85,
|
|
-60,
|
|
-135
|
|
],
|
|
VG: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
VGbreve: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
VGcommaaccent: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
VO: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
VOacute: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
VOcircumflex: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
VOdieresis: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
VOgrave: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
VOhungarumlaut: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
VOmacron: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
VOslash: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
VOtilde: [
|
|
-50,
|
|
-50,
|
|
-40,
|
|
-40,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-40
|
|
],
|
|
Va: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Vaacute: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Vabreve: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Vacircumflex: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-71
|
|
],
|
|
Vadieresis: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-71
|
|
],
|
|
Vagrave: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-71
|
|
],
|
|
Vamacron: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-71
|
|
],
|
|
Vaogonek: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Varing: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Vatilde: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-111,
|
|
-111,
|
|
-71
|
|
],
|
|
Vcolon: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-92,
|
|
-74,
|
|
-65,
|
|
-74
|
|
],
|
|
Vcomma: [
|
|
-120,
|
|
-120,
|
|
-125,
|
|
-125,
|
|
-129,
|
|
-129,
|
|
-129,
|
|
-129
|
|
],
|
|
Ve: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Veacute: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Vecaron: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-71
|
|
],
|
|
Vecircumflex: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-71
|
|
],
|
|
Vedieresis: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-71,
|
|
-71,
|
|
-71
|
|
],
|
|
Vedotaccent: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Vegrave: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-71,
|
|
-71,
|
|
-71
|
|
],
|
|
Vemacron: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-71,
|
|
-71,
|
|
-71
|
|
],
|
|
Veogonek: [
|
|
-50,
|
|
-50,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-111
|
|
],
|
|
Vhyphen: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-74,
|
|
-70,
|
|
-55,
|
|
-100
|
|
],
|
|
Vo: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-129
|
|
],
|
|
Voacute: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-129
|
|
],
|
|
Vocircumflex: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-129
|
|
],
|
|
Vodieresis: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-89
|
|
],
|
|
Vograve: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-89
|
|
],
|
|
Vohungarumlaut: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-129
|
|
],
|
|
Vomacron: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-89
|
|
],
|
|
Voslash: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-129
|
|
],
|
|
Votilde: [
|
|
-90,
|
|
-90,
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-111,
|
|
-111,
|
|
-89
|
|
],
|
|
Vperiod: [
|
|
-120,
|
|
-120,
|
|
-125,
|
|
-125,
|
|
-145,
|
|
-129,
|
|
-129,
|
|
-129
|
|
],
|
|
Vsemicolon: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-92,
|
|
-74,
|
|
-74,
|
|
-74
|
|
],
|
|
Vu: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
Vuacute: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
Vucircumflex: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
Vudieresis: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
Vugrave: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
Vuhungarumlaut: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
Vumacron: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
Vuogonek: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
Vuring: [
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-70,
|
|
-92,
|
|
-55,
|
|
-74,
|
|
-75
|
|
],
|
|
WA: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAacute: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAbreve: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAcircumflex: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAdieresis: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAgrave: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAmacron: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAogonek: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAring: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WAtilde: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-120,
|
|
-74,
|
|
-60,
|
|
-120
|
|
],
|
|
WO: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
WOacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
WOcircumflex: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
WOdieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
WOgrave: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
WOhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
WOmacron: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
WOslash: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
WOtilde: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-15,
|
|
-25,
|
|
-10
|
|
],
|
|
Wa: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Waacute: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Wabreve: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Wacircumflex: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Wadieresis: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Wagrave: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Wamacron: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Waogonek: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Waring: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Watilde: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-65,
|
|
-85,
|
|
-92,
|
|
-80
|
|
],
|
|
Wcolon: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-55,
|
|
-55,
|
|
-65,
|
|
-37
|
|
],
|
|
Wcomma: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-92,
|
|
-74,
|
|
-92,
|
|
-92
|
|
],
|
|
We: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-90,
|
|
-92,
|
|
-80
|
|
],
|
|
Weacute: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-90,
|
|
-92,
|
|
-80
|
|
],
|
|
Wecaron: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-90,
|
|
-92,
|
|
-80
|
|
],
|
|
Wecircumflex: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-90,
|
|
-92,
|
|
-80
|
|
],
|
|
Wedieresis: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-50,
|
|
-52,
|
|
-40
|
|
],
|
|
Wedotaccent: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-90,
|
|
-92,
|
|
-80
|
|
],
|
|
Wegrave: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-50,
|
|
-52,
|
|
-40
|
|
],
|
|
Wemacron: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-50,
|
|
-52,
|
|
-40
|
|
],
|
|
Weogonek: [
|
|
-35,
|
|
-35,
|
|
-30,
|
|
-30,
|
|
-65,
|
|
-90,
|
|
-92,
|
|
-80
|
|
],
|
|
Whyphen: [
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-37,
|
|
-50,
|
|
-37,
|
|
-65
|
|
],
|
|
Wo: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Woacute: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Wocircumflex: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Wodieresis: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Wograve: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Wohungarumlaut: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Womacron: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Woslash: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Wotilde: [
|
|
-60,
|
|
-60,
|
|
-30,
|
|
-30,
|
|
-75,
|
|
-80,
|
|
-92,
|
|
-80
|
|
],
|
|
Wperiod: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-92,
|
|
-74,
|
|
-92,
|
|
-92
|
|
],
|
|
Wsemicolon: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-55,
|
|
-55,
|
|
-65,
|
|
-37
|
|
],
|
|
Wu: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wuacute: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wucircumflex: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wudieresis: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wugrave: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wuhungarumlaut: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wumacron: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wuogonek: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wuring: [
|
|
-45,
|
|
-45,
|
|
-30,
|
|
-30,
|
|
-50,
|
|
-55,
|
|
-55,
|
|
-50
|
|
],
|
|
Wy: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-60,
|
|
-55,
|
|
-70,
|
|
-73
|
|
],
|
|
Wyacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-60,
|
|
-55,
|
|
-70,
|
|
-73
|
|
],
|
|
Wydieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-60,
|
|
-55,
|
|
-70,
|
|
-73
|
|
],
|
|
YA: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAacute: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAbreve: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAcircumflex: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAdieresis: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAgrave: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAmacron: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAogonek: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAring: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YAtilde: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YO: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YOacute: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YOcircumflex: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YOdieresis: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YOgrave: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YOhungarumlaut: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YOmacron: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YOslash: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YOtilde: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
Ya: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yaacute: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yabreve: [
|
|
-90,
|
|
-90,
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacircumflex: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yadieresis: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Yagrave: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Yamacron: [
|
|
-90,
|
|
-90,
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Yaogonek: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yaring: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yatilde: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Ycolon: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-92,
|
|
-65,
|
|
-92
|
|
],
|
|
Ycomma: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-129
|
|
],
|
|
Ye: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yeacute: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yecaron: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yecircumflex: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-71,
|
|
-92,
|
|
-100
|
|
],
|
|
Yedieresis: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Yedotaccent: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yegrave: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Yemacron: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Yeogonek: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yo: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yoacute: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yocircumflex: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yodieresis: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Yograve: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Yohungarumlaut: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yomacron: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Yoslash: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yotilde: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Yperiod: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-74,
|
|
-92,
|
|
-129
|
|
],
|
|
Ysemicolon: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-92,
|
|
-65,
|
|
-92
|
|
],
|
|
Yu: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yuacute: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yucircumflex: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yudieresis: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Yugrave: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Yuhungarumlaut: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yumacron: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Yuogonek: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yuring: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
YacuteA: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAacute: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAbreve: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAcircumflex: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAdieresis: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAgrave: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAmacron: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAogonek: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAring: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteAtilde: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YacuteO: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YacuteOacute: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YacuteOcircumflex: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YacuteOdieresis: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YacuteOgrave: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YacuteOhungarumlaut: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YacuteOmacron: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YacuteOslash: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YacuteOtilde: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
Yacutea: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteaacute: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteabreve: [
|
|
-90,
|
|
-90,
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteacircumflex: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteadieresis: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Yacuteagrave: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Yacuteamacron: [
|
|
-90,
|
|
-90,
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Yacuteaogonek: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacutearing: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteatilde: [
|
|
-90,
|
|
-90,
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Yacutecolon: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-92,
|
|
-65,
|
|
-92
|
|
],
|
|
Yacutecomma: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-129
|
|
],
|
|
Yacutee: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteeacute: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteecaron: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteecircumflex: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-71,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteedieresis: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Yacuteedotaccent: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteegrave: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Yacuteemacron: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Yacuteeogonek: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Yacuteo: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yacuteoacute: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yacuteocircumflex: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yacuteodieresis: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Yacuteograve: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Yacuteohungarumlaut: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yacuteomacron: [
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-70,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Yacuteoslash: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Yacuteotilde: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Yacuteperiod: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-74,
|
|
-92,
|
|
-129
|
|
],
|
|
Yacutesemicolon: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-92,
|
|
-65,
|
|
-92
|
|
],
|
|
Yacuteu: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yacuteuacute: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yacuteucircumflex: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yacuteudieresis: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Yacuteugrave: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Yacuteuhungarumlaut: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yacuteumacron: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Yacuteuogonek: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Yacuteuring: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
YdieresisA: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAacute: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAbreve: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAcircumflex: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAdieresis: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAgrave: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAmacron: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAogonek: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAring: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisAtilde: [
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-110,
|
|
-74,
|
|
-50,
|
|
-120
|
|
],
|
|
YdieresisO: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YdieresisOacute: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YdieresisOcircumflex: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YdieresisOdieresis: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YdieresisOgrave: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YdieresisOhungarumlaut: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YdieresisOmacron: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YdieresisOslash: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
YdieresisOtilde: [
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-85,
|
|
-35,
|
|
-25,
|
|
-15,
|
|
-30
|
|
],
|
|
Ydieresisa: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisaacute: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisabreve: [
|
|
-90,
|
|
-90,
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisacircumflex: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisadieresis: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Ydieresisagrave: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Ydieresisamacron: [
|
|
-90,
|
|
-90,
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-60
|
|
],
|
|
Ydieresisaogonek: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisaring: [
|
|
-90,
|
|
-90,
|
|
-140,
|
|
-140,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisatilde: [
|
|
-90,
|
|
-90,
|
|
-70,
|
|
-70,
|
|
-85,
|
|
-92,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresiscolon: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-92,
|
|
-65,
|
|
-92
|
|
],
|
|
Ydieresiscomma: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-129
|
|
],
|
|
Ydieresise: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresiseacute: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisecaron: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisecircumflex: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-71,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisedieresis: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Ydieresisedotaccent: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresisegrave: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Ydieresisemacron: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-71,
|
|
-71,
|
|
-52,
|
|
-60
|
|
],
|
|
Ydieresiseogonek: [
|
|
-80,
|
|
-80,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-100
|
|
],
|
|
Ydieresiso: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Ydieresisoacute: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Ydieresisocircumflex: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Ydieresisodieresis: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Ydieresisograve: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Ydieresisohungarumlaut: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Ydieresisomacron: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Ydieresisoslash: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-110
|
|
],
|
|
Ydieresisotilde: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-111,
|
|
-111,
|
|
-92,
|
|
-70
|
|
],
|
|
Ydieresisperiod: [
|
|
-100,
|
|
-100,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-74,
|
|
-92,
|
|
-129
|
|
],
|
|
Ydieresissemicolon: [
|
|
-50,
|
|
-50,
|
|
-60,
|
|
-60,
|
|
-92,
|
|
-92,
|
|
-65,
|
|
-92
|
|
],
|
|
Ydieresisu: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Ydieresisuacute: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Ydieresisucircumflex: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Ydieresisudieresis: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Ydieresisugrave: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Ydieresisuhungarumlaut: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Ydieresisumacron: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-71
|
|
],
|
|
Ydieresisuogonek: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
Ydieresisuring: [
|
|
-100,
|
|
-100,
|
|
-110,
|
|
-110,
|
|
-92,
|
|
-92,
|
|
-92,
|
|
-111
|
|
],
|
|
ag: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
agbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
agcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
av: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
aw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ay: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
ayacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aacuteg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aacutegbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aacutegcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aacutev: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
aacutew: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
aacutey: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aacuteyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aacuteydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
abreveg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
abrevegbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
abrevegcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
abrevev: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
abrevew: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
abrevey: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
abreveyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
abreveydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
acircumflexg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
acircumflexgbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
acircumflexgcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
acircumflexv: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
acircumflexw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
acircumflexy: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
acircumflexyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
acircumflexydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
adieresisg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
adieresisgbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
adieresisgcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
adieresisv: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
adieresisw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
adieresisy: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
adieresisyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
adieresisydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
agraveg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
agravegbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
agravegcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
agravev: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
agravew: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
agravey: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
agraveyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
agraveydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
amacrong: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
amacrongbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
amacrongcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
amacronv: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
amacronw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
amacrony: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
amacronyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
amacronydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aogonekg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aogonekgbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aogonekgcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aogonekv: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
aogonekw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
aogoneky: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aogonekyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aogonekydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aringg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aringgbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aringgcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
aringv: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
aringw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
aringy: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aringyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
aringydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
atildeg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
atildegbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
atildegcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
atildev: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-25,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
atildew: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
atildey: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
atildeyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
atildeydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30
|
|
],
|
|
bl: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20
|
|
],
|
|
blacute: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20
|
|
],
|
|
blcommaaccent: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20
|
|
],
|
|
blslash: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20
|
|
],
|
|
bu: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
buacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
bucircumflex: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
budieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
bugrave: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
buhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
bumacron: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
buogonek: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
buring: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
bv: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
by: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
byacute: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
bydieresis: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20
|
|
],
|
|
ch: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
ck: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
0,
|
|
-10,
|
|
-20
|
|
],
|
|
ckcommaaccent: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
0,
|
|
-10,
|
|
-20
|
|
],
|
|
cl: [
|
|
-20,
|
|
-20
|
|
],
|
|
clacute: [
|
|
-20,
|
|
-20
|
|
],
|
|
clcommaaccent: [
|
|
-20,
|
|
-20
|
|
],
|
|
clslash: [
|
|
-20,
|
|
-20
|
|
],
|
|
cy: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
cyacute: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
cydieresis: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
cacuteh: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
cacutek: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
0,
|
|
-10,
|
|
-20
|
|
],
|
|
cacutekcommaaccent: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
0,
|
|
-10,
|
|
-20
|
|
],
|
|
cacutel: [
|
|
-20,
|
|
-20
|
|
],
|
|
cacutelacute: [
|
|
-20,
|
|
-20
|
|
],
|
|
cacutelcommaaccent: [
|
|
-20,
|
|
-20
|
|
],
|
|
cacutelslash: [
|
|
-20,
|
|
-20
|
|
],
|
|
cacutey: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
cacuteyacute: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
cacuteydieresis: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ccaronh: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
ccaronk: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
0,
|
|
-10,
|
|
-20
|
|
],
|
|
ccaronkcommaaccent: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
0,
|
|
-10,
|
|
-20
|
|
],
|
|
ccaronl: [
|
|
-20,
|
|
-20
|
|
],
|
|
ccaronlacute: [
|
|
-20,
|
|
-20
|
|
],
|
|
ccaronlcommaaccent: [
|
|
-20,
|
|
-20
|
|
],
|
|
ccaronlslash: [
|
|
-20,
|
|
-20
|
|
],
|
|
ccarony: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ccaronyacute: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ccaronydieresis: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ccedillah: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
ccedillak: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
0,
|
|
-10,
|
|
-20
|
|
],
|
|
ccedillakcommaaccent: [
|
|
-20,
|
|
-20,
|
|
-20,
|
|
-20,
|
|
0,
|
|
-10,
|
|
-20
|
|
],
|
|
ccedillal: [
|
|
-20,
|
|
-20
|
|
],
|
|
ccedillalacute: [
|
|
-20,
|
|
-20
|
|
],
|
|
ccedillalcommaaccent: [
|
|
-20,
|
|
-20
|
|
],
|
|
ccedillalslash: [
|
|
-20,
|
|
-20
|
|
],
|
|
ccedillay: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ccedillayacute: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ccedillaydieresis: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
colonspace: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50
|
|
],
|
|
commaquotedblright: [
|
|
-120,
|
|
-120,
|
|
-100,
|
|
-100,
|
|
-45,
|
|
-95,
|
|
-140,
|
|
-70
|
|
],
|
|
commaquoteright: [
|
|
-120,
|
|
-120,
|
|
-100,
|
|
-100,
|
|
-55,
|
|
-95,
|
|
-140,
|
|
-70
|
|
],
|
|
commaspace: [
|
|
-40,
|
|
-40
|
|
],
|
|
dd: [
|
|
-10,
|
|
-10
|
|
],
|
|
ddcroat: [
|
|
-10,
|
|
-10
|
|
],
|
|
dv: [
|
|
-15,
|
|
-15
|
|
],
|
|
dw: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
dy: [
|
|
-15,
|
|
-15
|
|
],
|
|
dyacute: [
|
|
-15,
|
|
-15
|
|
],
|
|
dydieresis: [
|
|
-15,
|
|
-15
|
|
],
|
|
dcroatd: [
|
|
-10,
|
|
-10
|
|
],
|
|
dcroatdcroat: [
|
|
-10,
|
|
-10
|
|
],
|
|
dcroatv: [
|
|
-15,
|
|
-15
|
|
],
|
|
dcroatw: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
dcroaty: [
|
|
-15,
|
|
-15
|
|
],
|
|
dcroatyacute: [
|
|
-15,
|
|
-15
|
|
],
|
|
dcroatydieresis: [
|
|
-15,
|
|
-15
|
|
],
|
|
ecomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
eperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ev: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
ew: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
ex: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
ey: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
eyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
eydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
eacutecomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
eacuteperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
eacutev: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
eacutew: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
eacutex: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
eacutey: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
eacuteyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
eacuteydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
ecaroncomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ecaronperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ecaronv: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
ecaronw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
ecaronx: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
ecarony: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
ecaronyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
ecaronydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
ecircumflexcomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ecircumflexperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ecircumflexv: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
ecircumflexw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
ecircumflexx: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
ecircumflexy: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
ecircumflexyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
ecircumflexydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
edieresiscomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
edieresisperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
edieresisv: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
edieresisw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
edieresisx: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
edieresisy: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
edieresisyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
edieresisydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
edotaccentcomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
edotaccentperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
edotaccentv: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
edotaccentw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
edotaccentx: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
edotaccenty: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
edotaccentyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
edotaccentydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
egravecomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
egraveperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
egravev: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
egravew: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
egravex: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
egravey: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
egraveyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
egraveydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
emacroncomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
emacronperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
emacronv: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
emacronw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
emacronx: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
emacrony: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
emacronyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
emacronydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
eogonekcomma: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
eogonekperiod: [
|
|
20,
|
|
20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
eogonekv: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
eogonekw: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-15,
|
|
-25
|
|
],
|
|
eogonekx: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15
|
|
],
|
|
eogoneky: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
eogonekyacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
eogonekydieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-30,
|
|
-15
|
|
],
|
|
fcomma: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-10,
|
|
-10
|
|
],
|
|
fe: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
feacute: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
fecaron: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30
|
|
],
|
|
fecircumflex: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30
|
|
],
|
|
fedieresis: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30
|
|
],
|
|
fedotaccent: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
fegrave: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30
|
|
],
|
|
femacron: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30
|
|
],
|
|
feogonek: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
fo: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-10
|
|
],
|
|
foacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-10
|
|
],
|
|
focircumflex: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-10
|
|
],
|
|
fodieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25
|
|
],
|
|
fograve: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-10
|
|
],
|
|
fohungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-10
|
|
],
|
|
fomacron: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25
|
|
],
|
|
foslash: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-10
|
|
],
|
|
fotilde: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-10
|
|
],
|
|
fperiod: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
fquotedblright: [
|
|
30,
|
|
30,
|
|
60,
|
|
60,
|
|
50
|
|
],
|
|
fquoteright: [
|
|
30,
|
|
30,
|
|
50,
|
|
50,
|
|
55,
|
|
55,
|
|
92,
|
|
55
|
|
],
|
|
ge: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
geacute: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gecaron: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gecircumflex: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gedieresis: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gedotaccent: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gegrave: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gemacron: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
geogonek: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ggbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ggcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbrevee: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveeacute: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveecaron: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveecircumflex: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveedieresis: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveedotaccent: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveegrave: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveemacron: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveeogonek: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbreveg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbrevegbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbrevegcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccente: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccenteacute: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentecaron: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentecircumflex: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentedieresis: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentedotaccent: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentegrave: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentemacron: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccenteogonek: [
|
|
10,
|
|
10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentg: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentgbreve: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentgcommaaccent: [
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
hy: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
hyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
hydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
-15,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
ko: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
koacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kocircumflex: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kodieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kograve: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kohungarumlaut: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
komacron: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
koslash: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kotilde: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccento: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentoacute: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentocircumflex: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentodieresis: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentograve: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentohungarumlaut: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentomacron: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentoslash: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentotilde: [
|
|
-15,
|
|
-15,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
lw: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ly: [
|
|
-15,
|
|
-15
|
|
],
|
|
lyacute: [
|
|
-15,
|
|
-15
|
|
],
|
|
lydieresis: [
|
|
-15,
|
|
-15
|
|
],
|
|
lacutew: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
lacutey: [
|
|
-15,
|
|
-15
|
|
],
|
|
lacuteyacute: [
|
|
-15,
|
|
-15
|
|
],
|
|
lacuteydieresis: [
|
|
-15,
|
|
-15
|
|
],
|
|
lcommaaccentw: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
lcommaaccenty: [
|
|
-15,
|
|
-15
|
|
],
|
|
lcommaaccentyacute: [
|
|
-15,
|
|
-15
|
|
],
|
|
lcommaaccentydieresis: [
|
|
-15,
|
|
-15
|
|
],
|
|
lslashw: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
lslashy: [
|
|
-15,
|
|
-15
|
|
],
|
|
lslashyacute: [
|
|
-15,
|
|
-15
|
|
],
|
|
lslashydieresis: [
|
|
-15,
|
|
-15
|
|
],
|
|
mu: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
muacute: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
mucircumflex: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
mudieresis: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
mugrave: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
muhungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
mumacron: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
muogonek: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
muring: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10
|
|
],
|
|
my: [
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-15
|
|
],
|
|
myacute: [
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-15
|
|
],
|
|
mydieresis: [
|
|
-30,
|
|
-30,
|
|
-15,
|
|
-15
|
|
],
|
|
nu: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nuacute: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nucircumflex: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nudieresis: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nugrave: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nuhungarumlaut: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
numacron: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nuogonek: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nuring: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nv: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ny: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
nyacute: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
nydieresis: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
nacuteu: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacuteuacute: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacuteucircumflex: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacuteudieresis: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacuteugrave: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacuteuhungarumlaut: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacuteumacron: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacuteuogonek: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacuteuring: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
nacutev: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
nacutey: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
nacuteyacute: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
nacuteydieresis: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ncaronu: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronuacute: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronucircumflex: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronudieresis: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronugrave: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronuhungarumlaut: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronumacron: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronuogonek: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronuring: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncaronv: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ncarony: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ncaronyacute: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ncaronydieresis: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ncommaaccentu: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccentuacute: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccentucircumflex: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccentudieresis: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccentugrave: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccentuhungarumlaut: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccentumacron: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccentuogonek: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccenturing: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ncommaaccentv: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ncommaaccenty: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ncommaaccentyacute: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ncommaaccentydieresis: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ntildeu: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildeuacute: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildeucircumflex: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildeudieresis: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildeugrave: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildeuhungarumlaut: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildeumacron: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildeuogonek: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildeuring: [
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
ntildev: [
|
|
-40,
|
|
-40,
|
|
-20,
|
|
-20,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ntildey: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ntildeyacute: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ntildeydieresis: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ov: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
ow: [
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
ox: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
oy: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
oyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
oydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
oacutev: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
oacutew: [
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
oacutex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
oacutey: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
oacuteyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
oacuteydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ocircumflexv: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
ocircumflexw: [
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
ocircumflexx: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
ocircumflexy: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ocircumflexyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ocircumflexydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
odieresisv: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
odieresisw: [
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
odieresisx: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
odieresisy: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
odieresisyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
odieresisydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ogravev: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
ogravew: [
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
ogravex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
ogravey: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ograveyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ograveydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ohungarumlautv: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
ohungarumlautw: [
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
ohungarumlautx: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
ohungarumlauty: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ohungarumlautyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
ohungarumlautydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
omacronv: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
omacronw: [
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
omacronx: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
omacrony: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
omacronyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
omacronydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
oslashv: [
|
|
-20,
|
|
-20,
|
|
-70,
|
|
-70,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
oslashw: [
|
|
-15,
|
|
-15,
|
|
-70,
|
|
-70,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
oslashx: [
|
|
-30,
|
|
-30,
|
|
-85,
|
|
-85,
|
|
0,
|
|
-10
|
|
],
|
|
oslashy: [
|
|
-20,
|
|
-20,
|
|
-70,
|
|
-70,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
oslashyacute: [
|
|
-20,
|
|
-20,
|
|
-70,
|
|
-70,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
oslashydieresis: [
|
|
-20,
|
|
-20,
|
|
-70,
|
|
-70,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
otildev: [
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-15,
|
|
-10,
|
|
-15
|
|
],
|
|
otildew: [
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-15,
|
|
-10,
|
|
-25,
|
|
0,
|
|
-25
|
|
],
|
|
otildex: [
|
|
-30,
|
|
-30,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10
|
|
],
|
|
otildey: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
otildeyacute: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
otildeydieresis: [
|
|
-20,
|
|
-20,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
py: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
pyacute: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
pydieresis: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
periodquotedblright: [
|
|
-120,
|
|
-120,
|
|
-100,
|
|
-100,
|
|
-55,
|
|
-95,
|
|
-140,
|
|
-70
|
|
],
|
|
periodquoteright: [
|
|
-120,
|
|
-120,
|
|
-100,
|
|
-100,
|
|
-55,
|
|
-95,
|
|
-140,
|
|
-70
|
|
],
|
|
periodspace: [
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-60
|
|
],
|
|
quotedblrightspace: [
|
|
-80,
|
|
-80,
|
|
-40,
|
|
-40
|
|
],
|
|
quoteleftquoteleft: [
|
|
-46,
|
|
-46,
|
|
-57,
|
|
-57,
|
|
-63,
|
|
-74,
|
|
-111,
|
|
-74
|
|
],
|
|
quoterightd: [
|
|
-80,
|
|
-80,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-15,
|
|
-25,
|
|
-50
|
|
],
|
|
quoterightdcroat: [
|
|
-80,
|
|
-80,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-15,
|
|
-25,
|
|
-50
|
|
],
|
|
quoterightl: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
quoterightlacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
quoterightlcommaaccent: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
quoterightlslash: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
quoterightquoteright: [
|
|
-46,
|
|
-46,
|
|
-57,
|
|
-57,
|
|
-63,
|
|
-74,
|
|
-111,
|
|
-74
|
|
],
|
|
quoterightr: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-15,
|
|
-25,
|
|
-50
|
|
],
|
|
quoterightracute: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-15,
|
|
-25,
|
|
-50
|
|
],
|
|
quoterightrcaron: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-15,
|
|
-25,
|
|
-50
|
|
],
|
|
quoterightrcommaaccent: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50,
|
|
-20,
|
|
-15,
|
|
-25,
|
|
-50
|
|
],
|
|
quoterights: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-37,
|
|
-74,
|
|
-40,
|
|
-55
|
|
],
|
|
quoterightsacute: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-37,
|
|
-74,
|
|
-40,
|
|
-55
|
|
],
|
|
quoterightscaron: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-37,
|
|
-74,
|
|
-40,
|
|
-55
|
|
],
|
|
quoterightscedilla: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-37,
|
|
-74,
|
|
-40,
|
|
-55
|
|
],
|
|
quoterightscommaaccent: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-37,
|
|
-74,
|
|
-40,
|
|
-55
|
|
],
|
|
quoterightspace: [
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-70,
|
|
-74,
|
|
-74,
|
|
-111,
|
|
-74
|
|
],
|
|
quoterightv: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-20,
|
|
-15,
|
|
-10,
|
|
-50
|
|
],
|
|
rc: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rccaron: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rccedilla: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcomma: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-92,
|
|
-65,
|
|
-111,
|
|
-40
|
|
],
|
|
rd: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37
|
|
],
|
|
rdcroat: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37
|
|
],
|
|
rg: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rgbreve: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rgcommaaccent: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rhyphen: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-37,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
ro: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
roacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rocircumflex: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rodieresis: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rograve: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rohungarumlaut: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
romacron: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
roslash: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rotilde: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rperiod: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-100,
|
|
-65,
|
|
-111,
|
|
-55
|
|
],
|
|
rq: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rs: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rsacute: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rscaron: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rscedilla: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rscommaaccent: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rt: [
|
|
20,
|
|
20,
|
|
40,
|
|
40
|
|
],
|
|
rtcommaaccent: [
|
|
20,
|
|
20,
|
|
40,
|
|
40
|
|
],
|
|
rv: [
|
|
10,
|
|
10,
|
|
30,
|
|
30,
|
|
-10
|
|
],
|
|
ry: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
ryacute: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
rydieresis: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
racutec: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racutecacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteccaron: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteccedilla: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racutecomma: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-92,
|
|
-65,
|
|
-111,
|
|
-40
|
|
],
|
|
racuted: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37
|
|
],
|
|
racutedcroat: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37
|
|
],
|
|
racuteg: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
racutegbreve: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
racutegcommaaccent: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
racutehyphen: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-37,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
racuteo: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteoacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteocircumflex: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteodieresis: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteograve: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteohungarumlaut: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteomacron: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteoslash: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteotilde: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
racuteperiod: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-100,
|
|
-65,
|
|
-111,
|
|
-55
|
|
],
|
|
racuteq: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racutes: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
racutesacute: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
racutescaron: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
racutescedilla: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
racutescommaaccent: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
racutet: [
|
|
20,
|
|
20,
|
|
40,
|
|
40
|
|
],
|
|
racutetcommaaccent: [
|
|
20,
|
|
20,
|
|
40,
|
|
40
|
|
],
|
|
racutev: [
|
|
10,
|
|
10,
|
|
30,
|
|
30,
|
|
-10
|
|
],
|
|
racutey: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
racuteyacute: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
racuteydieresis: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
rcaronc: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaroncacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaronccaron: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaronccedilla: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaroncomma: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-92,
|
|
-65,
|
|
-111,
|
|
-40
|
|
],
|
|
rcarond: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37
|
|
],
|
|
rcarondcroat: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37
|
|
],
|
|
rcarong: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rcarongbreve: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rcarongcommaaccent: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rcaronhyphen: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-37,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
rcarono: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronoacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronocircumflex: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronodieresis: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronograve: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronohungarumlaut: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronomacron: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronoslash: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronotilde: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcaronperiod: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-100,
|
|
-65,
|
|
-111,
|
|
-55
|
|
],
|
|
rcaronq: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcarons: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcaronsacute: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcaronscaron: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcaronscedilla: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcaronscommaaccent: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcaront: [
|
|
20,
|
|
20,
|
|
40,
|
|
40
|
|
],
|
|
rcarontcommaaccent: [
|
|
20,
|
|
20,
|
|
40,
|
|
40
|
|
],
|
|
rcaronv: [
|
|
10,
|
|
10,
|
|
30,
|
|
30,
|
|
-10
|
|
],
|
|
rcarony: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
rcaronyacute: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
rcaronydieresis: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
rcommaaccentc: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentcacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentccaron: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentccedilla: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentcomma: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-92,
|
|
-65,
|
|
-111,
|
|
-40
|
|
],
|
|
rcommaaccentd: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentdcroat: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentg: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rcommaaccentgbreve: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rcommaaccentgcommaaccent: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
-37,
|
|
-18
|
|
],
|
|
rcommaaccenthyphen: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-37,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
rcommaaccento: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentoacute: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentocircumflex: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentodieresis: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentograve: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentohungarumlaut: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentomacron: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentoslash: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentotilde: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-45
|
|
],
|
|
rcommaaccentperiod: [
|
|
-60,
|
|
-60,
|
|
-50,
|
|
-50,
|
|
-100,
|
|
-65,
|
|
-111,
|
|
-55
|
|
],
|
|
rcommaaccentq: [
|
|
-20,
|
|
-20,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccents: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcommaaccentsacute: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcommaaccentscaron: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcommaaccentscedilla: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcommaaccentscommaaccent: [
|
|
-15,
|
|
-15,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
rcommaaccentt: [
|
|
20,
|
|
20,
|
|
40,
|
|
40
|
|
],
|
|
rcommaaccenttcommaaccent: [
|
|
20,
|
|
20,
|
|
40,
|
|
40
|
|
],
|
|
rcommaaccentv: [
|
|
10,
|
|
10,
|
|
30,
|
|
30,
|
|
-10
|
|
],
|
|
rcommaaccenty: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
rcommaaccentyacute: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
rcommaaccentydieresis: [
|
|
10,
|
|
10,
|
|
30,
|
|
30
|
|
],
|
|
sw: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30
|
|
],
|
|
sacutew: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30
|
|
],
|
|
scaronw: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30
|
|
],
|
|
scedillaw: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30
|
|
],
|
|
scommaaccentw: [
|
|
-15,
|
|
-15,
|
|
-30,
|
|
-30
|
|
],
|
|
semicolonspace: [
|
|
-40,
|
|
-40,
|
|
-50,
|
|
-50
|
|
],
|
|
spaceT: [
|
|
-100,
|
|
-100,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
0,
|
|
-18,
|
|
-18
|
|
],
|
|
spaceTcaron: [
|
|
-100,
|
|
-100,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
0,
|
|
-18,
|
|
-18
|
|
],
|
|
spaceTcommaaccent: [
|
|
-100,
|
|
-100,
|
|
-50,
|
|
-50,
|
|
-30,
|
|
0,
|
|
-18,
|
|
-18
|
|
],
|
|
spaceV: [
|
|
-80,
|
|
-80,
|
|
-50,
|
|
-50,
|
|
-45,
|
|
-70,
|
|
-35,
|
|
-50
|
|
],
|
|
spaceW: [
|
|
-80,
|
|
-80,
|
|
-40,
|
|
-40,
|
|
-30,
|
|
-70,
|
|
-40,
|
|
-30
|
|
],
|
|
spaceY: [
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-90,
|
|
-55,
|
|
-70,
|
|
-75,
|
|
-90
|
|
],
|
|
spaceYacute: [
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-90,
|
|
-55,
|
|
-70,
|
|
-75,
|
|
-90
|
|
],
|
|
spaceYdieresis: [
|
|
-120,
|
|
-120,
|
|
-90,
|
|
-90,
|
|
-55,
|
|
-70,
|
|
-75,
|
|
-90
|
|
],
|
|
spacequotedblleft: [
|
|
-80,
|
|
-80,
|
|
-30,
|
|
-30
|
|
],
|
|
spacequoteleft: [
|
|
-60,
|
|
-60,
|
|
-60,
|
|
-60
|
|
],
|
|
va: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vaacute: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vabreve: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vacircumflex: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vadieresis: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vagrave: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vamacron: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vaogonek: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
varing: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vatilde: [
|
|
-20,
|
|
-20,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
vcomma: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-55,
|
|
-37,
|
|
-74,
|
|
-65
|
|
],
|
|
vo: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
voacute: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
vocircumflex: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
vodieresis: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
vograve: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
vohungarumlaut: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
vomacron: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
voslash: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
votilde: [
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-20
|
|
],
|
|
vperiod: [
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-80,
|
|
-70,
|
|
-37,
|
|
-74,
|
|
-65
|
|
],
|
|
wcomma: [
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-60,
|
|
-55,
|
|
-37,
|
|
-74,
|
|
-65
|
|
],
|
|
wo: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
woacute: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
wocircumflex: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
wodieresis: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
wograve: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
wohungarumlaut: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
womacron: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
woslash: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
wotilde: [
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-10
|
|
],
|
|
wperiod: [
|
|
-40,
|
|
-40,
|
|
-60,
|
|
-60,
|
|
-70,
|
|
-37,
|
|
-74,
|
|
-65
|
|
],
|
|
xe: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
xeacute: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
xecaron: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
xecircumflex: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
xedieresis: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
xedotaccent: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
xegrave: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
xemacron: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
xeogonek: [
|
|
-10,
|
|
-10,
|
|
-30,
|
|
-30,
|
|
0,
|
|
-10,
|
|
0,
|
|
-15
|
|
],
|
|
ya: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yaacute: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yabreve: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacircumflex: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yadieresis: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yagrave: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yamacron: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yaogonek: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yaring: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yatilde: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ycomma: [
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-100,
|
|
-55,
|
|
-37,
|
|
-55,
|
|
-65
|
|
],
|
|
ye: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yeacute: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yecaron: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yecircumflex: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yedieresis: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yedotaccent: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yegrave: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yemacron: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yeogonek: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yo: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yoacute: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yocircumflex: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yodieresis: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yograve: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yohungarumlaut: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yomacron: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yoslash: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yotilde: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yperiod: [
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-37,
|
|
-55,
|
|
-65
|
|
],
|
|
yacutea: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacuteaacute: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacuteabreve: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacuteacircumflex: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacuteadieresis: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacuteagrave: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacuteamacron: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacuteaogonek: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacutearing: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacuteatilde: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
yacutecomma: [
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-100,
|
|
-55,
|
|
-37,
|
|
-55,
|
|
-65
|
|
],
|
|
yacutee: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteeacute: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteecaron: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteecircumflex: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteedieresis: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteedotaccent: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteegrave: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteemacron: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteeogonek: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
yacuteo: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteoacute: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteocircumflex: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteodieresis: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteograve: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteohungarumlaut: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteomacron: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteoslash: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteotilde: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
yacuteperiod: [
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-37,
|
|
-55,
|
|
-65
|
|
],
|
|
ydieresisa: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisaacute: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisabreve: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisacircumflex: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisadieresis: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisagrave: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisamacron: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisaogonek: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisaring: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresisatilde: [
|
|
-30,
|
|
-30,
|
|
-20,
|
|
-20
|
|
],
|
|
ydieresiscomma: [
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-100,
|
|
-55,
|
|
-37,
|
|
-55,
|
|
-65
|
|
],
|
|
ydieresise: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresiseacute: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresisecaron: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresisecircumflex: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresisedieresis: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresisedotaccent: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresisegrave: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresisemacron: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresiseogonek: [
|
|
-10,
|
|
-10,
|
|
-20,
|
|
-20,
|
|
-10
|
|
],
|
|
ydieresiso: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisoacute: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisocircumflex: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisodieresis: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisograve: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisohungarumlaut: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisomacron: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisoslash: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisotilde: [
|
|
-25,
|
|
-25,
|
|
-20,
|
|
-20,
|
|
-25
|
|
],
|
|
ydieresisperiod: [
|
|
-80,
|
|
-80,
|
|
-100,
|
|
-100,
|
|
-70,
|
|
-37,
|
|
-55,
|
|
-65
|
|
],
|
|
ze: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zeacute: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zecaron: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zecircumflex: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zedieresis: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zedotaccent: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zegrave: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zemacron: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zeogonek: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacutee: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteeacute: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteecaron: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteecircumflex: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteedieresis: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteedotaccent: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteegrave: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteemacron: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteeogonek: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcarone: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaroneacute: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronecaron: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronecircumflex: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronedieresis: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronedotaccent: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronegrave: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronemacron: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaroneogonek: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccente: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccenteacute: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentecaron: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentecircumflex: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentedieresis: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentedotaccent: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentegrave: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentemacron: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccenteogonek: [
|
|
10,
|
|
10,
|
|
-15,
|
|
-15
|
|
],
|
|
Bcomma: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Bperiod: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Ccomma: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30
|
|
],
|
|
Cperiod: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30
|
|
],
|
|
Cacutecomma: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30
|
|
],
|
|
Cacuteperiod: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30
|
|
],
|
|
Ccaroncomma: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30
|
|
],
|
|
Ccaronperiod: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30
|
|
],
|
|
Ccedillacomma: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30
|
|
],
|
|
Ccedillaperiod: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30
|
|
],
|
|
Fe: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Feacute: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Fecaron: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Fecircumflex: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Fedieresis: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Fedotaccent: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Fegrave: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Femacron: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Feogonek: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-100,
|
|
-75
|
|
],
|
|
Fo: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Foacute: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Focircumflex: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Fodieresis: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Fograve: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Fohungarumlaut: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Fomacron: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Foslash: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Fotilde: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
-25,
|
|
-70,
|
|
-105,
|
|
-15
|
|
],
|
|
Fr: [
|
|
0,
|
|
0,
|
|
-45,
|
|
-45,
|
|
0,
|
|
-50,
|
|
-55
|
|
],
|
|
Fracute: [
|
|
0,
|
|
0,
|
|
-45,
|
|
-45,
|
|
0,
|
|
-50,
|
|
-55
|
|
],
|
|
Frcaron: [
|
|
0,
|
|
0,
|
|
-45,
|
|
-45,
|
|
0,
|
|
-50,
|
|
-55
|
|
],
|
|
Frcommaaccent: [
|
|
0,
|
|
0,
|
|
-45,
|
|
-45,
|
|
0,
|
|
-50,
|
|
-55
|
|
],
|
|
Ja: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jaacute: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jabreve: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jacircumflex: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jadieresis: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jagrave: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jamacron: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jaogonek: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jaring: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
Jatilde: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-15,
|
|
-40,
|
|
-35
|
|
],
|
|
LcaronT: [
|
|
0,
|
|
0,
|
|
-110,
|
|
-110
|
|
],
|
|
LcaronTcaron: [
|
|
0,
|
|
0,
|
|
-110,
|
|
-110
|
|
],
|
|
LcaronTcommaaccent: [
|
|
0,
|
|
0,
|
|
-110,
|
|
-110
|
|
],
|
|
LcaronV: [
|
|
0,
|
|
0,
|
|
-110,
|
|
-110
|
|
],
|
|
LcaronW: [
|
|
0,
|
|
0,
|
|
-70,
|
|
-70
|
|
],
|
|
LcaronY: [
|
|
0,
|
|
0,
|
|
-140,
|
|
-140
|
|
],
|
|
LcaronYacute: [
|
|
0,
|
|
0,
|
|
-140,
|
|
-140
|
|
],
|
|
LcaronYdieresis: [
|
|
0,
|
|
0,
|
|
-140,
|
|
-140
|
|
],
|
|
Lcaronquotedblright: [
|
|
0,
|
|
0,
|
|
-140,
|
|
-140
|
|
],
|
|
Lcaronquoteright: [
|
|
0,
|
|
0,
|
|
-160,
|
|
-160,
|
|
0,
|
|
0,
|
|
0,
|
|
-92
|
|
],
|
|
Lcarony: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-55
|
|
],
|
|
Lcaronyacute: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-55
|
|
],
|
|
Lcaronydieresis: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-55
|
|
],
|
|
Scomma: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Speriod: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Sacutecomma: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Sacuteperiod: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Scaroncomma: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Scaronperiod: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Scedillacomma: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Scedillaperiod: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Scommaaccentcomma: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Scommaaccentperiod: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
Trcaron: [
|
|
0,
|
|
0,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcaronrcaron: [
|
|
0,
|
|
0,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcommaaccentrcaron: [
|
|
0,
|
|
0,
|
|
-120,
|
|
-120,
|
|
-74,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Yhyphen: [
|
|
0,
|
|
0,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-74,
|
|
-111
|
|
],
|
|
Yi: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
Yiacute: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
Yiogonek: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
Yacutehyphen: [
|
|
0,
|
|
0,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-74,
|
|
-111
|
|
],
|
|
Yacutei: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
Yacuteiacute: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
Yacuteiogonek: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
Ydieresishyphen: [
|
|
0,
|
|
0,
|
|
-140,
|
|
-140,
|
|
-92,
|
|
-92,
|
|
-74,
|
|
-111
|
|
],
|
|
Ydieresisi: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
Ydieresisiacute: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
Ydieresisiogonek: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-55
|
|
],
|
|
bb: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
-10,
|
|
-10
|
|
],
|
|
bcomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
bperiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40,
|
|
-40
|
|
],
|
|
ccomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
cacutecomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
ccaroncomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
ccedillacomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
fa: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
faacute: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
fabreve: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
facircumflex: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
fadieresis: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
fagrave: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
famacron: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
faogonek: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
faring: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
fatilde: [
|
|
0,
|
|
0,
|
|
-30,
|
|
-30,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
fdotlessi: [
|
|
0,
|
|
0,
|
|
-28,
|
|
-28,
|
|
-35,
|
|
-30,
|
|
-60,
|
|
-50
|
|
],
|
|
gr: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gracute: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
grcaron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
grcommaaccent: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gbrever: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gbreveracute: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gbrevercaron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gbrevercommaaccent: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gcommaaccentr: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gcommaaccentracute: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gcommaaccentrcaron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
gcommaaccentrcommaaccent: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10
|
|
],
|
|
ke: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
keacute: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kecaron: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kecircumflex: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kedieresis: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kedotaccent: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kegrave: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kemacron: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
keogonek: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccente: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccenteacute: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentecaron: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentecircumflex: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentedieresis: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentedotaccent: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentegrave: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccentemacron: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
kcommaaccenteogonek: [
|
|
0,
|
|
0,
|
|
-20,
|
|
-20,
|
|
-10,
|
|
-30,
|
|
-10,
|
|
-10
|
|
],
|
|
ocomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
operiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
oacutecomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
oacuteperiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
ocircumflexcomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
ocircumflexperiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
odieresiscomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
odieresisperiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
ogravecomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
ograveperiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
ohungarumlautcomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
ohungarumlautperiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
omacroncomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
omacronperiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
oslasha: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashaacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashabreve: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashacircumflex: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashadieresis: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashagrave: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashamacron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashaogonek: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslasharing: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashatilde: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashb: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashc: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashcacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashccaron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashccedilla: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashcomma: [
|
|
0,
|
|
0,
|
|
-95,
|
|
-95
|
|
],
|
|
oslashd: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashdcroat: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashe: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslasheacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashecaron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashecircumflex: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashedieresis: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashedotaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashegrave: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashemacron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslasheogonek: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashf: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashg: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
oslashgbreve: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
oslashgcommaaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
oslashh: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashi: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashiacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashicircumflex: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashidieresis: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashigrave: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashimacron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashiogonek: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashj: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashk: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashkcommaaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashl: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashlacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashlcommaaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashlslash: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashm: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashn: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashnacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashncaron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashncommaaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashntilde: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslasho: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashoacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashocircumflex: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashodieresis: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashograve: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashohungarumlaut: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashomacron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashoslash: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashotilde: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashp: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashperiod: [
|
|
0,
|
|
0,
|
|
-95,
|
|
-95
|
|
],
|
|
oslashq: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashr: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashracute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashrcaron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashrcommaaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashs: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashsacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashscaron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashscedilla: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashscommaaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslasht: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashtcommaaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashu: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashuacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashucircumflex: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashudieresis: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashugrave: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashuhungarumlaut: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashumacron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashuogonek: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashuring: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashz: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashzacute: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashzcaron: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
oslashzdotaccent: [
|
|
0,
|
|
0,
|
|
-55,
|
|
-55
|
|
],
|
|
otildecomma: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
otildeperiod: [
|
|
0,
|
|
0,
|
|
-40,
|
|
-40
|
|
],
|
|
pcomma: [
|
|
0,
|
|
0,
|
|
-35,
|
|
-35
|
|
],
|
|
pperiod: [
|
|
0,
|
|
0,
|
|
-35,
|
|
-35
|
|
],
|
|
ra: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
raacute: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rabreve: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racircumflex: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
radieresis: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ragrave: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ramacron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
raogonek: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
raring: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
ratilde: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcolon: [
|
|
0,
|
|
0,
|
|
30,
|
|
30
|
|
],
|
|
ri: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
riacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
ricircumflex: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
ridieresis: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rigrave: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rimacron: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
riogonek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rk: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rkcommaaccent: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rl: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rlacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rlcommaaccent: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rlslash: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rm: [
|
|
0,
|
|
0,
|
|
25,
|
|
25
|
|
],
|
|
rn: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rnacute: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rncaron: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rncommaaccent: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rntilde: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rp: [
|
|
0,
|
|
0,
|
|
30,
|
|
30,
|
|
-10
|
|
],
|
|
rsemicolon: [
|
|
0,
|
|
0,
|
|
30,
|
|
30
|
|
],
|
|
ru: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
ruacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rucircumflex: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rudieresis: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rugrave: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
ruhungarumlaut: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rumacron: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
ruogonek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
ruring: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racutea: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racuteaacute: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racuteabreve: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racuteacircumflex: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racuteadieresis: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racuteagrave: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racuteamacron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racuteaogonek: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racutearing: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racuteatilde: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
racutecolon: [
|
|
0,
|
|
0,
|
|
30,
|
|
30
|
|
],
|
|
racutei: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteiacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteicircumflex: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteidieresis: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteigrave: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteimacron: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteiogonek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racutek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racutekcommaaccent: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racutel: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racutelacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racutelcommaaccent: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racutelslash: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racutem: [
|
|
0,
|
|
0,
|
|
25,
|
|
25
|
|
],
|
|
racuten: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
racutenacute: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
racutencaron: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
racutencommaaccent: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
racutentilde: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
racutep: [
|
|
0,
|
|
0,
|
|
30,
|
|
30,
|
|
-10
|
|
],
|
|
racutesemicolon: [
|
|
0,
|
|
0,
|
|
30,
|
|
30
|
|
],
|
|
racuteu: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteuacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteucircumflex: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteudieresis: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteugrave: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteuhungarumlaut: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteumacron: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteuogonek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
racuteuring: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcarona: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronaacute: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronabreve: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronacircumflex: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronadieresis: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronagrave: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronamacron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronaogonek: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronaring: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaronatilde: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcaroncolon: [
|
|
0,
|
|
0,
|
|
30,
|
|
30
|
|
],
|
|
rcaroni: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaroniacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronicircumflex: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronidieresis: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronigrave: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronimacron: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaroniogonek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronk: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronkcommaaccent: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronl: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronlacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronlcommaaccent: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronlslash: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronm: [
|
|
0,
|
|
0,
|
|
25,
|
|
25
|
|
],
|
|
rcaronn: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcaronnacute: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcaronncaron: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcaronncommaaccent: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcaronntilde: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcaronp: [
|
|
0,
|
|
0,
|
|
30,
|
|
30,
|
|
-10
|
|
],
|
|
rcaronsemicolon: [
|
|
0,
|
|
0,
|
|
30,
|
|
30
|
|
],
|
|
rcaronu: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronuacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronucircumflex: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronudieresis: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronugrave: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronuhungarumlaut: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronumacron: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronuogonek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcaronuring: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccenta: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentaacute: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentabreve: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentacircumflex: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentadieresis: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentagrave: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentamacron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentaogonek: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentaring: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentatilde: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
0,
|
|
-15
|
|
],
|
|
rcommaaccentcolon: [
|
|
0,
|
|
0,
|
|
30,
|
|
30
|
|
],
|
|
rcommaaccenti: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentiacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccenticircumflex: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentidieresis: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentigrave: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentimacron: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentiogonek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentk: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentkcommaaccent: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentl: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentlacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentlcommaaccent: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentlslash: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentm: [
|
|
0,
|
|
0,
|
|
25,
|
|
25
|
|
],
|
|
rcommaaccentn: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcommaaccentnacute: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcommaaccentncaron: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcommaaccentncommaaccent: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcommaaccentntilde: [
|
|
0,
|
|
0,
|
|
25,
|
|
25,
|
|
-15
|
|
],
|
|
rcommaaccentp: [
|
|
0,
|
|
0,
|
|
30,
|
|
30,
|
|
-10
|
|
],
|
|
rcommaaccentsemicolon: [
|
|
0,
|
|
0,
|
|
30,
|
|
30
|
|
],
|
|
rcommaaccentu: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentuacute: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentucircumflex: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentudieresis: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentugrave: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentuhungarumlaut: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentumacron: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccentuogonek: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
rcommaaccenturing: [
|
|
0,
|
|
0,
|
|
15,
|
|
15
|
|
],
|
|
scomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
speriod: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
sacutecomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
sacuteperiod: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
scaroncomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
scaronperiod: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
scedillacomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
scedillaperiod: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
scommaaccentcomma: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
scommaaccentperiod: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
ve: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
veacute: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
vecaron: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
vecircumflex: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
vedieresis: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
vedotaccent: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
vegrave: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
vemacron: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
veogonek: [
|
|
0,
|
|
0,
|
|
-25,
|
|
-25,
|
|
-10,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
wa: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
waacute: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wabreve: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wacircumflex: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wadieresis: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wagrave: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wamacron: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
waogonek: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
waring: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
watilde: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15,
|
|
0,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
we: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
weacute: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wecaron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wecircumflex: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wedieresis: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wedotaccent: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wegrave: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
wemacron: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
weogonek: [
|
|
0,
|
|
0,
|
|
-10,
|
|
-10,
|
|
0,
|
|
-10
|
|
],
|
|
zo: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zoacute: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zocircumflex: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zodieresis: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zograve: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zohungarumlaut: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zomacron: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zoslash: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zotilde: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteo: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteoacute: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteocircumflex: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteodieresis: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteograve: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteohungarumlaut: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteomacron: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteoslash: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zacuteotilde: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcarono: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronoacute: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronocircumflex: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronodieresis: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronograve: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronohungarumlaut: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronomacron: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronoslash: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zcaronotilde: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccento: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentoacute: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentocircumflex: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentodieresis: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentograve: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentohungarumlaut: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentomacron: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentoslash: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
zdotaccentotilde: [
|
|
0,
|
|
0,
|
|
-15,
|
|
-15
|
|
],
|
|
Ap: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Aquoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Aacutep: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Aacutequoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Abrevep: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Abrevequoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Acircumflexp: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Acircumflexquoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Adieresisp: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Adieresisquoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Agravep: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Agravequoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Amacronp: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Amacronquoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Aogonekp: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Aogonekquoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Aringp: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Aringquoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Atildep: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
Atildequoteright: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-74,
|
|
-74,
|
|
-37,
|
|
-111
|
|
],
|
|
Je: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jeacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jecaron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jecircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jedieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jedotaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jegrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jemacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jeogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jo: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Joacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jocircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jodieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jograve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Johungarumlaut: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jomacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Joslash: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
Jotilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
-40,
|
|
-25
|
|
],
|
|
NA: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAcircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAdieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAgrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAmacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NAtilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteA: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAcircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAdieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAgrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAmacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NacuteAtilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronA: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAcircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAdieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAgrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAmacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcaronAtilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentA: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAcircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAdieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAgrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAmacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NcommaaccentAtilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeA: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAcircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAdieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAgrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAmacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
NtildeAtilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20,
|
|
-30,
|
|
-27,
|
|
-35
|
|
],
|
|
Ti: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tiacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tiogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcaroni: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcaroniacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcaroniogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcommaaccenti: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcommaaccentiacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Tcommaaccentiogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-35
|
|
],
|
|
Vi: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-60
|
|
],
|
|
Viacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-60
|
|
],
|
|
Vicircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
0,
|
|
-34,
|
|
-20
|
|
],
|
|
Vidieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
0,
|
|
-34,
|
|
-20
|
|
],
|
|
Vigrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
0,
|
|
-34,
|
|
-20
|
|
],
|
|
Vimacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
0,
|
|
-34,
|
|
-20
|
|
],
|
|
Viogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
-55,
|
|
-74,
|
|
-60
|
|
],
|
|
Wi: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-40
|
|
],
|
|
Wiacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-40
|
|
],
|
|
Wiogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-37,
|
|
-55,
|
|
-40
|
|
],
|
|
fi: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-25,
|
|
0,
|
|
-20,
|
|
-20
|
|
],
|
|
gperiod: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
gbreveperiod: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
gcommaaccentperiod: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-15
|
|
],
|
|
iv: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
iacutev: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
icircumflexv: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
idieresisv: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
igravev: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
imacronv: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
iogonekv: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-25
|
|
],
|
|
ky: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
kyacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
kydieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
kcommaaccenty: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
kcommaaccentyacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
kcommaaccentydieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-15,
|
|
0,
|
|
-10,
|
|
-15
|
|
],
|
|
quotedblleftA: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAcircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAdieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAgrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAmacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quotedblleftAtilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftA: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAcircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAdieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAgrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAmacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
quoteleftAtilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10,
|
|
0,
|
|
0,
|
|
-80
|
|
],
|
|
re: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
reacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
recaron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
recircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
redieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
redotaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
regrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
remacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
reogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racutee: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteeacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteecaron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteecircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteedieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteedotaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteegrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteemacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
racuteeogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcarone: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaroneacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaronecaron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaronecircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaronedieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaronedotaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaronegrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaronemacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcaroneogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccente: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccenteacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentecaron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentecircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentedieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentedotaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentegrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccentemacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
rcommaaccenteogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
0,
|
|
-37
|
|
],
|
|
spaceA: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAcircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAdieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAgrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAmacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
spaceAtilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-55,
|
|
-37,
|
|
-18,
|
|
-55
|
|
],
|
|
Fi: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-45
|
|
],
|
|
Fiacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-45
|
|
],
|
|
Ficircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-45
|
|
],
|
|
Fidieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-45
|
|
],
|
|
Figrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-45
|
|
],
|
|
Fimacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-45
|
|
],
|
|
Fiogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-45
|
|
],
|
|
eb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
eacuteb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ecaronb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ecircumflexb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
edieresisb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
edotaccentb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
egraveb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
emacronb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
eogonekb: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ff: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-18,
|
|
-18,
|
|
-25
|
|
],
|
|
quoterightt: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
-30,
|
|
-18
|
|
],
|
|
quoterighttcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-37,
|
|
-30,
|
|
-18
|
|
],
|
|
Yicircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Yidieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Yigrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Yimacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Yacuteicircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Yacuteidieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Yacuteigrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Yacuteimacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Ydieresisicircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Ydieresisidieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Ydieresisigrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
Ydieresisimacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-34
|
|
],
|
|
eg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
egbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
egcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
eacuteg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
eacutegbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
eacutegcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
ecarong: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
ecarongbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
ecarongcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
ecircumflexg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
ecircumflexgbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
ecircumflexgcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
edieresisg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
edieresisgbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
edieresisgcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
edotaccentg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
edotaccentgbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
edotaccentgcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
egraveg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
egravegbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
egravegcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
emacrong: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
emacrongbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
emacrongcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
eogonekg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
eogonekgbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
eogonekgcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-40,
|
|
-15
|
|
],
|
|
fiogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
gcomma: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gbrevecomma: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
gcommaaccentcomma: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
og: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ogbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ogcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
oacuteg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
oacutegbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
oacutegcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ocircumflexg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ocircumflexgbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ocircumflexgcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
odieresisg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
odieresisgbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
odieresisgcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ograveg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ogravegbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ogravegcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ohungarumlautg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ohungarumlautgbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
ohungarumlautgcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
omacrong: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
omacrongbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
omacrongcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
otildeg: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
otildegbreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
otildegcommaaccent: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-10
|
|
],
|
|
fiacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-20
|
|
],
|
|
ga: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gaacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gabreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gacircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gadieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gagrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gamacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gaogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
garing: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gatilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbrevea: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbreveaacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbreveabreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbreveacircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbreveadieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbreveagrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbreveamacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbreveaogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbrevearing: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gbreveatilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccenta: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentaacute: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentabreve: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentacircumflex: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentadieresis: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentagrave: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentamacron: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentaogonek: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentaring: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
],
|
|
gcommaaccentatilde: [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
-5
|
|
]
|
|
};
|
|
var data = {
|
|
attributes: attributes,
|
|
glyphWidths: glyphWidths,
|
|
kernPairs: kernPairs
|
|
};
|
|
|
|
const initFont = font => {
|
|
return [font.FontName, {
|
|
attributes: font,
|
|
glyphWidths: {},
|
|
kernPairs: {}
|
|
}];
|
|
};
|
|
const expandData = data => {
|
|
const {
|
|
attributes,
|
|
glyphWidths,
|
|
kernPairs
|
|
} = data;
|
|
const fonts = attributes.map(initFont);
|
|
Object.keys(glyphWidths).forEach(key => {
|
|
glyphWidths[key].forEach((value, index) => {
|
|
if (value) fonts[index][1].glyphWidths[key] = value;
|
|
});
|
|
});
|
|
Object.keys(kernPairs).forEach(key => {
|
|
kernPairs[key].forEach((value, index) => {
|
|
if (value) fonts[index][1].kernPairs[key] = value;
|
|
});
|
|
});
|
|
return Object.fromEntries(fonts);
|
|
};
|
|
|
|
const STANDARD_FONTS = expandData(data);
|
|
const createStandardFont = PDFFont => class StandardFont extends PDFFont {
|
|
constructor(document, name, id) {
|
|
super();
|
|
this.document = document;
|
|
this.name = name;
|
|
this.id = id;
|
|
this.font = AFMFont.fromJson(STANDARD_FONTS[this.name]);
|
|
this.ascender = this.font.ascender;
|
|
this.descender = this.font.descender;
|
|
this.bbox = this.font.bbox;
|
|
this.lineGap = this.font.lineGap;
|
|
}
|
|
embed() {
|
|
this.dictionary.data = {
|
|
Type: 'Font',
|
|
BaseFont: this.name,
|
|
Subtype: 'Type1',
|
|
Encoding: 'WinAnsiEncoding'
|
|
};
|
|
return this.dictionary.end();
|
|
}
|
|
encode(text) {
|
|
const encoded = this.font.encodeText(text);
|
|
const glyphs = this.font.glyphsForString(`${text}`);
|
|
const advances = this.font.advancesForGlyphs(glyphs);
|
|
const positions = [];
|
|
for (let i = 0; i < glyphs.length; i++) {
|
|
const glyph = glyphs[i];
|
|
positions.push({
|
|
xAdvance: advances[i],
|
|
yAdvance: 0,
|
|
xOffset: 0,
|
|
yOffset: 0,
|
|
advanceWidth: this.font.widthOfGlyph(glyph)
|
|
});
|
|
}
|
|
return [encoded, positions];
|
|
}
|
|
encodeGlyphs(glyphs) {
|
|
const res = [];
|
|
for (let glyph of Array.from(glyphs)) {
|
|
res.push(`00${glyph.id.toString(16)}`.slice(-2));
|
|
}
|
|
return res;
|
|
}
|
|
widthOfString(string, size) {
|
|
const glyphs = this.font.glyphsForString(`${string}`);
|
|
const advances = this.font.advancesForGlyphs(glyphs);
|
|
let width = 0;
|
|
for (let advance of Array.from(advances)) {
|
|
width += advance;
|
|
}
|
|
const scale = size / 1000;
|
|
return width * scale;
|
|
}
|
|
static isStandardFont(name) {
|
|
return name in STANDARD_FONTS;
|
|
}
|
|
};
|
|
|
|
const toHex = function () {
|
|
for (var _len = arguments.length, codePoints = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
codePoints[_key] = arguments[_key];
|
|
}
|
|
const codes = Array.from(codePoints).map(code => `0000${code.toString(16)}`.slice(-4));
|
|
return codes.join('');
|
|
};
|
|
const createEmbeddedFont = PDFFont => class EmbeddedFont extends PDFFont {
|
|
constructor(document, font, id) {
|
|
super();
|
|
this.document = document;
|
|
this.font = font;
|
|
this.id = id;
|
|
this.subset = this.font.createSubset();
|
|
this.unicode = [[0]];
|
|
this.widths = [this.font.getGlyph(0).advanceWidth];
|
|
this.name = this.font.postscriptName;
|
|
this.scale = 1000 / this.font.unitsPerEm;
|
|
this.ascender = this.font.ascent * this.scale;
|
|
this.descender = this.font.descent * this.scale;
|
|
this.xHeight = this.font.xHeight * this.scale;
|
|
this.capHeight = this.font.capHeight * this.scale;
|
|
this.lineGap = this.font.lineGap * this.scale;
|
|
this.bbox = this.font.bbox;
|
|
this.layoutCache = Object.create(null);
|
|
}
|
|
layoutRun(text, features) {
|
|
// passing LTR To force fontkit to not reverse the string
|
|
const run = this.font.layout(text, features, undefined, undefined, 'ltr');
|
|
|
|
// Normalize position values
|
|
for (let i = 0; i < run.positions.length; i++) {
|
|
const position = run.positions[i];
|
|
for (let key in position) {
|
|
position[key] *= this.scale;
|
|
}
|
|
position.advanceWidth = run.glyphs[i].advanceWidth * this.scale;
|
|
}
|
|
return run;
|
|
}
|
|
layoutCached(text) {
|
|
let cached;
|
|
if (cached = this.layoutCache[text]) {
|
|
return cached;
|
|
}
|
|
const run = this.layoutRun(text);
|
|
this.layoutCache[text] = run;
|
|
return run;
|
|
}
|
|
layout(text, features, onlyWidth) {
|
|
// Skip the cache if any user defined features are applied
|
|
if (onlyWidth == null) {
|
|
onlyWidth = false;
|
|
}
|
|
if (features) {
|
|
return this.layoutRun(text, features);
|
|
}
|
|
const glyphs = onlyWidth ? null : [];
|
|
const positions = onlyWidth ? null : [];
|
|
let advanceWidth = 0;
|
|
|
|
// Split the string by words to increase cache efficiency.
|
|
// For this purpose, spaces and tabs are a good enough delimeter.
|
|
let last = 0;
|
|
let index = 0;
|
|
while (index <= text.length) {
|
|
let needle;
|
|
if (index === text.length && last < index || (needle = text.charAt(index), [' ', '\t'].includes(needle))) {
|
|
const run = this.layoutCached(text.slice(last, ++index));
|
|
if (!onlyWidth) {
|
|
glyphs.push(...Array.from(run.glyphs || []));
|
|
positions.push(...Array.from(run.positions || []));
|
|
}
|
|
advanceWidth += run.advanceWidth;
|
|
last = index;
|
|
} else {
|
|
index++;
|
|
}
|
|
}
|
|
return {
|
|
glyphs,
|
|
positions,
|
|
advanceWidth
|
|
};
|
|
}
|
|
encode(text, features) {
|
|
const {
|
|
glyphs,
|
|
positions
|
|
} = this.layout(text, features);
|
|
const res = [];
|
|
for (let i = 0; i < glyphs.length; i++) {
|
|
const glyph = glyphs[i];
|
|
const gid = this.subset.includeGlyph(glyph.id);
|
|
res.push(`0000${gid.toString(16)}`.slice(-4));
|
|
if (this.widths[gid] == null) {
|
|
this.widths[gid] = glyph.advanceWidth * this.scale;
|
|
}
|
|
if (this.unicode[gid] == null) {
|
|
this.unicode[gid] = glyph.codePoints;
|
|
}
|
|
}
|
|
return [res, positions];
|
|
}
|
|
encodeGlyphs(glyphs) {
|
|
const res = [];
|
|
for (let i = 0; i < glyphs.length; i++) {
|
|
const glyph = glyphs[i];
|
|
const gid = this.subset.includeGlyph(glyph.id);
|
|
res.push(`0000${gid.toString(16)}`.slice(-4));
|
|
if (this.widths[gid] == null) {
|
|
this.widths[gid] = glyph.advanceWidth * this.scale;
|
|
}
|
|
if (this.unicode[gid] == null) {
|
|
this.unicode[gid] = glyph.codePoints;
|
|
}
|
|
}
|
|
return res;
|
|
}
|
|
widthOfString(string, size, features) {
|
|
const width = this.layout(string, features, true).advanceWidth;
|
|
const scale = size / 1000;
|
|
return width * scale;
|
|
}
|
|
embed() {
|
|
const isCFF = this.subset.cff != null;
|
|
const fontFile = this.document.ref();
|
|
if (isCFF) {
|
|
fontFile.data.Subtype = 'CIDFontType0C';
|
|
}
|
|
fontFile.end(this.subset.encode());
|
|
const familyClass = ((this.font['OS/2'] != null ? this.font['OS/2'].sFamilyClass : undefined) || 0) >> 8;
|
|
let flags = 0;
|
|
if (this.font.post.isFixedPitch) {
|
|
flags |= 1 << 0;
|
|
}
|
|
if (1 <= familyClass && familyClass <= 7) {
|
|
flags |= 1 << 1;
|
|
}
|
|
flags |= 1 << 2; // assume the font uses non-latin characters
|
|
if (familyClass === 10) {
|
|
flags |= 1 << 3;
|
|
}
|
|
if (this.font.head.macStyle.italic) {
|
|
flags |= 1 << 6;
|
|
}
|
|
|
|
// generate a random tag (6 uppercase letters. 65 is the char code for 'A')
|
|
const tag = [0, 1, 2, 3, 4, 5].map(() => String.fromCharCode(Math.random() * 26 + 65)).join('');
|
|
const name = tag + '+' + this.font.postscriptName;
|
|
const {
|
|
bbox
|
|
} = this.font;
|
|
const descriptor = this.document.ref({
|
|
Type: 'FontDescriptor',
|
|
FontName: name,
|
|
Flags: flags,
|
|
FontBBox: [bbox.minX * this.scale, bbox.minY * this.scale, bbox.maxX * this.scale, bbox.maxY * this.scale],
|
|
ItalicAngle: this.font.italicAngle,
|
|
Ascent: this.ascender,
|
|
Descent: this.descender,
|
|
CapHeight: (this.font.capHeight || this.font.ascent) * this.scale,
|
|
XHeight: (this.font.xHeight || 0) * this.scale,
|
|
StemV: 0
|
|
}); // not sure how to calculate this
|
|
|
|
if (isCFF) {
|
|
descriptor.data.FontFile3 = fontFile;
|
|
} else {
|
|
descriptor.data.FontFile2 = fontFile;
|
|
}
|
|
descriptor.end();
|
|
const descendantFontData = {
|
|
Type: 'Font',
|
|
Subtype: 'CIDFontType0',
|
|
BaseFont: name,
|
|
CIDSystemInfo: {
|
|
Registry: new String('Adobe'),
|
|
Ordering: new String('Identity'),
|
|
Supplement: 0
|
|
},
|
|
FontDescriptor: descriptor,
|
|
W: [0, this.widths]
|
|
};
|
|
if (!isCFF) {
|
|
descendantFontData.Subtype = 'CIDFontType2';
|
|
descendantFontData.CIDToGIDMap = 'Identity';
|
|
}
|
|
const descendantFont = this.document.ref(descendantFontData);
|
|
descendantFont.end();
|
|
this.dictionary.data = {
|
|
Type: 'Font',
|
|
Subtype: 'Type0',
|
|
BaseFont: name,
|
|
Encoding: 'Identity-H',
|
|
DescendantFonts: [descendantFont],
|
|
ToUnicode: this.toUnicodeCmap()
|
|
};
|
|
return this.dictionary.end();
|
|
}
|
|
|
|
// Maps the glyph ids encoded in the PDF back to unicode strings
|
|
// Because of ligature substitutions and the like, there may be one or more
|
|
// unicode characters represented by each glyph.
|
|
toUnicodeCmap() {
|
|
const cmap = this.document.ref();
|
|
let entries = [];
|
|
let unicodeMap = '/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n /Registry (Adobe)\n /Ordering (UCS)\n /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000><ffff>\nendcodespacerange';
|
|
for (let [index, codePoints] of this.unicode.entries()) {
|
|
const encoded = [];
|
|
if (entries.length >= 100) {
|
|
unicodeMap += '\n' + entries.length + ' beginbfchar\n' + entries.join('\n') + '\nendbfchar';
|
|
entries = [];
|
|
}
|
|
// encode codePoints to utf16
|
|
for (let value of codePoints) {
|
|
if (value > 0xffff) {
|
|
value -= 0x10000;
|
|
encoded.push(toHex(value >>> 10 & 0x3ff | 0xd800));
|
|
value = 0xdc00 | value & 0x3ff;
|
|
}
|
|
encoded.push(toHex(value));
|
|
}
|
|
entries.push('<' + toHex(index) + '>' + '<' + encoded.join(' ') + '>');
|
|
}
|
|
if (entries.length) {
|
|
unicodeMap += '\n' + entries.length + ' beginbfchar\n' + entries.join('\n') + '\nendbfchar\n';
|
|
}
|
|
unicodeMap += 'endcmap\nCMapName currentdict /CMap defineresource pop\nend\nend';
|
|
cmap.end(unicodeMap);
|
|
return cmap;
|
|
}
|
|
};
|
|
|
|
class PDFFont {
|
|
static open(document, src, family, id) {
|
|
let font;
|
|
if (typeof src === 'string') {
|
|
if (StandardFont.isStandardFont(src)) {
|
|
return new StandardFont(document, src, id);
|
|
}
|
|
{
|
|
font = fontkit.openSync(src, family);
|
|
}
|
|
} else if (src instanceof Uint8Array) {
|
|
font = fontkit.create(src, family);
|
|
} else if (src instanceof ArrayBuffer) {
|
|
font = fontkit.create(new Uint8Array(src), family);
|
|
} else if (typeof src === 'object') {
|
|
font = src;
|
|
}
|
|
if (font == null) {
|
|
throw new Error('Not a supported font format or standard PDF font.');
|
|
}
|
|
return new EmbeddedFont(document, font, id);
|
|
}
|
|
encode() {
|
|
throw new Error('Must be implemented by subclasses');
|
|
}
|
|
widthOfString() {
|
|
throw new Error('Must be implemented by subclasses');
|
|
}
|
|
ref() {
|
|
return this.dictionary != null ? this.dictionary : this.dictionary = this.document.ref();
|
|
}
|
|
finalize() {
|
|
if (this.embedded || this.dictionary == null) {
|
|
return;
|
|
}
|
|
this.embed();
|
|
return this.embedded = true;
|
|
}
|
|
embed() {
|
|
throw new Error('Must be implemented by subclasses');
|
|
}
|
|
lineHeight(size, includeGap) {
|
|
if (includeGap == null) {
|
|
includeGap = false;
|
|
}
|
|
const gap = includeGap ? this.lineGap : 0;
|
|
return (this.ascender + gap - this.descender) / 1000 * size;
|
|
}
|
|
}
|
|
const StandardFont = createStandardFont(PDFFont);
|
|
const EmbeddedFont = createEmbeddedFont(PDFFont);
|
|
|
|
var FontsMixin = {
|
|
initFonts() {
|
|
// Lookup table for embedded fonts
|
|
this._fontFamilies = {};
|
|
this._fontCount = 0;
|
|
|
|
// Font state
|
|
this._fontSize = 12;
|
|
this._font = null;
|
|
this._registeredFonts = {};
|
|
|
|
// Set the default font
|
|
return this.font('Helvetica');
|
|
},
|
|
font(src, family, size) {
|
|
let cacheKey;
|
|
let font;
|
|
if (typeof family === 'number') {
|
|
size = family;
|
|
family = null;
|
|
}
|
|
|
|
// check registered fonts if src is a string
|
|
if (typeof src === 'string' && this._registeredFonts[src]) {
|
|
cacheKey = src;
|
|
({
|
|
src,
|
|
family
|
|
} = this._registeredFonts[src]);
|
|
} else {
|
|
cacheKey = family || src;
|
|
if (typeof cacheKey !== 'string') {
|
|
cacheKey = null;
|
|
}
|
|
}
|
|
if (size != null) {
|
|
this.fontSize(size);
|
|
}
|
|
|
|
// fast path: check if the font is already in the PDF
|
|
if (font = this._fontFamilies[cacheKey]) {
|
|
this._font = font;
|
|
return this;
|
|
}
|
|
|
|
// load the font
|
|
const id = `F${++this._fontCount}`;
|
|
this._font = PDFFont.open(this, src, family, id);
|
|
|
|
// check for existing font familes with the same name already in the PDF
|
|
// useful if the font was passed as a buffer
|
|
if (font = this._fontFamilies[this._font.name]) {
|
|
this._font = font;
|
|
return this;
|
|
}
|
|
|
|
// save the font for reuse later
|
|
if (cacheKey) {
|
|
this._fontFamilies[cacheKey] = this._font;
|
|
}
|
|
if (this._font.name) {
|
|
this._fontFamilies[this._font.name] = this._font;
|
|
}
|
|
return this;
|
|
},
|
|
fontSize(_fontSize) {
|
|
this._fontSize = _fontSize;
|
|
return this;
|
|
},
|
|
currentLineHeight(includeGap) {
|
|
if (includeGap == null) {
|
|
includeGap = false;
|
|
}
|
|
return this._font.lineHeight(this._fontSize, includeGap);
|
|
},
|
|
registerFont(name, src, family) {
|
|
this._registeredFonts[name] = {
|
|
src,
|
|
family
|
|
};
|
|
return this;
|
|
}
|
|
};
|
|
|
|
function PDFNumber(n) {
|
|
// PDF numbers are strictly 32bit
|
|
// so convert this number to the nearest 32bit number
|
|
// @see ISO 32000-1 Annex C.2 (real numbers)
|
|
return Math.fround(n);
|
|
}
|
|
|
|
const SOFT_HYPHEN = '\u00AD';
|
|
const HYPHEN = '-';
|
|
class LineWrapper extends EventEmitter {
|
|
constructor(document, options) {
|
|
super();
|
|
this.document = document;
|
|
this.horizontalScaling = options.horizontalScaling || 100;
|
|
this.indent = (options.indent || 0) * this.horizontalScaling / 100;
|
|
this.characterSpacing = (options.characterSpacing || 0) * this.horizontalScaling / 100;
|
|
this.wordSpacing = (options.wordSpacing === 0) * this.horizontalScaling / 100;
|
|
this.columns = options.columns || 1;
|
|
this.columnGap = (options.columnGap != null ? options.columnGap : 18) * this.horizontalScaling / 100; // 1/4 inch
|
|
this.lineWidth = (options.width * this.horizontalScaling / 100 - this.columnGap * (this.columns - 1)) / this.columns;
|
|
this.spaceLeft = this.lineWidth;
|
|
this.startX = this.document.x;
|
|
this.startY = this.document.y;
|
|
this.column = 1;
|
|
this.ellipsis = options.ellipsis;
|
|
this.continuedX = 0;
|
|
this.features = options.features;
|
|
|
|
// calculate the maximum Y position the text can appear at
|
|
if (options.height != null) {
|
|
this.height = options.height;
|
|
this.maxY = PDFNumber(this.startY + options.height);
|
|
} else {
|
|
this.maxY = PDFNumber(this.document.page.maxY());
|
|
}
|
|
|
|
// handle paragraph indents
|
|
this.on('firstLine', options => {
|
|
// if this is the first line of the text segment, and
|
|
// we're continuing where we left off, indent that much
|
|
// otherwise use the user specified indent option
|
|
const indent = this.continuedX || this.indent;
|
|
this.document.x += indent;
|
|
this.lineWidth -= indent;
|
|
|
|
// if indentAllLines is set to true
|
|
// we're not resetting the indentation for this paragraph after the first line
|
|
if (options.indentAllLines) {
|
|
return;
|
|
}
|
|
|
|
// otherwise we start the next line without indent
|
|
return this.once('line', () => {
|
|
this.document.x -= indent;
|
|
this.lineWidth += indent;
|
|
if (options.continued && !this.continuedX) {
|
|
this.continuedX = this.indent;
|
|
}
|
|
if (!options.continued) {
|
|
return this.continuedX = 0;
|
|
}
|
|
});
|
|
});
|
|
|
|
// handle left aligning last lines of paragraphs
|
|
this.on('lastLine', options => {
|
|
const {
|
|
align
|
|
} = options;
|
|
if (align === 'justify') {
|
|
options.align = 'left';
|
|
}
|
|
this.lastLine = true;
|
|
return this.once('line', () => {
|
|
this.document.y += options.paragraphGap || 0;
|
|
options.align = align;
|
|
return this.lastLine = false;
|
|
});
|
|
});
|
|
}
|
|
wordWidth(word) {
|
|
return this.document.widthOfString(word, this) + this.characterSpacing + this.wordSpacing;
|
|
}
|
|
canFit(word, w) {
|
|
if (word[word.length - 1] != SOFT_HYPHEN) {
|
|
return w <= this.spaceLeft;
|
|
}
|
|
return w + this.wordWidth(HYPHEN) <= this.spaceLeft;
|
|
}
|
|
eachWord(text, fn) {
|
|
// setup a unicode line breaker
|
|
let bk;
|
|
const breaker = new LineBreaker(text);
|
|
let last = null;
|
|
const wordWidths = Object.create(null);
|
|
while (bk = breaker.nextBreak()) {
|
|
var shouldContinue;
|
|
let word = text.slice((last != null ? last.position : undefined) || 0, bk.position);
|
|
let w = wordWidths[word] != null ? wordWidths[word] : wordWidths[word] = this.wordWidth(word);
|
|
|
|
// if the word is longer than the whole line, chop it up
|
|
// TODO: break by grapheme clusters, not JS string characters
|
|
if (w > this.lineWidth + this.continuedX) {
|
|
// make some fake break objects
|
|
let lbk = last;
|
|
const fbk = {};
|
|
while (word.length) {
|
|
// fit as much of the word as possible into the space we have
|
|
var l, mightGrow;
|
|
if (w > this.spaceLeft) {
|
|
// start our check at the end of our available space - this method is faster than a loop of each character and it resolves
|
|
// an issue with long loops when processing massive words, such as a huge number of spaces
|
|
l = Math.ceil(this.spaceLeft / (w / word.length));
|
|
w = this.wordWidth(word.slice(0, l));
|
|
mightGrow = w <= this.spaceLeft && l < word.length;
|
|
} else {
|
|
l = word.length;
|
|
}
|
|
let mustShrink = w > this.spaceLeft && l > 0;
|
|
// shrink or grow word as necessary after our near-guess above
|
|
while (mustShrink || mightGrow) {
|
|
if (mustShrink) {
|
|
w = this.wordWidth(word.slice(0, --l));
|
|
mustShrink = w > this.spaceLeft && l > 0;
|
|
} else {
|
|
w = this.wordWidth(word.slice(0, ++l));
|
|
mustShrink = w > this.spaceLeft && l > 0;
|
|
mightGrow = w <= this.spaceLeft && l < word.length;
|
|
}
|
|
}
|
|
|
|
// check for the edge case where a single character cannot fit into a line.
|
|
if (l === 0 && this.spaceLeft === this.lineWidth) {
|
|
l = 1;
|
|
}
|
|
|
|
// send a required break unless this is the last piece and a linebreak is not specified
|
|
fbk.required = bk.required || l < word.length;
|
|
shouldContinue = fn(word.slice(0, l), w, fbk, lbk);
|
|
lbk = {
|
|
required: false
|
|
};
|
|
|
|
// get the remaining piece of the word
|
|
word = word.slice(l);
|
|
w = this.wordWidth(word);
|
|
if (shouldContinue === false) {
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
// otherwise just emit the break as it was given to us
|
|
shouldContinue = fn(word, w, bk, last);
|
|
}
|
|
if (shouldContinue === false) {
|
|
break;
|
|
}
|
|
last = bk;
|
|
}
|
|
}
|
|
wrap(text, options) {
|
|
// override options from previous continued fragments
|
|
this.horizontalScaling = options.horizontalScaling || 100;
|
|
if (options.indent != null) {
|
|
this.indent = options.indent * this.horizontalScaling / 100;
|
|
}
|
|
if (options.characterSpacing != null) {
|
|
this.characterSpacing = options.characterSpacing * this.horizontalScaling / 100;
|
|
}
|
|
if (options.wordSpacing != null) {
|
|
this.wordSpacing = options.wordSpacing * this.horizontalScaling / 100;
|
|
}
|
|
if (options.ellipsis != null) {
|
|
this.ellipsis = options.ellipsis;
|
|
}
|
|
|
|
// make sure we're actually on the page
|
|
// and that the first line of is never by
|
|
// itself at the bottom of a page (orphans)
|
|
const nextY = this.document.y + this.document.currentLineHeight(true);
|
|
if (this.document.y > this.maxY || nextY > this.maxY) {
|
|
this.nextSection();
|
|
}
|
|
let buffer = '';
|
|
let textWidth = 0;
|
|
let wc = 0;
|
|
let lc = 0;
|
|
let {
|
|
y
|
|
} = this.document; // used to reset Y pos if options.continued (below)
|
|
const emitLine = () => {
|
|
options.textWidth = textWidth + this.wordSpacing * (wc - 1);
|
|
options.wordCount = wc;
|
|
options.lineWidth = this.lineWidth;
|
|
({
|
|
y
|
|
} = this.document);
|
|
this.emit('line', buffer, options, this);
|
|
return lc++;
|
|
};
|
|
this.emit('sectionStart', options, this);
|
|
this.eachWord(text, (word, w, bk, last) => {
|
|
if (last == null || last.required) {
|
|
this.emit('firstLine', options, this);
|
|
this.spaceLeft = this.lineWidth;
|
|
}
|
|
if (this.canFit(word, w)) {
|
|
buffer += word;
|
|
textWidth += w;
|
|
wc++;
|
|
}
|
|
if (bk.required || !this.canFit(word, w)) {
|
|
// if the user specified a max height and an ellipsis, and is about to pass the
|
|
// max height and max columns after the next line, append the ellipsis
|
|
const lh = this.document.currentLineHeight(true);
|
|
if (this.height != null && this.ellipsis && PDFNumber(this.document.y + lh * 2) > this.maxY && this.column >= this.columns) {
|
|
if (this.ellipsis === true) {
|
|
this.ellipsis = '…';
|
|
} // map default ellipsis character
|
|
buffer = buffer.replace(/\s+$/, '');
|
|
textWidth = this.wordWidth(buffer + this.ellipsis);
|
|
|
|
// remove characters from the buffer until the ellipsis fits
|
|
// to avoid infinite loop need to stop while-loop if buffer is empty string
|
|
while (buffer && textWidth > this.lineWidth) {
|
|
buffer = buffer.slice(0, -1).replace(/\s+$/, '');
|
|
textWidth = this.wordWidth(buffer + this.ellipsis);
|
|
}
|
|
// need to add ellipsis only if there is enough space for it
|
|
if (textWidth <= this.lineWidth) {
|
|
buffer = buffer + this.ellipsis;
|
|
}
|
|
textWidth = this.wordWidth(buffer);
|
|
}
|
|
if (bk.required) {
|
|
if (w > this.spaceLeft) {
|
|
emitLine();
|
|
buffer = word;
|
|
textWidth = w;
|
|
wc = 1;
|
|
}
|
|
this.emit('lastLine', options, this);
|
|
}
|
|
|
|
// Previous entry is a soft hyphen - add visible hyphen.
|
|
if (buffer[buffer.length - 1] == SOFT_HYPHEN) {
|
|
buffer = buffer.slice(0, -1) + HYPHEN;
|
|
this.spaceLeft -= this.wordWidth(HYPHEN);
|
|
}
|
|
emitLine();
|
|
|
|
// if we've reached the edge of the page,
|
|
// continue on a new page or column
|
|
if (PDFNumber(this.document.y + lh) > this.maxY) {
|
|
const shouldContinue = this.nextSection();
|
|
|
|
// stop if we reached the maximum height
|
|
if (!shouldContinue) {
|
|
wc = 0;
|
|
buffer = '';
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// reset the space left and buffer
|
|
if (bk.required) {
|
|
this.spaceLeft = this.lineWidth;
|
|
buffer = '';
|
|
textWidth = 0;
|
|
return wc = 0;
|
|
} else {
|
|
// reset the space left and buffer
|
|
this.spaceLeft = this.lineWidth - w;
|
|
buffer = word;
|
|
textWidth = w;
|
|
return wc = 1;
|
|
}
|
|
} else {
|
|
return this.spaceLeft -= w;
|
|
}
|
|
});
|
|
if (wc > 0) {
|
|
this.emit('lastLine', options, this);
|
|
emitLine();
|
|
}
|
|
this.emit('sectionEnd', options, this);
|
|
|
|
// if the wrap is set to be continued, save the X position
|
|
// to start the first line of the next segment at, and reset
|
|
// the y position
|
|
if (options.continued === true) {
|
|
if (lc > 1) {
|
|
this.continuedX = 0;
|
|
}
|
|
this.continuedX += options.textWidth || 0;
|
|
return this.document.y = y;
|
|
} else {
|
|
return this.document.x = this.startX;
|
|
}
|
|
}
|
|
nextSection(options) {
|
|
this.emit('sectionEnd', options, this);
|
|
if (++this.column > this.columns) {
|
|
// if a max height was specified by the user, we're done.
|
|
// otherwise, the default is to make a new page at the bottom.
|
|
if (this.height != null) {
|
|
return false;
|
|
}
|
|
this.document.continueOnNewPage();
|
|
this.column = 1;
|
|
this.startY = this.document.page.margins.top;
|
|
this.maxY = this.document.page.maxY();
|
|
this.document.x = this.startX;
|
|
if (this.document._fillColor) {
|
|
this.document.fillColor(...this.document._fillColor);
|
|
}
|
|
this.emit('pageBreak', options, this);
|
|
} else {
|
|
this.document.x += this.lineWidth + this.columnGap;
|
|
this.document.y = this.startY;
|
|
this.emit('columnBreak', options, this);
|
|
}
|
|
this.emit('sectionStart', options, this);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
const {
|
|
number
|
|
} = PDFObject;
|
|
var TextMixin = {
|
|
initText() {
|
|
this._line = this._line.bind(this);
|
|
|
|
// Current coordinates
|
|
this.x = 0;
|
|
this.y = 0;
|
|
return this._lineGap = 0;
|
|
},
|
|
lineGap(_lineGap) {
|
|
this._lineGap = _lineGap;
|
|
return this;
|
|
},
|
|
moveDown(lines) {
|
|
if (lines == null) {
|
|
lines = 1;
|
|
}
|
|
this.y += this.currentLineHeight(true) * lines + this._lineGap;
|
|
return this;
|
|
},
|
|
moveUp(lines) {
|
|
if (lines == null) {
|
|
lines = 1;
|
|
}
|
|
this.y -= this.currentLineHeight(true) * lines + this._lineGap;
|
|
return this;
|
|
},
|
|
_text(text, x, y, options, lineCallback) {
|
|
options = this._initOptions(x, y, options);
|
|
|
|
// Convert text to a string
|
|
text = text == null ? '' : `${text}`;
|
|
|
|
// if the wordSpacing option is specified, remove multiple consecutive spaces
|
|
if (options.wordSpacing) {
|
|
text = text.replace(/\s{2,}/g, ' ');
|
|
}
|
|
const addStructure = () => {
|
|
if (options.structParent) {
|
|
options.structParent.add(this.struct(options.structType || 'P', [this.markStructureContent(options.structType || 'P')]));
|
|
}
|
|
};
|
|
|
|
// We can save some bytes if there is no rotation
|
|
if (options.rotation !== 0) {
|
|
this.save();
|
|
this.rotate(-options.rotation, {
|
|
origin: [this.x, this.y]
|
|
});
|
|
}
|
|
|
|
// word wrapping
|
|
if (options.width) {
|
|
let wrapper = this._wrapper;
|
|
if (!wrapper) {
|
|
wrapper = new LineWrapper(this, options);
|
|
wrapper.on('line', lineCallback);
|
|
wrapper.on('firstLine', addStructure);
|
|
}
|
|
this._wrapper = options.continued ? wrapper : null;
|
|
this._textOptions = options.continued ? options : null;
|
|
wrapper.wrap(text, options);
|
|
|
|
// render paragraphs as single lines
|
|
} else {
|
|
for (let line of text.split('\n')) {
|
|
addStructure();
|
|
lineCallback(line, options);
|
|
}
|
|
}
|
|
|
|
// Cleanup if there was a rotation
|
|
if (options.rotation !== 0) this.restore();
|
|
return this;
|
|
},
|
|
text(text, x, y, options) {
|
|
return this._text(text, x, y, options, this._line);
|
|
},
|
|
widthOfString(string, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const horizontalScaling = options.horizontalScaling || 100;
|
|
return (this._font.widthOfString(string, this._fontSize, options.features) + (options.characterSpacing || 0) * (string.length - 1)) * horizontalScaling / 100;
|
|
},
|
|
/**
|
|
* Compute the bounding box of a string
|
|
* based on what will actually be rendered by `doc.text()`
|
|
*
|
|
* @param string - The string
|
|
* @param x - X position of text (defaults to this.x)
|
|
* @param y - Y position of text (defaults to this.y)
|
|
* @param options - Any text options (The same you would apply to `doc.text()`)
|
|
* @returns {{x: number, y: number, width: number, height: number}}
|
|
*/
|
|
boundsOfString(string, x, y, options) {},
|
|
heightOfString(text, options) {
|
|
const {
|
|
x,
|
|
y
|
|
} = this;
|
|
options = this._initOptions(options);
|
|
options.height = Infinity; // don't break pages
|
|
|
|
const lineGap = options.lineGap || this._lineGap || 0;
|
|
this._text(text, this.x, this.y, options, () => {
|
|
return this.y += this.currentLineHeight(true) + lineGap;
|
|
});
|
|
const height = this.y - y;
|
|
this.x = x;
|
|
this.y = y;
|
|
return height;
|
|
},
|
|
list(list, x, y, options, wrapper) {
|
|
options = this._initOptions(x, y, options);
|
|
const listType = options.listType || 'bullet';
|
|
const unit = Math.round(this._font.ascender / 1000 * this._fontSize);
|
|
const midLine = unit / 2;
|
|
const r = options.bulletRadius || unit / 3;
|
|
const indent = options.textIndent || (listType === 'bullet' ? r * 5 : unit * 2);
|
|
const itemIndent = options.bulletIndent || (listType === 'bullet' ? r * 8 : unit * 2);
|
|
let level = 1;
|
|
const items = [];
|
|
const levels = [];
|
|
const numbers = [];
|
|
var flatten = function (list) {
|
|
let n = 1;
|
|
for (let i = 0; i < list.length; i++) {
|
|
const item = list[i];
|
|
if (Array.isArray(item)) {
|
|
level++;
|
|
flatten(item);
|
|
level--;
|
|
} else {
|
|
items.push(item);
|
|
levels.push(level);
|
|
if (listType !== 'bullet') {
|
|
numbers.push(n++);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
flatten(list);
|
|
const label = function (n) {
|
|
switch (listType) {
|
|
case 'numbered':
|
|
return `${n}.`;
|
|
case 'lettered':
|
|
var letter = String.fromCharCode((n - 1) % 26 + 65);
|
|
var times = Math.floor((n - 1) / 26 + 1);
|
|
var text = Array(times + 1).join(letter);
|
|
return `${text}.`;
|
|
}
|
|
};
|
|
const drawListItem = function (listItem, i) {
|
|
wrapper = new LineWrapper(this, options);
|
|
wrapper.on('line', this._line);
|
|
level = 1;
|
|
wrapper.once('firstLine', () => {
|
|
let item, itemType, labelType, bodyType;
|
|
if (options.structParent) {
|
|
if (options.structTypes) {
|
|
[itemType, labelType, bodyType] = options.structTypes;
|
|
} else {
|
|
[itemType, labelType, bodyType] = ['LI', 'Lbl', 'LBody'];
|
|
}
|
|
}
|
|
if (itemType) {
|
|
item = this.struct(itemType);
|
|
options.structParent.add(item);
|
|
} else if (options.structParent) {
|
|
item = options.structParent;
|
|
}
|
|
let l;
|
|
if ((l = levels[i++]) !== level) {
|
|
const diff = itemIndent * (l - level);
|
|
this.x += diff;
|
|
wrapper.lineWidth -= diff;
|
|
level = l;
|
|
}
|
|
if (item && (labelType || bodyType)) {
|
|
item.add(this.struct(labelType || bodyType, [this.markStructureContent(labelType || bodyType)]));
|
|
}
|
|
switch (listType) {
|
|
case 'bullet':
|
|
this.circle(this.x - indent + r, this.y + midLine, r);
|
|
this.fill();
|
|
break;
|
|
case 'numbered':
|
|
case 'lettered':
|
|
var text = label(numbers[i - 1]);
|
|
this._fragment(text, this.x - indent, this.y, options);
|
|
break;
|
|
}
|
|
if (item && labelType && bodyType) {
|
|
item.add(this.struct(bodyType, [this.markStructureContent(bodyType)]));
|
|
}
|
|
if (item && item !== options.structParent) {
|
|
item.end();
|
|
}
|
|
});
|
|
wrapper.on('sectionStart', () => {
|
|
const pos = indent + itemIndent * (level - 1);
|
|
this.x += pos;
|
|
return wrapper.lineWidth -= pos;
|
|
});
|
|
wrapper.on('sectionEnd', () => {
|
|
const pos = indent + itemIndent * (level - 1);
|
|
this.x -= pos;
|
|
return wrapper.lineWidth += pos;
|
|
});
|
|
wrapper.wrap(listItem, options);
|
|
};
|
|
for (let i = 0; i < items.length; i++) {
|
|
drawListItem.call(this, items[i], i);
|
|
}
|
|
return this;
|
|
},
|
|
_initOptions(x, y, options) {
|
|
var _options$rotation;
|
|
if (x === void 0) {
|
|
x = {};
|
|
}
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
if (typeof x === 'object') {
|
|
options = x;
|
|
x = null;
|
|
}
|
|
|
|
// clone options object
|
|
const result = Object.assign({}, options);
|
|
|
|
// extend options with previous values for continued text
|
|
if (this._textOptions) {
|
|
for (let key in this._textOptions) {
|
|
const val = this._textOptions[key];
|
|
if (key !== 'continued') {
|
|
if (result[key] === undefined) {
|
|
result[key] = val;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Update the current position
|
|
if (x != null) {
|
|
this.x = x;
|
|
}
|
|
if (y != null) {
|
|
this.y = y;
|
|
}
|
|
|
|
// wrap to margins if no x or y position passed
|
|
if (result.lineBreak !== false) {
|
|
if (result.width == null) {
|
|
result.width = this.page.width - this.x - this.page.margins.right;
|
|
}
|
|
result.width = Math.max(result.width, 0);
|
|
}
|
|
if (!result.columns) {
|
|
result.columns = 0;
|
|
}
|
|
if (result.columnGap == null) {
|
|
result.columnGap = 18;
|
|
} // 1/4 inch
|
|
|
|
// Normalize rotation to between 0 - 360
|
|
result.rotation = Number((_options$rotation = options.rotation) !== null && _options$rotation !== void 0 ? _options$rotation : 0) % 360;
|
|
if (result.rotation < 0) result.rotation += 360;
|
|
return result;
|
|
},
|
|
_line(text, options, wrapper) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
this._fragment(text, this.x, this.y, options);
|
|
const lineGap = options.lineGap || this._lineGap || 0;
|
|
if (!wrapper) {
|
|
return this.x += this.widthOfString(text, options);
|
|
} else {
|
|
return this.y += this.currentLineHeight(true) + lineGap;
|
|
}
|
|
},
|
|
_fragment(text, x, y, options) {
|
|
let dy, encoded, i, positions, textWidth, words;
|
|
text = `${text}`.replace(/\n/g, '');
|
|
if (text.length === 0) {
|
|
return;
|
|
}
|
|
|
|
// handle options
|
|
const align = options.align || 'left';
|
|
let wordSpacing = options.wordSpacing || 0;
|
|
const characterSpacing = options.characterSpacing || 0;
|
|
const horizontalScaling = options.horizontalScaling || 100;
|
|
|
|
// text alignments
|
|
if (options.width) {
|
|
switch (align) {
|
|
case 'right':
|
|
textWidth = this.widthOfString(text.replace(/\s+$/, ''), options);
|
|
x += options.lineWidth - textWidth;
|
|
break;
|
|
case 'center':
|
|
x += options.lineWidth / 2 - options.textWidth / 2;
|
|
break;
|
|
case 'justify':
|
|
// calculate the word spacing value
|
|
words = text.trim().split(/\s+/);
|
|
textWidth = this.widthOfString(text.replace(/\s+/g, ''), options);
|
|
var spaceWidth = this.widthOfString(' ') + characterSpacing;
|
|
wordSpacing = Math.max(0, (options.lineWidth - textWidth) / Math.max(1, words.length - 1) - spaceWidth);
|
|
break;
|
|
}
|
|
}
|
|
|
|
// text baseline alignments based on http://wiki.apache.org/xmlgraphics-fop/LineLayout/AlignmentHandling
|
|
if (typeof options.baseline === 'number') {
|
|
dy = -options.baseline;
|
|
} else {
|
|
switch (options.baseline) {
|
|
case 'svg-middle':
|
|
dy = 0.5 * this._font.xHeight;
|
|
break;
|
|
case 'middle':
|
|
case 'svg-central':
|
|
dy = 0.5 * (this._font.descender + this._font.ascender);
|
|
break;
|
|
case 'bottom':
|
|
case 'ideographic':
|
|
dy = this._font.descender;
|
|
break;
|
|
case 'alphabetic':
|
|
dy = 0;
|
|
break;
|
|
case 'mathematical':
|
|
dy = 0.5 * this._font.ascender;
|
|
break;
|
|
case 'hanging':
|
|
dy = 0.8 * this._font.ascender;
|
|
break;
|
|
case 'top':
|
|
dy = this._font.ascender;
|
|
break;
|
|
default:
|
|
dy = this._font.ascender;
|
|
}
|
|
dy = dy / 1000 * this._fontSize;
|
|
}
|
|
|
|
// calculate the actual rendered width of the string after word and character spacing
|
|
const renderedWidth = options.textWidth + wordSpacing * (options.wordCount - 1) + characterSpacing * (text.length - 1);
|
|
|
|
// create link annotations if the link option is given
|
|
if (options.link != null) {
|
|
this.link(x, y, renderedWidth, this.currentLineHeight(), options.link);
|
|
}
|
|
if (options.goTo != null) {
|
|
this.goTo(x, y, renderedWidth, this.currentLineHeight(), options.goTo);
|
|
}
|
|
if (options.destination != null) {
|
|
this.addNamedDestination(options.destination, 'XYZ', x, y, null);
|
|
}
|
|
|
|
// create underline
|
|
if (options.underline) {
|
|
this.save();
|
|
if (!options.stroke) {
|
|
this.strokeColor(...(this._fillColor || []));
|
|
}
|
|
const lineWidth = this._fontSize < 10 ? 0.5 : Math.floor(this._fontSize / 10);
|
|
this.lineWidth(lineWidth);
|
|
let lineY = y + this.currentLineHeight() - lineWidth;
|
|
this.moveTo(x, lineY);
|
|
this.lineTo(x + renderedWidth, lineY);
|
|
this.stroke();
|
|
this.restore();
|
|
}
|
|
|
|
// create strikethrough line
|
|
if (options.strike) {
|
|
this.save();
|
|
if (!options.stroke) {
|
|
this.strokeColor(...(this._fillColor || []));
|
|
}
|
|
const lineWidth = this._fontSize < 10 ? 0.5 : Math.floor(this._fontSize / 10);
|
|
this.lineWidth(lineWidth);
|
|
let lineY = y + this.currentLineHeight() / 2;
|
|
this.moveTo(x, lineY);
|
|
this.lineTo(x + renderedWidth, lineY);
|
|
this.stroke();
|
|
this.restore();
|
|
}
|
|
this.save();
|
|
|
|
// oblique (angle in degrees or boolean)
|
|
if (options.oblique) {
|
|
let skew;
|
|
if (typeof options.oblique === 'number') {
|
|
skew = -Math.tan(options.oblique * Math.PI / 180);
|
|
} else {
|
|
skew = -0.25;
|
|
}
|
|
this.transform(1, 0, 0, 1, x, y);
|
|
this.transform(1, 0, skew, 1, -skew * dy, 0);
|
|
this.transform(1, 0, 0, 1, -x, -y);
|
|
}
|
|
|
|
// flip coordinate system
|
|
this.transform(1, 0, 0, -1, 0, this.page.height);
|
|
y = this.page.height - y - dy;
|
|
|
|
// add current font to page if necessary
|
|
if (this.page.fonts[this._font.id] == null) {
|
|
this.page.fonts[this._font.id] = this._font.ref();
|
|
}
|
|
|
|
// begin the text object
|
|
this.addContent('BT');
|
|
|
|
// text position
|
|
this.addContent(`1 0 0 1 ${number(x)} ${number(y)} Tm`);
|
|
|
|
// font and font size
|
|
this.addContent(`/${this._font.id} ${number(this._fontSize)} Tf`);
|
|
|
|
// rendering mode
|
|
const mode = options.fill && options.stroke ? 2 : options.stroke ? 1 : 0;
|
|
if (mode) {
|
|
this.addContent(`${mode} Tr`);
|
|
}
|
|
|
|
// Character spacing
|
|
if (characterSpacing) {
|
|
this.addContent(`${number(characterSpacing)} Tc`);
|
|
}
|
|
|
|
// Horizontal scaling
|
|
if (horizontalScaling !== 100) {
|
|
this.addContent(`${horizontalScaling} Tz`);
|
|
}
|
|
|
|
// Add the actual text
|
|
// If we have a word spacing value, we need to encode each word separately
|
|
// since the normal Tw operator only works on character code 32, which isn't
|
|
// used for embedded fonts.
|
|
if (wordSpacing) {
|
|
words = text.trim().split(/\s+/);
|
|
wordSpacing += this.widthOfString(' ') + characterSpacing;
|
|
wordSpacing *= 1000 / this._fontSize;
|
|
encoded = [];
|
|
positions = [];
|
|
for (let word of words) {
|
|
const [encodedWord, positionsWord] = this._font.encode(word, options.features);
|
|
encoded = encoded.concat(encodedWord);
|
|
positions = positions.concat(positionsWord);
|
|
|
|
// add the word spacing to the end of the word
|
|
// clone object because of cache
|
|
const space = {};
|
|
const object = positions[positions.length - 1];
|
|
for (let key in object) {
|
|
const val = object[key];
|
|
space[key] = val;
|
|
}
|
|
space.xAdvance += wordSpacing;
|
|
positions[positions.length - 1] = space;
|
|
}
|
|
} else {
|
|
[encoded, positions] = this._font.encode(text, options.features);
|
|
}
|
|
const scale = this._fontSize / 1000;
|
|
const commands = [];
|
|
let last = 0;
|
|
let hadOffset = false;
|
|
|
|
// Adds a segment of text to the TJ command buffer
|
|
const addSegment = cur => {
|
|
if (last < cur) {
|
|
const hex = encoded.slice(last, cur).join('');
|
|
const advance = positions[cur - 1].xAdvance - positions[cur - 1].advanceWidth;
|
|
commands.push(`<${hex}> ${number(-advance)}`);
|
|
}
|
|
return last = cur;
|
|
};
|
|
|
|
// Flushes the current TJ commands to the output stream
|
|
const flush = i => {
|
|
addSegment(i);
|
|
if (commands.length > 0) {
|
|
this.addContent(`[${commands.join(' ')}] TJ`);
|
|
return commands.length = 0;
|
|
}
|
|
};
|
|
for (i = 0; i < positions.length; i++) {
|
|
// If we have an x or y offset, we have to break out of the current TJ command
|
|
// so we can move the text position.
|
|
const pos = positions[i];
|
|
if (pos.xOffset || pos.yOffset) {
|
|
// Flush the current buffer
|
|
flush(i);
|
|
|
|
// Move the text position and flush just the current character
|
|
this.addContent(`1 0 0 1 ${number(x + pos.xOffset * scale)} ${number(y + pos.yOffset * scale)} Tm`);
|
|
flush(i + 1);
|
|
hadOffset = true;
|
|
} else {
|
|
// If the last character had an offset, reset the text position
|
|
if (hadOffset) {
|
|
this.addContent(`1 0 0 1 ${number(x)} ${number(y)} Tm`);
|
|
hadOffset = false;
|
|
}
|
|
|
|
// Group segments that don't have any advance adjustments
|
|
if (pos.xAdvance - pos.advanceWidth !== 0) {
|
|
addSegment(i + 1);
|
|
}
|
|
}
|
|
x += pos.xAdvance * scale;
|
|
}
|
|
|
|
// Flush any remaining commands
|
|
flush(i);
|
|
|
|
// end the text object
|
|
this.addContent('ET');
|
|
|
|
// restore flipped coordinate system
|
|
return this.restore();
|
|
}
|
|
};
|
|
|
|
const COLOR_SPACE_MAP = {
|
|
1: 'DeviceGray',
|
|
3: 'DeviceRGB',
|
|
4: 'DeviceCMYK'
|
|
};
|
|
class JPEG {
|
|
constructor(data, label) {
|
|
this.data = data;
|
|
this.label = label;
|
|
this.orientation = 1;
|
|
if (this.data.readUInt16BE(0) !== 0xffd8) {
|
|
throw 'SOI not found in JPEG';
|
|
}
|
|
const markers = _JPEG.decode(this.data);
|
|
for (let i = 0; i < markers.length; i += 1) {
|
|
const marker = markers[i];
|
|
if (marker.name === 'EXIF' && marker.entries.orientation) {
|
|
this.orientation = marker.entries.orientation;
|
|
}
|
|
if (marker.name === 'SOF') {
|
|
this.bits ||= marker.precision;
|
|
this.width ||= marker.width;
|
|
this.height ||= marker.height;
|
|
this.colorSpace ||= COLOR_SPACE_MAP[marker.numberOfComponents];
|
|
}
|
|
}
|
|
this.obj = null;
|
|
}
|
|
embed(document) {
|
|
if (this.obj) {
|
|
return;
|
|
}
|
|
this.obj = document.ref({
|
|
Type: 'XObject',
|
|
Subtype: 'Image',
|
|
BitsPerComponent: this.bits,
|
|
Width: this.width,
|
|
Height: this.height,
|
|
ColorSpace: this.colorSpace,
|
|
Filter: 'DCTDecode'
|
|
});
|
|
|
|
// add extra decode params for CMYK images. By swapping the
|
|
// min and max values from the default, we invert the colors. See
|
|
// section 4.8.4 of the spec.
|
|
if (this.colorSpace === 'DeviceCMYK') {
|
|
this.obj.data['Decode'] = [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0];
|
|
}
|
|
this.obj.end(this.data);
|
|
|
|
// free memory
|
|
return this.data = null;
|
|
}
|
|
}
|
|
|
|
class PNGImage {
|
|
constructor(data, label) {
|
|
this.label = label;
|
|
this.image = new PNG(data);
|
|
this.width = this.image.width;
|
|
this.height = this.image.height;
|
|
this.imgData = this.image.imgData;
|
|
this.obj = null;
|
|
}
|
|
embed(document) {
|
|
let dataDecoded = false;
|
|
this.document = document;
|
|
if (this.obj) {
|
|
return;
|
|
}
|
|
const hasAlphaChannel = this.image.hasAlphaChannel;
|
|
const isInterlaced = this.image.interlaceMethod === 1;
|
|
this.obj = this.document.ref({
|
|
Type: 'XObject',
|
|
Subtype: 'Image',
|
|
BitsPerComponent: hasAlphaChannel ? 8 : this.image.bits,
|
|
Width: this.width,
|
|
Height: this.height,
|
|
Filter: 'FlateDecode'
|
|
});
|
|
if (!hasAlphaChannel) {
|
|
const params = this.document.ref({
|
|
Predictor: isInterlaced ? 1 : 15,
|
|
Colors: this.image.colors,
|
|
BitsPerComponent: this.image.bits,
|
|
Columns: this.width
|
|
});
|
|
this.obj.data.DecodeParms = params;
|
|
params.end();
|
|
}
|
|
if (this.image.palette.length === 0) {
|
|
this.obj.data.ColorSpace = this.image.colorSpace;
|
|
} else {
|
|
// embed the color palette in the PDF as an object stream
|
|
const palette = this.document.ref();
|
|
palette.end(Buffer.from(this.image.palette));
|
|
|
|
// build the color space array for the image
|
|
this.obj.data.ColorSpace = ['Indexed', 'DeviceRGB', this.image.palette.length / 3 - 1, palette];
|
|
}
|
|
|
|
// For PNG color types 0, 2 and 3, the transparency data is stored in
|
|
// a dedicated PNG chunk.
|
|
if (this.image.transparency.grayscale != null) {
|
|
// Use Color Key Masking (spec section 4.8.5)
|
|
// An array with N elements, where N is two times the number of color components.
|
|
const val = this.image.transparency.grayscale;
|
|
this.obj.data.Mask = [val, val];
|
|
} else if (this.image.transparency.rgb) {
|
|
// Use Color Key Masking (spec section 4.8.5)
|
|
// An array with N elements, where N is two times the number of color components.
|
|
const {
|
|
rgb
|
|
} = this.image.transparency;
|
|
const mask = [];
|
|
for (let x of rgb) {
|
|
mask.push(x, x);
|
|
}
|
|
this.obj.data.Mask = mask;
|
|
} else if (this.image.transparency.indexed) {
|
|
// Create a transparency SMask for the image based on the data
|
|
// in the PLTE and tRNS sections. See below for details on SMasks.
|
|
dataDecoded = true;
|
|
return this.loadIndexedAlphaChannel();
|
|
} else if (hasAlphaChannel) {
|
|
// For PNG color types 4 and 6, the transparency data is stored as a alpha
|
|
// channel mixed in with the main image data. Separate this data out into an
|
|
// SMask object and store it separately in the PDF.
|
|
dataDecoded = true;
|
|
return this.splitAlphaChannel();
|
|
}
|
|
if (isInterlaced && !dataDecoded) {
|
|
return this.decodeData();
|
|
}
|
|
this.finalize();
|
|
}
|
|
finalize() {
|
|
if (this.alphaChannel) {
|
|
const sMask = this.document.ref({
|
|
Type: 'XObject',
|
|
Subtype: 'Image',
|
|
Height: this.height,
|
|
Width: this.width,
|
|
BitsPerComponent: 8,
|
|
Filter: 'FlateDecode',
|
|
ColorSpace: 'DeviceGray',
|
|
Decode: [0, 1]
|
|
});
|
|
sMask.end(this.alphaChannel);
|
|
this.obj.data.SMask = sMask;
|
|
}
|
|
|
|
// add the actual image data
|
|
this.obj.end(this.imgData);
|
|
|
|
// free memory
|
|
this.image = null;
|
|
return this.imgData = null;
|
|
}
|
|
splitAlphaChannel() {
|
|
return this.image.decodePixels(pixels => {
|
|
let a;
|
|
let p;
|
|
const colorCount = this.image.colors;
|
|
const pixelCount = this.width * this.height;
|
|
const imgData = Buffer.alloc(pixelCount * colorCount);
|
|
const alphaChannel = Buffer.alloc(pixelCount);
|
|
let i = p = a = 0;
|
|
const len = pixels.length;
|
|
// For 16bit images copy only most significant byte (MSB) - PNG data is always stored in network byte order (MSB first)
|
|
const skipByteCount = this.image.bits === 16 ? 1 : 0;
|
|
while (i < len) {
|
|
for (let colorIndex = 0; colorIndex < colorCount; colorIndex++) {
|
|
imgData[p++] = pixels[i++];
|
|
i += skipByteCount;
|
|
}
|
|
alphaChannel[a++] = pixels[i++];
|
|
i += skipByteCount;
|
|
}
|
|
this.imgData = zlib.deflateSync(imgData);
|
|
this.alphaChannel = zlib.deflateSync(alphaChannel);
|
|
return this.finalize();
|
|
});
|
|
}
|
|
loadIndexedAlphaChannel() {
|
|
const transparency = this.image.transparency.indexed;
|
|
return this.image.decodePixels(pixels => {
|
|
const alphaChannel = Buffer.alloc(this.width * this.height);
|
|
let i = 0;
|
|
for (let j = 0, end = pixels.length; j < end; j++) {
|
|
alphaChannel[i++] = transparency[pixels[j]];
|
|
}
|
|
this.alphaChannel = zlib.deflateSync(alphaChannel);
|
|
return this.finalize();
|
|
});
|
|
}
|
|
decodeData() {
|
|
this.image.decodePixels(pixels => {
|
|
this.imgData = zlib.deflateSync(pixels);
|
|
this.finalize();
|
|
});
|
|
}
|
|
}
|
|
|
|
/*
|
|
PDFImage - embeds images in PDF documents
|
|
By Devon Govett
|
|
*/
|
|
|
|
class PDFImage {
|
|
static open(src, label) {
|
|
let data;
|
|
if (Buffer.isBuffer(src)) {
|
|
data = src;
|
|
} else if (src instanceof ArrayBuffer) {
|
|
data = Buffer.from(new Uint8Array(src));
|
|
} else {
|
|
let match;
|
|
if (match = /^data:.+?;base64,(.*)$/.exec(src)) {
|
|
data = Buffer.from(match[1], 'base64');
|
|
} else {
|
|
data = fs.readFileSync(src);
|
|
if (!data) {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
if (data[0] === 0xff && data[1] === 0xd8) {
|
|
return new JPEG(data, label);
|
|
} else if (data[0] === 0x89 && data.toString('ascii', 1, 4) === 'PNG') {
|
|
return new PNGImage(data, label);
|
|
} else {
|
|
throw new Error('Unknown image format.');
|
|
}
|
|
}
|
|
}
|
|
|
|
var ImagesMixin = {
|
|
initImages() {
|
|
this._imageRegistry = {};
|
|
return this._imageCount = 0;
|
|
},
|
|
image(src, x, y, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
let bh, bp, bw, image, ip, left, left1, rotateAngle, originX, originY;
|
|
if (typeof x === 'object') {
|
|
options = x;
|
|
x = null;
|
|
}
|
|
|
|
// Ignore orientation based on document options or image options
|
|
const ignoreOrientation = options.ignoreOrientation || options.ignoreOrientation !== false && this.options.ignoreOrientation;
|
|
x = (left = x != null ? x : options.x) != null ? left : this.x;
|
|
y = (left1 = y != null ? y : options.y) != null ? left1 : this.y;
|
|
if (typeof src === 'string') {
|
|
image = this._imageRegistry[src];
|
|
}
|
|
if (!image) {
|
|
if (src.width && src.height) {
|
|
image = src;
|
|
} else {
|
|
image = this.openImage(src);
|
|
}
|
|
}
|
|
if (!image.obj) {
|
|
image.embed(this);
|
|
}
|
|
if (this.page.xobjects[image.label] == null) {
|
|
this.page.xobjects[image.label] = image.obj;
|
|
}
|
|
let {
|
|
width,
|
|
height
|
|
} = image;
|
|
|
|
// If EXIF orientation calls for it, swap width and height
|
|
if (!ignoreOrientation && image.orientation > 4) {
|
|
[width, height] = [height, width];
|
|
}
|
|
let w = options.width || width;
|
|
let h = options.height || height;
|
|
if (options.width && !options.height) {
|
|
const wp = w / width;
|
|
w = width * wp;
|
|
h = height * wp;
|
|
} else if (options.height && !options.width) {
|
|
const hp = h / height;
|
|
w = width * hp;
|
|
h = height * hp;
|
|
} else if (options.scale) {
|
|
w = width * options.scale;
|
|
h = height * options.scale;
|
|
} else if (options.fit) {
|
|
[bw, bh] = options.fit;
|
|
bp = bw / bh;
|
|
ip = width / height;
|
|
if (ip > bp) {
|
|
w = bw;
|
|
h = bw / ip;
|
|
} else {
|
|
h = bh;
|
|
w = bh * ip;
|
|
}
|
|
} else if (options.cover) {
|
|
[bw, bh] = options.cover;
|
|
bp = bw / bh;
|
|
ip = width / height;
|
|
if (ip > bp) {
|
|
h = bh;
|
|
w = bh * ip;
|
|
} else {
|
|
w = bw;
|
|
h = bw / ip;
|
|
}
|
|
}
|
|
if (options.fit || options.cover) {
|
|
if (options.align === 'center') {
|
|
x = x + bw / 2 - w / 2;
|
|
} else if (options.align === 'right') {
|
|
x = x + bw - w;
|
|
}
|
|
if (options.valign === 'center') {
|
|
y = y + bh / 2 - h / 2;
|
|
} else if (options.valign === 'bottom') {
|
|
y = y + bh - h;
|
|
}
|
|
}
|
|
if (!ignoreOrientation) {
|
|
switch (image.orientation) {
|
|
// No orientation (need to flip image, though, because of the default transform matrix on the document)
|
|
default:
|
|
case 1:
|
|
h = -h;
|
|
y -= h;
|
|
rotateAngle = 0;
|
|
break;
|
|
// Flip Horizontal
|
|
case 2:
|
|
w = -w;
|
|
h = -h;
|
|
x -= w;
|
|
y -= h;
|
|
rotateAngle = 0;
|
|
break;
|
|
// Rotate 180 degrees
|
|
case 3:
|
|
originX = x;
|
|
originY = y;
|
|
h = -h;
|
|
x -= w;
|
|
rotateAngle = 180;
|
|
break;
|
|
// Flip vertical
|
|
case 4:
|
|
// Do nothing, image will be flipped
|
|
|
|
break;
|
|
// Flip horizontally and rotate 270 degrees CW
|
|
case 5:
|
|
originX = x;
|
|
originY = y;
|
|
[w, h] = [h, w];
|
|
y -= h;
|
|
rotateAngle = 90;
|
|
break;
|
|
// Rotate 90 degrees CW
|
|
case 6:
|
|
originX = x;
|
|
originY = y;
|
|
[w, h] = [h, w];
|
|
h = -h;
|
|
rotateAngle = 90;
|
|
break;
|
|
// Flip horizontally and rotate 90 degrees CW
|
|
case 7:
|
|
originX = x;
|
|
originY = y;
|
|
[w, h] = [h, w];
|
|
h = -h;
|
|
w = -w;
|
|
x -= w;
|
|
rotateAngle = 90;
|
|
break;
|
|
// Rotate 270 degrees CW
|
|
case 8:
|
|
originX = x;
|
|
originY = y;
|
|
[w, h] = [h, w];
|
|
h = -h;
|
|
x -= w;
|
|
y -= h;
|
|
rotateAngle = -90;
|
|
break;
|
|
}
|
|
} else {
|
|
h = -h;
|
|
y -= h;
|
|
rotateAngle = 0;
|
|
}
|
|
|
|
// create link annotations if the link option is given
|
|
if (options.link != null) {
|
|
this.link(x, y, w, h, options.link);
|
|
}
|
|
if (options.goTo != null) {
|
|
this.goTo(x, y, w, h, options.goTo);
|
|
}
|
|
if (options.destination != null) {
|
|
this.addNamedDestination(options.destination, 'XYZ', x, y, null);
|
|
}
|
|
|
|
// Set the current y position to below the image if it is in the document flow
|
|
if (this.y === y) {
|
|
this.y += h;
|
|
}
|
|
this.save();
|
|
if (rotateAngle) {
|
|
this.rotate(rotateAngle, {
|
|
origin: [originX, originY]
|
|
});
|
|
}
|
|
this.transform(w, 0, 0, h, x, y);
|
|
this.addContent(`/${image.label} Do`);
|
|
this.restore();
|
|
return this;
|
|
},
|
|
openImage(src) {
|
|
let image;
|
|
if (typeof src === 'string') {
|
|
image = this._imageRegistry[src];
|
|
}
|
|
if (!image) {
|
|
image = PDFImage.open(src, `I${++this._imageCount}`);
|
|
if (typeof src === 'string') {
|
|
this._imageRegistry[src] = image;
|
|
}
|
|
}
|
|
return image;
|
|
}
|
|
};
|
|
|
|
var AnnotationsMixin = {
|
|
annotate(x, y, w, h, options) {
|
|
options.Type = 'Annot';
|
|
options.Rect = this._convertRect(x, y, w, h);
|
|
options.Border = [0, 0, 0];
|
|
if (options.Subtype === 'Link' && typeof options.F === 'undefined') {
|
|
options.F = 1 << 2; // Print Annotation Flag
|
|
}
|
|
if (options.Subtype !== 'Link') {
|
|
if (options.C == null) {
|
|
options.C = this._normalizeColor(options.color || [0, 0, 0]);
|
|
}
|
|
} // convert colors
|
|
delete options.color;
|
|
if (typeof options.Dest === 'string') {
|
|
options.Dest = new String(options.Dest);
|
|
}
|
|
|
|
// Capitalize keys
|
|
for (let key in options) {
|
|
const val = options[key];
|
|
options[key[0].toUpperCase() + key.slice(1)] = val;
|
|
}
|
|
const ref = this.ref(options);
|
|
this.page.annotations.push(ref);
|
|
ref.end();
|
|
return this;
|
|
},
|
|
note(x, y, w, h, contents, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'Text';
|
|
options.Contents = new String(contents);
|
|
if (options.Name == null) {
|
|
options.Name = 'Comment';
|
|
}
|
|
if (options.color == null) {
|
|
options.color = [243, 223, 92];
|
|
}
|
|
return this.annotate(x, y, w, h, options);
|
|
},
|
|
goTo(x, y, w, h, name, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'Link';
|
|
options.A = this.ref({
|
|
S: 'GoTo',
|
|
D: new String(name)
|
|
});
|
|
options.A.end();
|
|
return this.annotate(x, y, w, h, options);
|
|
},
|
|
link(x, y, w, h, url, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'Link';
|
|
if (typeof url === 'number') {
|
|
// Link to a page in the document (the page must already exist)
|
|
const pages = this._root.data.Pages.data;
|
|
if (url >= 0 && url < pages.Kids.length) {
|
|
options.A = this.ref({
|
|
S: 'GoTo',
|
|
D: [pages.Kids[url], 'XYZ', null, null, null]
|
|
});
|
|
options.A.end();
|
|
} else {
|
|
throw new Error(`The document has no page ${url}`);
|
|
}
|
|
} else {
|
|
// Link to an external url
|
|
options.A = this.ref({
|
|
S: 'URI',
|
|
URI: new String(url)
|
|
});
|
|
options.A.end();
|
|
}
|
|
return this.annotate(x, y, w, h, options);
|
|
},
|
|
_markup(x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const [x1, y1, x2, y2] = this._convertRect(x, y, w, h);
|
|
options.QuadPoints = [x1, y2, x2, y2, x1, y1, x2, y1];
|
|
options.Contents = new String();
|
|
return this.annotate(x, y, w, h, options);
|
|
},
|
|
highlight(x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'Highlight';
|
|
if (options.color == null) {
|
|
options.color = [241, 238, 148];
|
|
}
|
|
return this._markup(x, y, w, h, options);
|
|
},
|
|
underline(x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'Underline';
|
|
return this._markup(x, y, w, h, options);
|
|
},
|
|
strike(x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'StrikeOut';
|
|
return this._markup(x, y, w, h, options);
|
|
},
|
|
lineAnnotation(x1, y1, x2, y2, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'Line';
|
|
options.Contents = new String();
|
|
options.L = [x1, this.page.height - y1, x2, this.page.height - y2];
|
|
return this.annotate(x1, y1, x2, y2, options);
|
|
},
|
|
rectAnnotation(x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'Square';
|
|
options.Contents = new String();
|
|
return this.annotate(x, y, w, h, options);
|
|
},
|
|
ellipseAnnotation(x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'Circle';
|
|
options.Contents = new String();
|
|
return this.annotate(x, y, w, h, options);
|
|
},
|
|
textAnnotation(x, y, w, h, text, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.Subtype = 'FreeText';
|
|
options.Contents = new String(text);
|
|
options.DA = new String();
|
|
return this.annotate(x, y, w, h, options);
|
|
},
|
|
fileAnnotation(x, y, w, h, file, options) {
|
|
if (file === void 0) {
|
|
file = {};
|
|
}
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
// create hidden file
|
|
const filespec = this.file(file.src, Object.assign({
|
|
hidden: true
|
|
}, file));
|
|
options.Subtype = 'FileAttachment';
|
|
options.FS = filespec;
|
|
|
|
// add description from filespec unless description (Contents) has already been set
|
|
if (options.Contents) {
|
|
options.Contents = new String(options.Contents);
|
|
} else if (filespec.data.Desc) {
|
|
options.Contents = filespec.data.Desc;
|
|
}
|
|
return this.annotate(x, y, w, h, options);
|
|
},
|
|
_convertRect(x1, y1, w, h) {
|
|
// flip y1 and y2
|
|
let y2 = y1;
|
|
y1 += h;
|
|
|
|
// make x2
|
|
let x2 = x1 + w;
|
|
|
|
// apply current transformation matrix to points
|
|
const [m0, m1, m2, m3, m4, m5] = this._ctm;
|
|
x1 = m0 * x1 + m2 * y1 + m4;
|
|
y1 = m1 * x1 + m3 * y1 + m5;
|
|
x2 = m0 * x2 + m2 * y2 + m4;
|
|
y2 = m1 * x2 + m3 * y2 + m5;
|
|
return [x1, y1, x2, y2];
|
|
}
|
|
};
|
|
|
|
class PDFOutline {
|
|
constructor(document, parent, title, dest, options) {
|
|
if (options === void 0) {
|
|
options = {
|
|
expanded: false
|
|
};
|
|
}
|
|
this.document = document;
|
|
this.options = options;
|
|
this.outlineData = {};
|
|
if (dest !== null) {
|
|
this.outlineData['Dest'] = [dest.dictionary, 'Fit'];
|
|
}
|
|
if (parent !== null) {
|
|
this.outlineData['Parent'] = parent;
|
|
}
|
|
if (title !== null) {
|
|
this.outlineData['Title'] = new String(title);
|
|
}
|
|
this.dictionary = this.document.ref(this.outlineData);
|
|
this.children = [];
|
|
}
|
|
addItem(title, options) {
|
|
if (options === void 0) {
|
|
options = {
|
|
expanded: false
|
|
};
|
|
}
|
|
const result = new PDFOutline(this.document, this.dictionary, title, this.document.page, options);
|
|
this.children.push(result);
|
|
return result;
|
|
}
|
|
endOutline() {
|
|
if (this.children.length > 0) {
|
|
if (this.options.expanded) {
|
|
this.outlineData.Count = this.children.length;
|
|
}
|
|
const first = this.children[0],
|
|
last = this.children[this.children.length - 1];
|
|
this.outlineData.First = first.dictionary;
|
|
this.outlineData.Last = last.dictionary;
|
|
for (let i = 0, len = this.children.length; i < len; i++) {
|
|
const child = this.children[i];
|
|
if (i > 0) {
|
|
child.outlineData.Prev = this.children[i - 1].dictionary;
|
|
}
|
|
if (i < this.children.length - 1) {
|
|
child.outlineData.Next = this.children[i + 1].dictionary;
|
|
}
|
|
child.endOutline();
|
|
}
|
|
}
|
|
return this.dictionary.end();
|
|
}
|
|
}
|
|
|
|
var OutlineMixin = {
|
|
initOutline() {
|
|
return this.outline = new PDFOutline(this, null, null, null);
|
|
},
|
|
endOutline() {
|
|
this.outline.endOutline();
|
|
if (this.outline.children.length > 0) {
|
|
this._root.data.Outlines = this.outline.dictionary;
|
|
return this._root.data.PageMode = 'UseOutlines';
|
|
}
|
|
}
|
|
};
|
|
|
|
/*
|
|
PDFStructureContent - a reference to a marked structure content
|
|
By Ben Schmidt
|
|
*/
|
|
|
|
class PDFStructureContent {
|
|
constructor(pageRef, mcid) {
|
|
this.refs = [{
|
|
pageRef,
|
|
mcid
|
|
}];
|
|
}
|
|
push(structContent) {
|
|
structContent.refs.forEach(ref => this.refs.push(ref));
|
|
}
|
|
}
|
|
|
|
/*
|
|
PDFStructureElement - represents an element in the PDF logical structure tree
|
|
By Ben Schmidt
|
|
*/
|
|
|
|
class PDFStructureElement {
|
|
constructor(document, type, options, children) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
if (children === void 0) {
|
|
children = null;
|
|
}
|
|
this.document = document;
|
|
this._attached = false;
|
|
this._ended = false;
|
|
this._flushed = false;
|
|
this.dictionary = document.ref({
|
|
// Type: "StructElem",
|
|
S: type
|
|
});
|
|
const data = this.dictionary.data;
|
|
if (Array.isArray(options) || this._isValidChild(options)) {
|
|
children = options;
|
|
options = {};
|
|
}
|
|
if (typeof options.title !== 'undefined') {
|
|
data.T = new String(options.title);
|
|
}
|
|
if (typeof options.lang !== 'undefined') {
|
|
data.Lang = new String(options.lang);
|
|
}
|
|
if (typeof options.alt !== 'undefined') {
|
|
data.Alt = new String(options.alt);
|
|
}
|
|
if (typeof options.expanded !== 'undefined') {
|
|
data.E = new String(options.expanded);
|
|
}
|
|
if (typeof options.actual !== 'undefined') {
|
|
data.ActualText = new String(options.actual);
|
|
}
|
|
this._children = [];
|
|
if (children) {
|
|
if (!Array.isArray(children)) {
|
|
children = [children];
|
|
}
|
|
children.forEach(child => this.add(child));
|
|
this.end();
|
|
}
|
|
}
|
|
add(child) {
|
|
if (this._ended) {
|
|
throw new Error(`Cannot add child to already-ended structure element`);
|
|
}
|
|
if (!this._isValidChild(child)) {
|
|
throw new Error(`Invalid structure element child`);
|
|
}
|
|
if (child instanceof PDFStructureElement) {
|
|
child.setParent(this.dictionary);
|
|
if (this._attached) {
|
|
child.setAttached();
|
|
}
|
|
}
|
|
if (child instanceof PDFStructureContent) {
|
|
this._addContentToParentTree(child);
|
|
}
|
|
if (typeof child === 'function' && this._attached) {
|
|
// _contentForClosure() adds the content to the parent tree
|
|
child = this._contentForClosure(child);
|
|
}
|
|
this._children.push(child);
|
|
return this;
|
|
}
|
|
_addContentToParentTree(content) {
|
|
content.refs.forEach(_ref => {
|
|
let {
|
|
pageRef,
|
|
mcid
|
|
} = _ref;
|
|
const pageStructParents = this.document.getStructParentTree().get(pageRef.data.StructParents);
|
|
pageStructParents[mcid] = this.dictionary;
|
|
});
|
|
}
|
|
setParent(parentRef) {
|
|
if (this.dictionary.data.P) {
|
|
throw new Error(`Structure element added to more than one parent`);
|
|
}
|
|
this.dictionary.data.P = parentRef;
|
|
this._flush();
|
|
}
|
|
setAttached() {
|
|
if (this._attached) {
|
|
return;
|
|
}
|
|
this._children.forEach((child, index) => {
|
|
if (child instanceof PDFStructureElement) {
|
|
child.setAttached();
|
|
}
|
|
if (typeof child === 'function') {
|
|
this._children[index] = this._contentForClosure(child);
|
|
}
|
|
});
|
|
this._attached = true;
|
|
this._flush();
|
|
}
|
|
end() {
|
|
if (this._ended) {
|
|
return;
|
|
}
|
|
this._children.filter(child => child instanceof PDFStructureElement).forEach(child => child.end());
|
|
this._ended = true;
|
|
this._flush();
|
|
}
|
|
_isValidChild(child) {
|
|
return child instanceof PDFStructureElement || child instanceof PDFStructureContent || typeof child === 'function';
|
|
}
|
|
_contentForClosure(closure) {
|
|
const content = this.document.markStructureContent(this.dictionary.data.S);
|
|
closure();
|
|
this.document.endMarkedContent();
|
|
this._addContentToParentTree(content);
|
|
return content;
|
|
}
|
|
_isFlushable() {
|
|
if (!this.dictionary.data.P || !this._ended) {
|
|
return false;
|
|
}
|
|
return this._children.every(child => {
|
|
if (typeof child === 'function') {
|
|
return false;
|
|
}
|
|
if (child instanceof PDFStructureElement) {
|
|
return child._isFlushable();
|
|
}
|
|
return true;
|
|
});
|
|
}
|
|
_flush() {
|
|
if (this._flushed || !this._isFlushable()) {
|
|
return;
|
|
}
|
|
this.dictionary.data.K = [];
|
|
this._children.forEach(child => this._flushChild(child));
|
|
this.dictionary.end();
|
|
|
|
// free memory used by children; the dictionary itself may still be
|
|
// referenced by a parent structure element or root, but we can
|
|
// at least trim the tree here
|
|
this._children = [];
|
|
this.dictionary.data.K = null;
|
|
this._flushed = true;
|
|
}
|
|
_flushChild(child) {
|
|
if (child instanceof PDFStructureElement) {
|
|
this.dictionary.data.K.push(child.dictionary);
|
|
}
|
|
if (child instanceof PDFStructureContent) {
|
|
child.refs.forEach(_ref2 => {
|
|
let {
|
|
pageRef,
|
|
mcid
|
|
} = _ref2;
|
|
if (!this.dictionary.data.Pg) {
|
|
this.dictionary.data.Pg = pageRef;
|
|
}
|
|
if (this.dictionary.data.Pg === pageRef) {
|
|
this.dictionary.data.K.push(mcid);
|
|
} else {
|
|
this.dictionary.data.K.push({
|
|
Type: 'MCR',
|
|
Pg: pageRef,
|
|
MCID: mcid
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
PDFNumberTree - represents a number tree object
|
|
*/
|
|
|
|
class PDFNumberTree extends PDFTree {
|
|
_compareKeys(a, b) {
|
|
return parseInt(a) - parseInt(b);
|
|
}
|
|
_keysName() {
|
|
return 'Nums';
|
|
}
|
|
_dataForKey(k) {
|
|
return parseInt(k);
|
|
}
|
|
}
|
|
|
|
/*
|
|
Markings mixin - support marked content sequences in content streams
|
|
By Ben Schmidt
|
|
*/
|
|
|
|
var MarkingsMixin = {
|
|
initMarkings(options) {
|
|
this.structChildren = [];
|
|
if (options.tagged) {
|
|
this.getMarkInfoDictionary().data.Marked = true;
|
|
this.getStructTreeRoot();
|
|
}
|
|
},
|
|
markContent(tag, options) {
|
|
if (options === void 0) {
|
|
options = null;
|
|
}
|
|
if (tag === 'Artifact' || options && options.mcid) {
|
|
let toClose = 0;
|
|
this.page.markings.forEach(marking => {
|
|
if (toClose || marking.structContent || marking.tag === 'Artifact') {
|
|
toClose++;
|
|
}
|
|
});
|
|
while (toClose--) {
|
|
this.endMarkedContent();
|
|
}
|
|
}
|
|
if (!options) {
|
|
this.page.markings.push({
|
|
tag
|
|
});
|
|
this.addContent(`/${tag} BMC`);
|
|
return this;
|
|
}
|
|
this.page.markings.push({
|
|
tag,
|
|
options
|
|
});
|
|
const dictionary = {};
|
|
if (typeof options.mcid !== 'undefined') {
|
|
dictionary.MCID = options.mcid;
|
|
}
|
|
if (tag === 'Artifact') {
|
|
if (typeof options.type === 'string') {
|
|
dictionary.Type = options.type;
|
|
}
|
|
if (Array.isArray(options.bbox)) {
|
|
dictionary.BBox = [options.bbox[0], this.page.height - options.bbox[3], options.bbox[2], this.page.height - options.bbox[1]];
|
|
}
|
|
if (Array.isArray(options.attached) && options.attached.every(val => typeof val === 'string')) {
|
|
dictionary.Attached = options.attached;
|
|
}
|
|
}
|
|
if (tag === 'Span') {
|
|
if (options.lang) {
|
|
dictionary.Lang = new String(options.lang);
|
|
}
|
|
if (options.alt) {
|
|
dictionary.Alt = new String(options.alt);
|
|
}
|
|
if (options.expanded) {
|
|
dictionary.E = new String(options.expanded);
|
|
}
|
|
if (options.actual) {
|
|
dictionary.ActualText = new String(options.actual);
|
|
}
|
|
}
|
|
this.addContent(`/${tag} ${PDFObject.convert(dictionary)} BDC`);
|
|
return this;
|
|
},
|
|
markStructureContent(tag, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const pageStructParents = this.getStructParentTree().get(this.page.structParentTreeKey);
|
|
const mcid = pageStructParents.length;
|
|
pageStructParents.push(null);
|
|
this.markContent(tag, {
|
|
...options,
|
|
mcid
|
|
});
|
|
const structContent = new PDFStructureContent(this.page.dictionary, mcid);
|
|
this.page.markings.slice(-1)[0].structContent = structContent;
|
|
return structContent;
|
|
},
|
|
endMarkedContent() {
|
|
this.page.markings.pop();
|
|
this.addContent('EMC');
|
|
return this;
|
|
},
|
|
struct(type, options, children) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
if (children === void 0) {
|
|
children = null;
|
|
}
|
|
return new PDFStructureElement(this, type, options, children);
|
|
},
|
|
addStructure(structElem) {
|
|
const structTreeRoot = this.getStructTreeRoot();
|
|
structElem.setParent(structTreeRoot);
|
|
structElem.setAttached();
|
|
this.structChildren.push(structElem);
|
|
if (!structTreeRoot.data.K) {
|
|
structTreeRoot.data.K = [];
|
|
}
|
|
structTreeRoot.data.K.push(structElem.dictionary);
|
|
return this;
|
|
},
|
|
initPageMarkings(pageMarkings) {
|
|
pageMarkings.forEach(marking => {
|
|
if (marking.structContent) {
|
|
const structContent = marking.structContent;
|
|
const newStructContent = this.markStructureContent(marking.tag, marking.options);
|
|
structContent.push(newStructContent);
|
|
this.page.markings.slice(-1)[0].structContent = structContent;
|
|
} else {
|
|
this.markContent(marking.tag, marking.options);
|
|
}
|
|
});
|
|
},
|
|
endPageMarkings(page) {
|
|
const pageMarkings = page.markings;
|
|
pageMarkings.forEach(() => page.write('EMC'));
|
|
page.markings = [];
|
|
return pageMarkings;
|
|
},
|
|
getMarkInfoDictionary() {
|
|
if (!this._root.data.MarkInfo) {
|
|
this._root.data.MarkInfo = this.ref({});
|
|
}
|
|
return this._root.data.MarkInfo;
|
|
},
|
|
hasMarkInfoDictionary() {
|
|
return !!this._root.data.MarkInfo;
|
|
},
|
|
getStructTreeRoot() {
|
|
if (!this._root.data.StructTreeRoot) {
|
|
this._root.data.StructTreeRoot = this.ref({
|
|
Type: 'StructTreeRoot',
|
|
ParentTree: new PDFNumberTree(),
|
|
ParentTreeNextKey: 0
|
|
});
|
|
}
|
|
return this._root.data.StructTreeRoot;
|
|
},
|
|
getStructParentTree() {
|
|
return this.getStructTreeRoot().data.ParentTree;
|
|
},
|
|
createStructParentTreeNextKey() {
|
|
// initialise the MarkInfo dictionary
|
|
this.getMarkInfoDictionary();
|
|
const structTreeRoot = this.getStructTreeRoot();
|
|
const key = structTreeRoot.data.ParentTreeNextKey++;
|
|
structTreeRoot.data.ParentTree.add(key, []);
|
|
return key;
|
|
},
|
|
endMarkings() {
|
|
const structTreeRoot = this._root.data.StructTreeRoot;
|
|
if (structTreeRoot) {
|
|
structTreeRoot.end();
|
|
this.structChildren.forEach(structElem => structElem.end());
|
|
}
|
|
if (this._root.data.MarkInfo) {
|
|
this._root.data.MarkInfo.end();
|
|
}
|
|
}
|
|
};
|
|
|
|
const FIELD_FLAGS = {
|
|
readOnly: 1,
|
|
required: 2,
|
|
noExport: 4,
|
|
multiline: 0x1000,
|
|
password: 0x2000,
|
|
toggleToOffButton: 0x4000,
|
|
radioButton: 0x8000,
|
|
pushButton: 0x10000,
|
|
combo: 0x20000,
|
|
edit: 0x40000,
|
|
sort: 0x80000,
|
|
multiSelect: 0x200000,
|
|
noSpell: 0x400000
|
|
};
|
|
const FIELD_JUSTIFY = {
|
|
left: 0,
|
|
center: 1,
|
|
right: 2
|
|
};
|
|
const VALUE_MAP = {
|
|
value: 'V',
|
|
defaultValue: 'DV'
|
|
};
|
|
const FORMAT_SPECIAL = {
|
|
zip: '0',
|
|
zipPlus4: '1',
|
|
zip4: '1',
|
|
phone: '2',
|
|
ssn: '3'
|
|
};
|
|
const FORMAT_DEFAULT = {
|
|
number: {
|
|
nDec: 0,
|
|
sepComma: false,
|
|
negStyle: 'MinusBlack',
|
|
currency: '',
|
|
currencyPrepend: true
|
|
},
|
|
percent: {
|
|
nDec: 0,
|
|
sepComma: false
|
|
}
|
|
};
|
|
var AcroFormMixin = {
|
|
/**
|
|
* Must call if adding AcroForms to a document. Must also call font() before
|
|
* this method to set the default font.
|
|
*/
|
|
initForm() {
|
|
if (!this._font) {
|
|
throw new Error('Must set a font before calling initForm method');
|
|
}
|
|
this._acroform = {
|
|
fonts: {},
|
|
defaultFont: this._font.name
|
|
};
|
|
this._acroform.fonts[this._font.id] = this._font.ref();
|
|
let data = {
|
|
Fields: [],
|
|
NeedAppearances: true,
|
|
DA: new String(`/${this._font.id} 0 Tf 0 g`),
|
|
DR: {
|
|
Font: {}
|
|
}
|
|
};
|
|
data.DR.Font[this._font.id] = this._font.ref();
|
|
const AcroForm = this.ref(data);
|
|
this._root.data.AcroForm = AcroForm;
|
|
return this;
|
|
},
|
|
/**
|
|
* Called automatically by document.js
|
|
*/
|
|
endAcroForm() {
|
|
if (this._root.data.AcroForm) {
|
|
if (!Object.keys(this._acroform.fonts).length && !this._acroform.defaultFont) {
|
|
throw new Error('No fonts specified for PDF form');
|
|
}
|
|
let fontDict = this._root.data.AcroForm.data.DR.Font;
|
|
Object.keys(this._acroform.fonts).forEach(name => {
|
|
fontDict[name] = this._acroform.fonts[name];
|
|
});
|
|
this._root.data.AcroForm.data.Fields.forEach(fieldRef => {
|
|
this._endChild(fieldRef);
|
|
});
|
|
this._root.data.AcroForm.end();
|
|
}
|
|
return this;
|
|
},
|
|
_endChild(ref) {
|
|
if (Array.isArray(ref.data.Kids)) {
|
|
ref.data.Kids.forEach(childRef => {
|
|
this._endChild(childRef);
|
|
});
|
|
ref.end();
|
|
}
|
|
return this;
|
|
},
|
|
/**
|
|
* Creates and adds a form field to the document. Form fields are intermediate
|
|
* nodes in a PDF form that are used to specify form name heirarchy and form
|
|
* value defaults.
|
|
* @param {string} name - field name (T attribute in field dictionary)
|
|
* @param {object} options - other attributes to include in field dictionary
|
|
*/
|
|
formField(name, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
let fieldDict = this._fieldDict(name, null, options);
|
|
let fieldRef = this.ref(fieldDict);
|
|
this._addToParent(fieldRef);
|
|
return fieldRef;
|
|
},
|
|
/**
|
|
* Creates and adds a Form Annotation to the document. Form annotations are
|
|
* called Widget annotations internally within a PDF file.
|
|
* @param {string} name - form field name (T attribute of widget annotation
|
|
* dictionary)
|
|
* @param {number} x
|
|
* @param {number} y
|
|
* @param {number} w
|
|
* @param {number} h
|
|
* @param {object} options
|
|
*/
|
|
formAnnotation(name, type, x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
let fieldDict = this._fieldDict(name, type, options);
|
|
fieldDict.Subtype = 'Widget';
|
|
if (fieldDict.F === undefined) {
|
|
fieldDict.F = 4; // print the annotation
|
|
}
|
|
|
|
// Add Field annot to page, and get it's ref
|
|
this.annotate(x, y, w, h, fieldDict);
|
|
let annotRef = this.page.annotations[this.page.annotations.length - 1];
|
|
return this._addToParent(annotRef);
|
|
},
|
|
formText(name, x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return this.formAnnotation(name, 'text', x, y, w, h, options);
|
|
},
|
|
formPushButton(name, x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return this.formAnnotation(name, 'pushButton', x, y, w, h, options);
|
|
},
|
|
formCombo(name, x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return this.formAnnotation(name, 'combo', x, y, w, h, options);
|
|
},
|
|
formList(name, x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return this.formAnnotation(name, 'list', x, y, w, h, options);
|
|
},
|
|
formRadioButton(name, x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return this.formAnnotation(name, 'radioButton', x, y, w, h, options);
|
|
},
|
|
formCheckbox(name, x, y, w, h, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return this.formAnnotation(name, 'checkbox', x, y, w, h, options);
|
|
},
|
|
_addToParent(fieldRef) {
|
|
let parent = fieldRef.data.Parent;
|
|
if (parent) {
|
|
if (!parent.data.Kids) {
|
|
parent.data.Kids = [];
|
|
}
|
|
parent.data.Kids.push(fieldRef);
|
|
} else {
|
|
this._root.data.AcroForm.data.Fields.push(fieldRef);
|
|
}
|
|
return this;
|
|
},
|
|
_fieldDict(name, type, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
if (!this._acroform) {
|
|
throw new Error('Call document.initForm() method before adding form elements to document');
|
|
}
|
|
let opts = Object.assign({}, options);
|
|
if (type !== null) {
|
|
opts = this._resolveType(type, options);
|
|
}
|
|
opts = this._resolveFlags(opts);
|
|
opts = this._resolveJustify(opts);
|
|
opts = this._resolveFont(opts);
|
|
opts = this._resolveStrings(opts);
|
|
opts = this._resolveColors(opts);
|
|
opts = this._resolveFormat(opts);
|
|
opts.T = new String(name);
|
|
if (opts.parent) {
|
|
opts.Parent = opts.parent;
|
|
delete opts.parent;
|
|
}
|
|
return opts;
|
|
},
|
|
_resolveType(type, opts) {
|
|
if (type === 'text') {
|
|
opts.FT = 'Tx';
|
|
} else if (type === 'pushButton') {
|
|
opts.FT = 'Btn';
|
|
opts.pushButton = true;
|
|
} else if (type === 'radioButton') {
|
|
opts.FT = 'Btn';
|
|
opts.radioButton = true;
|
|
} else if (type === 'checkbox') {
|
|
opts.FT = 'Btn';
|
|
} else if (type === 'combo') {
|
|
opts.FT = 'Ch';
|
|
opts.combo = true;
|
|
} else if (type === 'list') {
|
|
opts.FT = 'Ch';
|
|
} else {
|
|
throw new Error(`Invalid form annotation type '${type}'`);
|
|
}
|
|
return opts;
|
|
},
|
|
_resolveFormat(opts) {
|
|
const f = opts.format;
|
|
if (f && f.type) {
|
|
let fnKeystroke;
|
|
let fnFormat;
|
|
let params = '';
|
|
if (FORMAT_SPECIAL[f.type] !== undefined) {
|
|
fnKeystroke = `AFSpecial_Keystroke`;
|
|
fnFormat = `AFSpecial_Format`;
|
|
params = FORMAT_SPECIAL[f.type];
|
|
} else {
|
|
let format = f.type.charAt(0).toUpperCase() + f.type.slice(1);
|
|
fnKeystroke = `AF${format}_Keystroke`;
|
|
fnFormat = `AF${format}_Format`;
|
|
if (f.type === 'date') {
|
|
fnKeystroke += 'Ex';
|
|
params = String(f.param);
|
|
} else if (f.type === 'time') {
|
|
params = String(f.param);
|
|
} else if (f.type === 'number') {
|
|
let p = Object.assign({}, FORMAT_DEFAULT.number, f);
|
|
params = String([String(p.nDec), p.sepComma ? '0' : '1', '"' + p.negStyle + '"', 'null', '"' + p.currency + '"', String(p.currencyPrepend)].join(','));
|
|
} else if (f.type === 'percent') {
|
|
let p = Object.assign({}, FORMAT_DEFAULT.percent, f);
|
|
params = String([String(p.nDec), p.sepComma ? '0' : '1'].join(','));
|
|
}
|
|
}
|
|
opts.AA = opts.AA ? opts.AA : {};
|
|
opts.AA.K = {
|
|
S: 'JavaScript',
|
|
JS: new String(`${fnKeystroke}(${params});`)
|
|
};
|
|
opts.AA.F = {
|
|
S: 'JavaScript',
|
|
JS: new String(`${fnFormat}(${params});`)
|
|
};
|
|
}
|
|
delete opts.format;
|
|
return opts;
|
|
},
|
|
_resolveColors(opts) {
|
|
let color = this._normalizeColor(opts.backgroundColor);
|
|
if (color) {
|
|
if (!opts.MK) {
|
|
opts.MK = {};
|
|
}
|
|
opts.MK.BG = color;
|
|
}
|
|
color = this._normalizeColor(opts.borderColor);
|
|
if (color) {
|
|
if (!opts.MK) {
|
|
opts.MK = {};
|
|
}
|
|
opts.MK.BC = color;
|
|
}
|
|
delete opts.backgroundColor;
|
|
delete opts.borderColor;
|
|
return opts;
|
|
},
|
|
_resolveFlags(options) {
|
|
let result = 0;
|
|
Object.keys(options).forEach(key => {
|
|
if (FIELD_FLAGS[key]) {
|
|
if (options[key]) {
|
|
result |= FIELD_FLAGS[key];
|
|
}
|
|
delete options[key];
|
|
}
|
|
});
|
|
if (result !== 0) {
|
|
options.Ff = options.Ff ? options.Ff : 0;
|
|
options.Ff |= result;
|
|
}
|
|
return options;
|
|
},
|
|
_resolveJustify(options) {
|
|
let result = 0;
|
|
if (options.align !== undefined) {
|
|
if (typeof FIELD_JUSTIFY[options.align] === 'number') {
|
|
result = FIELD_JUSTIFY[options.align];
|
|
}
|
|
delete options.align;
|
|
}
|
|
if (result !== 0) {
|
|
options.Q = result; // default
|
|
}
|
|
return options;
|
|
},
|
|
_resolveFont(options) {
|
|
// add current font to document-level AcroForm dict if necessary
|
|
if (this._acroform.fonts[this._font.id] == null) {
|
|
this._acroform.fonts[this._font.id] = this._font.ref();
|
|
}
|
|
|
|
// add current font to field's resource dict (RD) if not the default acroform font
|
|
if (this._acroform.defaultFont !== this._font.name) {
|
|
options.DR = {
|
|
Font: {}
|
|
};
|
|
|
|
// Get the fontSize option. If not set use auto sizing
|
|
const fontSize = options.fontSize || 0;
|
|
options.DR.Font[this._font.id] = this._font.ref();
|
|
options.DA = new String(`/${this._font.id} ${fontSize} Tf 0 g`);
|
|
}
|
|
return options;
|
|
},
|
|
_resolveStrings(options) {
|
|
let select = [];
|
|
function appendChoices(a) {
|
|
if (Array.isArray(a)) {
|
|
for (let idx = 0; idx < a.length; idx++) {
|
|
if (typeof a[idx] === 'string') {
|
|
select.push(new String(a[idx]));
|
|
} else {
|
|
select.push(a[idx]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
appendChoices(options.Opt);
|
|
if (options.select) {
|
|
appendChoices(options.select);
|
|
delete options.select;
|
|
}
|
|
if (select.length) {
|
|
options.Opt = select;
|
|
}
|
|
Object.keys(VALUE_MAP).forEach(key => {
|
|
if (options[key] !== undefined) {
|
|
options[VALUE_MAP[key]] = options[key];
|
|
delete options[key];
|
|
}
|
|
});
|
|
['V', 'DV'].forEach(key => {
|
|
if (typeof options[key] === 'string') {
|
|
options[key] = new String(options[key]);
|
|
}
|
|
});
|
|
if (options.MK && options.MK.CA) {
|
|
options.MK.CA = new String(options.MK.CA);
|
|
}
|
|
if (options.label) {
|
|
options.MK = options.MK ? options.MK : {};
|
|
options.MK.CA = new String(options.label);
|
|
delete options.label;
|
|
}
|
|
return options;
|
|
}
|
|
};
|
|
|
|
var AttachmentsMixin = {
|
|
/**
|
|
* Embed contents of `src` in PDF
|
|
* @param {Buffer | ArrayBuffer | string} src input Buffer, ArrayBuffer, base64 encoded string or path to file
|
|
* @param {object} options
|
|
* * options.name: filename to be shown in PDF, will use `src` if none set
|
|
* * options.type: filetype to be shown in PDF
|
|
* * options.description: description to be shown in PDF
|
|
* * options.hidden: if true, do not add attachment to EmbeddedFiles dictionary. Useful for file attachment annotations
|
|
* * options.creationDate: override creation date
|
|
* * options.modifiedDate: override modified date
|
|
* * options.relationship: Relationship between the PDF document and its attached file. Can be 'Alternative', 'Data', 'Source', 'Supplement' or 'Unspecified'.
|
|
* @returns filespec reference
|
|
*/
|
|
file(src, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
options.name = options.name || src;
|
|
options.relationship = options.relationship || 'Unspecified';
|
|
const refBody = {
|
|
Type: 'EmbeddedFile',
|
|
Params: {}
|
|
};
|
|
let data;
|
|
if (!src) {
|
|
throw new Error('No src specified');
|
|
}
|
|
if (Buffer.isBuffer(src)) {
|
|
data = src;
|
|
} else if (src instanceof ArrayBuffer) {
|
|
data = Buffer.from(new Uint8Array(src));
|
|
} else {
|
|
let match;
|
|
if (match = /^data:(.*?);base64,(.*)$/.exec(src)) {
|
|
if (match[1]) {
|
|
refBody.Subtype = match[1].replace('/', '#2F');
|
|
}
|
|
data = Buffer.from(match[2], 'base64');
|
|
} else {
|
|
data = fs.readFileSync(src);
|
|
if (!data) {
|
|
throw new Error(`Could not read contents of file at filepath ${src}`);
|
|
}
|
|
|
|
// update CreationDate and ModDate
|
|
const {
|
|
birthtime,
|
|
ctime
|
|
} = fs.statSync(src);
|
|
refBody.Params.CreationDate = birthtime;
|
|
refBody.Params.ModDate = ctime;
|
|
}
|
|
}
|
|
|
|
// override creation date and modified date
|
|
if (options.creationDate instanceof Date) {
|
|
refBody.Params.CreationDate = options.creationDate;
|
|
}
|
|
if (options.modifiedDate instanceof Date) {
|
|
refBody.Params.ModDate = options.modifiedDate;
|
|
}
|
|
// add optional subtype
|
|
if (options.type) {
|
|
refBody.Subtype = options.type.replace('/', '#2F');
|
|
}
|
|
|
|
// add checksum and size information
|
|
const checksum = CryptoJS.MD5(CryptoJS.lib.WordArray.create(new Uint8Array(data)));
|
|
refBody.Params.CheckSum = new String(checksum);
|
|
refBody.Params.Size = data.byteLength;
|
|
|
|
// save some space when embedding the same file again
|
|
// if a file with the same name and metadata exists, reuse its reference
|
|
let ref;
|
|
if (!this._fileRegistry) this._fileRegistry = {};
|
|
let file = this._fileRegistry[options.name];
|
|
if (file && isEqual(refBody, file)) {
|
|
ref = file.ref;
|
|
} else {
|
|
ref = this.ref(refBody);
|
|
ref.end(data);
|
|
this._fileRegistry[options.name] = {
|
|
...refBody,
|
|
ref
|
|
};
|
|
}
|
|
// add filespec for embedded file
|
|
const fileSpecBody = {
|
|
Type: 'Filespec',
|
|
AFRelationship: options.relationship,
|
|
F: new String(options.name),
|
|
EF: {
|
|
F: ref
|
|
},
|
|
UF: new String(options.name)
|
|
};
|
|
if (options.description) {
|
|
fileSpecBody.Desc = new String(options.description);
|
|
}
|
|
const filespec = this.ref(fileSpecBody);
|
|
filespec.end();
|
|
if (!options.hidden) {
|
|
this.addNamedEmbeddedFile(options.name, filespec);
|
|
}
|
|
|
|
// Add file to the catalogue to be PDF/A3 compliant
|
|
if (this._root.data.AF) {
|
|
this._root.data.AF.push(filespec);
|
|
} else {
|
|
this._root.data.AF = [filespec];
|
|
}
|
|
return filespec;
|
|
}
|
|
};
|
|
|
|
/** check two embedded file metadata objects for equality */
|
|
function isEqual(a, b) {
|
|
return a.Subtype === b.Subtype && a.Params.CheckSum.toString() === b.Params.CheckSum.toString() && a.Params.Size === b.Params.Size && a.Params.CreationDate.getTime() === b.Params.CreationDate.getTime() && (a.Params.ModDate === undefined && b.Params.ModDate === undefined || a.Params.ModDate.getTime() === b.Params.ModDate.getTime());
|
|
}
|
|
|
|
var PDFA = {
|
|
initPDFA(pSubset) {
|
|
if (pSubset.charAt(pSubset.length - 3) === '-') {
|
|
this.subset_conformance = pSubset.charAt(pSubset.length - 1).toUpperCase();
|
|
this.subset = parseInt(pSubset.charAt(pSubset.length - 2));
|
|
} else {
|
|
// Default to Basic conformance when user doesn't specify
|
|
this.subset_conformance = 'B';
|
|
this.subset = parseInt(pSubset.charAt(pSubset.length - 1));
|
|
}
|
|
},
|
|
endSubset() {
|
|
this._addPdfaMetadata();
|
|
this._addColorOutputIntent();
|
|
},
|
|
_addColorOutputIntent() {
|
|
const iccProfile = fs.readFileSync(`${__dirname}/data/sRGB_IEC61966_2_1.icc`);
|
|
const colorProfileRef = this.ref({
|
|
Length: iccProfile.length,
|
|
N: 3
|
|
});
|
|
colorProfileRef.write(iccProfile);
|
|
colorProfileRef.end();
|
|
const intentRef = this.ref({
|
|
Type: 'OutputIntent',
|
|
S: 'GTS_PDFA1',
|
|
Info: new String('sRGB IEC61966-2.1'),
|
|
OutputConditionIdentifier: new String('sRGB IEC61966-2.1'),
|
|
DestOutputProfile: colorProfileRef
|
|
});
|
|
intentRef.end();
|
|
this._root.data.OutputIntents = [intentRef];
|
|
},
|
|
_getPdfaid() {
|
|
return `
|
|
<rdf:Description xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/" rdf:about="">
|
|
<pdfaid:part>${this.subset}</pdfaid:part>
|
|
<pdfaid:conformance>${this.subset_conformance}</pdfaid:conformance>
|
|
</rdf:Description>
|
|
`;
|
|
},
|
|
_addPdfaMetadata() {
|
|
this.appendXML(this._getPdfaid());
|
|
}
|
|
};
|
|
|
|
var PDFUA = {
|
|
initPDFUA() {
|
|
this.subset = 1;
|
|
},
|
|
endSubset() {
|
|
this._addPdfuaMetadata();
|
|
},
|
|
_addPdfuaMetadata() {
|
|
this.appendXML(this._getPdfuaid());
|
|
},
|
|
_getPdfuaid() {
|
|
return `
|
|
<rdf:Description xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/" rdf:about="">
|
|
<pdfuaid:part>${this.subset}</pdfuaid:part>
|
|
</rdf:Description>
|
|
`;
|
|
}
|
|
};
|
|
|
|
var SubsetMixin = {
|
|
_importSubset(subset) {
|
|
Object.assign(this, subset);
|
|
},
|
|
initSubset(options) {
|
|
switch (options.subset) {
|
|
case 'PDF/A-1':
|
|
case 'PDF/A-1a':
|
|
case 'PDF/A-1b':
|
|
case 'PDF/A-2':
|
|
case 'PDF/A-2a':
|
|
case 'PDF/A-2b':
|
|
case 'PDF/A-3':
|
|
case 'PDF/A-3a':
|
|
case 'PDF/A-3b':
|
|
this._importSubset(PDFA);
|
|
this.initPDFA(options.subset);
|
|
break;
|
|
case 'PDF/UA':
|
|
this._importSubset(PDFUA);
|
|
this.initPDFUA();
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
|
|
class PDFMetadata {
|
|
constructor() {
|
|
this._metadata = `
|
|
<?xpacket begin="\ufeff" id="W5M0MpCehiHzreSzNTczkc9d"?>
|
|
<x:xmpmeta xmlns:x="adobe:ns:meta/">
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
`;
|
|
}
|
|
_closeTags() {
|
|
this._metadata = this._metadata.concat(`
|
|
</rdf:RDF>
|
|
</x:xmpmeta>
|
|
<?xpacket end="w"?>
|
|
`);
|
|
}
|
|
append(xml, newline) {
|
|
if (newline === void 0) {
|
|
newline = true;
|
|
}
|
|
this._metadata = this._metadata.concat(xml);
|
|
if (newline) this._metadata = this._metadata.concat('\n');
|
|
}
|
|
getXML() {
|
|
return this._metadata;
|
|
}
|
|
getLength() {
|
|
return this._metadata.length;
|
|
}
|
|
end() {
|
|
this._closeTags();
|
|
this._metadata = this._metadata.trim();
|
|
}
|
|
}
|
|
|
|
var MetadataMixin = {
|
|
initMetadata() {
|
|
this.metadata = new PDFMetadata();
|
|
},
|
|
appendXML(xml, newline) {
|
|
if (newline === void 0) {
|
|
newline = true;
|
|
}
|
|
this.metadata.append(xml, newline);
|
|
},
|
|
_addInfo() {
|
|
this.appendXML(`
|
|
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
|
|
<xmp:CreateDate>${this.info.CreationDate.toISOString().split('.')[0] + 'Z'}</xmp:CreateDate>
|
|
<xmp:CreatorTool>${this.info.Creator}</xmp:CreatorTool>
|
|
</rdf:Description>
|
|
`);
|
|
if (this.info.Title || this.info.Author || this.info.Subject) {
|
|
this.appendXML(`
|
|
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
`);
|
|
if (this.info.Title) {
|
|
this.appendXML(`
|
|
<dc:title>
|
|
<rdf:Alt>
|
|
<rdf:li xml:lang="x-default">${this.info.Title}</rdf:li>
|
|
</rdf:Alt>
|
|
</dc:title>
|
|
`);
|
|
}
|
|
if (this.info.Author) {
|
|
this.appendXML(`
|
|
<dc:creator>
|
|
<rdf:Seq>
|
|
<rdf:li>${this.info.Author}</rdf:li>
|
|
</rdf:Seq>
|
|
</dc:creator>
|
|
`);
|
|
}
|
|
if (this.info.Subject) {
|
|
this.appendXML(`
|
|
<dc:description>
|
|
<rdf:Alt>
|
|
<rdf:li xml:lang="x-default">${this.info.Subject}</rdf:li>
|
|
</rdf:Alt>
|
|
</dc:description>
|
|
`);
|
|
}
|
|
this.appendXML(`
|
|
</rdf:Description>
|
|
`);
|
|
}
|
|
this.appendXML(`
|
|
<rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
|
|
<pdf:Producer>${this.info.Creator}</pdf:Producer>`, false);
|
|
if (this.info.Keywords) {
|
|
this.appendXML(`
|
|
<pdf:Keywords>${this.info.Keywords}</pdf:Keywords>`, false);
|
|
}
|
|
this.appendXML(`
|
|
</rdf:Description>
|
|
`);
|
|
},
|
|
endMetadata() {
|
|
this._addInfo();
|
|
this.metadata.end();
|
|
|
|
/*
|
|
Metadata was introduced in PDF 1.4, so adding it to 1.3
|
|
will likely only take up more space.
|
|
*/
|
|
if (this.version != 1.3) {
|
|
this.metadataRef = this.ref({
|
|
length: this.metadata.getLength(),
|
|
Type: 'Metadata',
|
|
Subtype: 'XML'
|
|
});
|
|
this.metadataRef.compress = false;
|
|
this.metadataRef.write(Buffer.from(this.metadata.getXML(), 'utf-8'));
|
|
this.metadataRef.end();
|
|
this._root.data.Metadata = this.metadataRef;
|
|
}
|
|
}
|
|
};
|
|
|
|
/*
|
|
PDFDocument - represents an entire PDF document
|
|
By Devon Govett
|
|
*/
|
|
|
|
class PDFDocument extends stream.Readable {
|
|
constructor(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
super(options);
|
|
this.options = options;
|
|
|
|
// PDF version
|
|
switch (options.pdfVersion) {
|
|
case '1.4':
|
|
this.version = 1.4;
|
|
break;
|
|
case '1.5':
|
|
this.version = 1.5;
|
|
break;
|
|
case '1.6':
|
|
this.version = 1.6;
|
|
break;
|
|
case '1.7':
|
|
case '1.7ext3':
|
|
this.version = 1.7;
|
|
break;
|
|
default:
|
|
this.version = 1.3;
|
|
break;
|
|
}
|
|
|
|
// Whether streams should be compressed
|
|
this.compress = this.options.compress != null ? this.options.compress : true;
|
|
this._pageBuffer = [];
|
|
this._pageBufferStart = 0;
|
|
|
|
// The PDF object store
|
|
this._offsets = [];
|
|
this._waiting = 0;
|
|
this._ended = false;
|
|
this._offset = 0;
|
|
const Pages = this.ref({
|
|
Type: 'Pages',
|
|
Count: 0,
|
|
Kids: []
|
|
});
|
|
const Names = this.ref({
|
|
Dests: new PDFNameTree()
|
|
});
|
|
this._root = this.ref({
|
|
Type: 'Catalog',
|
|
Pages,
|
|
Names
|
|
});
|
|
if (this.options.lang) {
|
|
this._root.data.Lang = new String(this.options.lang);
|
|
}
|
|
|
|
// The current page
|
|
this.page = null;
|
|
|
|
// Initialize mixins
|
|
this.initMetadata();
|
|
this.initColor();
|
|
this.initVector();
|
|
this.initFonts(options.font);
|
|
this.initText();
|
|
this.initImages();
|
|
this.initOutline();
|
|
this.initMarkings(options);
|
|
this.initSubset(options);
|
|
|
|
// Initialize the metadata
|
|
this.info = {
|
|
Producer: 'PDFKit',
|
|
Creator: 'PDFKit',
|
|
CreationDate: new Date()
|
|
};
|
|
if (this.options.info) {
|
|
for (let key in this.options.info) {
|
|
const val = this.options.info[key];
|
|
this.info[key] = val;
|
|
}
|
|
}
|
|
if (this.options.displayTitle) {
|
|
this._root.data.ViewerPreferences = this.ref({
|
|
DisplayDocTitle: true
|
|
});
|
|
}
|
|
|
|
// Generate file ID
|
|
this._id = PDFSecurity.generateFileID(this.info);
|
|
|
|
// Initialize security settings
|
|
// this._security = PDFSecurity.create(this, options);
|
|
|
|
// Write the header
|
|
// PDF version
|
|
this._write(`%PDF-${this.version}`);
|
|
|
|
// 4 binary chars, as recommended by the spec
|
|
this._write('%\xFF\xFF\xFF\xFF');
|
|
|
|
// Add the first page
|
|
if (this.options.autoFirstPage !== false) {
|
|
this.addPage();
|
|
}
|
|
}
|
|
addPage(options) {
|
|
if (options == null) {
|
|
({
|
|
options
|
|
} = this);
|
|
}
|
|
|
|
// end the current page if needed
|
|
if (!this.options.bufferPages) {
|
|
this.flushPages();
|
|
}
|
|
|
|
// create a page object
|
|
this.page = new PDFPage(this, options);
|
|
this._pageBuffer.push(this.page);
|
|
|
|
// add the page to the object store
|
|
const pages = this._root.data.Pages.data;
|
|
pages.Kids.push(this.page.dictionary);
|
|
pages.Count++;
|
|
|
|
// reset x and y coordinates
|
|
this.x = this.page.margins.left;
|
|
this.y = this.page.margins.top;
|
|
|
|
// flip PDF coordinate system so that the origin is in
|
|
// the top left rather than the bottom left
|
|
this._ctm = [1, 0, 0, 1, 0, 0];
|
|
this.transform(1, 0, 0, -1, 0, this.page.height);
|
|
this.emit('pageAdded');
|
|
return this;
|
|
}
|
|
continueOnNewPage(options) {
|
|
const pageMarkings = this.endPageMarkings(this.page);
|
|
this.addPage(options !== null && options !== void 0 ? options : this.page._options);
|
|
this.initPageMarkings(pageMarkings);
|
|
return this;
|
|
}
|
|
bufferedPageRange() {
|
|
return {
|
|
start: this._pageBufferStart,
|
|
count: this._pageBuffer.length
|
|
};
|
|
}
|
|
switchToPage(n) {
|
|
let page;
|
|
if (!(page = this._pageBuffer[n - this._pageBufferStart])) {
|
|
throw new Error(`switchToPage(${n}) out of bounds, current buffer covers pages ${this._pageBufferStart} to ${this._pageBufferStart + this._pageBuffer.length - 1}`);
|
|
}
|
|
return this.page = page;
|
|
}
|
|
flushPages() {
|
|
// this local variable exists so we're future-proof against
|
|
// reentrant calls to flushPages.
|
|
const pages = this._pageBuffer;
|
|
this._pageBuffer = [];
|
|
this._pageBufferStart += pages.length;
|
|
for (let page of pages) {
|
|
this.endPageMarkings(page);
|
|
page.end();
|
|
}
|
|
}
|
|
addNamedDestination(name) {
|
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
args[_key - 1] = arguments[_key];
|
|
}
|
|
if (args.length === 0) {
|
|
args = ['XYZ', null, null, null];
|
|
}
|
|
if (args[0] === 'XYZ' && args[2] !== null) {
|
|
args[2] = this.page.height - args[2];
|
|
}
|
|
args.unshift(this.page.dictionary);
|
|
this._root.data.Names.data.Dests.add(name, args);
|
|
}
|
|
addNamedEmbeddedFile(name, ref) {
|
|
if (!this._root.data.Names.data.EmbeddedFiles) {
|
|
// disabling /Limits for this tree fixes attachments not showing in Adobe Reader
|
|
this._root.data.Names.data.EmbeddedFiles = new PDFNameTree({
|
|
limits: false
|
|
});
|
|
}
|
|
|
|
// add filespec to EmbeddedFiles
|
|
this._root.data.Names.data.EmbeddedFiles.add(name, ref);
|
|
}
|
|
addNamedJavaScript(name, js) {
|
|
if (!this._root.data.Names.data.JavaScript) {
|
|
this._root.data.Names.data.JavaScript = new PDFNameTree();
|
|
}
|
|
let data = {
|
|
JS: new String(js),
|
|
S: 'JavaScript'
|
|
};
|
|
this._root.data.Names.data.JavaScript.add(name, data);
|
|
}
|
|
ref(data) {
|
|
const ref = new PDFReference(this, this._offsets.length + 1, data);
|
|
this._offsets.push(null); // placeholder for this object's offset once it is finalized
|
|
this._waiting++;
|
|
return ref;
|
|
}
|
|
_read() {}
|
|
// do nothing, but this method is required by node
|
|
|
|
_write(data) {
|
|
if (!Buffer.isBuffer(data)) {
|
|
data = Buffer.from(data + '\n', 'binary');
|
|
}
|
|
this.push(data);
|
|
return this._offset += data.length;
|
|
}
|
|
addContent(data) {
|
|
this.page.write(data);
|
|
return this;
|
|
}
|
|
_refEnd(ref) {
|
|
this._offsets[ref.id - 1] = ref.offset;
|
|
if (--this._waiting === 0 && this._ended) {
|
|
this._finalize();
|
|
return this._ended = false;
|
|
}
|
|
}
|
|
end() {
|
|
this.flushPages();
|
|
this._info = this.ref();
|
|
for (let key in this.info) {
|
|
let val = this.info[key];
|
|
if (typeof val === 'string') {
|
|
val = new String(val);
|
|
}
|
|
let entry = this.ref(val);
|
|
entry.end();
|
|
this._info.data[key] = entry;
|
|
}
|
|
this._info.end();
|
|
for (let name in this._fontFamilies) {
|
|
const font = this._fontFamilies[name];
|
|
font.finalize();
|
|
}
|
|
this.endOutline();
|
|
this.endMarkings();
|
|
if (this.subset) {
|
|
this.endSubset();
|
|
}
|
|
this.endMetadata();
|
|
this._root.end();
|
|
this._root.data.Pages.end();
|
|
this._root.data.Names.end();
|
|
this.endAcroForm();
|
|
if (this._root.data.ViewerPreferences) {
|
|
this._root.data.ViewerPreferences.end();
|
|
}
|
|
if (this._security) {
|
|
this._security.end();
|
|
}
|
|
if (this._waiting === 0) {
|
|
return this._finalize();
|
|
} else {
|
|
return this._ended = true;
|
|
}
|
|
}
|
|
_finalize() {
|
|
// generate xref
|
|
const xRefOffset = this._offset;
|
|
this._write('xref');
|
|
this._write(`0 ${this._offsets.length + 1}`);
|
|
this._write('0000000000 65535 f ');
|
|
for (let offset of this._offsets) {
|
|
offset = `0000000000${offset}`.slice(-10);
|
|
this._write(offset + ' 00000 n ');
|
|
}
|
|
|
|
// trailer
|
|
const trailer = {
|
|
Size: this._offsets.length + 1,
|
|
Root: this._root,
|
|
Info: this._info,
|
|
ID: [this._id, this._id]
|
|
};
|
|
if (this._security) {
|
|
trailer.Encrypt = this._security.dictionary;
|
|
}
|
|
this._write('trailer');
|
|
this._write(PDFObject.convert(trailer));
|
|
this._write('startxref');
|
|
this._write(`${xRefOffset}`);
|
|
this._write('%%EOF');
|
|
|
|
// end the stream
|
|
return this.push(null);
|
|
}
|
|
toString() {
|
|
return '[object PDFDocument]';
|
|
}
|
|
}
|
|
const mixin = methods => {
|
|
Object.assign(PDFDocument.prototype, methods);
|
|
};
|
|
mixin(MetadataMixin);
|
|
mixin(ColorMixin);
|
|
mixin(VectorMixin);
|
|
mixin(FontsMixin);
|
|
mixin(TextMixin);
|
|
mixin(ImagesMixin);
|
|
mixin(AnnotationsMixin);
|
|
mixin(OutlineMixin);
|
|
mixin(MarkingsMixin);
|
|
mixin(AcroFormMixin);
|
|
mixin(AttachmentsMixin);
|
|
mixin(SubsetMixin);
|
|
PDFDocument.LineWrapper = LineWrapper;
|
|
|
|
export { EmbeddedFont, PDFFont, StandardFont, PDFDocument as default };
|