upgrade
577
main/inc/lib/javascript/ViewerJS/compatibility.js
Normal file
@@ -0,0 +1,577 @@
|
||||
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||
/* Copyright 2012 Mozilla Foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
/* globals VBArray, PDFJS */
|
||||
|
||||
'use strict';
|
||||
|
||||
// Initializing PDFJS global object here, it case if we need to change/disable
|
||||
// some PDF.js features, e.g. range requests
|
||||
if (typeof PDFJS === 'undefined') {
|
||||
(typeof window !== 'undefined' ? window : this).PDFJS = {};
|
||||
}
|
||||
|
||||
// Checking if the typed arrays are supported
|
||||
// Support: iOS<6.0 (subarray), IE<10, Android<4.0
|
||||
(function checkTypedArrayCompatibility() {
|
||||
if (typeof Uint8Array !== 'undefined') {
|
||||
// Support: iOS<6.0
|
||||
if (typeof Uint8Array.prototype.subarray === 'undefined') {
|
||||
Uint8Array.prototype.subarray = function subarray(start, end) {
|
||||
return new Uint8Array(this.slice(start, end));
|
||||
};
|
||||
Float32Array.prototype.subarray = function subarray(start, end) {
|
||||
return new Float32Array(this.slice(start, end));
|
||||
};
|
||||
}
|
||||
|
||||
// Support: Android<4.1
|
||||
if (typeof Float64Array === 'undefined') {
|
||||
window.Float64Array = Float32Array;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function subarray(start, end) {
|
||||
return new TypedArray(this.slice(start, end));
|
||||
}
|
||||
|
||||
function setArrayOffset(array, offset) {
|
||||
if (arguments.length < 2) {
|
||||
offset = 0;
|
||||
}
|
||||
for (var i = 0, n = array.length; i < n; ++i, ++offset) {
|
||||
this[offset] = array[i] & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
function TypedArray(arg1) {
|
||||
var result, i, n;
|
||||
if (typeof arg1 === 'number') {
|
||||
result = [];
|
||||
for (i = 0; i < arg1; ++i) {
|
||||
result[i] = 0;
|
||||
}
|
||||
} else if ('slice' in arg1) {
|
||||
result = arg1.slice(0);
|
||||
} else {
|
||||
result = [];
|
||||
for (i = 0, n = arg1.length; i < n; ++i) {
|
||||
result[i] = arg1[i];
|
||||
}
|
||||
}
|
||||
|
||||
result.subarray = subarray;
|
||||
result.buffer = result;
|
||||
result.byteLength = result.length;
|
||||
result.set = setArrayOffset;
|
||||
|
||||
if (typeof arg1 === 'object' && arg1.buffer) {
|
||||
result.buffer = arg1.buffer;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
window.Uint8Array = TypedArray;
|
||||
window.Int8Array = TypedArray;
|
||||
|
||||
// we don't need support for set, byteLength for 32-bit array
|
||||
// so we can use the TypedArray as well
|
||||
window.Uint32Array = TypedArray;
|
||||
window.Int32Array = TypedArray;
|
||||
window.Uint16Array = TypedArray;
|
||||
window.Float32Array = TypedArray;
|
||||
window.Float64Array = TypedArray;
|
||||
})();
|
||||
|
||||
// URL = URL || webkitURL
|
||||
// Support: Safari<7, Android 4.2+
|
||||
(function normalizeURLObject() {
|
||||
if (!window.URL) {
|
||||
window.URL = window.webkitURL;
|
||||
}
|
||||
})();
|
||||
|
||||
// Object.defineProperty()?
|
||||
// Support: Android<4.0, Safari<5.1
|
||||
(function checkObjectDefinePropertyCompatibility() {
|
||||
if (typeof Object.defineProperty !== 'undefined') {
|
||||
var definePropertyPossible = true;
|
||||
try {
|
||||
// some browsers (e.g. safari) cannot use defineProperty() on DOM objects
|
||||
// and thus the native version is not sufficient
|
||||
Object.defineProperty(new Image(), 'id', { value: 'test' });
|
||||
// ... another test for android gb browser for non-DOM objects
|
||||
var Test = function Test() {};
|
||||
Test.prototype = { get id() { } };
|
||||
Object.defineProperty(new Test(), 'id',
|
||||
{ value: '', configurable: true, enumerable: true, writable: false });
|
||||
} catch (e) {
|
||||
definePropertyPossible = false;
|
||||
}
|
||||
if (definePropertyPossible) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Object.defineProperty = function objectDefineProperty(obj, name, def) {
|
||||
delete obj[name];
|
||||
if ('get' in def) {
|
||||
obj.__defineGetter__(name, def['get']);
|
||||
}
|
||||
if ('set' in def) {
|
||||
obj.__defineSetter__(name, def['set']);
|
||||
}
|
||||
if ('value' in def) {
|
||||
obj.__defineSetter__(name, function objectDefinePropertySetter(value) {
|
||||
this.__defineGetter__(name, function objectDefinePropertyGetter() {
|
||||
return value;
|
||||
});
|
||||
return value;
|
||||
});
|
||||
obj[name] = def.value;
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
|
||||
// No XMLHttpRequest#response?
|
||||
// Support: IE<11, Android <4.0
|
||||
(function checkXMLHttpRequestResponseCompatibility() {
|
||||
var xhrPrototype = XMLHttpRequest.prototype;
|
||||
var xhr = new XMLHttpRequest();
|
||||
if (!('overrideMimeType' in xhr)) {
|
||||
// IE10 might have response, but not overrideMimeType
|
||||
// Support: IE10
|
||||
Object.defineProperty(xhrPrototype, 'overrideMimeType', {
|
||||
value: function xmlHttpRequestOverrideMimeType(mimeType) {}
|
||||
});
|
||||
}
|
||||
if ('responseType' in xhr) {
|
||||
return;
|
||||
}
|
||||
|
||||
// The worker will be using XHR, so we can save time and disable worker.
|
||||
PDFJS.disableWorker = true;
|
||||
|
||||
Object.defineProperty(xhrPrototype, 'responseType', {
|
||||
get: function xmlHttpRequestGetResponseType() {
|
||||
return this._responseType || 'text';
|
||||
},
|
||||
set: function xmlHttpRequestSetResponseType(value) {
|
||||
if (value === 'text' || value === 'arraybuffer') {
|
||||
this._responseType = value;
|
||||
if (value === 'arraybuffer' &&
|
||||
typeof this.overrideMimeType === 'function') {
|
||||
this.overrideMimeType('text/plain; charset=x-user-defined');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Support: IE9
|
||||
if (typeof VBArray !== 'undefined') {
|
||||
Object.defineProperty(xhrPrototype, 'response', {
|
||||
get: function xmlHttpRequestResponseGet() {
|
||||
if (this.responseType === 'arraybuffer') {
|
||||
return new Uint8Array(new VBArray(this.responseBody).toArray());
|
||||
} else {
|
||||
return this.responseText;
|
||||
}
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
Object.defineProperty(xhrPrototype, 'response', {
|
||||
get: function xmlHttpRequestResponseGet() {
|
||||
if (this.responseType !== 'arraybuffer') {
|
||||
return this.responseText;
|
||||
}
|
||||
var text = this.responseText;
|
||||
var i, n = text.length;
|
||||
var result = new Uint8Array(n);
|
||||
for (i = 0; i < n; ++i) {
|
||||
result[i] = text.charCodeAt(i) & 0xFF;
|
||||
}
|
||||
return result.buffer;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
// window.btoa (base64 encode function) ?
|
||||
// Support: IE<10
|
||||
(function checkWindowBtoaCompatibility() {
|
||||
if ('btoa' in window) {
|
||||
return;
|
||||
}
|
||||
|
||||
var digits =
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||
|
||||
window.btoa = function windowBtoa(chars) {
|
||||
var buffer = '';
|
||||
var i, n;
|
||||
for (i = 0, n = chars.length; i < n; i += 3) {
|
||||
var b1 = chars.charCodeAt(i) & 0xFF;
|
||||
var b2 = chars.charCodeAt(i + 1) & 0xFF;
|
||||
var b3 = chars.charCodeAt(i + 2) & 0xFF;
|
||||
var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);
|
||||
var d3 = i + 1 < n ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;
|
||||
var d4 = i + 2 < n ? (b3 & 0x3F) : 64;
|
||||
buffer += (digits.charAt(d1) + digits.charAt(d2) +
|
||||
digits.charAt(d3) + digits.charAt(d4));
|
||||
}
|
||||
return buffer;
|
||||
};
|
||||
})();
|
||||
|
||||
// window.atob (base64 encode function)?
|
||||
// Support: IE<10
|
||||
(function checkWindowAtobCompatibility() {
|
||||
if ('atob' in window) {
|
||||
return;
|
||||
}
|
||||
|
||||
// https://github.com/davidchambers/Base64.js
|
||||
var digits =
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||
window.atob = function (input) {
|
||||
input = input.replace(/=+$/, '');
|
||||
if (input.length % 4 === 1) {
|
||||
throw new Error('bad atob input');
|
||||
}
|
||||
for (
|
||||
// initialize result and counters
|
||||
var bc = 0, bs, buffer, idx = 0, output = '';
|
||||
// get next character
|
||||
buffer = input.charAt(idx++);
|
||||
// character found in table?
|
||||
// initialize bit storage and add its ascii value
|
||||
~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
|
||||
// and if not first of each 4 characters,
|
||||
// convert the first 8 bits to one ascii character
|
||||
bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
|
||||
) {
|
||||
// try to find character in table (0-63, not found => -1)
|
||||
buffer = digits.indexOf(buffer);
|
||||
}
|
||||
return output;
|
||||
};
|
||||
})();
|
||||
|
||||
// Function.prototype.bind?
|
||||
// Support: Android<4.0, iOS<6.0
|
||||
(function checkFunctionPrototypeBindCompatibility() {
|
||||
if (typeof Function.prototype.bind !== 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
Function.prototype.bind = function functionPrototypeBind(obj) {
|
||||
var fn = this, headArgs = Array.prototype.slice.call(arguments, 1);
|
||||
var bound = function functionPrototypeBindBound() {
|
||||
var args = headArgs.concat(Array.prototype.slice.call(arguments));
|
||||
return fn.apply(obj, args);
|
||||
};
|
||||
return bound;
|
||||
};
|
||||
})();
|
||||
|
||||
// HTMLElement dataset property
|
||||
// Support: IE<11, Safari<5.1, Android<4.0
|
||||
(function checkDatasetProperty() {
|
||||
var div = document.createElement('div');
|
||||
if ('dataset' in div) {
|
||||
return; // dataset property exists
|
||||
}
|
||||
|
||||
Object.defineProperty(HTMLElement.prototype, 'dataset', {
|
||||
get: function() {
|
||||
if (this._dataset) {
|
||||
return this._dataset;
|
||||
}
|
||||
|
||||
var dataset = {};
|
||||
for (var j = 0, jj = this.attributes.length; j < jj; j++) {
|
||||
var attribute = this.attributes[j];
|
||||
if (attribute.name.substring(0, 5) !== 'data-') {
|
||||
continue;
|
||||
}
|
||||
var key = attribute.name.substring(5).replace(/\-([a-z])/g,
|
||||
function(all, ch) {
|
||||
return ch.toUpperCase();
|
||||
});
|
||||
dataset[key] = attribute.value;
|
||||
}
|
||||
|
||||
Object.defineProperty(this, '_dataset', {
|
||||
value: dataset,
|
||||
writable: false,
|
||||
enumerable: false
|
||||
});
|
||||
return dataset;
|
||||
},
|
||||
enumerable: true
|
||||
});
|
||||
})();
|
||||
|
||||
// HTMLElement classList property
|
||||
// Support: IE<10, Android<4.0, iOS<5.0
|
||||
(function checkClassListProperty() {
|
||||
var div = document.createElement('div');
|
||||
if ('classList' in div) {
|
||||
return; // classList property exists
|
||||
}
|
||||
|
||||
function changeList(element, itemName, add, remove) {
|
||||
var s = element.className || '';
|
||||
var list = s.split(/\s+/g);
|
||||
if (list[0] === '') {
|
||||
list.shift();
|
||||
}
|
||||
var index = list.indexOf(itemName);
|
||||
if (index < 0 && add) {
|
||||
list.push(itemName);
|
||||
}
|
||||
if (index >= 0 && remove) {
|
||||
list.splice(index, 1);
|
||||
}
|
||||
element.className = list.join(' ');
|
||||
return (index >= 0);
|
||||
}
|
||||
|
||||
var classListPrototype = {
|
||||
add: function(name) {
|
||||
changeList(this.element, name, true, false);
|
||||
},
|
||||
contains: function(name) {
|
||||
return changeList(this.element, name, false, false);
|
||||
},
|
||||
remove: function(name) {
|
||||
changeList(this.element, name, false, true);
|
||||
},
|
||||
toggle: function(name) {
|
||||
changeList(this.element, name, true, true);
|
||||
}
|
||||
};
|
||||
|
||||
Object.defineProperty(HTMLElement.prototype, 'classList', {
|
||||
get: function() {
|
||||
if (this._classList) {
|
||||
return this._classList;
|
||||
}
|
||||
|
||||
var classList = Object.create(classListPrototype, {
|
||||
element: {
|
||||
value: this,
|
||||
writable: false,
|
||||
enumerable: true
|
||||
}
|
||||
});
|
||||
Object.defineProperty(this, '_classList', {
|
||||
value: classList,
|
||||
writable: false,
|
||||
enumerable: false
|
||||
});
|
||||
return classList;
|
||||
},
|
||||
enumerable: true
|
||||
});
|
||||
})();
|
||||
|
||||
// Check console compatibility
|
||||
// In older IE versions the console object is not available
|
||||
// unless console is open.
|
||||
// Support: IE<10
|
||||
(function checkConsoleCompatibility() {
|
||||
if (!('console' in window)) {
|
||||
window.console = {
|
||||
log: function() {},
|
||||
error: function() {},
|
||||
warn: function() {}
|
||||
};
|
||||
} else if (!('bind' in console.log)) {
|
||||
// native functions in IE9 might not have bind
|
||||
console.log = (function(fn) {
|
||||
return function(msg) { return fn(msg); };
|
||||
})(console.log);
|
||||
console.error = (function(fn) {
|
||||
return function(msg) { return fn(msg); };
|
||||
})(console.error);
|
||||
console.warn = (function(fn) {
|
||||
return function(msg) { return fn(msg); };
|
||||
})(console.warn);
|
||||
}
|
||||
})();
|
||||
|
||||
// Check onclick compatibility in Opera
|
||||
// Support: Opera<15
|
||||
(function checkOnClickCompatibility() {
|
||||
// workaround for reported Opera bug DSK-354448:
|
||||
// onclick fires on disabled buttons with opaque content
|
||||
function ignoreIfTargetDisabled(event) {
|
||||
if (isDisabled(event.target)) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
}
|
||||
function isDisabled(node) {
|
||||
return node.disabled || (node.parentNode && isDisabled(node.parentNode));
|
||||
}
|
||||
if (navigator.userAgent.indexOf('Opera') !== -1) {
|
||||
// use browser detection since we cannot feature-check this bug
|
||||
document.addEventListener('click', ignoreIfTargetDisabled, true);
|
||||
}
|
||||
})();
|
||||
|
||||
// Checks if possible to use URL.createObjectURL()
|
||||
// Support: IE
|
||||
(function checkOnBlobSupport() {
|
||||
// sometimes IE loosing the data created with createObjectURL(), see #3977
|
||||
if (navigator.userAgent.indexOf('Trident') >= 0) {
|
||||
PDFJS.disableCreateObjectURL = true;
|
||||
}
|
||||
})();
|
||||
|
||||
// Checks if navigator.language is supported
|
||||
(function checkNavigatorLanguage() {
|
||||
if ('language' in navigator) {
|
||||
return;
|
||||
}
|
||||
PDFJS.locale = navigator.userLanguage || 'en-US';
|
||||
})();
|
||||
|
||||
(function checkRangeRequests() {
|
||||
// Safari has issues with cached range requests see:
|
||||
// https://github.com/mozilla/pdf.js/issues/3260
|
||||
// Last tested with version 6.0.4.
|
||||
// Support: Safari 6.0+
|
||||
var isSafari = Object.prototype.toString.call(
|
||||
window.HTMLElement).indexOf('Constructor') > 0;
|
||||
|
||||
// Older versions of Android (pre 3.0) has issues with range requests, see:
|
||||
// https://github.com/mozilla/pdf.js/issues/3381.
|
||||
// Make sure that we only match webkit-based Android browsers,
|
||||
// since Firefox/Fennec works as expected.
|
||||
// Support: Android<3.0
|
||||
var regex = /Android\s[0-2][^\d]/;
|
||||
var isOldAndroid = regex.test(navigator.userAgent);
|
||||
|
||||
// Range requests are broken in Chrome 39 and 40, https://crbug.com/442318
|
||||
var isChromeWithRangeBug = /Chrome\/(39|40)\./.test(navigator.userAgent);
|
||||
|
||||
if (isSafari || isOldAndroid || isChromeWithRangeBug) {
|
||||
PDFJS.disableRange = true;
|
||||
PDFJS.disableStream = true;
|
||||
}
|
||||
})();
|
||||
|
||||
// Check if the browser supports manipulation of the history.
|
||||
// Support: IE<10, Android<4.2
|
||||
(function checkHistoryManipulation() {
|
||||
// Android 2.x has so buggy pushState support that it was removed in
|
||||
// Android 3.0 and restored as late as in Android 4.2.
|
||||
// Support: Android 2.x
|
||||
if (!history.pushState || navigator.userAgent.indexOf('Android 2.') >= 0) {
|
||||
PDFJS.disableHistory = true;
|
||||
}
|
||||
})();
|
||||
|
||||
// Support: IE<11, Chrome<21, Android<4.4, Safari<6
|
||||
(function checkSetPresenceInImageData() {
|
||||
// IE < 11 will use window.CanvasPixelArray which lacks set function.
|
||||
if (window.CanvasPixelArray) {
|
||||
if (typeof window.CanvasPixelArray.prototype.set !== 'function') {
|
||||
window.CanvasPixelArray.prototype.set = function(arr) {
|
||||
for (var i = 0, ii = this.length; i < ii; i++) {
|
||||
this[i] = arr[i];
|
||||
}
|
||||
};
|
||||
}
|
||||
} else {
|
||||
// Old Chrome and Android use an inaccessible CanvasPixelArray prototype.
|
||||
// Because we cannot feature detect it, we rely on user agent parsing.
|
||||
var polyfill = false, versionMatch;
|
||||
if (navigator.userAgent.indexOf('Chrom') >= 0) {
|
||||
versionMatch = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);
|
||||
// Chrome < 21 lacks the set function.
|
||||
polyfill = versionMatch && parseInt(versionMatch[2]) < 21;
|
||||
} else if (navigator.userAgent.indexOf('Android') >= 0) {
|
||||
// Android < 4.4 lacks the set function.
|
||||
// Android >= 4.4 will contain Chrome in the user agent,
|
||||
// thus pass the Chrome check above and not reach this block.
|
||||
polyfill = /Android\s[0-4][^\d]/g.test(navigator.userAgent);
|
||||
} else if (navigator.userAgent.indexOf('Safari') >= 0) {
|
||||
versionMatch = navigator.userAgent.
|
||||
match(/Version\/([0-9]+)\.([0-9]+)\.([0-9]+) Safari\//);
|
||||
// Safari < 6 lacks the set function.
|
||||
polyfill = versionMatch && parseInt(versionMatch[1]) < 6;
|
||||
}
|
||||
|
||||
if (polyfill) {
|
||||
var contextPrototype = window.CanvasRenderingContext2D.prototype;
|
||||
contextPrototype._createImageData = contextPrototype.createImageData;
|
||||
contextPrototype.createImageData = function(w, h) {
|
||||
var imageData = this._createImageData(w, h);
|
||||
imageData.data.set = function(arr) {
|
||||
for (var i = 0, ii = this.length; i < ii; i++) {
|
||||
this[i] = arr[i];
|
||||
}
|
||||
};
|
||||
return imageData;
|
||||
};
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
// Support: IE<10, Android<4.0, iOS
|
||||
(function checkRequestAnimationFrame() {
|
||||
function fakeRequestAnimationFrame(callback) {
|
||||
window.setTimeout(callback, 20);
|
||||
}
|
||||
|
||||
var isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
|
||||
if (isIOS) {
|
||||
// requestAnimationFrame on iOS is broken, replacing with fake one.
|
||||
window.requestAnimationFrame = fakeRequestAnimationFrame;
|
||||
return;
|
||||
}
|
||||
if ('requestAnimationFrame' in window) {
|
||||
return;
|
||||
}
|
||||
window.requestAnimationFrame =
|
||||
window.mozRequestAnimationFrame ||
|
||||
window.webkitRequestAnimationFrame ||
|
||||
fakeRequestAnimationFrame;
|
||||
})();
|
||||
|
||||
(function checkCanvasSizeLimitation() {
|
||||
var isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
|
||||
var isAndroid = /Android/g.test(navigator.userAgent);
|
||||
if (isIOS || isAndroid) {
|
||||
// 5MP
|
||||
PDFJS.maxCanvasPixels = 5242880;
|
||||
}
|
||||
})();
|
||||
|
||||
// Disable fullscreen support for certain problematic configurations.
|
||||
// Support: IE11+ (when embedded).
|
||||
(function checkFullscreenSupport() {
|
||||
var isEmbeddedIE = (navigator.userAgent.indexOf('Trident') >= 0 &&
|
||||
window.parent !== window);
|
||||
if (isEmbeddedIE) {
|
||||
PDFJS.disableFullscreen = true;
|
||||
}
|
||||
})();
|
||||
27
main/inc/lib/javascript/ViewerJS/example.local.css
Normal file
@@ -0,0 +1,27 @@
|
||||
/* This is just a sample file with CSS rules. You should write your own @font-face declarations
|
||||
* to add support for your desired fonts.
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: 'Novecentowide Book';
|
||||
src: url("/ViewerJS/fonts/Novecentowide-Bold-webfont.eot");
|
||||
src: url("/ViewerJS/fonts/Novecentowide-Bold-webfont.eot?#iefix") format("embedded-opentype"),
|
||||
url("/ViewerJS/fonts/Novecentowide-Bold-webfont.woff") format("woff"),
|
||||
url("/fonts/Novecentowide-Bold-webfont.ttf") format("truetype"),
|
||||
url("/fonts/Novecentowide-Bold-webfont.svg#NovecentowideBookBold") format("svg");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'exotica';
|
||||
src: url('/ViewerJS/fonts/Exotica-webfont.eot');
|
||||
src: url('/ViewerJS/fonts/Exotica-webfont.eot?#iefix') format('embedded-opentype'),
|
||||
url('/ViewerJS/fonts/Exotica-webfont.woff') format('woff'),
|
||||
url('/ViewerJS/fonts/Exotica-webfont.ttf') format('truetype'),
|
||||
url('/ViewerJS/fonts/Exotica-webfont.svg#exoticamedium') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
|
||||
}
|
||||
|
||||
BIN
main/inc/lib/javascript/ViewerJS/images/kogmbh.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
main/inc/lib/javascript/ViewerJS/images/nlnet.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
main/inc/lib/javascript/ViewerJS/images/texture.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 512 B |
|
After Width: | Height: | Size: 491 B |
|
After Width: | Height: | Size: 237 B |
|
After Width: | Height: | Size: 353 B |
BIN
main/inc/lib/javascript/ViewerJS/images/toolbarButton-pageUp.png
Normal file
|
After Width: | Height: | Size: 344 B |
|
After Width: | Height: | Size: 4.3 KiB |
BIN
main/inc/lib/javascript/ViewerJS/images/toolbarButton-zoomIn.png
Normal file
|
After Width: | Height: | Size: 228 B |
|
After Width: | Height: | Size: 143 B |
145
main/inc/lib/javascript/ViewerJS/index.html
Normal file
8052
main/inc/lib/javascript/ViewerJS/pdf.js
Normal file
39353
main/inc/lib/javascript/ViewerJS/pdf.worker.js
vendored
Normal file
1
main/inc/lib/javascript/ViewerJS/pdfjsversion.js
Normal file
@@ -0,0 +1 @@
|
||||
var /**@const{!string}*/pdfjs_version = "v1.1.114";
|
||||
419
main/inc/lib/javascript/ViewerJS/text_layer_builder.js
Normal file
@@ -0,0 +1,419 @@
|
||||
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* Copyright 2012 Mozilla Foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
/* globals CustomStyle, PDFJS */
|
||||
|
||||
'use strict';
|
||||
|
||||
var MAX_TEXT_DIVS_TO_RENDER = 100000;
|
||||
|
||||
var NonWhitespaceRegexp = /\S/;
|
||||
|
||||
function isAllWhitespace(str) {
|
||||
return !NonWhitespaceRegexp.test(str);
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} TextLayerBuilderOptions
|
||||
* @property {HTMLDivElement} textLayerDiv - The text layer container.
|
||||
* @property {number} pageIndex - The page index.
|
||||
* @property {PageViewport} viewport - The viewport of the text layer.
|
||||
* @property {PDFFindController} findController
|
||||
*/
|
||||
|
||||
/**
|
||||
* TextLayerBuilder provides text-selection functionality for the PDF.
|
||||
* It does this by creating overlay divs over the PDF text. These divs
|
||||
* contain text that matches the PDF text they are overlaying. This object
|
||||
* also provides a way to highlight text that is being searched for.
|
||||
* @class
|
||||
*/
|
||||
var TextLayerBuilder = (function TextLayerBuilderClosure() {
|
||||
function TextLayerBuilder(options) {
|
||||
this.textLayerDiv = options.textLayerDiv;
|
||||
this.renderingDone = false;
|
||||
this.divContentDone = false;
|
||||
this.pageIdx = options.pageIndex;
|
||||
this.pageNumber = this.pageIdx + 1;
|
||||
this.matches = [];
|
||||
this.viewport = options.viewport;
|
||||
this.textDivs = [];
|
||||
this.findController = options.findController || null;
|
||||
}
|
||||
|
||||
TextLayerBuilder.prototype = {
|
||||
_finishRendering: function TextLayerBuilder_finishRendering() {
|
||||
this.renderingDone = true;
|
||||
|
||||
var event = document.createEvent('CustomEvent');
|
||||
event.initCustomEvent('textlayerrendered', true, true, {
|
||||
pageNumber: this.pageNumber
|
||||
});
|
||||
this.textLayerDiv.dispatchEvent(event);
|
||||
},
|
||||
|
||||
renderLayer: function TextLayerBuilder_renderLayer() {
|
||||
var textLayerFrag = document.createDocumentFragment();
|
||||
var textDivs = this.textDivs;
|
||||
var textDivsLength = textDivs.length;
|
||||
var canvas = document.createElement('canvas');
|
||||
var ctx = canvas.getContext('2d');
|
||||
|
||||
// No point in rendering many divs as it would make the browser
|
||||
// unusable even after the divs are rendered.
|
||||
if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
|
||||
this._finishRendering();
|
||||
return;
|
||||
}
|
||||
|
||||
var lastFontSize;
|
||||
var lastFontFamily;
|
||||
for (var i = 0; i < textDivsLength; i++) {
|
||||
var textDiv = textDivs[i];
|
||||
if (textDiv.dataset.isWhitespace !== undefined) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var fontSize = textDiv.style.fontSize;
|
||||
var fontFamily = textDiv.style.fontFamily;
|
||||
|
||||
// Only build font string and set to context if different from last.
|
||||
if (fontSize !== lastFontSize || fontFamily !== lastFontFamily) {
|
||||
ctx.font = fontSize + ' ' + fontFamily;
|
||||
lastFontSize = fontSize;
|
||||
lastFontFamily = fontFamily;
|
||||
}
|
||||
|
||||
var width = ctx.measureText(textDiv.textContent).width;
|
||||
if (width > 0) {
|
||||
textLayerFrag.appendChild(textDiv);
|
||||
var transform;
|
||||
if (textDiv.dataset.canvasWidth !== undefined) {
|
||||
// Dataset values come of type string.
|
||||
var textScale = textDiv.dataset.canvasWidth / width;
|
||||
transform = 'scaleX(' + textScale + ')';
|
||||
} else {
|
||||
transform = '';
|
||||
}
|
||||
var rotation = textDiv.dataset.angle;
|
||||
if (rotation) {
|
||||
transform = 'rotate(' + rotation + 'deg) ' + transform;
|
||||
}
|
||||
if (transform) {
|
||||
CustomStyle.setProp('transform' , textDiv, transform);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.textLayerDiv.appendChild(textLayerFrag);
|
||||
this._finishRendering();
|
||||
this.updateMatches();
|
||||
},
|
||||
|
||||
/**
|
||||
* Renders the text layer.
|
||||
* @param {number} timeout (optional) if specified, the rendering waits
|
||||
* for specified amount of ms.
|
||||
*/
|
||||
render: function TextLayerBuilder_render(timeout) {
|
||||
if (!this.divContentDone || this.renderingDone) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.renderTimer) {
|
||||
clearTimeout(this.renderTimer);
|
||||
this.renderTimer = null;
|
||||
}
|
||||
|
||||
if (!timeout) { // Render right away
|
||||
this.renderLayer();
|
||||
} else { // Schedule
|
||||
var self = this;
|
||||
this.renderTimer = setTimeout(function() {
|
||||
self.renderLayer();
|
||||
self.renderTimer = null;
|
||||
}, timeout);
|
||||
}
|
||||
},
|
||||
|
||||
appendText: function TextLayerBuilder_appendText(geom, styles) {
|
||||
var style = styles[geom.fontName];
|
||||
var textDiv = document.createElement('div');
|
||||
this.textDivs.push(textDiv);
|
||||
if (isAllWhitespace(geom.str)) {
|
||||
textDiv.dataset.isWhitespace = true;
|
||||
return;
|
||||
}
|
||||
var tx = PDFJS.Util.transform(this.viewport.transform, geom.transform);
|
||||
var angle = Math.atan2(tx[1], tx[0]);
|
||||
if (style.vertical) {
|
||||
angle += Math.PI / 2;
|
||||
}
|
||||
var fontHeight = Math.sqrt((tx[2] * tx[2]) + (tx[3] * tx[3]));
|
||||
var fontAscent = fontHeight;
|
||||
if (style.ascent) {
|
||||
fontAscent = style.ascent * fontAscent;
|
||||
} else if (style.descent) {
|
||||
fontAscent = (1 + style.descent) * fontAscent;
|
||||
}
|
||||
|
||||
var left;
|
||||
var top;
|
||||
if (angle === 0) {
|
||||
left = tx[4];
|
||||
top = tx[5] - fontAscent;
|
||||
} else {
|
||||
left = tx[4] + (fontAscent * Math.sin(angle));
|
||||
top = tx[5] - (fontAscent * Math.cos(angle));
|
||||
}
|
||||
textDiv.style.left = left + 'px';
|
||||
textDiv.style.top = top + 'px';
|
||||
textDiv.style.fontSize = fontHeight + 'px';
|
||||
textDiv.style.fontFamily = style.fontFamily;
|
||||
|
||||
textDiv.textContent = geom.str;
|
||||
// |fontName| is only used by the Font Inspector. This test will succeed
|
||||
// when e.g. the Font Inspector is off but the Stepper is on, but it's
|
||||
// not worth the effort to do a more accurate test.
|
||||
if (PDFJS.pdfBug) {
|
||||
textDiv.dataset.fontName = geom.fontName;
|
||||
}
|
||||
// Storing into dataset will convert number into string.
|
||||
if (angle !== 0) {
|
||||
textDiv.dataset.angle = angle * (180 / Math.PI);
|
||||
}
|
||||
// We don't bother scaling single-char text divs, because it has very
|
||||
// little effect on text highlighting. This makes scrolling on docs with
|
||||
// lots of such divs a lot faster.
|
||||
if (textDiv.textContent.length > 1) {
|
||||
if (style.vertical) {
|
||||
textDiv.dataset.canvasWidth = geom.height * this.viewport.scale;
|
||||
} else {
|
||||
textDiv.dataset.canvasWidth = geom.width * this.viewport.scale;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
setTextContent: function TextLayerBuilder_setTextContent(textContent) {
|
||||
this.textContent = textContent;
|
||||
|
||||
var textItems = textContent.items;
|
||||
for (var i = 0, len = textItems.length; i < len; i++) {
|
||||
this.appendText(textItems[i], textContent.styles);
|
||||
}
|
||||
this.divContentDone = true;
|
||||
},
|
||||
|
||||
convertMatches: function TextLayerBuilder_convertMatches(matches) {
|
||||
var i = 0;
|
||||
var iIndex = 0;
|
||||
var bidiTexts = this.textContent.items;
|
||||
var end = bidiTexts.length - 1;
|
||||
var queryLen = (this.findController === null ?
|
||||
0 : this.findController.state.query.length);
|
||||
var ret = [];
|
||||
|
||||
for (var m = 0, len = matches.length; m < len; m++) {
|
||||
// Calculate the start position.
|
||||
var matchIdx = matches[m];
|
||||
|
||||
// Loop over the divIdxs.
|
||||
while (i !== end && matchIdx >= (iIndex + bidiTexts[i].str.length)) {
|
||||
iIndex += bidiTexts[i].str.length;
|
||||
i++;
|
||||
}
|
||||
|
||||
if (i === bidiTexts.length) {
|
||||
console.error('Could not find a matching mapping');
|
||||
}
|
||||
|
||||
var match = {
|
||||
begin: {
|
||||
divIdx: i,
|
||||
offset: matchIdx - iIndex
|
||||
}
|
||||
};
|
||||
|
||||
// Calculate the end position.
|
||||
matchIdx += queryLen;
|
||||
|
||||
// Somewhat the same array as above, but use > instead of >= to get
|
||||
// the end position right.
|
||||
while (i !== end && matchIdx > (iIndex + bidiTexts[i].str.length)) {
|
||||
iIndex += bidiTexts[i].str.length;
|
||||
i++;
|
||||
}
|
||||
|
||||
match.end = {
|
||||
divIdx: i,
|
||||
offset: matchIdx - iIndex
|
||||
};
|
||||
ret.push(match);
|
||||
}
|
||||
|
||||
return ret;
|
||||
},
|
||||
|
||||
renderMatches: function TextLayerBuilder_renderMatches(matches) {
|
||||
// Early exit if there is nothing to render.
|
||||
if (matches.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var bidiTexts = this.textContent.items;
|
||||
var textDivs = this.textDivs;
|
||||
var prevEnd = null;
|
||||
var pageIdx = this.pageIdx;
|
||||
var isSelectedPage = (this.findController === null ?
|
||||
false : (pageIdx === this.findController.selected.pageIdx));
|
||||
var selectedMatchIdx = (this.findController === null ?
|
||||
-1 : this.findController.selected.matchIdx);
|
||||
var highlightAll = (this.findController === null ?
|
||||
false : this.findController.state.highlightAll);
|
||||
var infinity = {
|
||||
divIdx: -1,
|
||||
offset: undefined
|
||||
};
|
||||
|
||||
function beginText(begin, className) {
|
||||
var divIdx = begin.divIdx;
|
||||
textDivs[divIdx].textContent = '';
|
||||
appendTextToDiv(divIdx, 0, begin.offset, className);
|
||||
}
|
||||
|
||||
function appendTextToDiv(divIdx, fromOffset, toOffset, className) {
|
||||
var div = textDivs[divIdx];
|
||||
var content = bidiTexts[divIdx].str.substring(fromOffset, toOffset);
|
||||
var node = document.createTextNode(content);
|
||||
if (className) {
|
||||
var span = document.createElement('span');
|
||||
span.className = className;
|
||||
span.appendChild(node);
|
||||
div.appendChild(span);
|
||||
return;
|
||||
}
|
||||
div.appendChild(node);
|
||||
}
|
||||
|
||||
var i0 = selectedMatchIdx, i1 = i0 + 1;
|
||||
if (highlightAll) {
|
||||
i0 = 0;
|
||||
i1 = matches.length;
|
||||
} else if (!isSelectedPage) {
|
||||
// Not highlighting all and this isn't the selected page, so do nothing.
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = i0; i < i1; i++) {
|
||||
var match = matches[i];
|
||||
var begin = match.begin;
|
||||
var end = match.end;
|
||||
var isSelected = (isSelectedPage && i === selectedMatchIdx);
|
||||
var highlightSuffix = (isSelected ? ' selected' : '');
|
||||
|
||||
if (this.findController) {
|
||||
this.findController.updateMatchPosition(pageIdx, i, textDivs,
|
||||
begin.divIdx, end.divIdx);
|
||||
}
|
||||
|
||||
// Match inside new div.
|
||||
if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {
|
||||
// If there was a previous div, then add the text at the end.
|
||||
if (prevEnd !== null) {
|
||||
appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
|
||||
}
|
||||
// Clear the divs and set the content until the starting point.
|
||||
beginText(begin);
|
||||
} else {
|
||||
appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);
|
||||
}
|
||||
|
||||
if (begin.divIdx === end.divIdx) {
|
||||
appendTextToDiv(begin.divIdx, begin.offset, end.offset,
|
||||
'highlight' + highlightSuffix);
|
||||
} else {
|
||||
appendTextToDiv(begin.divIdx, begin.offset, infinity.offset,
|
||||
'highlight begin' + highlightSuffix);
|
||||
for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {
|
||||
textDivs[n0].className = 'highlight middle' + highlightSuffix;
|
||||
}
|
||||
beginText(end, 'highlight end' + highlightSuffix);
|
||||
}
|
||||
prevEnd = end;
|
||||
}
|
||||
|
||||
if (prevEnd) {
|
||||
appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
|
||||
}
|
||||
},
|
||||
|
||||
updateMatches: function TextLayerBuilder_updateMatches() {
|
||||
// Only show matches when all rendering is done.
|
||||
if (!this.renderingDone) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Clear all matches.
|
||||
var matches = this.matches;
|
||||
var textDivs = this.textDivs;
|
||||
var bidiTexts = this.textContent.items;
|
||||
var clearedUntilDivIdx = -1;
|
||||
|
||||
// Clear all current matches.
|
||||
for (var i = 0, len = matches.length; i < len; i++) {
|
||||
var match = matches[i];
|
||||
var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);
|
||||
for (var n = begin, end = match.end.divIdx; n <= end; n++) {
|
||||
var div = textDivs[n];
|
||||
div.textContent = bidiTexts[n].str;
|
||||
div.className = '';
|
||||
}
|
||||
clearedUntilDivIdx = match.end.divIdx + 1;
|
||||
}
|
||||
|
||||
if (this.findController === null || !this.findController.active) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Convert the matches on the page controller into the match format
|
||||
// used for the textLayer.
|
||||
this.matches = this.convertMatches(this.findController === null ?
|
||||
[] : (this.findController.pageMatches[this.pageIdx] || []));
|
||||
this.renderMatches(this.matches);
|
||||
}
|
||||
};
|
||||
return TextLayerBuilder;
|
||||
})();
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @implements IPDFTextLayerFactory
|
||||
*/
|
||||
function DefaultTextLayerFactory() {}
|
||||
DefaultTextLayerFactory.prototype = {
|
||||
/**
|
||||
* @param {HTMLDivElement} textLayerDiv
|
||||
* @param {number} pageIndex
|
||||
* @param {PageViewport} viewport
|
||||
* @returns {TextLayerBuilder}
|
||||
*/
|
||||
createTextLayerBuilder: function (textLayerDiv, pageIndex, viewport) {
|
||||
return new TextLayerBuilder({
|
||||
textLayerDiv: textLayerDiv,
|
||||
pageIndex: pageIndex,
|
||||
viewport: viewport
|
||||
});
|
||||
}
|
||||
};
|
||||
394
main/inc/lib/javascript/ViewerJS/ui_utils.js
Normal file
@@ -0,0 +1,394 @@
|
||||
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* Copyright 2012 Mozilla Foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var CSS_UNITS = 96.0 / 72.0;
|
||||
var DEFAULT_SCALE = 'auto';
|
||||
var UNKNOWN_SCALE = 0;
|
||||
var MAX_AUTO_SCALE = 1.25;
|
||||
var SCROLLBAR_PADDING = 40;
|
||||
var VERTICAL_PADDING = 5;
|
||||
|
||||
// optimised CSS custom property getter/setter
|
||||
var CustomStyle = (function CustomStyleClosure() {
|
||||
|
||||
// As noted on: http://www.zachstronaut.com/posts/2009/02/17/
|
||||
// animate-css-transforms-firefox-webkit.html
|
||||
// in some versions of IE9 it is critical that ms appear in this list
|
||||
// before Moz
|
||||
var prefixes = ['ms', 'Moz', 'Webkit', 'O'];
|
||||
var _cache = {};
|
||||
|
||||
function CustomStyle() {}
|
||||
|
||||
CustomStyle.getProp = function get(propName, element) {
|
||||
// check cache only when no element is given
|
||||
if (arguments.length === 1 && typeof _cache[propName] === 'string') {
|
||||
return _cache[propName];
|
||||
}
|
||||
|
||||
element = element || document.documentElement;
|
||||
var style = element.style, prefixed, uPropName;
|
||||
|
||||
// test standard property first
|
||||
if (typeof style[propName] === 'string') {
|
||||
return (_cache[propName] = propName);
|
||||
}
|
||||
|
||||
// capitalize
|
||||
uPropName = propName.charAt(0).toUpperCase() + propName.slice(1);
|
||||
|
||||
// test vendor specific properties
|
||||
for (var i = 0, l = prefixes.length; i < l; i++) {
|
||||
prefixed = prefixes[i] + uPropName;
|
||||
if (typeof style[prefixed] === 'string') {
|
||||
return (_cache[propName] = prefixed);
|
||||
}
|
||||
}
|
||||
|
||||
//if all fails then set to undefined
|
||||
return (_cache[propName] = 'undefined');
|
||||
};
|
||||
|
||||
CustomStyle.setProp = function set(propName, element, str) {
|
||||
var prop = this.getProp(propName);
|
||||
if (prop !== 'undefined') {
|
||||
element.style[prop] = str;
|
||||
}
|
||||
};
|
||||
|
||||
return CustomStyle;
|
||||
})();
|
||||
|
||||
function getFileName(url) {
|
||||
var anchor = url.indexOf('#');
|
||||
var query = url.indexOf('?');
|
||||
var end = Math.min(
|
||||
anchor > 0 ? anchor : url.length,
|
||||
query > 0 ? query : url.length);
|
||||
return url.substring(url.lastIndexOf('/', end) + 1, end);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns scale factor for the canvas. It makes sense for the HiDPI displays.
|
||||
* @return {Object} The object with horizontal (sx) and vertical (sy)
|
||||
scales. The scaled property is set to false if scaling is
|
||||
not required, true otherwise.
|
||||
*/
|
||||
function getOutputScale(ctx) {
|
||||
var devicePixelRatio = window.devicePixelRatio || 1;
|
||||
var backingStoreRatio = ctx.webkitBackingStorePixelRatio ||
|
||||
ctx.mozBackingStorePixelRatio ||
|
||||
ctx.msBackingStorePixelRatio ||
|
||||
ctx.oBackingStorePixelRatio ||
|
||||
ctx.backingStorePixelRatio || 1;
|
||||
var pixelRatio = devicePixelRatio / backingStoreRatio;
|
||||
return {
|
||||
sx: pixelRatio,
|
||||
sy: pixelRatio,
|
||||
scaled: pixelRatio !== 1
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Scrolls specified element into view of its parent.
|
||||
* element {Object} The element to be visible.
|
||||
* spot {Object} An object with optional top and left properties,
|
||||
* specifying the offset from the top left edge.
|
||||
*/
|
||||
function scrollIntoView(element, spot) {
|
||||
// Assuming offsetParent is available (it's not available when viewer is in
|
||||
// hidden iframe or object). We have to scroll: if the offsetParent is not set
|
||||
// producing the error. See also animationStartedClosure.
|
||||
var parent = element.offsetParent;
|
||||
var offsetY = element.offsetTop + element.clientTop;
|
||||
var offsetX = element.offsetLeft + element.clientLeft;
|
||||
if (!parent) {
|
||||
console.error('offsetParent is not set -- cannot scroll');
|
||||
return;
|
||||
}
|
||||
while (parent.clientHeight === parent.scrollHeight) {
|
||||
if (parent.dataset._scaleY) {
|
||||
offsetY /= parent.dataset._scaleY;
|
||||
offsetX /= parent.dataset._scaleX;
|
||||
}
|
||||
offsetY += parent.offsetTop;
|
||||
offsetX += parent.offsetLeft;
|
||||
parent = parent.offsetParent;
|
||||
if (!parent) {
|
||||
return; // no need to scroll
|
||||
}
|
||||
}
|
||||
if (spot) {
|
||||
if (spot.top !== undefined) {
|
||||
offsetY += spot.top;
|
||||
}
|
||||
if (spot.left !== undefined) {
|
||||
offsetX += spot.left;
|
||||
parent.scrollLeft = offsetX;
|
||||
}
|
||||
}
|
||||
parent.scrollTop = offsetY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to start monitoring the scroll event and converting them into
|
||||
* PDF.js friendly one: with scroll debounce and scroll direction.
|
||||
*/
|
||||
function watchScroll(viewAreaElement, callback) {
|
||||
var debounceScroll = function debounceScroll(evt) {
|
||||
if (rAF) {
|
||||
return;
|
||||
}
|
||||
// schedule an invocation of scroll for next animation frame.
|
||||
rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {
|
||||
rAF = null;
|
||||
|
||||
var currentY = viewAreaElement.scrollTop;
|
||||
var lastY = state.lastY;
|
||||
if (currentY !== lastY) {
|
||||
state.down = currentY > lastY;
|
||||
}
|
||||
state.lastY = currentY;
|
||||
callback(state);
|
||||
});
|
||||
};
|
||||
|
||||
var state = {
|
||||
down: true,
|
||||
lastY: viewAreaElement.scrollTop,
|
||||
_eventHandler: debounceScroll
|
||||
};
|
||||
|
||||
var rAF = null;
|
||||
viewAreaElement.addEventListener('scroll', debounceScroll, true);
|
||||
return state;
|
||||
}
|
||||
|
||||
/**
|
||||
* Use binary search to find the index of the first item in a given array which
|
||||
* passes a given condition. The items are expected to be sorted in the sense
|
||||
* that if the condition is true for one item in the array, then it is also true
|
||||
* for all following items.
|
||||
*
|
||||
* @returns {Number} Index of the first array element to pass the test,
|
||||
* or |items.length| if no such element exists.
|
||||
*/
|
||||
function binarySearchFirstItem(items, condition) {
|
||||
var minIndex = 0;
|
||||
var maxIndex = items.length - 1;
|
||||
|
||||
if (items.length === 0 || !condition(items[maxIndex])) {
|
||||
return items.length;
|
||||
}
|
||||
if (condition(items[minIndex])) {
|
||||
return minIndex;
|
||||
}
|
||||
|
||||
while (minIndex < maxIndex) {
|
||||
var currentIndex = (minIndex + maxIndex) >> 1;
|
||||
var currentItem = items[currentIndex];
|
||||
if (condition(currentItem)) {
|
||||
maxIndex = currentIndex;
|
||||
} else {
|
||||
minIndex = currentIndex + 1;
|
||||
}
|
||||
}
|
||||
return minIndex; /* === maxIndex */
|
||||
}
|
||||
|
||||
/**
|
||||
* Generic helper to find out what elements are visible within a scroll pane.
|
||||
*/
|
||||
function getVisibleElements(scrollEl, views, sortByVisibility) {
|
||||
var top = scrollEl.scrollTop, bottom = top + scrollEl.clientHeight;
|
||||
var left = scrollEl.scrollLeft, right = left + scrollEl.clientWidth;
|
||||
|
||||
function isElementBottomBelowViewTop(view) {
|
||||
var element = view.div;
|
||||
var elementBottom =
|
||||
element.offsetTop + element.clientTop + element.clientHeight;
|
||||
return elementBottom > top;
|
||||
}
|
||||
|
||||
var visible = [], view, element;
|
||||
var currentHeight, viewHeight, hiddenHeight, percentHeight;
|
||||
var currentWidth, viewWidth;
|
||||
var firstVisibleElementInd = (views.length === 0) ? 0 :
|
||||
binarySearchFirstItem(views, isElementBottomBelowViewTop);
|
||||
|
||||
for (var i = firstVisibleElementInd, ii = views.length; i < ii; i++) {
|
||||
view = views[i];
|
||||
element = view.div;
|
||||
currentHeight = element.offsetTop + element.clientTop;
|
||||
viewHeight = element.clientHeight;
|
||||
|
||||
if (currentHeight > bottom) {
|
||||
break;
|
||||
}
|
||||
|
||||
currentWidth = element.offsetLeft + element.clientLeft;
|
||||
viewWidth = element.clientWidth;
|
||||
if (currentWidth + viewWidth < left || currentWidth > right) {
|
||||
continue;
|
||||
}
|
||||
hiddenHeight = Math.max(0, top - currentHeight) +
|
||||
Math.max(0, currentHeight + viewHeight - bottom);
|
||||
percentHeight = ((viewHeight - hiddenHeight) * 100 / viewHeight) | 0;
|
||||
|
||||
visible.push({
|
||||
id: view.id,
|
||||
x: currentWidth,
|
||||
y: currentHeight,
|
||||
view: view,
|
||||
percent: percentHeight
|
||||
});
|
||||
}
|
||||
|
||||
var first = visible[0];
|
||||
var last = visible[visible.length - 1];
|
||||
|
||||
if (sortByVisibility) {
|
||||
visible.sort(function(a, b) {
|
||||
var pc = a.percent - b.percent;
|
||||
if (Math.abs(pc) > 0.001) {
|
||||
return -pc;
|
||||
}
|
||||
return a.id - b.id; // ensure stability
|
||||
});
|
||||
}
|
||||
return {first: first, last: last, views: visible};
|
||||
}
|
||||
|
||||
/**
|
||||
* Event handler to suppress context menu.
|
||||
*/
|
||||
function noContextMenuHandler(e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the filename or guessed filename from the url (see issue 3455).
|
||||
* url {String} The original PDF location.
|
||||
* @return {String} Guessed PDF file name.
|
||||
*/
|
||||
function getPDFFileNameFromURL(url) {
|
||||
var reURI = /^(?:([^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/;
|
||||
// SCHEME HOST 1.PATH 2.QUERY 3.REF
|
||||
// Pattern to get last matching NAME.pdf
|
||||
var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i;
|
||||
var splitURI = reURI.exec(url);
|
||||
var suggestedFilename = reFilename.exec(splitURI[1]) ||
|
||||
reFilename.exec(splitURI[2]) ||
|
||||
reFilename.exec(splitURI[3]);
|
||||
if (suggestedFilename) {
|
||||
suggestedFilename = suggestedFilename[0];
|
||||
if (suggestedFilename.indexOf('%') !== -1) {
|
||||
// URL-encoded %2Fpath%2Fto%2Ffile.pdf should be file.pdf
|
||||
try {
|
||||
suggestedFilename =
|
||||
reFilename.exec(decodeURIComponent(suggestedFilename))[0];
|
||||
} catch(e) { // Possible (extremely rare) errors:
|
||||
// URIError "Malformed URI", e.g. for "%AA.pdf"
|
||||
// TypeError "null has no properties", e.g. for "%2F.pdf"
|
||||
}
|
||||
}
|
||||
}
|
||||
return suggestedFilename || 'document.pdf';
|
||||
}
|
||||
|
||||
var ProgressBar = (function ProgressBarClosure() {
|
||||
|
||||
function clamp(v, min, max) {
|
||||
return Math.min(Math.max(v, min), max);
|
||||
}
|
||||
|
||||
function ProgressBar(id, opts) {
|
||||
this.visible = true;
|
||||
|
||||
// Fetch the sub-elements for later.
|
||||
this.div = document.querySelector(id + ' .progress');
|
||||
|
||||
// Get the loading bar element, so it can be resized to fit the viewer.
|
||||
this.bar = this.div.parentNode;
|
||||
|
||||
// Get options, with sensible defaults.
|
||||
this.height = opts.height || 100;
|
||||
this.width = opts.width || 100;
|
||||
this.units = opts.units || '%';
|
||||
|
||||
// Initialize heights.
|
||||
this.div.style.height = this.height + this.units;
|
||||
this.percent = 0;
|
||||
}
|
||||
|
||||
ProgressBar.prototype = {
|
||||
|
||||
updateBar: function ProgressBar_updateBar() {
|
||||
if (this._indeterminate) {
|
||||
this.div.classList.add('indeterminate');
|
||||
this.div.style.width = this.width + this.units;
|
||||
return;
|
||||
}
|
||||
|
||||
this.div.classList.remove('indeterminate');
|
||||
var progressSize = this.width * this._percent / 100;
|
||||
this.div.style.width = progressSize + this.units;
|
||||
},
|
||||
|
||||
get percent() {
|
||||
return this._percent;
|
||||
},
|
||||
|
||||
set percent(val) {
|
||||
this._indeterminate = isNaN(val);
|
||||
this._percent = clamp(val, 0, 100);
|
||||
this.updateBar();
|
||||
},
|
||||
|
||||
setWidth: function ProgressBar_setWidth(viewer) {
|
||||
if (viewer) {
|
||||
var container = viewer.parentNode;
|
||||
var scrollbarWidth = container.offsetWidth - viewer.offsetWidth;
|
||||
if (scrollbarWidth > 0) {
|
||||
this.bar.setAttribute('style', 'width: calc(100% - ' +
|
||||
scrollbarWidth + 'px);');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
hide: function ProgressBar_hide() {
|
||||
if (!this.visible) {
|
||||
return;
|
||||
}
|
||||
this.visible = false;
|
||||
this.bar.classList.add('hidden');
|
||||
document.body.classList.remove('loadingInProgress');
|
||||
},
|
||||
|
||||
show: function ProgressBar_show() {
|
||||
if (this.visible) {
|
||||
return;
|
||||
}
|
||||
this.visible = true;
|
||||
document.body.classList.add('loadingInProgress');
|
||||
this.bar.classList.remove('hidden');
|
||||
}
|
||||
};
|
||||
|
||||
return ProgressBar;
|
||||
})();
|
||||
936
main/inc/lib/javascript/ViewerJS/webodf.js
Normal file
783
main/inc/lib/javascript/annotation/js/annotation.js
Normal file
@@ -0,0 +1,783 @@
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
(function (window, $) {
|
||||
"use strict";
|
||||
|
||||
function getPointOnImage(referenceElement, x, y) {
|
||||
var pointerPosition = {
|
||||
left: x + window.scrollX,
|
||||
top: y + window.scrollY
|
||||
},
|
||||
canvasOffset = {
|
||||
x: referenceElement.getBoundingClientRect().left + window.scrollX,
|
||||
y: referenceElement.getBoundingClientRect().top + window.scrollY
|
||||
};
|
||||
|
||||
return {
|
||||
x: Math.round(pointerPosition.left - canvasOffset.x),
|
||||
y: Math.round(pointerPosition.top - canvasOffset.y)
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Object} attributes
|
||||
* @constructor
|
||||
*/
|
||||
var SvgElementModel = function (attributes) {
|
||||
this.attributes = attributes;
|
||||
this.id = 0;
|
||||
this.questionId = 0;
|
||||
|
||||
this.changeEvents = [];
|
||||
this.destroyEvents = [];
|
||||
};
|
||||
/**
|
||||
* @param {string} key
|
||||
* @param {*} value
|
||||
*/
|
||||
SvgElementModel.prototype.set = function (key, value) {
|
||||
this.attributes[key] = value;
|
||||
|
||||
this.changeEvents.forEach(function (event) {
|
||||
event();
|
||||
});
|
||||
};
|
||||
SvgElementModel.prototype.get = function (key) {
|
||||
return this.attributes[key];
|
||||
};
|
||||
SvgElementModel.prototype.destroy = function () {
|
||||
this.destroyEvents.forEach(function (event) {
|
||||
event();
|
||||
});
|
||||
};
|
||||
/**
|
||||
* @param {string} eventName
|
||||
* @param {(SvgElementModel~changeEvents|SvgElementModel~destroyEvents)} callback
|
||||
*/
|
||||
SvgElementModel.prototype.on = function (eventName, callback) {
|
||||
this[eventName + 'Events'].push(callback);
|
||||
};
|
||||
/**
|
||||
* @abstract
|
||||
* @static
|
||||
* @param {Object} info
|
||||
* @returns {SvgElementModel}
|
||||
*/
|
||||
SvgElementModel.decode = function (info) {
|
||||
return new this();
|
||||
};
|
||||
/**
|
||||
* @abstract
|
||||
* @returns {string}
|
||||
*/
|
||||
SvgElementModel.prototype.encode = function () {
|
||||
return "";
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Object} userAttributes
|
||||
* @constructor
|
||||
* @extends SvgElementModel
|
||||
*/
|
||||
var SvgPathModel = function (userAttributes) {
|
||||
var attributes = $.extend({
|
||||
color: "#FF0000",
|
||||
points: []
|
||||
}, userAttributes);
|
||||
|
||||
SvgElementModel.call(this, attributes);
|
||||
};
|
||||
SvgPathModel.prototype = Object.create(SvgElementModel.prototype);
|
||||
SvgPathModel.prototype.addPoint = function (x, y) {
|
||||
x = parseInt(x);
|
||||
y = parseInt(y);
|
||||
|
||||
var points = this.get("points");
|
||||
points.push([x, y]);
|
||||
|
||||
this.set("points", points);
|
||||
};
|
||||
SvgPathModel.prototype.encode = function () {
|
||||
var pairedPoints = [];
|
||||
var typeProperties = [
|
||||
this.get("color"),
|
||||
];
|
||||
|
||||
this.get("points").forEach(function (point) {
|
||||
pairedPoints.push(
|
||||
point.join(";")
|
||||
);
|
||||
});
|
||||
|
||||
return "P;" + typeProperties.join(";") + ")(" + pairedPoints.join(")(");
|
||||
};
|
||||
/**
|
||||
* @static
|
||||
* @param {Object} pathInfo
|
||||
* @returns {SvgPathModel}
|
||||
*/
|
||||
SvgPathModel.decode = function (pathInfo) {
|
||||
pathInfo.points = pathInfo.points.map(function (point) {
|
||||
return [point.x, point.y];
|
||||
});
|
||||
|
||||
return new SvgPathModel(pathInfo);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Object} userAttributes
|
||||
* @constructor
|
||||
* @extends SvgElementModel
|
||||
*/
|
||||
var SvgTextModel = function (userAttributes) {
|
||||
var attributes = $.extend({
|
||||
text: "",
|
||||
x: 0,
|
||||
y: 0,
|
||||
color: "#FF0000",
|
||||
fontSize: 20
|
||||
}, userAttributes);
|
||||
|
||||
SvgElementModel.call(this, attributes);
|
||||
};
|
||||
SvgTextModel.prototype = Object.create(SvgElementModel.prototype);
|
||||
SvgTextModel.prototype.encode = function () {
|
||||
var typeProperties = [
|
||||
this.get("color"),
|
||||
this.get("fontSize"),
|
||||
];
|
||||
|
||||
return "T;" + typeProperties.join(";") + ")(" + this.get("text") + ")(" + this.get("x") + ';' + this.get("y");
|
||||
};
|
||||
/**
|
||||
* @static
|
||||
* @param {Object} textInfo
|
||||
* @returns {SvgTextModel}
|
||||
*/
|
||||
SvgTextModel.decode = function (textInfo) {
|
||||
return new SvgTextModel(textInfo);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {SvgElementModel} model
|
||||
* @constructor
|
||||
*/
|
||||
var SvgElementView = function (model) {
|
||||
var self = this;
|
||||
|
||||
this.model = model;
|
||||
this.model.on('change', function () {
|
||||
self.render();
|
||||
});
|
||||
this.model.on('destroy', function () {
|
||||
self.el.remove();
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {SvgPathModel} model
|
||||
* @constructor
|
||||
* @extends SvgElementView
|
||||
*/
|
||||
var SvgPathView = function (model) {
|
||||
SvgElementView.call(this, model);
|
||||
|
||||
this.el = document.createElementNS("http://www.w3.org/2000/svg", "path");
|
||||
this.el.setAttribute("fill", "transparent");
|
||||
};
|
||||
SvgPathView.prototype = Object.create(SvgElementView.prototype);
|
||||
SvgPathView.prototype.render = function () {
|
||||
var d = "";
|
||||
|
||||
$.each(
|
||||
this.model.get("points"),
|
||||
function (i, point) {
|
||||
d += (i === 0) ? "M" : " L ";
|
||||
d += point[0] + " " + point[1];
|
||||
}
|
||||
);
|
||||
|
||||
this.el.setAttribute("d", d);
|
||||
this.el.setAttribute('stroke', this.model.get('color'));
|
||||
this.el.setAttribute("stroke-width", "3");
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {SvgTextModel} model
|
||||
* @constructor
|
||||
* @extends SvgElementView
|
||||
*/
|
||||
var SvgTextView = function (model) {
|
||||
SvgElementView.call(this, model);
|
||||
|
||||
this.el = document.createElementNS('http://www.w3.org/2000/svg', 'text');
|
||||
this.el.setAttribute('stroke', 'none');
|
||||
};
|
||||
SvgTextView.prototype = Object.create(SvgElementView.prototype);
|
||||
SvgTextView.prototype.render = function () {
|
||||
this.el.setAttribute('x', this.model.get('x'));
|
||||
this.el.setAttribute('y', this.model.get('y'));
|
||||
this.el.setAttribute('fill', this.model.get('color'));
|
||||
this.el.setAttribute('font-size', this.model.get('fontSize'));
|
||||
this.el.textContent = this.model.get('text');
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {SvgElementModel} model
|
||||
* @constructor
|
||||
*/
|
||||
var ControllerView = function (model) {
|
||||
var self = this;
|
||||
|
||||
this.model = model;
|
||||
this.model.on('change', function () {
|
||||
self.render();
|
||||
});
|
||||
this.model.on('destroy', function () {
|
||||
self.el.remove();
|
||||
});
|
||||
|
||||
var elChoice = (function () {
|
||||
var input = document.createElement('input');
|
||||
input.type = 'hidden';
|
||||
input.name = 'choice[' + self.model.questionId + '][' + self.model.id + ']';
|
||||
|
||||
return input;
|
||||
})();
|
||||
|
||||
var elHotspot = (function () {
|
||||
var input = document.createElement('input');
|
||||
input.type = 'hidden';
|
||||
input.name = 'hotspot[' + self.model.questionId + '][' + self.model.id + ']';
|
||||
|
||||
return input;
|
||||
})();
|
||||
|
||||
var elText = (function () {
|
||||
var input = document.createElement('input');
|
||||
input.type = 'text';
|
||||
input.className = 'form-control';
|
||||
input.disabled = self.model instanceof SvgPathModel;
|
||||
|
||||
return input;
|
||||
})();
|
||||
elText.addEventListener('change', function () {
|
||||
commandsHistory.add(new TextElementCommand(self.model, this.value));
|
||||
|
||||
self.model.set('text', this.value);
|
||||
})
|
||||
|
||||
var txtColor = (function () {
|
||||
var input = document.createElement('input');
|
||||
input.type = 'color';
|
||||
input.style.border = '0 none';
|
||||
input.style.padding = '0';
|
||||
input.style.margin = '0';
|
||||
input.style.width = '26px';
|
||||
input.style.height = '26px';
|
||||
input.style.lineHeight = '28px';
|
||||
input.style.verticalAlign = 'middle';
|
||||
|
||||
return input;
|
||||
})();
|
||||
txtColor.addEventListener('change', function () {
|
||||
commandsHistory.add(new ColorElementCommand(self.model, this.value));
|
||||
|
||||
self.model.set('color', this.value);
|
||||
})
|
||||
|
||||
var spanAddonColor = (function () {
|
||||
var span = document.createElement('span');
|
||||
span.className = 'input-group-addon';
|
||||
span.style.padding = '0';
|
||||
|
||||
return span;
|
||||
})();
|
||||
spanAddonColor.appendChild(txtColor);
|
||||
|
||||
var txtSize = (function () {
|
||||
var input = document.createElement('input');
|
||||
input.type = 'number';
|
||||
input.step = '1';
|
||||
input.min = '15';
|
||||
input.max = '30';
|
||||
input.style.border = '0 none';
|
||||
input.style.padding = '0 0 0 4px';
|
||||
input.style.margin = '0';
|
||||
input.style.width = '41px';
|
||||
input.style.height = '26px';
|
||||
input.style.lineHeight = '28px';
|
||||
input.style.verticalAlign = 'middle';
|
||||
input.disabled = self.model instanceof SvgPathModel;
|
||||
|
||||
return input;
|
||||
})();
|
||||
txtSize.addEventListener('change', function () {
|
||||
commandsHistory.add(new SizeElementCommand(self.model, this.value));
|
||||
|
||||
self.model.set('fontSize', this.value);
|
||||
})
|
||||
|
||||
var spanAddonSize = (function () {
|
||||
var span = document.createElement('span');
|
||||
span.className = 'input-group-addon';
|
||||
span.style.padding = '0';
|
||||
|
||||
return span;
|
||||
})();
|
||||
spanAddonSize.appendChild(txtSize);
|
||||
|
||||
// var btnRemove = (function () {
|
||||
// var button = document.createElement('button');
|
||||
// button.type = 'button';
|
||||
// button.className = 'btn btn-default';
|
||||
// button.innerHTML = '<span class="fa fa-trash text-danger" aria-hidden="true"></span>';
|
||||
//
|
||||
// return button;
|
||||
// })();
|
||||
// btnRemove.addEventListener('click', function (e) {
|
||||
// e.preventDefault();
|
||||
// e.stopPropagation();
|
||||
//
|
||||
// self.model.destroy();
|
||||
// });
|
||||
//
|
||||
// var spanGroupBtn = (function () {
|
||||
// var span = document.createElement('span');
|
||||
// span.className = 'input-group-btn';
|
||||
//
|
||||
// return span;
|
||||
// })();
|
||||
// spanGroupBtn.appendChild(btnRemove);
|
||||
|
||||
this.el = (function () {
|
||||
var div = document.createElement('div');
|
||||
div.className = 'input-group input-group-sm';
|
||||
div.style.marginBottom = '10px';
|
||||
|
||||
return div;
|
||||
})();
|
||||
this.el.appendChild(elText);
|
||||
this.el.appendChild(elHotspot);
|
||||
this.el.appendChild(elChoice);
|
||||
this.el.appendChild(spanAddonColor);
|
||||
this.el.appendChild(spanAddonSize);
|
||||
// this.el.appendChild(spanGroupBtn);
|
||||
|
||||
this.render = function () {
|
||||
elChoice.value = this.model.encode();
|
||||
elHotspot.value = this.model.encode();
|
||||
elText.value = self.model instanceof SvgTextModel ? self.model.get('text') : '——————————';
|
||||
txtColor.value = this.model.get('color');
|
||||
txtSize.value = this.model.get('fontSize');
|
||||
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
var ElementsCollection = function () {
|
||||
/**
|
||||
* @type {SvgElementModel[]}
|
||||
*/
|
||||
this.models = [];
|
||||
this.addEvent = null;
|
||||
|
||||
var lastId = 0;
|
||||
|
||||
/**
|
||||
* @param {SvgElementModel} pathModel
|
||||
*/
|
||||
this.add = function (pathModel) {
|
||||
pathModel.id = ++lastId;
|
||||
|
||||
this.models.push(pathModel);
|
||||
|
||||
if (this.addEvent) {
|
||||
this.addEvent(pathModel);
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @param {number} index
|
||||
* @returns {SvgElementModel}
|
||||
*/
|
||||
this.get = function (index) {
|
||||
return this.models[index];
|
||||
};
|
||||
this.reset = function () {
|
||||
this.models.forEach(function (model) {
|
||||
model.destroy();
|
||||
})
|
||||
|
||||
this.models = [];
|
||||
};
|
||||
/**
|
||||
* @param {ElementsCollection~addEvent} callback
|
||||
*/
|
||||
this.onAdd = function (callback) {
|
||||
this.addEvent = callback;
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {ElementsCollection} elementsCollection
|
||||
* @param {Image} image
|
||||
* @param {number} questionId
|
||||
* @constructor
|
||||
*/
|
||||
var AnnotationCanvasView = function (elementsCollection, image, questionId) {
|
||||
var self = this;
|
||||
|
||||
this.questionId = questionId;
|
||||
this.image = image;
|
||||
|
||||
var svgImage = (function () {
|
||||
var image = document.createElementNS('http://www.w3.org/2000/svg', 'image');
|
||||
image.setAttributeNS('http://www.w3.org/1999/xlink', 'href', self.image.src);
|
||||
image.setAttribute('width', self.image.width);
|
||||
image.setAttribute('height', self.image.height);
|
||||
|
||||
return image;
|
||||
})();
|
||||
|
||||
this.el = (function () {
|
||||
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
||||
svg.setAttribute('version', '1.1');
|
||||
svg.setAttribute('viewBox', '0 0 ' + self.image.width + ' ' + self.image.height);
|
||||
svg.setAttribute('width', self.image.width);
|
||||
svg.setAttribute('height', self.image.height);
|
||||
|
||||
return svg;
|
||||
})();
|
||||
this.el.appendChild(svgImage);
|
||||
|
||||
this.elementsCollection = elementsCollection;
|
||||
this.elementsCollection.onAdd(function (pathModel) {
|
||||
var svgElementView = null;
|
||||
|
||||
if (pathModel instanceof SvgPathModel) {
|
||||
svgElementView = new SvgPathView(pathModel);
|
||||
} else if (pathModel instanceof SvgTextModel) {
|
||||
svgElementView = new SvgTextView(pathModel);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
self.el.appendChild(svgElementView.render().el);
|
||||
|
||||
var controllerView = new ControllerView(pathModel);
|
||||
|
||||
$('#annotation-toolbar-' + self.questionId).append(controllerView.render().el);
|
||||
$(controllerView.el).children('input').eq(0).focus();
|
||||
});
|
||||
|
||||
var $rdbOptions = null;
|
||||
var $btnReset = null;
|
||||
var $btnUndo = null;
|
||||
var $btnRedo = null;
|
||||
|
||||
this.render = function () {
|
||||
$rdbOptions = $('[name="' + this.questionId + '-options"]');
|
||||
$btnReset = $('#btn-reset-' + this.questionId);
|
||||
$btnUndo = $('#btn-undo-' + this.questionId);
|
||||
$btnRedo = $('#btn-redo-' + this.questionId);
|
||||
|
||||
setEvents();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
function setEvents() {
|
||||
var isMoving = false,
|
||||
elementModel = null;
|
||||
|
||||
$(self.el)
|
||||
.on('dragstart', function (e) {
|
||||
e.preventDefault();
|
||||
})
|
||||
.on('click', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
if ("1" !== $rdbOptions.filter(':checked').val()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var point = getPointOnImage(self.el, e.clientX, e.clientY);
|
||||
elementModel = new SvgTextModel({x: point.x, y: point.y, text: ''});
|
||||
elementModel.questionId = self.questionId;
|
||||
|
||||
commandsHistory.add(new AddElementCommand(self.elementsCollection, elementModel));
|
||||
|
||||
self.elementsCollection.add(elementModel);
|
||||
|
||||
elementModel = null;
|
||||
isMoving = false;
|
||||
})
|
||||
.on('mousedown', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var point = getPointOnImage(self.el, e.clientX, e.clientY);
|
||||
if (isMoving || "0" !== $rdbOptions.filter(':checked').val() || elementModel) {
|
||||
return;
|
||||
}
|
||||
|
||||
elementModel = new SvgPathModel({points: [[point.x, point.y]]});
|
||||
elementModel.questionId = self.questionId;
|
||||
self.elementsCollection.add(elementModel);
|
||||
isMoving = true;
|
||||
})
|
||||
.on('mousemove', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (!isMoving || "0" !== $rdbOptions.filter(':checked').val() || !elementModel) {
|
||||
return;
|
||||
}
|
||||
|
||||
var point = getPointOnImage(self.el, e.clientX, e.clientY);
|
||||
elementModel.addPoint(point.x, point.y);
|
||||
})
|
||||
.on('mouseup', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (!isMoving || "0" !== $rdbOptions.filter(':checked').val() || !elementModel) {
|
||||
return;
|
||||
}
|
||||
|
||||
commandsHistory.add(new AddElementCommand(self.elementsCollection, elementModel));
|
||||
|
||||
elementModel = null;
|
||||
isMoving = false;
|
||||
});
|
||||
|
||||
$btnReset.on('click', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
commandsHistory.add(new ResetCommand(self.elementsCollection));
|
||||
|
||||
self.elementsCollection.reset();
|
||||
});
|
||||
|
||||
$btnUndo.on('click', function () {
|
||||
commandsHistory.undo();
|
||||
});
|
||||
$btnRedo.on('click', function () {
|
||||
commandsHistory.redo();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @abstract
|
||||
*/
|
||||
function Command() {}
|
||||
/**
|
||||
* @abstract
|
||||
*/
|
||||
Command.prototype.before = function () {
|
||||
throw new Error('Implement');
|
||||
}
|
||||
/**
|
||||
* @abstract
|
||||
*/
|
||||
Command.prototype.after = function () {
|
||||
throw new Error('Implement');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {ElementsCollection} collection
|
||||
* @param {SvgElementModel} model
|
||||
* @constructor
|
||||
*/
|
||||
function AddElementCommand(collection, model) {
|
||||
Command.call(this);
|
||||
|
||||
this.collection = collection;
|
||||
this.model = model;
|
||||
}
|
||||
AddElementCommand.prototype = Object.create(Command.prototype);
|
||||
AddElementCommand.prototype.after = function () {
|
||||
this.collection.add(this.model);
|
||||
};
|
||||
AddElementCommand.prototype.before = function () {
|
||||
this.model.destroy();
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {SvgElementModel} model
|
||||
* @param {string} attribute
|
||||
* @param {*} newValue
|
||||
* @constructor
|
||||
* @abstract
|
||||
* @extends Command
|
||||
*/
|
||||
function ElementCommand(model, attribute, newValue) {
|
||||
Command.call(this);
|
||||
|
||||
this.model = model;
|
||||
this.attribute = attribute;
|
||||
this.oldValue = this.model.get(this.attribute);
|
||||
this.newValue = newValue;
|
||||
}
|
||||
ElementCommand.prototype = Object.create(Command.prototype);
|
||||
ElementCommand.prototype.after = function () {
|
||||
this.model.set(this.attribute, this.newValue);
|
||||
};
|
||||
ElementCommand.prototype.before = function () {
|
||||
this.model.set(this.attribute, this.oldValue);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {SvgElementModel} model
|
||||
* @param {*} newValue
|
||||
* @constructor
|
||||
* @extends ElementCommand
|
||||
*/
|
||||
function TextElementCommand(model, newValue) {
|
||||
ElementCommand.call(this, model, 'text', newValue);
|
||||
}
|
||||
TextElementCommand.prototype = Object.create(ElementCommand.prototype);
|
||||
|
||||
/**
|
||||
* @param {SvgElementModel} model
|
||||
* @param {*} newValue
|
||||
* @constructor
|
||||
* @extends ElementCommand
|
||||
*/
|
||||
function ColorElementCommand(model, newValue) {
|
||||
ElementCommand.call(this, model, 'color', newValue);
|
||||
}
|
||||
ColorElementCommand.prototype = Object.create(ElementCommand.prototype);
|
||||
|
||||
/**
|
||||
* @param {SvgElementModel} model
|
||||
* @param {*} newValue
|
||||
* @constructor
|
||||
* @extends ElementCommand
|
||||
*/
|
||||
function SizeElementCommand(model, newValue) {
|
||||
ElementCommand.call(this, model, 'fontSize', newValue);
|
||||
}
|
||||
SizeElementCommand.prototype = Object.create(ElementCommand.prototype);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {ElementsCollection} collection
|
||||
* @constructor
|
||||
* @extends Command
|
||||
*/
|
||||
function ResetCommand(collection) {
|
||||
Command.call(this);
|
||||
|
||||
this.collection = collection;
|
||||
this.oldModels = collection.models;
|
||||
}
|
||||
ResetCommand.prototype = Object.create(Command.prototype);
|
||||
ResetCommand.prototype.after = function () {
|
||||
this.collection.reset();
|
||||
};
|
||||
ResetCommand.prototype.before = function () {
|
||||
var self = this;
|
||||
|
||||
this.oldModels.forEach(function (model) {
|
||||
self.collection.add(model);
|
||||
});
|
||||
};
|
||||
|
||||
function CommandHistory() {
|
||||
var index = -1;
|
||||
/**
|
||||
* @type {Command[]}
|
||||
*/
|
||||
var commands = [];
|
||||
|
||||
/**
|
||||
* @param {Command} command
|
||||
*/
|
||||
this.add = function (command) {
|
||||
if (index > -1) {
|
||||
commands = commands.slice(0, index + 1);
|
||||
} else {
|
||||
commands = [];
|
||||
}
|
||||
|
||||
commands.push(command);
|
||||
++index;
|
||||
}
|
||||
this.undo = function () {
|
||||
(commands, index);
|
||||
if (-1 === index) {
|
||||
return;
|
||||
}
|
||||
|
||||
var command = commands[index];
|
||||
command.before();
|
||||
|
||||
--index;
|
||||
};
|
||||
this.redo = function () {
|
||||
if (index + 1 === commands.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
++index;
|
||||
|
||||
var command = commands[index];
|
||||
command.after();
|
||||
};
|
||||
};
|
||||
|
||||
var commandsHistory = new CommandHistory();
|
||||
|
||||
window.AnnotationQuestion = function (userSettings) {
|
||||
$(function () {
|
||||
var settings = $.extend(
|
||||
{
|
||||
questionId: 0,
|
||||
exerciseId: 0,
|
||||
relPath: '/'
|
||||
},
|
||||
userSettings
|
||||
),
|
||||
xhrUrl = 'exercise/annotation_user.php?' + _p.web_cid_query,
|
||||
$container = $('#annotation-canvas-' + settings.questionId);
|
||||
|
||||
$
|
||||
.getJSON(settings.relPath + xhrUrl, {
|
||||
question_id: parseInt(settings.questionId),
|
||||
exe_id: parseInt(settings.exerciseId),
|
||||
course_id: parseInt(settings.courseId)
|
||||
})
|
||||
.done(function (questionInfo) {
|
||||
var image = new Image();
|
||||
image.onload = function () {
|
||||
var elementsCollection = new ElementsCollection(),
|
||||
canvas = new AnnotationCanvasView(elementsCollection, this, parseInt(settings.questionId));
|
||||
|
||||
$container.html(canvas.render().el);
|
||||
|
||||
/** @namespace questionInfo.answers.paths */
|
||||
$.each(questionInfo.answers.paths, function (i, pathInfo) {
|
||||
var pathModel = SvgPathModel.decode(pathInfo);
|
||||
pathModel.questionId = settings.questionId;
|
||||
elementsCollection.add(pathModel);
|
||||
});
|
||||
|
||||
/** @namespace questionInfo.answers.texts */
|
||||
$(questionInfo.answers.texts).each(function (i, textInfo) {
|
||||
var textModel = SvgTextModel.decode(textInfo);
|
||||
textModel.questionId = settings.questionId;
|
||||
elementsCollection.add(textModel);
|
||||
});
|
||||
};
|
||||
image.src = questionInfo.image.path;
|
||||
});
|
||||
});
|
||||
};
|
||||
})(window, window.jQuery);
|
||||
4891
main/inc/lib/javascript/asciimath/ASCIIMathML.js
Normal file
363
main/inc/lib/javascript/asciimath/asciimath.html
Normal file
@@ -0,0 +1,363 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>ASCIIMathML: Math on the web for everyone</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript" src="ASCIIMathML.js"></script>
|
||||
<style type="text/css">
|
||||
#menu, #title, #subtitle, #author, .display {text-align: center}
|
||||
body {font-family: Arial; background-color:beige}
|
||||
p,table {font-family: Times}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="menu">
|
||||
| <a href="asciimath.html">Home Page</a> |
|
||||
<a href="asciimathsyntax.html">Syntax</a> |
|
||||
<a href="asciimathdemo.html">Try it</a> |
|
||||
<a href="asciimathcalculator.html">Calculator</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimathdownload.html">Download</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathGraphs.html">Graphs</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathFAQ.html">ASCIIMath FAQ</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLSandbox.html">Sandbox</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathCommentsAndSuggestions.html">Comments</a> |
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2 id="title">
|
||||
ASCIIMathML.js (ver 2.0): Translating ASCII math notation to MathML
|
||||
and graphics</h2>
|
||||
|
||||
<h4 align="center">
|
||||
Would you or your students like to <i>easily</i> produce
|
||||
<i>good-looking</i> math formulas on webpages<br/>
|
||||
using a <i>simple</i> calculator-style syntax and your
|
||||
own ASCII or HTML editor?
|
||||
<br/>
|
||||
Here is a free multi-platform solution (and if you prefer it,
|
||||
LaTeX-style formulas also work).
|
||||
</h4>
|
||||
|
||||
<center>
|
||||
<b><font color="red">Now even easier to use:</font>
|
||||
<font color="green"> just add one line to your
|
||||
HTML file to load ASCIIMathML.js
|
||||
</font></b><p>
|
||||
ASCIIMathML.js is mentioned on the <a
|
||||
href="http://www.w3.org/Math/">MathML</a> page of the <a
|
||||
href="http://www.w3.org/">World Wide Web Consortium</a>, also on <a
|
||||
href="http://mathforge.net/index.jsp">mathforge.net</a> and <a
|
||||
href="http://mathforum.org/library/resource_types/typesetting/">The
|
||||
Math Forum.</a>
|
||||
</p>
|
||||
|
||||
<font color="red"><b>New:</b></font> Now with <b>automatic math recognition</b>
|
||||
mode, better LaTeX support and graphics integration<br/>
|
||||
A <a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLMoodleFilter.html">Moodle filter</a> and a <a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLPmWikiCookbook.html">PmWiki cookbook</a> are also available<br/>
|
||||
<a href="http://www.pierce.ctc.edu/dlippman/asciimathtex/AMT.html">ASCIIMath Image Fallback Scripts</a> by David Lippman (including a Moodle filter)<br/>
|
||||
and a <a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a> version of ASCIIMathML by <a href="http://www.maths.nottingham.ac.uk/personal/drw/">Dr Douglas R. Woodall</a>
|
||||
(<a href="http://www.maths.nott.ac.uk/personal/drw/lmtest.html">examples</a>)
|
||||
<br />
|
||||
<a href="http://math.chapman.edu/~jipsen/asciencepad/asciencepad.html">ASciencePad</a> is a WYSIWYG editor that integrates
|
||||
|
||||
<a href="http://www.tiddlywiki.com/">TiddlyWiki</a>, ASCIIMathML and ASCIIsvg graphs.<br />
|
||||
It's free and works locally (no installation or server required).<br />
|
||||
Useful information about <a
|
||||
href="http://www.maths.ed.ac.uk/~james/ASCIIMathMLinfo.html">ASCIIMathML</a>
|
||||
by <a href="http://www.maths.ed.ac.uk/~james/">James Gray</a>, including
|
||||
a nice <a href="http://www.maths.ed.ac.uk/~james/ASCIIMathTutorial.html">tutorial</a>.<br />
|
||||
ASCIIMathML also works with <a href="http://www.meyerweb.com/eric/tools/s5/">S5</a> (CSS
|
||||
Presentation slide show; <a href="http://math.chapman.edu/~jipsen/talks/MathFest2005/JipsenMathFestSlides2005.html">S5 ASCIIMath example</a>)<br/>
|
||||
|
||||
and in valid
|
||||
<a href="http://math.chapman.edu/~jipsen/mathml/asciimathandmathmlsvg.xhtml">
|
||||
XHTML pages with standard MathML and SVG</a> in several browsers.
|
||||
<br/>
|
||||
ASCIIMathML is being used with Movable Type, WordPress, phpBB, and many wikis.
|
||||
<br/>
|
||||
Also available: A PHP port of ASCIIMathML.js to <a
|
||||
href="http://www.jcphysics.com/ASCIIMath/">ASCIIMathPHP</a> by <a
|
||||
href="mailto:kc56@cornell.edu">Steven Chan</a>.
|
||||
</center>
|
||||
|
||||
<p>
|
||||
|
||||
This is the main page (HTML version) for the ASCIIMathML.js script which allows
|
||||
incorporating mathematical formulas on webpages with a minimum of
|
||||
fuss (just add one line to a webpage to load the script).
|
||||
If you like what you see, choose <b>Save As...</b> in your browser
|
||||
and this page should work equally well locally on your machine.
|
||||
</p>
|
||||
|
||||
<p class="display">
|
||||
<b>
|
||||
This page requires Internet Explorer 6 + <a href=
|
||||
"http://www.dessci.com/en/products/mathplayer/welcome.asp">MathPlayer</a>
|
||||
or Netscape7.1/Mozilla/Firefox.
|
||||
</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
ASCIIMathML.js is freely available under the <a
|
||||
href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public
|
||||
License</a>. You can get your own copy from the <a href=
|
||||
"http://www.chapman.edu/~jipsen/mathml/asciimathdownload/">ASCIIMathML.js
|
||||
download page</a>. The script works with both HTML and XHTML webpages.
|
||||
(The homepage for an XML
|
||||
version is at <a href="asciimath.xml">asciimath.xml</a> but is no
|
||||
longer maintained).
|
||||
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you use it on a webpage, please send me an email at <a
|
||||
href="mailto:jipsen@chapman.edu">jipsen@chapman.edu</a> with the URL
|
||||
so that I can add a link to it on the <a
|
||||
href="http://math.chapman.edu/cgi-bin/mathxml.pl?Webpages_that_use_ASCIIMathML.js">users page</a>.
|
||||
(Also send me an
|
||||
email if you have problems or would like to provide some feedback.)
|
||||
I'm currently using ASCIIMathML on a Wikiserver for lecture notes and
|
||||
<!--a href="http://math.chapman.edu/cgi-bin/mathxml.pl?Calculus_Text_Puzzles">Text
|
||||
Puzzles</a>. M-->my students are also using it in Moodle
|
||||
for writing and reading homework in their calculus class and
|
||||
discrete mathematics class.
|
||||
<font color="red">
|
||||
If you just want to display MathML on HTML pages using
|
||||
Netscape/Mozilla/Firefox or IE+MathPlayer, have a look at <a
|
||||
href="http://www1.chapman.edu/~jipsen/mathml/mathhtml">mathhtmltest</a>
|
||||
(the page includes a 50 line JavaScript program that does the trick).
|
||||
</font>
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<p>
|
||||
<b>Let's test the ASCIIMathML.js translator on a simple example.</b>
|
||||
</p>
|
||||
|
||||
<p>amath
|
||||
<b>Example:</b> Solving the quadratic equation.
|
||||
Suppose a x^2+b x+c=0 and a!=0. We first
|
||||
divide by \a to get x^2+b/a x+c/a=0.
|
||||
|
||||
Then we complete the square and obtain x^2+b/a x+(b/(2a))^2-(b/(2a))^2+c/a=0.
|
||||
The first three terms factor to give (x+b/(2a))^2=(b^2)/(4a^2)-c/a.
|
||||
Now we take square roots on both sides and get
|
||||
x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a).
|
||||
|
||||
Finally we subtract b/(2a) from both sides and simplify to get
|
||||
the two solutions: x_(1,2)=(-b+-sqrt(b^2 - 4a c))/(2a)
|
||||
</p>
|
||||
endamath
|
||||
|
||||
<p>
|
||||
<b>Here is the text that was typed in (<font color="red">using the new
|
||||
auto-math-recognize mode</font> started by "a``math"):</b>
|
||||
|
||||
</p>
|
||||
|
||||
<pre>amath
|
||||
<b>Example:</b> Solving the quadratic equation.
|
||||
Suppose a x^2+b x+c=0 and a!=0. We first divide by \a to get x^2+b/a x+c/a=0.
|
||||
|
||||
Then we complete the square and obtain x^2+b/a x+(b/(2a))^2-(b/(2a))^2+c/a=0.
|
||||
The first three terms factor to give (x+b/(2a))^2=(b^2)/(4a^2)-c/a.
|
||||
Now we take square roots on both sides and get x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a).
|
||||
|
||||
Finally we move the b/(2a) to the right and simplify to get
|
||||
the two solutions: x_(1,2)=(-b+-sqrt(b^2-4a c))/(2a)
|
||||
</pre>
|
||||
|
||||
<hr/>
|
||||
|
||||
<center>
|
||||
<b>
|
||||
If you don't believe this, copy the text and paste it on the
|
||||
<a href="asciimathdemo.html">ASCIIMathML.js: Try it yourself</a> demo page.
|
||||
</b>
|
||||
|
||||
</center>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h4>
|
||||
Here are a few more examples:
|
||||
</h4>
|
||||
|
||||
<table id="examples" border="5" cellpadding="10">
|
||||
<tr>
|
||||
<th>Type this</th>
|
||||
<th>See that</th>
|
||||
<th>Comment</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>\`x^2+y_1+z_12^34\`</td>
|
||||
<td>`x^2+y_1+z_12^34`</td>
|
||||
<td>subscripts as in TeX, but numbers are treated as a unit</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`sin^-1(x)\`</td>
|
||||
<td>`sin^-1(x)`</td>
|
||||
<td>function names are treated as constants</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<td>\`d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h\`</td>
|
||||
<td>`d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h`</td>
|
||||
<td>complex subscripts are bracketed, displayed under lim</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}\$</td>
|
||||
<td>$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</td>
|
||||
<td>standard LaTeX notation is an alternative</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`f(x)=sum_(n=0)^oo(f^((n))(a))/(n!)(x-a)^n\`</td>
|
||||
|
||||
<td>`f(x)=sum_(n=0)^oo(f^((n))(a))/(n!)(x-a)^n`</td>
|
||||
<td>f^((n))(a) must be bracketed, else the numerator is only `a`</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\$f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(a)}{n!}(x-a)^n\$</td>
|
||||
<td>$f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(a)}{n!}(x-a)^n$</td>
|
||||
<td>standard LaTeX produces the same result</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`int_0^1f(x)dx\`</td>
|
||||
<td>`int_0^1f(x)dx`</td>
|
||||
|
||||
<td>subscripts must come before superscripts</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`[[a,b],[c,d]]((n),(k))\`</td>
|
||||
<td>`[[a,b],[c,d]]((n),(k))`</td>
|
||||
<td>matrices and column vectors are simple to type</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`x/x={(1,if x!=0),(text{undefined},if x=0):}\`</td>
|
||||
<td>`x/x={(1,if x!=0),(text{undefined},if x=0):}`</td>
|
||||
<td>piecewise defined function are based on matrix notation</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`a//b\`</td>
|
||||
<td>`a//b`</td>
|
||||
<td>use // for inline fractions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`(a/b)/(c/d)\`</td>
|
||||
<td>`(a/b)/(c/d)`</td>
|
||||
<td>with brackets, multiple fraction work as expected</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>\`a/b/c/d\`</td>
|
||||
<td>`a/b/c/d`</td>
|
||||
<td>without brackets the parser chooses this particular expression</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`((a*b))/c\`</td>
|
||||
<td>`((a*b))/c`</td>
|
||||
<td>only one level of brackets is removed; * gives standard product</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<td>\`sqrt sqrt root3x\`</td>
|
||||
<td>`sqrt sqrt root3x`</td>
|
||||
<td>spaces are optional, only serve to split strings that should not match</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`<< a,b >> and {:(x,y),(u,v):}\`</td>
|
||||
<td>`<< a,b >> and {:(x,y),(u,v):}`</td>
|
||||
<td>angle brackets and invisible brackets</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`(a,b]={x in RR | a < x <= b}\`</td>
|
||||
|
||||
<td>`(a,b]={x in RR | a < x <= b}`</td>
|
||||
<td>grouping brackets don't have to match</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`abc-123.45^-1.1\`</td>
|
||||
<td>`abc-123.45^-1.1`</td>
|
||||
<td>non-tokens are split into single characters,<br/>
|
||||
but decimal numbers are parsed with possible sign</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>\`hat(ab) bar(xy) ulA vec v dotx ddot y\`</td>
|
||||
<td>`hat(ab) bar(xy) ulA vec v dotx ddot y`</td>
|
||||
<td>accents can be used on any expression (work well in IE)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`bb{AB3}.bbb(AB].cc(AB).fr{AB}.tt[AB].sf(AB)\`</td>
|
||||
<td>`bb{AB3}.bbb(AB].cc(AB).fr{AB}.tt[AB].sf(AB)`</td>
|
||||
<td>font commands; can use any brackets around argument</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<td>\`stackrel"def"= or \stackrel{\Delta}{=}" "("or ":=)\`</td>
|
||||
<td>`stackrel"def"= or \stackrel{\Delta}{=}" "("or ":=)`</td>
|
||||
<td>symbols can be stacked</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>\`{::}_(\ 92)^238U\`</td>
|
||||
<td>`{::}_(\ 92)^238U`</td>
|
||||
<td>prescripts simulated by subsuperscripts</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
If you are familiar with MathML, you can appreciate that this ASCII
|
||||
input form is less verbose and more readable. If you are familiar with
|
||||
TeX, this is still somewhat less cluttered. The aim is to have input
|
||||
notation that is close to graphing calculator notation, so that
|
||||
students are able to use it on webpages and in emails without having
|
||||
to learn another specialized syntax.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For an explicit description of the input syntax see <a
|
||||
href="asciimathsyntax.html">ASCIIMathML.js Syntax and List of
|
||||
Constants</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Acknowledgements:</b> Many thanks to the numerous people who have
|
||||
contributed to the fantastic MathML standard. Without such a
|
||||
well designed standard, a project like this would be impossible.<br/>
|
||||
|
||||
Thanks to the many volunteers who implemented MathML in the
|
||||
Gecko layout engine for Netscape7/Mozilla/Firefox.<br/>
|
||||
|
||||
|
||||
Thanks to the people at Design Science for producing the excellent
|
||||
MathPlayer plugin and making it freely available.<br/>
|
||||
|
||||
Finally, thanks to the designers and implementors of JavaScript. All
|
||||
these tools work together fairly seemlessly to allow us to put
|
||||
mathematical formulas on webpages in a convenient and inexpensive way.<br/>
|
||||
|
||||
And thanks to Andrew White for making a logo for ASCIIMathML (see below).
|
||||
</p>
|
||||
<hr/>
|
||||
|
||||
<div id="author">
|
||||
<a href="http://www.chapman.edu/~jipsen/">Peter Jipsen</a>,
|
||||
<a href="http://www.chapman.edu/">Chapman University</a>, September 2007
|
||||
|
||||
<a href="http://validator.w3.org/check/referer"><img border="0"
|
||||
src="http://www.w3.org/Icons/valid-html401"
|
||||
alt="Valid HTML 4.01!" height="31" width="88"></a>
|
||||
</div>
|
||||
|
||||
<p><div class="display">
|
||||
<a style="color:white" href="../asciimath.html">
|
||||
<img src="asciimathml.jpeg" alt="ASCIIMathML"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
118
main/inc/lib/javascript/asciimath/asciimathcalculator.html
Normal file
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>ASCIIMath Calculator Demo</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript" src="ASCIIMathML.js"></script>
|
||||
<!--script type="text/javascript">mathfontsize=".9em"</script-->
|
||||
<style type="text/css">
|
||||
#menu, #title, #subtitle, #author {text-align: center}
|
||||
body {font-family: Arial; background-color:beige}
|
||||
p,table {font-family: Times}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="menu">
|
||||
| <a href="asciimath.html">Home Page</a> |
|
||||
<a href="asciimathsyntax.html">Syntax</a> |
|
||||
<a href="asciimathdemo.html">Try it</a> |
|
||||
<a href="asciimathcalculator.html">Calculator</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimathdownload.html">Download</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathGraphs.html">Graphs</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathFAQ.html">ASCIIMath FAQ</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLSandbox.html">Sandbox</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathCommentsAndSuggestions.html">Comments</a> |
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2 id="title">
|
||||
ASCIIMath Scientific Calculator (ver 1.2)
|
||||
</h2>
|
||||
|
||||
<h4 align="center">
|
||||
A free webpage calculator with live MathML display
|
||||
</h4>
|
||||
|
||||
<h4 align="center">
|
||||
This page requires Internet Explorer 6+<a
|
||||
href="http://www.dessci.com/en/products/mathplayer">MathPlayer</a>
|
||||
or Mozilla/Firefox/Netscape 7+.
|
||||
</h4>
|
||||
|
||||
<div class="ASCIIMathCalculator"></div>
|
||||
|
||||
<p>
|
||||
More calculator areas:<br>
|
||||
<textarea id="in1" rows="2" cols="40" onkeyup="calculate('in1','out1')">
|
||||
2sin^-1(1)</textarea> <span id="out1"></span>
|
||||
<p/>
|
||||
|
||||
<p>
|
||||
<textarea id="in2" rows="2" cols="30"
|
||||
onkeyup="calculate('in2','out2');calculate('in3','out3')">
|
||||
a=5; b=4; c=-1; (-b+sqrt(b^2-4a*c))/(2a)
|
||||
</textarea> <span id="out2"></span>
|
||||
<br/>
|
||||
<textarea id="in3" rows="1" cols="30"
|
||||
onkeyup="calculate('in2','out2');calculate('in3','out3')">
|
||||
(-b-sqrt(b^2-4a*c))/(2a)</textarea> <span id="out3"></span>
|
||||
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Note that this is dynamic HTML running locally on your machine.</b>
|
||||
<br/>
|
||||
Right-click on the output to copy or view the MathML code (or have it
|
||||
<b>spoken</b> in IE+MathPlayer).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Some technical remarks:</b> This calculator works only in radians.
|
||||
(Multiply angles by pi/180 to convert from degrees to radians.)
|
||||
<br/>
|
||||
|
||||
The syntax is loosely based on JavaScript and a subset of ASCIIMathML.
|
||||
<br/>
|
||||
The multiplication symbol * can be omitted after a digit (0-9)
|
||||
or a closing parenthesis.
|
||||
<br/>
|
||||
Available constants and functions:
|
||||
<br/>
|
||||
+, -, *, /, ^, pi, e, sqrt(), ln(), abs(), sign(),
|
||||
floor(), ceil(), n!, C(n,k), ran(a,b,n)
|
||||
<br/>
|
||||
sin(), cos(), tan(), sin^-1(), cos^-1(), tan^-1(),
|
||||
sinh(), cosh(), tanh(), sinh^-1(), cosh^-1(), tanh^-1()
|
||||
<br/>
|
||||
sec(), csc(), cot(), sec^-1(), csc^-1(), cot^-1(),
|
||||
sech(), csch(), coth(), sech^-1(), csch^-1(), coth^-1()
|
||||
|
||||
<br/>
|
||||
Values can be assigned to (legal JavaScript) variable names.
|
||||
Use ";" to separate expressions.
|
||||
<br/>
|
||||
Any number of calculator textareas can be placed anywhere on <b>your own</b>
|
||||
webpages.
|
||||
</p>
|
||||
ASCIIMathML and this calculator are freely available under the
|
||||
<a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General
|
||||
Public License</a>. Please include a link to <a
|
||||
href="http://asciimathml.sourceforge.net">asciimathml.sourceforge.net</a>
|
||||
on any webpage that makes use of them, and send a link of your webpage
|
||||
to <a href="mailto:jipsen@chapman.edu">jipsen@chapman.edu</a>.
|
||||
|
||||
<hr/>
|
||||
|
||||
<div id="author">
|
||||
<a href="http://www.chapman.edu/~jipsen/">Peter Jipsen</a>,
|
||||
<a href="http://www.chapman.edu/">Chapman University</a>, May 2007
|
||||
|
||||
<a href="http://validator.w3.org/check/referer"><img border="0"
|
||||
src="http://www.w3.org/Icons/valid-html401"
|
||||
alt="Valid HTML 4.01!" height="31" width="88"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
227
main/inc/lib/javascript/asciimath/asciimathchanges.txt
Normal file
@@ -0,0 +1,227 @@
|
||||
Changes file for ASCIIMathML.js
|
||||
===============================
|
||||
|
||||
Sep 27, 2007 Version 2.0
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML20.js)
|
||||
|
||||
- included LaTeXMathML.js and ASCIIsvg.js in the ASCIIMathML script
|
||||
|
||||
- changed license to GNU LGPL 2.1
|
||||
|
||||
- Added auto-math-recognize mode (amath ... endamath)
|
||||
|
||||
- Added some LaTeX environments and simple formatting
|
||||
|
||||
- Created Moodle filter and PmWiki cookbook
|
||||
|
||||
- Added MathML text labels to SVG graphs
|
||||
|
||||
- Fixed SVG cursor tracking in Firefox
|
||||
|
||||
- Added stroke/fillopacity to graphs
|
||||
|
||||
- Simplified syntax for graph inclusion
|
||||
|
||||
- SVG mouseevents are now added in the scope of the graph code
|
||||
|
||||
- MathML fontsize can now be magnified relative to surrounding text
|
||||
|
||||
-------------------------------
|
||||
|
||||
Aug 7, 2005 Version 1.4.7
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML147.js)
|
||||
|
||||
- changed IE MathML prefix from mml: to m: (default of MathPlayer, so now
|
||||
<html> works without the xmlns attribute)
|
||||
|
||||
- for IE the script now writes out the <object ...> and <?import ...> tags
|
||||
simplifying the header file significantly
|
||||
|
||||
- script now uses a generic onload (by www.brothercake.com) so
|
||||
no need for onload="translate()" in <body> (but earlier pages still work)
|
||||
|
||||
- ASCIIMathML.js can now be used on any HTML page by just adding one line to
|
||||
load the script. So validating your HTML pages is now possible, and use
|
||||
of HTML editors is simple.
|
||||
|
||||
- added unparametrized macros: put <script>newcommand("short","long")</script>
|
||||
on your webpage and each occurrence of "short" is replaced by "long"
|
||||
|
||||
- added /_ (\angle) and :. (\therefore) as symbols
|
||||
|
||||
- made an ASCIIMath plugin for Xinha HTML editor (see editor link on homepage)
|
||||
with instant preview, template popup and builtin calculator
|
||||
|
||||
-------------------------------
|
||||
|
||||
Apr 23, 2005 Version 1.4.6
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML146.js)
|
||||
|
||||
- added "showasciiformulaonhover" variable; if true then pointing at a MathML
|
||||
expression shows the ascii form that produces the expression
|
||||
|
||||
- added "decimalsign" variable; default is "."
|
||||
|
||||
- removed "separatetokens" option (to speed up token recognition)
|
||||
|
||||
- changed |-, |=, |_, _| to |--, |==, |__, __| to avoid parsing problems
|
||||
e.g. |-x|, |x|=a, ||A||_1 now parse as expected
|
||||
|
||||
- changed parser so that "-" is unary if previous token is INFIX
|
||||
e.g. now x^-y works like x^(-y) (but x-y is same as x - y)
|
||||
|
||||
- added "spanclassAM" option; invoked by translate(true), all math should
|
||||
then be delimited by <span class="AM">...</span>; translate() works as before
|
||||
|
||||
-------------------------------
|
||||
|
||||
Jan 30, 2005 Version 1.4.5
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML145.js)
|
||||
|
||||
- added TEXT token type for \text{...}, \mbox{...} and "..."
|
||||
|
||||
- changed sin, cos, tan, ..., lcm to UNARY type (func); now 1/sinx works
|
||||
|
||||
- changed parser so that ^, _ have priority over /
|
||||
now x_1/3^2 works like (x_1)/(3^2)
|
||||
|
||||
-------------------------------
|
||||
|
||||
Jan 14, 2005 Version 1.4.4
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML144.js)
|
||||
|
||||
- added "mathfontfamily" variable (default "serif")
|
||||
|
||||
- mathcolor and mathfontfamily can be "" to inherit values of surrounding text
|
||||
|
||||
- added "AMdelimiter" variables to set math delimiters (default "`" and "$")
|
||||
|
||||
- added LEFTRIGHT token type for "|"; now `|x|` displays like `{:|x|:}`;
|
||||
a single | still parses as \mid e.g. in {x | x > 0}
|
||||
|
||||
-------------------------------
|
||||
|
||||
Dec 28, 2004 Version 1.4.3
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML143.js)
|
||||
|
||||
- added mapsto |->
|
||||
|
||||
- fixed a parsing error that was generated by incomplete fractions (1/)
|
||||
|
||||
- fixed parsing of negative numbers (<mn>-1</mn> is now translated to
|
||||
<mrow><mo>-</mo><mn>1</mn></mrow>)
|
||||
|
||||
- added notifyIfNoMathML flag. If false, no note is inserted at top of page.
|
||||
|
||||
- included ASCIIMathCalculator.js: a small script that implements a
|
||||
webpage calculator with live MathML preview
|
||||
|
||||
-------------------------------
|
||||
|
||||
Nov 12, 2004 Version 1.4.2
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML142.js)
|
||||
|
||||
- added constants for: setminus, vdots, ddots, glb, lub
|
||||
|
||||
-------------------------------
|
||||
|
||||
Aug 16, 2004 Version 1.4.1
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML141.js)
|
||||
|
||||
- fixed a typo to make the check for MathML capability work correctly
|
||||
|
||||
- added stackrel command (mover in MathML), e.g. stackrel{def}{=}
|
||||
|
||||
- added := as binary relation to get spacing right in Mozilla/Firefox/Netscape
|
||||
|
||||
-------------------------------
|
||||
|
||||
July 13, 2004 Version 1.4
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML4.js)
|
||||
|
||||
- cleaned up the js code, thanks to some very helpful suggestions by Alex V.
|
||||
|
||||
- most global variables prefixed with "AM" to avoid conflict with ASCIIsvg.js
|
||||
|
||||
- added macro definition ability to define dx, dy, dz, ...
|
||||
e.g. now dx is replaced by {d x}, so `d/dx` can be used rather than `d/(dx)`.
|
||||
Users can add their own (parameterless) macros.
|
||||
|
||||
- added check for MathML capability. If absent, inserts note at top of page.
|
||||
|
||||
- unmatched right bracket no longer ends expression. E.g. in `cosx]_0^1`
|
||||
the "]" is treated simply as a constant symbol (better to use `{:cosx]_0^1`).
|
||||
|
||||
- numeric unicode entity names can be used for unnamed symbols, e.g. `≰`
|
||||
|
||||
-------------------------------
|
||||
|
||||
Mar 26, 2004 Version 1.3
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML3.js)
|
||||
|
||||
- fixed parser so that unary/binary symbols without arguments are treated
|
||||
as constants (previously generated js error)
|
||||
|
||||
- noticed that ASCIIMathML.js does not require XML, actually works in HTML
|
||||
on multiple browsers (required no change to the script)
|
||||
|
||||
- added `"any"` as alternative to `text{any}`
|
||||
|
||||
- added min, max as standard function names (subscripts go underneath)
|
||||
|
||||
- added o. (\odot) as symbol
|
||||
|
||||
- added separatetokens flag: lowercase tokens must be separated by nonletters
|
||||
(if true, `sinx` is a sequence of 4 variables, instead use `sin x`)
|
||||
switched off by default, can be switched on (see top of ASCIIMathML.js)
|
||||
|
||||
- added (experimental) doubleblankmathdelimiter so a+b is same as `a+b`
|
||||
switched off by default, can be switched on (see top of ASCIIMathML.js)
|
||||
|
||||
-------------------------------
|
||||
|
||||
Feb 8, 2004 Version 1.2
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML2.js)
|
||||
|
||||
- added accents: hat bar ul vec dot ddot
|
||||
|
||||
- added sans-serif font: sf
|
||||
|
||||
- both `...` and $...$ are now allowed as math delimiters
|
||||
|
||||
- \$ and \` can now be used to insert $ or ` in plain text
|
||||
|
||||
- `a text{ sometext }b` now shows the space around "sometext"
|
||||
|
||||
- blocks of ASCIIMathML + text can be enclosed in comments <!-- -->
|
||||
in which case blank lines are converted to paragraph breaks;
|
||||
inside comments the < character can be used (does not cause XML error)
|
||||
(use this "comment mode" with caution; future versions of IE or
|
||||
Mozilla may not display it the same way)
|
||||
|
||||
-------------------------------
|
||||
|
||||
Jan 9, 2004 Version 1.1
|
||||
(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML1.js)
|
||||
|
||||
- added \vdash, \models (actually ⊨!), \vartheta, \bigwedge, \bigvee,
|
||||
\bigcup, \bigcap, \propto, \oint to symbol table, with ASCII equivalents
|
||||
|
||||
- renamed "subset, supset" to their entity names "sube, supe",
|
||||
added "sub, sup" and their LaTeX equivalents \subset, \supset
|
||||
|
||||
- updated webpages
|
||||
|
||||
-------------------------------
|
||||
|
||||
Jan 6, 2004 Version 1.0
|
||||
(now at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML0.js)
|
||||
|
||||
- calligraphic, black board bold and fraktur fonts are finally working
|
||||
also in Mozilla/Netscape 7
|
||||
|
||||
- added a download page
|
||||
|
||||
- added GNU GPL notices
|
||||
|
||||
===============================
|
||||
117
main/inc/lib/javascript/asciimath/asciimathdemo.html
Normal file
@@ -0,0 +1,117 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>ASCIIMathML.js demo</title>
|
||||
<script type="text/javascript" src="ASCIIMathML.js"></script>
|
||||
<script type="text/javascript">
|
||||
translateOnLoad=false;
|
||||
function display() {
|
||||
var str = document.getElementById("inputText").value;
|
||||
var outnode = document.getElementById("outputNode");
|
||||
var n = outnode.childNodes.length;
|
||||
for (var i=0; i<n; i++)
|
||||
outnode.removeChild(outnode.firstChild);
|
||||
outnode.appendChild(document.createTextNode(str));
|
||||
AMprocessNode(outnode);
|
||||
}
|
||||
</script>
|
||||
<style type="text/css">
|
||||
#menu, #title, #subtitle, #author {text-align: center}
|
||||
body {font-family: Arial; background-color:beige;}
|
||||
</style>
|
||||
</head>
|
||||
<body onload="display()">
|
||||
|
||||
<div id="menu">
|
||||
| <a href="asciimath.html">Home Page</a> |
|
||||
<a href="asciimathsyntax.html">Syntax</a> |
|
||||
<a href="asciimathdemo.html">Try it</a> |
|
||||
<a href="asciimathcalculator.html">Calculator</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimathdownload.html">Download</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathGraphs.html">Graphs</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathFAQ.html">ASCIIMath FAQ</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLSandbox.html">Sandbox</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathCommentsAndSuggestions.html">Comments</a> |
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2 id="title">
|
||||
ASCIIMathML.js: Try it yourself (HTML version)
|
||||
</h2>
|
||||
|
||||
<center>
|
||||
<b>
|
||||
This page requires Internet Explorer 6+<a
|
||||
href="http://www.dessci.com/en/products/mathplayer">MathPlayer</a>
|
||||
or Mozilla/Firefox/Netscape 7+.
|
||||
</b>
|
||||
<p>
|
||||
Edit the formulas below (the display updates dynamically).
|
||||
If you know (La)TeX formula syntax, you can try some of that as well
|
||||
(LaTeX formulas work best when enclosed in $-signs).
|
||||
The "amath" token switches on the new auto-math-recognize mode.</p>
|
||||
|
||||
<form>
|
||||
<textarea id="inputText" rows="10" cols="80" onkeyup="display()">
|
||||
amath
|
||||
|
||||
Let's try some interesting formulas: E=m c^2
|
||||
and e^(i pi)=-1
|
||||
and AA x in CC (sin^2x+cos^2x=1)
|
||||
and one more: sum_(i=1)^n i^3=((n(n+1))/2)^2
|
||||
|
||||
(add your own -- note that text-tokens are only recognized if separated by spaces)
|
||||
|
||||
</textarea>
|
||||
</form>
|
||||
|
||||
<p>
|
||||
<div id="outputNode"></div>
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
<p>
|
||||
<b>Note that this is dynamic XHTML running locally on your machine!</b>
|
||||
<br>
|
||||
Right-click on an output formula to copy or view the MathML code.
|
||||
</p>
|
||||
</center>
|
||||
(Copy and paste the following lines to see what symbols they produce)<br/>
|
||||
<b>You can use the following ASCIIMathML constructs:</b>
|
||||
<tt> `(x+1)/(x-1) x^(i+j) x_(ij) sqrt(x) root(n)(x) stackrel(+)(->) text(any) "any"`</tt><br/>
|
||||
<b>Operation symbols</b>
|
||||
<tt> `+ - * ** // \\ xx -: @ o+ ox sum prod ^^ ^^^ vv vvv nn nnn uu uuu`</tt><br/>
|
||||
<b>Relation symbols</b>
|
||||
<tt> `= != < <= > >= -< >- in !in sub sup sube supe -= ~= ~~ prop`</tt><br/>
|
||||
<b>Logical symbols</b><tt> `\and \or \not => if iff AA EE _|_ TT |-- |==`</tt><br/>
|
||||
<b>Miscellaneous symbols</b>
|
||||
<tt> `int oint del grad +- O/ oo aleph ... cdots \ quad qquad diamond square |__ __| |~ ~| CC NN QQ RR ZZ`</tt><br/>
|
||||
<b>Standard functions</b>
|
||||
<tt> `sin cos tan csc sec cot sinh cosh tanh log ln det dim lim mod gcd lcm`</tt><br/>
|
||||
<b>Grouping brackets</b><tt> `( ) [ ] { } (: :) {: :}` </tt>
|
||||
<b>Arrows</b><tt> `uarr darr rarr -> larr harr rArr lArr hArr` </tt><br/>
|
||||
<b>Accents</b><tt> `hatx barx ulx vecx dotx ddotx` </tt>
|
||||
<b>Font commands</b><tt> `bbA bbbA ccA ttA frA sfA` </tt>
|
||||
<b>Matrices</b><tt> `[[a,b],[c,d]] ((1,0),(0,1))` </tt><br/>
|
||||
<b>Greek letters</b><tt> `alpha beta chi delta Delta epsi eta gamma Gamma
|
||||
iota kappa lambda Lambda mu nu omega Omega phi Phi pi Pi psi rho sigma Sigma
|
||||
tau theta Theta upsilon xi Xi zeta`</tt>
|
||||
|
||||
<p>
|
||||
This demo page shows that ASCIIMathML.js can be used easily to
|
||||
dynamically preview mathematical formulas (client-side). E.g. here is a
|
||||
(beta) webpage that can be used to <b><a
|
||||
href="http://math.chapman.edu/email/">write and read
|
||||
mathematical emails and discussion group articles</a></b>. Since most
|
||||
email communication is still done with ASCII text (or at least not yet
|
||||
with XHTML), this is a reasonable (and inexpensive) solution for
|
||||
communicating with students in online math courses.
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
<div id="author">
|
||||
<a href="http://www.chapman.edu/~jipsen/">Peter Jipsen</a>,
|
||||
<a href="http://www.chapman.edu/">Chapman University</a>, September 2007
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
76
main/inc/lib/javascript/asciimath/asciimathextend.html
Normal file
@@ -0,0 +1,76 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Extending ASCIIMathML</title>
|
||||
<script type="text/javascript" src="ASCIIMathML.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
define("!<=","\u2270")
|
||||
define("!>=","\u2271")
|
||||
newcommand("\\nle","\u2270")
|
||||
newcommand("\\nge","\u2271")
|
||||
</script>
|
||||
</head>
|
||||
<body bgcolor="beige">
|
||||
|
||||
<h2>ASCIIMathML.js: Extending the symbol table</h2>
|
||||
|
||||
<p>
|
||||
The standard symbol table of ASCIIMathML.js does not contain many symbols.
|
||||
It can be extended by adding additional symbols on any webpage that
|
||||
requires them. This is done by adding a few lines of JavaScript code.
|
||||
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For example, suppose we want to add symbols for "not less or equal" and
|
||||
"not greater or equal".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We first have to find the four-digit hexadecimal Unicode value for
|
||||
these symbols by looking them up at, say, <a
|
||||
href="http://www.w3.org/TR/MathML2/chapter6.html#chars.entity.tables">http://www.w3.org/TR/MathML2/chapter6.html#chars.entity.tables</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Next we have to decide what input strings we want to associate with these
|
||||
symbols, say "!<=" and "!>=".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Finally we add the following lines to the head or body of our HTML file:
|
||||
<pre style="border-style:groove"><script type="text/javascript">
|
||||
define("!<=","\u2270")
|
||||
define("!>=","\u2271")
|
||||
</script>
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Here we test the modified symbol table:
|
||||
<tt>\`a !<= b !>= c\`</tt> produces `a !<= b !>= c`
|
||||
</p>
|
||||
|
||||
<p>To add a symbol to the LaTeX commands, use the following alternate syntax:
|
||||
<pre style="border-style:groove"><script type="text/javascript">
|
||||
newcommand("\\nle","\u2270")
|
||||
newcommand("\\nge","\u2271")
|
||||
</script>
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Now
|
||||
<tt>\$a \nle b \nge c\$</tt> produces $a \nle b \nge c$.
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
<p>
|
||||
If you know the numeric entity reference of the symbol you want to use
|
||||
on an ASCIIMathML webpage, you can also refer to the symbol directly
|
||||
by using that reference. E.g \`&#x2270;\` produces `≰`.
|
||||
If a symbol is only used occasionally, this is certainly the simplest
|
||||
way to include it.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
38
main/inc/lib/javascript/asciimath/asciimathsample.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<html xmlns:mml="http://www.w3.org/1998/Math/MathML">
|
||||
<head>
|
||||
<script type="text/javascript" src="ASCIIMathML.js"></script>
|
||||
<title>ASCIIMathML sample page</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>ASCIIMathML.js sample page</h2>
|
||||
|
||||
<p>
|
||||
Use auto-math-recognize mode (amath here x^2 and text is
|
||||
mixed endamath) or surround ASCIIMath formulas
|
||||
with left-quotes:
|
||||
`sum_(i=1)^n i=(n(n+1))/2` or LaTeX formulas with \$-signs
|
||||
$\int_0^{\pi/2} \sin x\,dx=1$.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
And here is a simple graph:
|
||||
|
||||
agraph plot(sin(x)) endagraph
|
||||
|
||||
followed by a more elaborate graph (try double-clicking it, also
|
||||
while holding down shift or alt)
|
||||
|
||||
agraph
|
||||
width=300; height=200; xmin=-5; xmax=5; xscl=1;
|
||||
plot((x-2)*(x-1)*x*(x+1)*(x+2)/2,-2.5,2.5);
|
||||
endagraph
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note: this page uses a relative link to ASCIIMathML.js,
|
||||
so the script should be in the same folder as this sample file.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
506
main/inc/lib/javascript/asciimath/asciimathsyntax.html
Normal file
@@ -0,0 +1,506 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>ASCIIMathML: Syntax and constants</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript" src="ASCIIMathML.js"></script>
|
||||
<style type="text/css">
|
||||
#menu, #title, #subtitle, #author {text-align: center}
|
||||
body {font-family: Arial; background-color:beige}
|
||||
p,table {font-family: Times}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="menu">
|
||||
| <a href="asciimath.html">Home Page</a> |
|
||||
<a href="asciimathsyntax.html">Syntax</a> |
|
||||
<a href="asciimathdemo.html">Try it</a> |
|
||||
<a href="asciimathcalculator.html">Calculator</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimathdownload.html">Download</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathGraphs.html">Graphs</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathFAQ.html">ASCIIMath FAQ</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLSandbox.html">Sandbox</a> |
|
||||
<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathCommentsAndSuggestions.html">Comments</a> |
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h2 id="title">
|
||||
ASCIIMathML.js (ver 2.0): Syntax and List of Constants
|
||||
</h2>
|
||||
|
||||
<h4 id="subtitle">
|
||||
The main aims of the ASCIIMathML syntax are: -- 1. close to standard
|
||||
mathematical notation -- 2. easy to read -- 3. easy to type
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
You can use your favorite editor to write HTML pages that use this
|
||||
JavaScript program. If the page is viewed by a browser that does not
|
||||
support MathML or JavaScript, the ASCII formulas are still quite
|
||||
readable. Most users will not have to read the technicalities on
|
||||
this page. If you type
|
||||
</p>
|
||||
|
||||
<pre>amath x^2 or a_(m n) or a_{m n} or (x+1)/y or sqrtx endamath</pre>
|
||||
|
||||
<p>
|
||||
you pretty much get what you expect: amath x^2 or a_(m n) or a_{m n} or
|
||||
(x+1)/y or sqrtx endamath. The a``math ... enda``math tokens are used to
|
||||
start/stop the <b>new auto-math-recognize mode</b>. Of course one can still use
|
||||
the \`...\` back-quotes to delimit math formulas explicitly
|
||||
(\$...\$ should only be used for LaTeX formulas).
|
||||
The choice of grouping parenthesis is up to you
|
||||
(they don't have to match either). If the displayed expression can be
|
||||
parsed uniquely without them, they are omitted. Printing the table of
|
||||
constant symbols (below) may be helpful (but is not necessary if you
|
||||
know the LaTeX equivalents).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It is hoped that this simple input format for MathML will further
|
||||
encourage its use on the web. The remainder of this page gives a fairly
|
||||
detailed specification of the ASCII syntax. <b>The expressions described here
|
||||
correspond to a wellspecified subset of Presentation MathML and behave
|
||||
in a predictable way.</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The syntax is very permissive and does not generate syntax
|
||||
errors. This allows mathematically incorrect expressions to be
|
||||
displayed, which is important for teaching purposes. It also causes
|
||||
less frustration when previewing formulas.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The parser uses no operator precedence and only respects the grouping
|
||||
brackets, subscripts, superscript, fractions and (square) roots. This
|
||||
is done for reasons of efficiency and generality. The resulting MathML
|
||||
code can quite easily be processed further to ensure additional syntactic
|
||||
requirements of any particular application.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>The grammar:</b> Here is a definition of the grammar used to parse
|
||||
ASCIIMathML expressions. In the Backus-Naur form given below, the
|
||||
letter on the left of the ::= represents a category of symbols that
|
||||
could be one of the possible sequences of symbols listed on the right.
|
||||
The vertical bar | separates the alternatives.
|
||||
</p>
|
||||
|
||||
<pre>c ::= [A-z] | numbers | greek letters | other constant symbols (see below)
|
||||
u ::= 'sqrt' | 'text' | 'bb' | other unary symbols for font commands
|
||||
b ::= 'frac' | 'root' | 'stackrel' binary symbols
|
||||
l ::= ( | [ | { | (: | {: left brackets
|
||||
r ::= ) | ] | } | :) | :} right brackets
|
||||
S ::= c | lEr | uS | bSS | "any" simple expression
|
||||
E ::= SE | S/S |S_S | S^S | S_S^S expression (fraction, sub-, super-, subsuperscript)
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
<b>The translation rules:</b> Each terminal symbol is translated into
|
||||
a corresponding MathML node. The constants are mostly converted to
|
||||
their respective Unicode symbols. The other expressions are converted
|
||||
as follows:<br/>
|
||||
<table>
|
||||
<tr><td>l`S`r</td><td>`to`</td><td><mrow>l`S`r</mrow>
|
||||
(note that any pair of brackets can be used to delimit subexpressions,
|
||||
they don't have to match)</td></tr>
|
||||
<tr><td>sqrt `S`</td><td>`to`</td><td><msqrt>`S'`</msqrt></td></tr>
|
||||
|
||||
<tr><td>text `S`</td><td>`to`</td><td><mtext>`S'`</mtext></td></tr>
|
||||
<tr><td>"any"</td><td>`to`</td><td><mtext>any</mtext></td></tr>
|
||||
<tr><td>
|
||||
frac `S_1` `S_2`</td><td>`to`</td><td><mfrac>`S_1'` `S_2'`</mfrac>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
|
||||
root `S_1` `S_2`</td><td>`to`</td><td><mroot>`S_2'` `S_1'`</mroot>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
stackrel `S_1` `S_2`</td><td>`to`</td><td><mover>`S_2'` `S_1'`</mover>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
`S_1`/`S_2`</td><td>`to`</td><td><mfrac>`S_1'` `S_2'`</mfrac>
|
||||
</td></tr>
|
||||
|
||||
<tr><td>
|
||||
`S_1`_`S_2`</td><td>`to`</td><td><msub>`S_1` `S_2'`</msub>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
`S_1`^`S_2`</td><td>`to`</td><td><msup>`S_1` `S_2'`</msup>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
`S_1`_`S_2`^`S_3`</td><td>`to`</td>
|
||||
<td><msubsup>`S_1` `S_2'` `S_3'`</msubsup> or
|
||||
|
||||
<munderover>`S_1` `S_2'` `S_3'`</munderover> (in some cases)
|
||||
</td></tr>
|
||||
</table>
|
||||
In the rules above, the expression `S'` is the same as `S`, except that if
|
||||
`S` has an outer level of brackets, then `S'` is the expression inside
|
||||
these brackets.
|
||||
|
||||
<p>
|
||||
<b>Matrices:</b> A simple syntax for matrices is also recognized:
|
||||
<br/>
|
||||
<tt>l(`S_(11)`,...,`S_(1n)`),(...),(`S_(m1)`,...,`S_(mn)`)r</tt>
|
||||
    or    
|
||||
|
||||
<tt>l[`S_(11)`,...,`S_(1n)`],[...],[`S_(m1)`,...,`S_(mn)`]r</tt>.
|
||||
<br/>
|
||||
|
||||
Here <tt>l</tt> and <tt>r</tt> stand for any of the left and right
|
||||
brackets (just like in the grammar they do not have to match). Both of
|
||||
these expressions are translated to
|
||||
<br/>
|
||||
|
||||
<mrow>l<mtable><mtr><mtd>`S_(11)`</mtd>...
|
||||
|
||||
<mtd>`S_(1n)`</mtd></mtr>...
|
||||
<mtr><mtd>`S_(m1)`</mtd>...
|
||||
<mtd>`S_(mn)`</mtd></mtr></mtable>r</mrow>.
|
||||
<br/>
|
||||
|
||||
For example
|
||||
<tt>{(S_(11),...,S_(1n)),(vdots,ddots,vdots),(S_(m1),...,S_(mn))]</tt>
|
||||
displays as `{(S_(11),...,S_(1n)),(vdots,ddots,vdots),(S_(m1),...,S_(mn))]`.
|
||||
|
||||
<br/>
|
||||
|
||||
Note that each row must have the same number of expressions, and there
|
||||
should be at least two rows.
|
||||
|
||||
<p>
|
||||
<b>Tokenization:</b> The input formula is broken into tokens using a
|
||||
"longest matching initial substring search". Suppose the input formula
|
||||
has been processed from left to right up to a fixed position. The
|
||||
longest string from the list of constants (given below) that matches
|
||||
the initial part of the remainder of the formula is the next token. If
|
||||
there is no matching string, then the first character of the remainder
|
||||
is the next token. The symbol table at the top of the ASCIIMathML.js
|
||||
script specifies whether a symbol is a math operator (surrounded by a
|
||||
<mo> tag) or a math identifier (surrounded by a <mi> tag). For
|
||||
single character tokens, letters are treated as math identifiers, and
|
||||
non-alphanumeric characters are treated as math operators. For digits,
|
||||
see "Numbers" below.
|
||||
|
||||
<p>
|
||||
Spaces are significant when they separate characters and thus prevent
|
||||
a certain string of characters from matching one of the
|
||||
constants. Multiple spaces and end-of-line characters are equivalent
|
||||
to a single space.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
Now for a complete list of constants (<a
|
||||
href="http://math.chapman.edu/cgi-bin/mathxml.pl?Complete_list_of_LaTeX_constants">standard
|
||||
LaTeX names</a> also work):
|
||||
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Numbers: A string of digits, optionally preceded by a minus sign, and
|
||||
optionally followed by a decimal point (a period) and another string
|
||||
of digits, is parsed as a single token and converted to a MathML
|
||||
number, i.e., enclosed with the <mn> tag. If it is not desirable to
|
||||
have a preceding minus sign be part of the number, a space should be inserted.
|
||||
Thus <tt>x-1</tt> is converted to <mi>x</mi><mn>-1</mn>, whereas
|
||||
<tt>x - 1</tt> is converted to <mi>x</mi><mo>-</mo><mn>1</mn>.
|
||||
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Greek letters:
|
||||
alpha `alpha`
|
||||
beta `beta`
|
||||
chi `chi`
|
||||
delta `delta`
|
||||
Delta `Delta`
|
||||
epsilon `epsilon`
|
||||
varepsilon `varepsilon`
|
||||
eta `eta`
|
||||
gamma `gamma`
|
||||
Gamma `Gamma`
|
||||
iota `iota`
|
||||
kappa `kappa`
|
||||
lambda `lambda`
|
||||
Lambda `Lambda`
|
||||
mu `mu`
|
||||
nu `nu`
|
||||
omega `omega`
|
||||
Omega `Omega`
|
||||
phi `phi`
|
||||
varphi `varphi`
|
||||
Phi `Phi`
|
||||
pi `pi`
|
||||
Pi `Pi`
|
||||
psi `psi`
|
||||
Psi `Psi`
|
||||
rho `rho`
|
||||
sigma `sigma`
|
||||
Sigma `Sigma`
|
||||
tau `tau`
|
||||
theta `theta`
|
||||
vartheta `vartheta`
|
||||
Theta `Theta`
|
||||
upsilon `upsilon`
|
||||
xi `xi`
|
||||
Xi `Xi`
|
||||
zeta `zeta`
|
||||
</p>
|
||||
|
||||
<table border="5" cellpadding="10">
|
||||
<tr valign="top"><td>
|
||||
Operation symbols
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>+</td><td>`+`</td></tr>
|
||||
<tr><td>-</td><td>`-`</td></tr>
|
||||
|
||||
<tr><td>*</td><td>`*`</td></tr>
|
||||
<tr><td>**</td><td>`**`</td></tr>
|
||||
<tr><td>//</td><td>`//`</td></tr>
|
||||
<tr><td>\\</td><td>`\\ `</td></tr>
|
||||
<tr><td>xx</td><td>`xx`</td></tr>
|
||||
<tr><td>-:</td><td>`-:`</td></tr>
|
||||
|
||||
<tr><td>@</td><td>`@`</td></tr>
|
||||
<tr><td>o+</td><td>`o+`</td></tr>
|
||||
<tr><td>ox</td><td>`ox`</td></tr>
|
||||
<tr><td>o.</td><td>`o.`</td></tr>
|
||||
<tr><td>sum</td><td>`sum`</td></tr>
|
||||
<tr><td>prod</td><td>`prod`</td></tr>
|
||||
|
||||
<tr><td>^^</td><td>`^^`</td></tr>
|
||||
<tr><td>^^^</td><td>`^^^`</td></tr>
|
||||
<tr><td>vv</td><td>`vv`</td></tr>
|
||||
<tr><td>vvv</td><td>`vvv`</td></tr>
|
||||
<tr><td>nn</td><td>`nn`</td></tr>
|
||||
<tr><td>nnn</td><td>`nnn`</td></tr>
|
||||
|
||||
<tr><td>uu</td><td>`uu`</td></tr>
|
||||
<tr><td>uuu</td><td>`uuu`</td></tr>
|
||||
</table>
|
||||
</td><td>
|
||||
Relation symbols
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>=</td><td>`=`</td></tr>
|
||||
<tr><td>!=</td><td>`!=`</td></tr>
|
||||
|
||||
<tr><td>< </td><td>`<`</td></tr>
|
||||
<tr><td>></td><td>`>`</td></tr>
|
||||
<tr><td><=</td><td>`<=`</td></tr>
|
||||
<tr><td>>=</td><td>`>=`</td></tr>
|
||||
<tr><td>-<</td><td>`-<`</td></tr>
|
||||
|
||||
<tr><td>>-</td><td>`>-`</td></tr>
|
||||
<tr><td>in</td><td>`in`</td></tr>
|
||||
<tr><td>!in</td><td>`notin`</td></tr>
|
||||
<tr><td>sub</td><td>`sub`</td></tr>
|
||||
<tr><td>sup</td><td>`sup`</td></tr>
|
||||
<tr><td>sube</td><td>`sube`</td></tr>
|
||||
|
||||
<tr><td>supe</td><td>`supe`</td></tr>
|
||||
<tr><td>-=</td><td>`-=`</td></tr>
|
||||
<tr><td>~=</td><td>`~=`</td></tr>
|
||||
<tr><td>~~</td><td>`~~`</td></tr>
|
||||
<tr><td>prop</td><td>`prop`</td></tr>
|
||||
</table>
|
||||
</td><td>
|
||||
|
||||
Logical symbols
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>and</td><td>`and`</td></tr>
|
||||
<tr><td>or</td><td>`or`</td></tr>
|
||||
<tr><td>not</td><td>`not`</td></tr>
|
||||
<tr><td>=></td><td>`=>`</td></tr>
|
||||
|
||||
<tr><td>if</td><td>`if`</td></tr>
|
||||
<tr><td>iff</td><td>`iff`</td></tr>
|
||||
<tr><td>AA</td><td>`AA`</td></tr>
|
||||
<tr><td>EE</td><td>`EE`</td></tr>
|
||||
<tr><td>_|_</td><td>`_|_`</td></tr>
|
||||
<tr><td>TT</td><td>`TT`</td></tr>
|
||||
|
||||
<tr><td>|--</td><td>`|--`</td></tr>
|
||||
<tr><td>|==</td><td>`|==`</td></tr>
|
||||
</table>
|
||||
<p>
|
||||
Grouping brackets
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>(</td><td>`(`</td></tr>
|
||||
<tr><td>)</td><td>`)`</td></tr>
|
||||
|
||||
<tr><td>[</td><td>`[`</td></tr>
|
||||
<tr><td>]</td><td>`]`</td></tr>
|
||||
<tr><td>{</td><td>`{`</td></tr>
|
||||
<tr><td>}</td><td>`}`</td></tr>
|
||||
<tr><td>(:</td><td>`(:`</td></tr>
|
||||
<tr><td>:)</td><td>`:)`</td></tr>
|
||||
|
||||
<tr><td>{:</td><td>`{:`</td></tr>
|
||||
<tr><td>:}</td><td>`{::}`</td></tr>
|
||||
</table>
|
||||
|
||||
</td><td>
|
||||
Miscellaneous symbols
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>int</td><td>`int`</td></tr>
|
||||
|
||||
<tr><td>oint</td><td>`oint`</td></tr>
|
||||
<tr><td>del</td><td>`del`</td></tr>
|
||||
<tr><td>grad</td><td>`grad`</td></tr>
|
||||
<tr><td>+-</td><td>`+-`</td></tr>
|
||||
<tr><td>O/</td><td>`O/`</td></tr>
|
||||
<tr><td>oo</td><td>`oo`</td></tr>
|
||||
|
||||
<tr><td>aleph</td><td>`aleph`</td></tr>
|
||||
<tr><td>/_</td><td>`/_`</td></tr>
|
||||
<tr><td>:.</td><td>`:.`</td></tr>
|
||||
<tr><td>|...|</td><td>|`...`|</td></tr>
|
||||
<tr><td>|cdots|</td><td>|`cdots`|</td></tr>
|
||||
<tr><td>vdots</td><td>`vdots`</td></tr>
|
||||
|
||||
<tr><td>ddots</td><td>`ddots`</td></tr>
|
||||
<tr><td>|\ |</td><td>|`\ `|</td></tr>
|
||||
<tr><td>|quad|</td><td>|`quad`|</td></tr>
|
||||
<tr><td>diamond</td><td>`diamond`</td></tr>
|
||||
<tr><td>square</td><td>`square`</td></tr>
|
||||
<tr><td>|__</td><td>`|__`</td></tr>
|
||||
|
||||
<tr><td>__|</td><td>`__|`</td></tr>
|
||||
<tr><td>|~</td><td>`|~`</td></tr>
|
||||
<tr><td>~|</td><td>`~|`</td></tr>
|
||||
<tr><td>CC</td><td>`CC`</td></tr>
|
||||
<tr><td>NN</td><td>`NN`</td></tr>
|
||||
<tr><td>QQ</td><td>`QQ`</td></tr>
|
||||
|
||||
<tr><td>RR</td><td>`RR`</td></tr>
|
||||
<tr><td>ZZ</td><td>`ZZ`</td></tr>
|
||||
</table>
|
||||
</td><td>
|
||||
Standard functions
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>sin</td><td>`sin`</td></tr>
|
||||
<tr><td>cos</td><td>`cos`</td></tr>
|
||||
|
||||
<tr><td>tan</td><td>`tan`</td></tr>
|
||||
<tr><td>csc</td><td>`csc`</td></tr>
|
||||
<tr><td>sec</td><td>`sec`</td></tr>
|
||||
<tr><td>cot</td><td>`cot`</td></tr>
|
||||
<tr><td>sinh</td><td>`sinh`</td></tr>
|
||||
<tr><td>cosh</td><td>`cosh`</td></tr>
|
||||
|
||||
<tr><td>tanh</td><td>`tanh`</td></tr>
|
||||
<tr><td>log</td><td>`log`</td></tr>
|
||||
<tr><td>ln</td><td>`ln`</td></tr>
|
||||
<tr><td>det</td><td>`det`</td></tr>
|
||||
<tr><td>dim</td><td>`dim`</td></tr>
|
||||
<tr><td>lim</td><td>`lim`</td></tr>
|
||||
|
||||
<tr><td>mod</td><td>`mod`</td></tr>
|
||||
<tr><td>gcd</td><td>`gcd`</td></tr>
|
||||
<tr><td>lcm</td><td>`lcm`</td></tr>
|
||||
<tr><td>min</td><td>`min`</td></tr>
|
||||
<tr><td>max</td><td>`max`</td></tr>
|
||||
</table>
|
||||
<p>
|
||||
|
||||
Accents
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>hat x</td><td>`hat x`</td></tr>
|
||||
<tr><td>bar x</td><td>`bar x`</td></tr>
|
||||
<tr><td>ul x</td><td>`ul x`</td></tr>
|
||||
<tr><td>vec x</td><td>`vec x`</td></tr>
|
||||
|
||||
<tr><td>dot x</td><td>`dot x`</td></tr>
|
||||
<tr><td>ddot x</td><td>`ddot x`</td></tr>
|
||||
</table>
|
||||
|
||||
</td><td>
|
||||
Arrows
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>uarr</td><td>`uarr`</td></tr>
|
||||
|
||||
<tr><td>darr</td><td>`darr`</td></tr>
|
||||
<tr><td>rarr</td><td>`rarr`</td></tr>
|
||||
<tr><td>-></td><td>`->`</td></tr>
|
||||
<tr><td>|-></td><td>`|->`</td></tr>
|
||||
<tr><td>larr</td><td>`larr`</td></tr>
|
||||
<tr><td>harr</td><td>`harr`</td></tr>
|
||||
|
||||
<tr><td>rArr</td><td>`rArr`</td></tr>
|
||||
<tr><td>lArr</td><td>`lArr`</td></tr>
|
||||
<tr><td>hArr</td><td>`hArr`</td></tr>
|
||||
</table>
|
||||
<p>
|
||||
Font commands
|
||||
<table border="5" cellpadding="10">
|
||||
<tr><th>Type</th><th>See</th></tr>
|
||||
<tr><td>bb A</td><td>`bb A`</td></tr>
|
||||
|
||||
<tr><td>bbb A</td><td>`bbb A`</td></tr>
|
||||
<tr><td>cc A</td><td>`cc A`</td></tr>
|
||||
<tr><td>tt A</td><td>`tt A`</td></tr>
|
||||
<tr><td>fr A</td><td>`fr A`</td></tr>
|
||||
<tr><td>sf A</td><td>`sf A`</td></tr>
|
||||
</table>
|
||||
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
Of course you may want or need other symbols from the thousands of <a
|
||||
href="http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf">LaTeX
|
||||
symbols</a> or <a
|
||||
href="http://www.alanwood.net/unicode/#links">unicode
|
||||
symbols</a>. Fortunately ASCIIMathML.js is very <a
|
||||
href="asciimathextend.html">easy
|
||||
to extend</a>, so you can tailor it to your specific needs. (This
|
||||
could be compared to the LaTeX macro files that many users have
|
||||
developed over the years.)
|
||||
</p>
|
||||
|
||||
<!--p>
|
||||
Large files with many formulas can take quite some time to display,
|
||||
especially on older hardware. To address this problem, there is a
|
||||
version ASCIIMathMLite.js that has a shorter symbol table (without the
|
||||
LaTeX symbol names) and slightly simplified parser. Send me an email
|
||||
at <a href="mailto:jipsen@chapman.edu">jipsen@chapman.edu</a> if you
|
||||
would like a copy.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Another version that also recognizes some <a
|
||||
href="http://www.latex-project.org/">LaTeX</a> layout commands and
|
||||
(the fairly standard) <a
|
||||
href="http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page">Wiki
|
||||
formatting codes</a> for ASCII text is in the works. This further
|
||||
simplifies producing mathematical content for the web. However such a
|
||||
development is less easily justified since there are good free HTML
|
||||
editors and the HTML syntax is a well-established standard that is
|
||||
simple enough to be coded by hand.
|
||||
</p-->
|
||||
|
||||
<hr/>
|
||||
|
||||
<div id="author">
|
||||
<a href="http://www.chapman.edu/~jipsen/">Peter Jipsen</a>,
|
||||
<a href="http://www.chapman.edu/">Chapman University</a>, September 2007
|
||||
|
||||
<a href="http://validator.w3.org/check/referer"><img border="0"
|
||||
src="http://www.w3.org/Icons/valid-html401"
|
||||
alt="Valid HTML 4.01!" height="31" width="88"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
8
main/inc/lib/javascript/asciimath/d.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg id="root" xml:space="preserve" width="100%" height="100%"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http:///www.w3.org/1999/xlink">
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 346 B |
8
main/inc/lib/javascript/asciimath/index.html
Normal file
@@ -0,0 +1,8 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<br />
|
||||
</body>
|
||||
</html>
|
||||
37
main/inc/lib/javascript/asciimath/readme.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
ASCIIMathML.js
|
||||
|
||||
Brief Instructions (2007-9-28)
|
||||
|
||||
This script can be used in any html page and also in systems like Moodle.
|
||||
The license is LGPL (see top of ASCIIMathML.js for more info).
|
||||
|
||||
In a html page, just add the following line near the top of your file:
|
||||
<script type="text/javascript" src="ASCIIMathML.js"></script>
|
||||
|
||||
To install in Moodle, just move this asciimath-x.y.z folder into moodle/filter,
|
||||
rename the folder "asciimath" and go to the admin panel Modules->Filters
|
||||
to switch it on.
|
||||
|
||||
Then try some ASCIIMath on your webpages: `x/y`
|
||||
|
||||
or LaTeX $\sqrt{x}$ and $$\int_0^1 x^2 dx$$ (only a \emph{subset} works,
|
||||
including a few environments like \begin{theorem}... and \begin{proof})
|
||||
|
||||
Try some graphics like agraph plot(sin(x)) endagraph or
|
||||
\begin{graph}plot(sin(x))\end{graph}
|
||||
|
||||
Try the auto-math-recognize mode: amath here we can mix x^2 and text endamath
|
||||
|
||||
All this is supposed to work in Firefox on many platforms (recommended;
|
||||
you may be asked to install math fonts) and in Internet Explorer (only
|
||||
on WinXP and you have to install MathPlayer and Adobe SVGview).
|
||||
|
||||
For more examples, see http://www.chapman.edu/~jipsen/asciimath.html and
|
||||
http://mathcs.chapman.edu/~jipsen/math
|
||||
|
||||
If you use this script on the web, please send an email to jipsen@chapman.edu
|
||||
and put a link to http://www.chapman.edu/~jipsen/asciimath.html on your page.
|
||||
|
||||
Best wishes with ASCIIMathML.js
|
||||
|
||||
Peter Jipsen
|
||||
362
main/inc/lib/javascript/badge-studio/LICENSE
Normal file
@@ -0,0 +1,362 @@
|
||||
Mozilla Public License, version 2.0
|
||||
|
||||
1. Definitions
|
||||
|
||||
1.1. "Contributor"
|
||||
|
||||
means each individual or legal entity that creates, contributes to the
|
||||
creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
|
||||
means the combination of the Contributions of others (if any) used by a
|
||||
Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
|
||||
means Source Code Form to which the initial Contributor has attached the
|
||||
notice in Exhibit A, the Executable Form of such Source Code Form, and
|
||||
Modifications of such Source Code Form, in each case including portions
|
||||
thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
a. that the initial Contributor has attached the notice described in
|
||||
Exhibit B to the Covered Software; or
|
||||
|
||||
b. that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the terms of
|
||||
a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
|
||||
means a work that combines Covered Software with other material, in a
|
||||
separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
|
||||
means having the right to grant, to the maximum extent possible, whether
|
||||
at the time of the initial grant or subsequently, any and all of the
|
||||
rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
|
||||
means any of the following:
|
||||
|
||||
a. any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered Software; or
|
||||
|
||||
b. any new file in Source Code Form that contains any Covered Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the License,
|
||||
by the making, using, selling, offering for sale, having made, import,
|
||||
or transfer of either its Contributions or its Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
|
||||
means either the GNU General Public License, Version 2.0, the GNU Lesser
|
||||
General Public License, Version 2.1, the GNU Affero General Public
|
||||
License, Version 3.0, or any later versions of those licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that controls, is
|
||||
controlled by, or is under common control with You. For purposes of this
|
||||
definition, "control" means (a) the power, direct or indirect, to cause
|
||||
the direction or management of such entity, whether by contract or
|
||||
otherwise, or (b) ownership of more than fifty percent (50%) of the
|
||||
outstanding shares or beneficial ownership of such entity.
|
||||
|
||||
|
||||
2. License Grants and Conditions
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
a. under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
b. under Patent Claims of such Contributor to make, use, sell, offer for
|
||||
sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
a. for any code that a Contributor has removed from Covered Software; or
|
||||
|
||||
b. for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
c. under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights to
|
||||
grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
|
||||
Section 2.1.
|
||||
|
||||
|
||||
3. Responsibilities
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
a. such Covered Software must also be made available in Source Code Form,
|
||||
as described in Section 3.1, and You must inform recipients of the
|
||||
Executable Form how they can obtain a copy of such Source Code Form by
|
||||
reasonable means in a timely manner, at a charge no more than the cost
|
||||
of distribution to the recipient; and
|
||||
|
||||
b. You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter the
|
||||
recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty, or
|
||||
limitations of liability) contained within the Source Code Form of the
|
||||
Covered Software, except that You may alter any license notices to the
|
||||
extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this License
|
||||
with respect to some or all of the Covered Software due to statute,
|
||||
judicial order, or regulation then You must: (a) comply with the terms of
|
||||
this License to the maximum extent possible; and (b) describe the
|
||||
limitations and the code they affect. Such description must be placed in a
|
||||
text file included with all distributions of the Covered Software under
|
||||
this License. Except to the extent prohibited by statute or regulation,
|
||||
such description must be sufficiently detailed for a recipient of ordinary
|
||||
skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically if You
|
||||
fail to comply with any of its terms. However, if You become compliant,
|
||||
then the rights granted under this License from a particular Contributor
|
||||
are reinstated (a) provisionally, unless and until such Contributor
|
||||
explicitly and finally terminates Your grants, and (b) on an ongoing
|
||||
basis, if such Contributor fails to notify You of the non-compliance by
|
||||
some reasonable means prior to 60 days after You have come back into
|
||||
compliance. Moreover, Your grants from a particular Contributor are
|
||||
reinstated on an ongoing basis if such Contributor notifies You of the
|
||||
non-compliance by some reasonable means, this is the first time You have
|
||||
received notice of non-compliance with this License from such
|
||||
Contributor, and You become compliant prior to 30 days after Your receipt
|
||||
of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
|
||||
license agreements (excluding distributors and resellers) which have been
|
||||
validly granted by You or Your distributors under this License prior to
|
||||
termination shall survive termination.
|
||||
|
||||
6. Disclaimer of Warranty
|
||||
|
||||
Covered Software is provided under this License on an "as is" basis,
|
||||
without warranty of any kind, either expressed, implied, or statutory,
|
||||
including, without limitation, warranties that the Covered Software is free
|
||||
of defects, merchantable, fit for a particular purpose or non-infringing.
|
||||
The entire risk as to the quality and performance of the Covered Software
|
||||
is with You. Should any Covered Software prove defective in any respect,
|
||||
You (not any Contributor) assume the cost of any necessary servicing,
|
||||
repair, or correction. This disclaimer of warranty constitutes an essential
|
||||
part of this License. No use of any Covered Software is authorized under
|
||||
this License except under this disclaimer.
|
||||
|
||||
7. Limitation of Liability
|
||||
|
||||
Under no circumstances and under no legal theory, whether tort (including
|
||||
negligence), contract, or otherwise, shall any Contributor, or anyone who
|
||||
distributes Covered Software as permitted above, be liable to You for any
|
||||
direct, indirect, special, incidental, or consequential damages of any
|
||||
character including, without limitation, damages for lost profits, loss of
|
||||
goodwill, work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses, even if such party shall have been
|
||||
informed of the possibility of such damages. This limitation of liability
|
||||
shall not apply to liability for death or personal injury resulting from
|
||||
such party's negligence to the extent applicable law prohibits such
|
||||
limitation. Some jurisdictions do not allow the exclusion or limitation of
|
||||
incidental or consequential damages, so this exclusion and limitation may
|
||||
not apply to You.
|
||||
|
||||
8. Litigation
|
||||
|
||||
Any litigation relating to this License may be brought only in the courts
|
||||
of a jurisdiction where the defendant maintains its principal place of
|
||||
business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions. Nothing
|
||||
in this Section shall prevent a party's ability to bring cross-claims or
|
||||
counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides that
|
||||
the language of a contract shall be construed against the drafter shall not
|
||||
be used to construe this License against a Contributor.
|
||||
|
||||
|
||||
10. Versions of the License
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses If You choose to distribute Source Code Form that is
|
||||
Incompatible With Secondary Licenses under the terms of this version of
|
||||
the License, the notice described in Exhibit B of this License must be
|
||||
attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
|
||||
This Source Code Form is subject to the
|
||||
terms of the Mozilla Public License, v.
|
||||
2.0. If a copy of the MPL was not
|
||||
distributed with this file, You can
|
||||
obtain one at
|
||||
http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular file,
|
||||
then You may include the notice in a location (such as a LICENSE file in a
|
||||
relevant directory) where a recipient would be likely to look for such a
|
||||
notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
|
||||
This Source Code Form is "Incompatible
|
||||
With Secondary Licenses", as defined by
|
||||
the Mozilla Public License, v. 2.0.
|
||||
5
main/inc/lib/javascript/badge-studio/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Badge Studio
|
||||
|
||||
A tool for designing badges
|
||||
|
||||
Preview: http://studio.andrewhayward.net
|
||||
266
main/inc/lib/javascript/badge-studio/media/css/core.css
Normal file
@@ -0,0 +1,266 @@
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local('Open Sans Light'),
|
||||
local('OpenSans-Light'),
|
||||
url('../fonts/opensans-light.woff') format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Open Sans'),
|
||||
local('OpenSans'),
|
||||
url('../fonts/opensans.woff') format('woff');
|
||||
}
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
max-width: 320px;
|
||||
min-width: 180px;
|
||||
margin: 0 auto;
|
||||
padding: 20px 600px 20px 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.wrapper:before,
|
||||
.wrapper:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
box-shadow: 0 0 20px rgba(0,0,0,0.4);
|
||||
z-index: -1;
|
||||
width: 50%;
|
||||
height: 25%;
|
||||
}
|
||||
|
||||
.wrapper:before {
|
||||
left: 35px;
|
||||
-webkit-transform: rotate(-1deg);
|
||||
-webkit-transform-origin: 0 100%;
|
||||
-moz-transform: rotate(-1deg);
|
||||
-moz-transform-origin: 0 100%;
|
||||
transform: rotate(-1deg);
|
||||
transform-origin: 0 100%;
|
||||
}
|
||||
|
||||
.wrapper:after {
|
||||
right: 35px;
|
||||
-webkit-transform: rotate(1deg);
|
||||
-webkit-transform-origin: 100% 100%;
|
||||
-moz-transform: rotate(1deg);
|
||||
-moz-transform-origin: 100% 100%;
|
||||
transform: rotate(1deg);
|
||||
transform-origin: 100% 100%;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin: 0 -532px 20px 0;
|
||||
padding: 0 20px;
|
||||
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.74902);
|
||||
}
|
||||
|
||||
.title {
|
||||
margin: 0;
|
||||
font-weight: 100;
|
||||
font-size: 48px;
|
||||
letter-spacing: -2px;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
left: -999em;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
|
||||
.content .settings {
|
||||
position: absolute;
|
||||
right: 0.25em;
|
||||
bottom: 0.25em;
|
||||
font-size: 1.5em;
|
||||
border: none;
|
||||
background: none;
|
||||
color: #999;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.content .settings:focus,
|
||||
.content .settings:hover {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#output {
|
||||
width: 340px;
|
||||
height: 340px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.label {
|
||||
margin: 0 0 0.25em 0;
|
||||
font-weight: normal;
|
||||
font-size: 1em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.item {
|
||||
margin: 0 0 1em 0;
|
||||
min-height: 2em;
|
||||
}
|
||||
|
||||
.item label {
|
||||
font-size: 0.8em;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.overlay {
|
||||
position: absolute;
|
||||
top: -1px;
|
||||
left: -1px;
|
||||
right: -1px;
|
||||
bottom: -1px;
|
||||
color: #484848;
|
||||
border: solid 1px #EEE;
|
||||
border-radius: 3px;
|
||||
background: rgba(255,255,255,0.95);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.overlay.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.overlay .header {
|
||||
position: absolute;
|
||||
top: 0.5em;
|
||||
left: 0.5em;
|
||||
right: 0.5em;
|
||||
height: 2em;
|
||||
border-bottom: solid 1px #999;
|
||||
margin: 0;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
.overlay .header .title {
|
||||
font-size: 1.25em;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.overlay .header label {
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
.overlay .header input {
|
||||
font: inherit;
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.overlay .header button {
|
||||
cursor: pointer;
|
||||
font-size: 2em;
|
||||
border: none;
|
||||
background: none;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
margin-top: -0.66em;
|
||||
}
|
||||
|
||||
.overlay .hidden {
|
||||
position: absolute;
|
||||
left: -99em;
|
||||
}
|
||||
|
||||
.overlay .panel {
|
||||
position: absolute;
|
||||
top: 5em;
|
||||
left: 0.5em;
|
||||
right: 0.5em;
|
||||
bottom: 0.5em;
|
||||
overflow: auto;
|
||||
margin: 0;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.overlay ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.overlay li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.overlay li label {
|
||||
font-size: 4em;
|
||||
width: 1.5em;
|
||||
height: 1em;
|
||||
line-height: 1em;
|
||||
padding: 0.25em 0;
|
||||
cursor: pointer;
|
||||
border-radius: 10px;
|
||||
text-align: center;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.overlay .fa-:before {
|
||||
content: "\00A0";
|
||||
}
|
||||
|
||||
.overlay li :focus + label,
|
||||
.overlay li label:hover {
|
||||
background: rgba(0,0,0,0.05);
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.overlay li :focus + label {
|
||||
outline: -webkit-focus-ring-color auto 5px;
|
||||
}
|
||||
|
||||
.overlay li :checked + label {
|
||||
background: rgba(0,0,0,0.1);
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#raster {
|
||||
-webkit-transform-origin: 50% 25%;
|
||||
-moz-transform-origin: 50% 25%;
|
||||
transform-origin: 50% 25%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
.wrapper {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
min-width: 0;
|
||||
padding: 5px;
|
||||
margin: 0;
|
||||
}
|
||||
.header {
|
||||
margin: 0 0 20px;
|
||||
}
|
||||
.content {
|
||||
margin-right: 0;
|
||||
padding-right: 20px;
|
||||
}
|
||||
#output {
|
||||
float: none;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,504 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata></metadata>
|
||||
<defs>
|
||||
<font id="fontawesomeregular" horiz-adv-x="1536" >
|
||||
<font-face units-per-em="1792" ascent="1536" descent="-256" />
|
||||
<missing-glyph horiz-adv-x="448" />
|
||||
<glyph unicode=" " horiz-adv-x="448" />
|
||||
<glyph unicode="	" horiz-adv-x="448" />
|
||||
<glyph unicode=" " horiz-adv-x="448" />
|
||||
<glyph unicode="¨" horiz-adv-x="1792" />
|
||||
<glyph unicode="©" horiz-adv-x="1792" />
|
||||
<glyph unicode="®" horiz-adv-x="1792" />
|
||||
<glyph unicode="´" horiz-adv-x="1792" />
|
||||
<glyph unicode="Æ" horiz-adv-x="1792" />
|
||||
<glyph unicode="Ø" horiz-adv-x="1792" />
|
||||
<glyph unicode=" " horiz-adv-x="768" />
|
||||
<glyph unicode=" " horiz-adv-x="1537" />
|
||||
<glyph unicode=" " horiz-adv-x="768" />
|
||||
<glyph unicode=" " horiz-adv-x="1537" />
|
||||
<glyph unicode=" " horiz-adv-x="512" />
|
||||
<glyph unicode=" " horiz-adv-x="384" />
|
||||
<glyph unicode=" " horiz-adv-x="256" />
|
||||
<glyph unicode=" " horiz-adv-x="256" />
|
||||
<glyph unicode=" " horiz-adv-x="192" />
|
||||
<glyph unicode=" " horiz-adv-x="307" />
|
||||
<glyph unicode=" " horiz-adv-x="85" />
|
||||
<glyph unicode=" " horiz-adv-x="307" />
|
||||
<glyph unicode=" " horiz-adv-x="384" />
|
||||
<glyph unicode="™" horiz-adv-x="1792" />
|
||||
<glyph unicode="∞" horiz-adv-x="1792" />
|
||||
<glyph unicode="≠" horiz-adv-x="1792" />
|
||||
<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M93 1350q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78z" />
|
||||
<glyph unicode="" d="M0 -64q0 50 34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5 q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5 t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768zM128 1120q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317 q54 43 100.5 115.5t46.5 131.5v11v13.5t-0.5 13t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z " />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354 q-25 27 -25 48zM221 829l306 -297l-73 -421l378 199l377 -199l-72 421l306 297l-422 62l-189 382l-189 -382z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 131q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5 h-874q-121 0 -194 69.5t-73 189.5zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 -96v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 64v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM128 320q0 -26 19 -45t45 -19h128 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19 h-128q-26 0 -45 -19t-19 -45v-128zM512 -64q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM512 704q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM1536 64 v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM1536 320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 128v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM0 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 128v384q0 52 38 90t90 38h512q52 0 90 -38 t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 608v192 q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M121 608q0 40 28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M110 214q0 40 28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-294 -294l294 -294q28 -28 28 -68t-28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294 q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" d="M0 640q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181 q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298zM640 768v640q0 52 38 90t90 38t90 -38t38 -90v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -96v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM384 -96v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM768 -96v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576 q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 -96v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1536 -96v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" d="M0 531v222q0 12 8 23t19 13l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10 q129 -119 165 -170q7 -8 7 -22q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108 q-44 -23 -91 -38q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5z M512 640q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 1056v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23zM256 76q0 -22 7 -40.5 t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5v948h-896v-948zM384 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM640 224v576q0 14 9 23t23 9h64 q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM896 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M26 636.5q1 13.5 11 21.5l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5zM256 64 v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22 v-376z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 544v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M50 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256 q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73zM809 540q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 96v320q0 40 28 68t68 28h465l135 -136q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 985q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39q17 -41 -14 -70 l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70zM1152 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM418 620q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM416 672q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" d="M0 64v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552q25 -61 25 -123v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM197 576h316l95 -192h320l95 192h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8 t-2.5 -8z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 320v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55t-32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56z" />
|
||||
<glyph unicode="" d="M0 640q0 156 61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5 t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298z" />
|
||||
<glyph unicode="" d="M0 0v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129 q-19 -19 -45 -19t-45 19t-19 45zM18 800v7q65 268 270 434.5t480 166.5q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179 q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 160v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832z M256 288v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 544v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z M256 800v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 288v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z M512 544v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5zM512 800v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z " />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110zM320 320v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19 q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 650q0 151 67 291t179 242.5t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32 q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32 q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5zM1008 228q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5 q140 -59 225 -188.5t85 -282.5t-85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45zM1109 -7q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19 q13 0 26 -5q211 -91 338 -283.5t127 -422.5t-127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 0v640h640v-640h-640zM0 768v640h640v-640h-640zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM256 256v128h128v-128h-128zM256 1024v128h128v-128h-128zM768 0v640h384v-128h128v128h128v-384h-384v128h-128v-384h-128zM768 768v640h640v-640h-640z M896 896h384v384h-384v-384zM1024 0v128h128v-128h-128zM1024 1024v128h128v-128h-128zM1280 0v128h128v-128h-128z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 0v1408h63v-1408h-63zM94 1v1407h32v-1407h-32zM189 1v1407h31v-1407h-31zM346 1v1407h31v-1407h-31zM472 1v1407h62v-1407h-62zM629 1v1407h31v-1407h-31zM692 1v1407h31v-1407h-31zM755 1v1407h31v-1407h-31zM880 1v1407h63v-1407h-63zM1037 1v1407h63v-1407h-63z M1163 1v1407h63v-1407h-63zM1289 1v1407h63v-1407h-63zM1383 1v1407h63v-1407h-63zM1541 1v1407h94v-1407h-94zM1666 1v1407h32v-1407h-32zM1729 0v1408h63v-1408h-63z" />
|
||||
<glyph unicode="" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5zM704 1408h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M10 184q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23 t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57 q38 -15 59 -43q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5zM575 1056 q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 160v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-224 q-13 0 -22.5 9.5t-9.5 22.5zM384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1408 576q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 128v896q0 106 75 181t181 75h224l51 136q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181zM512 576q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM672 576q0 119 84.5 203.5t203.5 84.5t203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8 t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27 q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14zM555 527q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5 t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12zM533 1292q0 -50 4 -151t4 -152q0 -27 -0.5 -80 t-0.5 -79q0 -46 1 -69q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13zM538.5 165q0.5 -37 4.5 -83.5t12 -66.5q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25 t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5 q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9 t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44zM1414 109.5q9 18.5 42 18.5h80v1024 h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5z" />
|
||||
<glyph unicode="" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1 t-103 1t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29 t78 27q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44zM5 -64q0 28 26 49q4 3 36 30t59.5 49 t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5q12 0 42 -19.5t57.5 -41.5t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5 t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1536 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h896 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h1280 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 416v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5zM0 800v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192 q-13 0 -22.5 9.5t-9.5 22.5zM384 32v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 416v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 800v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 1184v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5 t-9.5 22.5zM32 704q0 14 9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088 q-13 0 -22.5 9.5t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 416v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23t-9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5z M0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5 t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5q39 -17 39 -59v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5 t-84.5 203.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v192l320 320l160 -160l512 512l416 -416v-448h-1408zM256 960q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136z" />
|
||||
<glyph unicode="" d="M0 -128v416l832 832l416 -416l-832 -832h-416zM128 128h128v-128h107l91 91l-235 235l-91 -91v-107zM298 384q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17zM896 1184l166 165q36 38 90 38q53 0 91 -38l235 -234 q37 -39 37 -91q0 -53 -37 -90l-166 -166z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 896q0 212 150 362t362 150t362 -150t150 -362q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179zM256 896q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73v1088q-148 0 -273 -73t-198 -198t-73 -273z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 512q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275q0 -212 -150 -362t-362 -150t-362 150t-150 362zM256 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29v-190 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM640 256v288l672 672l288 -288l-672 -672h-288zM736 448h96v-96h56l116 116l-152 152l-116 -116v-56zM944 688q16 -16 33 1l350 350q17 17 1 33t-33 -1l-350 -350q-17 -17 -1 -33zM1376 1280l92 92 q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68l-92 -92z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h255q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29v-259 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM256 704q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45l-384 -384 q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5t-38.5 114t-17.5 122z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3 q20 -8 20 -29v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM257 768q0 33 24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110q24 -24 24 -57t-24 -57l-814 -814q-24 -24 -57 -24t-57 24l-430 430 q-24 24 -24 57z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256 q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-710q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45 t-45 -19h-128q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M122 640q0 26 19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -96v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31l-1328 -738q-23 -13 -39.5 -3t-16.5 36z" />
|
||||
<glyph unicode="" d="M0 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM896 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32v710 q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
|
||||
<glyph unicode="" horiz-adv-x="1538" d="M1 64v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM1 525q-6 13 13 32l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M154 704q0 26 19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M90 128q0 26 19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19 t19 45v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19 t-19 -45v-128z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM387 414q0 -27 19 -46l90 -90q19 -19 46 -19q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19 l90 90q19 19 19 46q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 621q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45q0 28 -18 46l-91 90 q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM417 939q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26 t37.5 -59q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213zM640 160q0 -14 9 -23t23 -9 h192q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320 q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160zM640 1056q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160z" />
|
||||
<glyph unicode="" d="M0 576v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143 q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45zM339 512q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5h-109q-26 0 -45 19 t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM429 480q0 13 10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23l-137 -137l137 -137q10 -10 10 -23t-10 -23l-146 -146q-10 -10 -23 -10t-23 10l-137 137 l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM346 640q0 26 19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45z" />
|
||||
<glyph unicode="" d="M0 643q0 157 61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5t-61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61t-245 164t-163.5 246t-61 300zM224 643q0 -162 89 -299l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199 t-73 -274zM471 185q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5q0 161 -87 295z" />
|
||||
<glyph unicode="" d="M64 576q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5t32.5 -90.5v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90 z" />
|
||||
<glyph unicode="" d="M0 512v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M53 565q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651q37 -39 37 -91q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75 q-38 38 -38 90z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M53 704q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 416q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45t-19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123 q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22t-13.5 30t-10.5 24q-127 285 -127 451z" />
|
||||
<glyph unicode="" d="M0 -64v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45zM781 800q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448 q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
|
||||
<glyph unicode="" d="M13 32q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23zM768 704v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10 t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M122.5 408.5q13.5 51.5 59.5 77.5l266 154l-266 154q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5 l-266 -154l266 -154q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM624 1126l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5l18 621q0 12 -10 18 q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18zM640 161q0 -13 10 -23t23 -10h192q13 0 22 9.5t9 23.5v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190z" />
|
||||
<glyph unicode="" d="M0 544v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68 t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23zM376 1120q0 -40 28 -68t68 -28h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68zM608 180q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5v56v468v192h-320v-192v-468v-56zM870 1024h194q40 0 68 28 t28 68t-28 68t-68 28q-43 0 -69 -31z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 121q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96 q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5zM384 448q0 -26 19 -45t45 -19q24 0 45 19 q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45t-19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -160q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64zM256 640q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100 t113.5 -122.5t72.5 -150.5t27.5 -184q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 576q0 34 20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69t-20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69zM128 576q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5q-152 236 -381 353 q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 576q0 38 20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5q16 -10 16 -27q0 -7 -1 -9q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87 q-143 65 -263.5 173t-208.5 245q-20 31 -20 69zM128 576q167 -258 427 -375l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5zM896 0l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69t-20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95zM1056 286l280 502q8 -45 8 -84q0 -139 -79 -253.5t-209 -164.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M16 61l768 1408q17 31 47 49t65 18t65 -18t47 -49l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126zM752 992l17 -457q0 -10 10 -16.5t24 -6.5h185q14 0 23.5 6.5t10.5 16.5l18 459q0 12 -10 19q-13 11 -24 11h-220 q-11 0 -24 -11q-10 -7 -10 -21zM768 161q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 477q-1 13 9 25l96 97q9 9 23 9q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16 l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h288v288h-288v-288zM128 224 h288v320h-288v-320zM128 608h288v288h-288v-288zM384 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM480 -128h320v288h-320v-288zM480 224h320v320h-320v-320zM480 608h320v288h-320 v-288zM864 -128h320v288h-320v-288zM864 224h320v320h-320v-320zM864 608h320v288h-320v-288zM1152 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM1248 -128h288v288h-288v-288z M1248 224h288v320h-288v-320zM1248 608h288v288h-288v-288z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 160v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23zM0 1056v192q0 14 9 23t23 9h224q250 0 410 -225q-60 -92 -137 -273q-22 45 -37 72.5 t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23zM743 353q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 q-32 0 -85 -0.5t-81 -1t-73 1t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5 t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281z" />
|
||||
<glyph unicode="" d="M0 576v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5 t-98.5 362zM0 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45zM1024 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M90 250.5q0 26.5 19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M90 773.5q0 26.5 19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 704q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45z M640 1120q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20z " />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 1216q0 26 19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024 q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45zM384 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1280 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5t-0.5 12.5zM73 56q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43 q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M64 64q0 26 19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v384h256v-384h-256zM640 128v896h256v-896h-256zM1024 128v640h256v-640h-256zM1408 128v1024h256v-1024h-256z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 286q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109 q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4q21 -63 74.5 -104 t121.5 -42q-116 -90 -261 -90q-26 0 -50 3z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544 q-119 0 -203.5 84.5t-84.5 203.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 0v1280q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5zM128 0h1536v128h-1536v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM256 1216h384v128h-384v-128zM512 574 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM640 574q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM736 576q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9 t9 23t-9 23t-23 9q-66 0 -113 -47t-47 -113z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 752q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41q0 -17 -49 -66t-66 -49 q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5zM192 768q0 -80 56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56 t56 136t-56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 549v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8 q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90 q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5zM384 640q0 -106 75 -181t181 -75 t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181zM1152 58v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31 v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1152 1082v140q0 16 149 31q13 29 30 52 q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71 q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1408 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90zM1408 1152q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM616 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5 t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
|
||||
<glyph unicode="" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5 t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85 t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640z" />
|
||||
<glyph unicode="" d="M0 512v640q0 53 37.5 90.5t90.5 37.5h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186 q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5zM128 1088q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 512h32q16 0 35.5 -9 t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5 t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="896" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z M128 940q0 -168 187 -355l581 -560l580 559q188 188 188 356q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5 t-21.5 -143z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5q0 -4 1 -20t0.5 -26.5t-3 -23.5 t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5zM384 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM223 1030q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86z M237 122h231v694h-231v-694zM595 122h231v388q0 38 7 56q15 35 45 59.5t74 24.5q116 0 116 -157v-371h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 320q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19 t-19 45zM416 672q0 -14 9 -23t23 -9t23 9t9 23v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832 q-119 0 -203.5 84.5t-84.5 203.5zM685 576q0 13 10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
|
||||
<glyph unicode="" d="M0 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45zM894.5 78.5q0.5 10.5 3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113 t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5q0 4 -1 20t-0.5 26.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 928v128q0 40 28 68t68 28h288v96q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91t97.5 -37q75 0 133.5 -45.5 t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143zM128 928q0 -78 94.5 -162t235.5 -113q-74 162 -74 371 h-256v-96zM1206 653q141 29 235.5 113t94.5 162v96h-256q0 -209 -74 -371z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204 q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52 t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5h-224q-119 0 -203.5 84.5t-84.5 203.5zM271 315q3 5 13 2 q10 -5 7 -12q-5 -7 -13 -2q-10 5 -7 12zM304 290q6 6 16 -3q9 -11 2 -16q-6 -7 -16 3q-9 11 -2 16zM335 233q-9 13 0 18q9 7 17 -6q9 -12 0 -19q-8 -6 -17 7zM370 206q8 9 20 -3q12 -11 4 -19q-8 -9 -20 3q-13 11 -4 19zM419 168q4 11 19 7q16 -5 13 -16q-4 -12 -19 -6 q-17 4 -13 15zM481 154q0 11 16 11q17 2 17 -11q0 -11 -16 -11q-17 -2 -17 11zM540 158q-2 12 14 15q16 2 18 -9q2 -10 -14 -14t-18 8z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -32v320q0 40 28 68t68 28h427q21 -56 70.5 -92t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 936q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69q-17 -40 -59 -40 h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40zM1152 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 433q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5q0 -165 -70 -327.5 t-196 -288t-281 -180.5q-124 -44 -326 -44q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5zM128 434q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5 q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24 q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 1069q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235 t235 -174q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5 t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62zM128 38l423 406l89 85l89 -85l423 -406 v1242h-1024v-1242z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 905q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5 q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5 t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M44 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5 q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M95 631v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44 l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3 q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 96v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v608h-1664v-608zM128 1024h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600 q-13 0 -22.5 -9.5t-9.5 -22.5v-224zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 192q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 697v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5t259 -181.5q114 -113 181.5 -259t80.5 -306q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5 t-391.5 184.5q-25 2 -41.5 20t-16.5 43zM0 1201v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294q187 -186 294 -425.5t120 -501.5q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102 q-25 1 -42.5 19.5t-17.5 43.5z" />
|
||||
<glyph unicode="" d="M0 160v320q0 25 16 75l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-1216 q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM880 320q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1136 320q0 33 23.5 56.5t56.5 23.5 t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 672v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50 t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113zM768 633q377 -42 768 -341v954q-394 -302 -768 -343v-270z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
|
||||
<glyph unicode="" d="M2 435q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70l-53 -186l188 -48 q40 -10 52 -51q10 -42 -20 -70l-138 -135l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53 q-41 -12 -70 19q-31 29 -19 70l53 186l-188 48q-40 10 -52 51z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179q0 -105 -75.5 -181 t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q72 0 167 -32 t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139 q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106q-69 -57 -140 -57h-32v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 769q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5v-640 q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181zM128 768q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119 q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5 t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5t-39 -89.5zM1536 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5t-90.5 -37.5h-640 q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5zM128 640q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140 v-32h640v32q0 72 32 167t64 193.5t32 179.5q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576q-20 0 -48.5 15t-55 33t-68 33t-84.5 15 q-67 0 -97.5 -44.5t-30.5 -115.5zM1152 -64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317q0 -142 -77.5 -230t-217.5 -87 l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5zM128 640q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33t55 33t48.5 15v-576q0 -50 38.5 -89 t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112 q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5zM1152 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM251 640q0 -27 18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM256 576q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18 l362 362l91 91q18 18 18 45t-18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 641q0 -27 18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19 t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45t-18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 639q0 -27 18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45t-18 45l-91 91 q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM226 979q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18 q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13 q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5 t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13 q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25 t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5 t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4 q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5q15 10 -7 16q-17 5 -43 -12q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8 q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5 q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26 q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5 q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14 q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5 q-16 0 -22 -1q-146 -80 -235 -222zM877 26q0 -6 2 -16q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7 t-10 1.5t-11.5 -7q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M21 0q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90zM256 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM768 960q0 185 131.5 316.5t316.5 131.5q58 0 121.5 -16.5 t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25q0 -39 -23 -106q-47 -134 -164.5 -217.5t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 576v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1088v256q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM640 640h1024v128h-1024v-128zM1024 128h640v128h-640v-128zM1280 1152h384v128h-384v-128z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M5 1241q17 39 59 39h1280q42 0 59 -39q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 160v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 736v384q0 66 47 113t113 47h352v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113v-384h-1792z M640 1280h512v128h-512v-128zM768 512v128h256v-128h-256z" />
|
||||
<glyph unicode="" d="M0 -64v448q0 42 40 59q39 17 69 -14l144 -144l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45 v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19l-144 144l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19 t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 671q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5zM128 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM256 3q0 53 3.5 103.5 t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5 zM576 896q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5zM1280 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM1327 640q81 117 81 256q0 29 -5 66q66 -23 133 -23 q59 0 119 21.5t97.5 42.5t43.5 21q124 0 124 -353q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l206 -207q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204t-85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88 q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204zM208 1088q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15t21.5 -21.5t18.5 -19q33 31 33 73 q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67zM911 383q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26l147 146q28 28 28 67q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5 q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 448q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M115.5 -64.5q-34.5 63.5 21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399l503 -793q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5zM476 384h712l-272 429l-20 31v37v399h-128v-399v-37 l-20 -31z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M1 157q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148q4 -48 -10 -97q4 -1 12 -5 l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56l-507 -398l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207zM168 176q-25 -66 21 -108q39 -36 113 -36q100 0 192 59q81 51 106 117t-21 108q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117zM168 976q25 -66 106 -117q92 -59 192 -59q74 0 113 36q46 42 21 108t-106 117q-92 59 -192 59 q-74 0 -113 -36q-46 -42 -21 -108zM672 448l9 -8q2 -2 7 -6q4 -4 11 -12t11 -12l26 -26l160 96l96 -32l736 576l-128 64l-768 -431v-113zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 576q0 26 19 45t45 19t45 -19 t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1018 391l582 -327l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 224v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68zM128 256h512v256q0 40 20 88t48 76l316 316v416h-384 v-416q0 -40 -28 -68t-68 -28h-416v-640zM213 1024h299v299zM768 -128h896v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640zM853 640h299v299z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M4 1023q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581 q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776 q-113 115 -113 271z" />
|
||||
<glyph unicode="" d="M0 -32v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 0h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20 t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280zM384 0h768v384h-768v-384zM640 928q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5z" />
|
||||
<glyph unicode="" d="M0 64v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 576v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 1088v128q0 26 19 45t45 19h1408 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 128q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 640q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 1152q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM512 32v192 q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z M512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M15 438q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105v-159h-362q-6 36 -6 54zM19 -190 l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66zM34 1400l136 127h106v-404h108v-99 h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54zM512 32v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 544v64q0 14 9 23t23 9h1728q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23zM384 972q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6l-14 2q-50 149 -103 205 q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743q-28 35 -51 80q-48 97 -48 188zM414 154q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22 q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156z" />
|
||||
<glyph unicode="" d="M0 -32v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-1472q-14 0 -23 -9t-9 -23zM0 1405q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5 t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2 q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195 q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39q-37 2 -45 4z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 160v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 544q0 -14 9 -23t23 -9h320 q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192zM640 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23 v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M27 160q0 27 18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45t-18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45zM128 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM320 1216l196 60l60 196l60 -196l196 -60l-196 -60 l-60 -196l-60 196zM768 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM1083 1062l107 -107l293 293l-107 107zM1408 768l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 192q0 26 19 45t45 19v320q0 8 -0.5 35t0 38t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45v-1024q0 -15 -4 -26.5t-13.5 -18.5t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5 q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM384 128q0 -52 38 -90t90 -38 t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90zM1280 128q0 -52 38 -90t90 -38t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63 q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5 q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5 q-104 0 -194.5 -28.5t-153 -76.5t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118 q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM276 309q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117 q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94 q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95zM395 338q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78z M462 969q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5t-57.5 96.5t-17.5 106zM960 672h128v-160h64v160h128v64h-128v128h-64v-128h-128v-64z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M32 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65 t-59.5 -61.5t-24.5 -66q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131zM218 228q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5q58 0 111.5 13t99 39t73 73 t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5zM324 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q38 0 78 16.5t66 43.5q53 57 53 159 q0 58 -17 125t-48.5 129.5t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160zM1084 731v108h212v217h105v-217h213v-108h-213v-219h-105v219h-212z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 64v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45zM128 384q106 0 181 -75t75 -181h1152q0 106 75 181t181 75v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512zM640 640q0 70 21 142 t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142t-21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142zM762 791l77 -80q42 37 55 57h2v-288h-128v-96h384v96h-128v448h-114z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 832q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 320q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M64 640q0 26 19 45l448 448q19 19 45 19t45 -19t19 -45v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M0 192v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 32v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h608v1152h-640v-1120zM896 0h608q13 0 22.5 9.5t9.5 22.5v1120h-640v-1152z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45zM0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 1098q0 78 41.5 130t118.5 52h1472 q65 0 112.5 -47t47.5 -113q0 -79 -49 -151t-122 -123q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5z" />
|
||||
<glyph unicode="" d="M0 1217q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122zM19 -80v991h330v-991h-330zM531 -80q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5v-568 h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329z" />
|
||||
<glyph unicode="" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M40 736q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18 q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5 q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5 t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 384q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29q-141 221 -141 483zM128 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M320 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM710 241q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91l101 382q6 26 -7.5 48.5t-38.5 29.5t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5 t-63 -98.5zM768 1024q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1216 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 384q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5 t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281zM128 640q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5t-381.5 -69.5 t-282 -187.5t-104.5 -255z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM128 768q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52t-286 -52t-211.5 -141t-78.5 -191zM616 132 q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22 t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
|
||||
<glyph unicode="" horiz-adv-x="896" d="M1 551l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -32v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 681q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17 q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5z M384 128q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180zM768 1310v98q0 26 19 45t45 19t45 -19t19 -45v-98q-42 2 -64 2t-64 -2z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88v-672q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68zM256 1312q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5v64 q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64zM768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1280 640h299l-299 299v-299z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 960q0 99 44.5 184.5t117 142t164 89t186.5 32.5t186.5 -32.5t164 -89t117 -142t44.5 -184.5q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47q0 -46 -31.5 -71t-77.5 -25 q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268zM128 960q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228 q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134zM480 1088q0 13 9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5 q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 256q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22zM0 800v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23 t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 608q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 672q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 131q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89 q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5 t81 -103t47.5 -132.5t24 -138t5.5 -131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190zM256 192q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5 t-271.5 112.5t-112.5 271.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 768v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48 q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5 t-131.5 271.5v132q-164 20 -274 128t-110 252zM1152 832q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h64v-1280h-64q-92 0 -158 66t-66 158zM384 -128v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128v-1280h-1024zM640 1152h512v128h-512v-128zM1504 -128v1280h64q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-64z " />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 480v736q0 26 19 45t45 19h1152q159 0 271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158zM1408 704h64q80 0 136 56t56 136 t-56 136t-136 56h-64v-384z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 832v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128 q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111zM768 416v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM384 160v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64 q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 416v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 672v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1536h-1152v-1536zM256 160v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 928v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 1184v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -192v1280q0 26 19 45t45 19h320v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1152h-256 v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152zM256 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1056q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128 v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M64 192q0 26 19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128 q-26 0 -45 19t-19 45zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM384 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM896 800q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192 q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM1280 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h32v-1280h-32q-92 0 -158 66t-66 158zM352 -128v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160v-1280h-1088zM512 416q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192 q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM640 1152h512v128h-512v-128zM1536 -128v1280h32q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-32z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 512v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93l1 -3q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5 t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M64 1152l32 128h480l32 128h960l32 -192l-64 -32v-800l128 -192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320zM384 768q0 -53 37.5 -90.5t90.5 -37.5h128v384h-256v-256z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 192q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM429 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23 l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM397 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10 l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M77 224q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM77 608q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23 l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M77 672q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM77 1056q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10 l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M77 352q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M77 800q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 288v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113zM128 544q0 -13 9.5 -22.5 t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 96v96h160h1600h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68zM256 416v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113zM384 416q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5 t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM864 112q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 160v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-832q-66 0 -113 47t-47 113zM128 288q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM512 128 q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M0 128v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM96 288q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM288 1136 q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16zM304 128q0 -33 23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z M896 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 832v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136zM896 832v384 q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136z" />
|
||||
<glyph unicode="" horiz-adv-x="1568" d="M0 640q0 66 47 113t113 47t113 -47t47 -113t-47 -113t-113 -47t-113 47t-47 113zM176 1088q0 73 51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5t-51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5zM208 192q0 60 42 102t102 42q59 0 101.5 -42t42.5 -102t-42.5 -102 t-101.5 -42q-60 0 -102 42t-42 102zM608 1280q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM672 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1136 192q0 46 33 79t79 33t79 -33t33 -79 t-33 -79t-79 -33t-79 33t-33 79zM1168 1088q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1344 640q0 40 28 68t68 28t68 -28t28 -68t-28 -68t-68 -28t-68 28t-28 68z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101 t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19l-512 512q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 496q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218q0 -87 -27 -168q136 -160 136 -398q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86t-170 -47.5t-171.5 -22t-167 -4.5 q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331zM224 320q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11 q-152 21 -195 21q-118 0 -187 -84t-69 -204zM384 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82zM1024 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34 t-43 76t-12.5 82z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158zM128 224q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64 q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158zM128 331l256 315q44 53 116 87.5 t140 34.5h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-853zM171 163q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40z " />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 461q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38 q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5q-37 -121 -138 -195t-228 -74t-228 74t-138 195zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 307q37 121 138 195t228 74t228 -74t138 -195q8 -25 -4 -48.5 t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 448q0 26 19 45t45 19h640q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 512q0 212 150 362t362 150h896q212 0 362 -150t150 -362t-150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150t-150 362zM192 448q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23v128 q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128zM1152 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 640q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 128v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5zM128 128h1664v896h-1664v-896zM256 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM256 528v96 q0 16 16 16h224q16 0 16 -16v-96q0 -16 -16 -16h-224q-16 0 -16 16zM256 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM512 272v96q0 16 16 16h864q16 0 16 -16v-96q0 -16 -16 -16h-864q-16 0 -16 16zM512 784v96q0 16 16 16h96q16 0 16 -16v-96 q0 -16 -16 -16h-96q-16 0 -16 16zM640 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM768 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM896 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z M1024 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1152 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1280 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1408 528v96q0 16 16 16h112v240 q0 16 16 16h96q16 0 16 -16v-352q0 -16 -16 -16h-224q-16 0 -16 16zM1536 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q205 96 384 110v192q-181 -16 -384 -117v-185zM448 836q215 111 384 118v197q-172 -8 -384 -126v-189zM832 730h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15 t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2q-23 0 -49 -3v-222zM1280 828q148 -42 384 90v189q-169 -91 -306 -91q-45 0 -78 8v-196z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM640 32v64q0 14 9 23t23 9h960q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-960 q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM712 -52l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5 l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5zM1293 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45l397 -397v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45zM384 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221 q169 -173 169 -509q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M2 900.5q9 27.5 54 34.5l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5z M832 310l59 -31l318 -168l-60 355l-12 66l49 47l257 250l-356 52l-66 10l-30 60l-159 322v-963z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M2 561q-5 22 4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 928v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864 q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23zM512 301l595 595h-595v-595zM557 256h595v595z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 64q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136 q0 -52 -26 -96.5t-70 -69.5q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136zM96 64q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM96 1216q0 -40 28 -68 t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM736 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 448q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23zM16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56l-239 -18l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68 l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204zM128 32q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23zM544 -96v320q0 14 9 23t23 9t23 -9t9 -23v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23zM633 364 l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56zM1056 1184v320q0 14 9 23t23 9t23 -9t9 -23v-320 q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1216 1120q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23zM1280 960q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M96.5 986q-2.5 15 5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5t-10.5 37.5v45q0 83 65 156.5 t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25zM384 40v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M0 64v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM128 1152v192q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-192 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M98 1344q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45zM128 64v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1013 713q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80h126v-206h-514l-3 27q-4 28 -4 46z " />
|
||||
<glyph unicode="" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1015 -183q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126v-206h-514l-4 27q-3 45 -3 46z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M1.5 146.5q5.5 37.5 30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5zM128 128h768l336 384h-768z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 0v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5 q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124 q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89 q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45 t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5zM256 704v512q0 132 94 226t226 94t226 -94t94 -226v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M13 64q0 13 10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23t-10 -23l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5 t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23zM128 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113l-101 -101 q-42 103 -42 214zM384 704v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 576v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150t-33.5 170.5zM640 79 q119 63 213 137q235 184 235 360v640h-448v-1137z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h1408v1024h-1408v-1024z M384 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288zM1152 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M3.5 940q-8.5 25 3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96 q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37 zM384 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M36 464l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85 q-3 -1 -9 -1q-14 0 -23 9l-64 64q-17 19 -5 39zM1248 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 0l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM346 640q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l102 102q19 19 19 45t-19 45l-307 307l307 307 q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM506 288q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-454 454 q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 544q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19l102 102 q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 736q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-102 102 q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 1408h1408l-128 -1438l-578 -162l-574 162zM262 1114l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674l16 175h-884z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M12 75l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208l59 297h1505l-266 -1333l-804 -267z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 0v352q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5 l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30zM832 1280q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181v-320h736q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28 t-28 68z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM256 640q0 212 150 362t362 150t362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362zM384 640q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM512 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM1024 608v192q0 40 28 68t68 28h192 q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="384" d="M0 96v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h192q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M256 575q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10t9 24q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128zM256 959q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128 q13 0 23 10q11 9 9 23q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 320q0 -37 32 -56q16 -8 32 -8q17 0 32 9l544 320q32 18 32 55t-32 55l-544 320q-31 19 -64 1 q-32 -19 -32 -56v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M54 448.5q0 53.5 37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136t-136 56t-136 -56l-125 126q-37 37 -37 90.5z M342 512q0 -26 19 -45l362 -362q18 -18 45 -18t45 18l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45zM452 512l572 572l316 -316l-572 -572z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h896q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128 z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M3 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M3 1261q9 19 29 19h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 640q0 -26 19 -45l358 -358q19 -19 45 -19t45 19l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19 t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 128h288l544 544l-288 288l-544 -544v-288zM352 320v56l52 52l152 -152l-52 -52h-56v96h-96zM494 494 q-14 13 3 30l291 291q17 17 30 3q14 -13 -3 -30l-291 -291q-17 -17 -30 -3zM864 1024l288 -288l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM282 320q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59 v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 448q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5t224 23.5v-160 q0 -42 40 -59q12 -5 24 -5q26 0 45 19l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 241v542l512 256v-542zM640 448l256 128l-256 128v-256z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 861q17 35 57 35h640q40 0 57 -35q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 419q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66q-17 -35 -57 -35h-640q-40 0 -57 35z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -14 9 -23t23 -9h960q14 0 23 9t9 23v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960z M512 320v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52t-27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 514v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5 t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5 l12 3l5 2q13 5 26 -2q12 -7 15 -21l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 32v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215 h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M52 171l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242 t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48 t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50t53 -63.5t31.5 -76.5t13 -94q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5 t-17.5 18q-17 21 -2 41z" />
|
||||
<glyph unicode="" horiz-adv-x="898" d="M0 605v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171 q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22z" />
|
||||
<glyph unicode="" horiz-adv-x="1027" d="M4 1360q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103 q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 256v128q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315t-126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9 h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23zM487 747h320q106 0 171 62t65 162t-65 162t-171 62h-320v-448z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 672v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111 q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23z M373 896l32 -128h225l35 128h-292zM436 640l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5l81 299h-159zM822 768h139l-35 128h-70zM1118 896l34 -128h230l33 128h-297zM1187 640l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3l78 300h-162z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M56 0l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89 t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200zM522 182q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30t24.5 40t9.5 51q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1 t-47.5 -1v-338zM522 674q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM384 160q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 416q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 672q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 768v106h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106 h-287zM988 -166l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121v-233h-584v90zM1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18 t-7.5 -29z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 -150h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287 v106zM988 768v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248v119h121v-233h-584zM1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29 z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h256q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 261q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 1351l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17 v16h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 261q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
|
||||
<glyph unicode="" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 1285q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 327l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16 h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 1285q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 64v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45zM128 192q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45zM480 64v641q0 25 18 43.5t43 20.5q24 2 76 59 t101 121q68 87 101 120q18 18 31 48t17.5 48.5t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135 q0 -86 -55 -149q15 -44 15 -76q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 448q0 -26 19 -45t45 -19h288q26 0 45 19t19 45v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640zM128 960q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45zM480 447v641q0 26 19 44.5t45 19.5q35 1 158 44 q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76q55 -61 55 -149q-1 -78 -57.5 -135t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39 t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121t-76 59q-25 2 -43 20.5t-18 43.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 366q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73 q20 84 20 260q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5q-20 -87 -20 -260zM300 551v70h232v-70h-80v-423h-74v423h-78zM396 1313l24 -69t23 -69q35 -103 46 -158v-201h74v201l90 296h-75l-51 -195l-53 195 h-78zM542 205v290h66v-270q0 -24 1 -26q1 -15 15 -15q20 0 42 31v280h67v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54zM654 936q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38q-21 -29 -21 -87v-130zM721 923 v156q0 52 32 52t32 -52v-156q0 -51 -32 -51t-32 51zM790 128v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67zM857 200q16 -16 33 -16q29 0 29 49v157q0 50 -29 50q-17 0 -33 -16v-224zM907 893q0 -37 6 -55 q11 -27 43 -27q36 0 77 45v-40h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293zM1037 247v129q0 59 20 86q29 38 80 38t78 -38q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68v-9q0 -29 -2 -43q-3 -22 -15 -40 q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86zM1103 355h66v34q0 51 -33 51t-33 -51v-34z" />
|
||||
<glyph unicode="" d="M27 260q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99q-26 112 -26 350zM138 509h105v-569h100v569h107v94h-312 v-94zM266 1536h106l71 -263l68 263h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187zM463 43q0 -49 8 -73q12 -37 58 -37q48 0 102 61v-54h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391zM614 1028v175q0 80 28 117q38 51 105 51 q69 0 106 -51q28 -37 28 -117v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51q-28 38 -28 118zM704 1011q0 -70 43 -70t43 70v210q0 69 -43 69t-43 -69v-210zM798 -60h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89 v-663zM887 36v301q22 22 45 22q39 0 39 -67v-211q0 -67 -39 -67q-23 0 -45 22zM955 971v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75zM1130 100q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54 q2 9 2 58v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51q-28 -37 -28 -116v-173zM1219 245v46q0 68 45 68t45 -68v-46h-90z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M5 384q-10 17 0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45l164 -286q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17zM536 539q18 32 531 942q25 45 64 45h241q22 0 31 -15q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37 q-10 -15 -32 -15h-239q-42 0 -66 45z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM227 396q8 -13 24 -13h185q31 0 50 36l199 352q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29 l125 -216v-1l-196 -346q-9 -14 0 -28zM638 516q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1l409 723q8 16 0 28q-7 12 -24 12h-187q-30 0 -49 -35z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 96 1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150t-1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58 t-69.5 123q-14 65 -21.5 147.5t-8.5 136.5t-1 150zM640 320q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54t-30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 558l338 271l494 -305l-342 -285zM64 1099l490 319l342 -285l-494 -304zM407 166v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284l147 96v-108l-490 -293v-1l-1 1l-1 -1v1zM896 524l494 305l338 -271l-489 -319zM896 1133l343 285l489 -319l-338 -270z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -255v736h121v-618h928v618h120v-701l-1 -35v-1h-1132l-35 1h-1zM221 -17v151l707 1v-151zM227 243l14 150l704 -65l-13 -150zM270 563l39 146l683 -183l-39 -146zM395 928l77 130l609 -360l-77 -130zM707 1303l125 86l398 -585l-124 -85zM1136 1510l149 26l121 -697 l-149 -26z" />
|
||||
<glyph unicode="" d="M0 69v1142q0 81 58 139t139 58h1142q81 0 139 -58t58 -139v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139zM171 110q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62 q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648zM461 643q0 -124 90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5t-90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5zM1050 1003q0 -29 20 -49t49 -20h174q29 0 49 20t20 49v165q0 28 -20 48.5 t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM274 640q0 -88 62 -150t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150zM838 640q0 -88 62 -150 t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM309 384h94l104 160h522l104 -160h94l-459 691zM567 608l201 306l201 -306h-402z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 1222q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34 t-6 39.5t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158zM173 285l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18t-76.5 27 t-73 43.5t-52 61.5q-25 96 -57 292zM243 1240q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5q-20 27 -56 44.5t-58 22t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43zM481 657q4 -91 77.5 -155t165.5 -56q91 8 152 84 t50 168q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5zM599 710q14 41 52 58q36 18 72.5 12t64 -35.5t27.5 -67.5q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM260 1060q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63 q24 13 39.5 23t31 29t19.5 40q48 267 80 473q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54zM385 384q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71q0 7 5.5 26.5t3 32 t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6zM436 1073q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5t-52.5 16t-54.5 32.5zM607 653q-2 49 25.5 93t72.5 64 q70 31 141.5 -10t81.5 -118q8 -66 -36 -121t-110 -61t-119 40t-56 113zM687.5 660.5q0.5 -52.5 43.5 -70.5q39 -23 81 4t36 72q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M78 779v217q91 30 155 84q64 55 103 132q39 78 54 196h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM413 744h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49v181 q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M3 237q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19t-5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M3 1043q-8 19 5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 637q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 544v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 634q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32 q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503zM683 1131q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -27v557h682v-651zM0 614v565l682 94v-659h-682zM757 -131v661h907v-786zM757 614v669l907 125v-794h-907z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 337v430q0 42 30 72t73 30q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30t-73 30t-30 73zM241 886q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20l-71 -131q107 -55 171 -153.5t64 -215.5 h-925zM245 184v666h918v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78zM455 1092q0 -16 11 -27.5t27 -11.5t27.5 11.5t11.5 27.5t-11.5 27.5 t-27.5 11.5t-27 -11.5t-11 -27.5zM876 1092q0 -16 11.5 -27.5t27.5 -11.5t27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5zM1203 337v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73z" />
|
||||
<glyph unicode="" d="M11 -115q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5 t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195q-12 112 -16 310q-2 90 24 151.5 t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5 t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13 t16.5 -9.5q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5 q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5zM321 495q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54 t7 -70.5q46 24 7 92q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5 t60 -22.5q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18zM372 630q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12zM603 1190q2 -5 5 -6 q10 0 7 -15q-3 -20 8 -20q3 0 3 3q3 17 -2.5 30t-11.5 15q-9 2 -9 -7zM634 1110q0 12 19 15h10q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5zM721 1122q24 11 32 -2q3 -6 -3 -9q-4 -1 -11.5 6.5t-17.5 4.5zM835 1196l4 -2q14 -4 18 -31q0 -3 8 2l2 3q0 11 -5 19.5t-11 12.5 t-9 3q-14 -1 -7 -7zM851 1381.5q-1 -2.5 3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9zM981 1002q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20q-2 8 -6.5 11.5t-13 5 t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM112 640q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81t99.5 48l37 13 q4 1 13 3.5t13 4.5q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21zM126 775q302 0 606 80q-120 213 -244 378q-138 -65 -234 -186t-128 -272zM350 134q184 -150 418 -150q132 0 256 52q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5 t-103 -148zM609 1276q1 1 2 1q-1 0 -2 -1zM613 1277q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5l12.5 17.5q-185 164 -433 164q-76 0 -155 -19zM909 797q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5 t36.5 -6t25 -4.5l10 -2q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5zM1007 565q87 -239 128 -469q111 75 185 189.5t96 250.5q-210 60 -409 29z" />
|
||||
<glyph unicode="" d="M0 1024q0 159 112.5 271.5t271.5 112.5q130 0 234 -80q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225 t-55.5 273.5q0 73 16 150q-80 104 -80 234zM376 399q0 -92 122 -157.5t291 -65.5q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12 t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5 q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 640q0 75 53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41l619 619l2 -3q53 -53 53 -128t-53 -128l-587 -587 q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128zM302 660q0 21 14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36z" />
|
||||
<glyph unicode="" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM160 192q0 -14 9 -23t23 -9h480q14 0 23 9t9 23v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024zM832 576q0 -14 9 -23t23 -9h480q14 0 23 9t9 23 v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 480q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192 q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43q-40 0 -68 28t-28 68zM416 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 416v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68z M288 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM399.5 766q8.5 -37 24.5 -59l349 -473l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5 t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M44 363q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29q-4 -15 -20 -20 l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20zM320 640q0 -117 45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5 t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5z" />
|
||||
<glyph unicode="" d="M0 640q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 1088v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM128 -64v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM704 704q0 -26 19 -45t45 -19h256 q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M32 576q0 26 19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19t19 -45t-19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19 t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45z M512 1152q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5h-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M-1 1004q0 11 3 16l4 6q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24 q17 19 38 30q53 26 239 24q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5 t13 3t20 0.5l288 2q39 5 64 -2.5t31 -16.5l6 -10q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12 q-30 21 -70 64t-68.5 77.5t-61 58t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211 t-130.5 272q-6 16 -6 27z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 391q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5q0 -68 -37 -139.5 t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5zM181 320q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5zM413.5 230.5 q-40.5 92.5 6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5q-45 -102 -158 -150t-224 -12q-107 34 -147.5 126.5zM495 257.5q9 -34.5 43 -50.5t74.5 -2.5t62.5 47.5q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5zM705 399 q-17 -31 13 -45q14 -5 29 0.5t22 18.5q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5zM1165 1274q-6 28 9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158 q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5zM1224 1047q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5t54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37z" />
|
||||
<glyph unicode="" d="M0 638q0 187 83.5 349.5t229.5 269.5t325 137v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495zM398 -34q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211q-171 -94 -368 -94q-196 0 -367 94zM898 909v485q179 -30 325 -137t229.5 -269.5 t83.5 -349.5q0 -280 -181 -495q-204 99 -330.5 306.5t-126.5 459.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -211q0 19 13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23 t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89 t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283 q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M21 217v66h1238v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5zM21 354v255h1238v-255h-1238zM21 682v255h1238v-255h-1238zM21 1010v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5v-67h-1238z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 544v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 640q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM448 640q0 33 27 52l448 320q17 12 37 12q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 320q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5zM416 1348q-2 16 6 42 q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455l198 99l58 -114l-256 -128q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 806q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5 q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237q104 139 172.5 292.5t82.5 226.5q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143 q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 608v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31 l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="2176" d="M0 576q0 12 38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113q-110 -64 -268 -64h-128v64 h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5zM323 336h29q157 0 273 64h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96zM323 816l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5 t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64h-29zM1739 484l81 -30q68 48 68 122t-68 122l-81 -30q53 -36 53 -92t-53 -92z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 796q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5 t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72 l-55 163l-153 -53q-29 -9 -50 -9q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5zM620 811l105 -313l310 105l-105 315z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 352q0 -40 28 -68t68 -28h832q40 0 68 28t28 68v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99 q-98 -69 -164 -69t-164 69q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436zM256 928q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13 t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM41 640q0 -173 68 -331.5t182.5 -273t273 -182.5t331.5 -68t331.5 68t273 182.5t182.5 273t68 331.5 t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5zM127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM254 1062q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5 q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21t14.5 -24t14 -23q63 -107 63 -212q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15 t-1.5 -18.5t9 -16.5t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5zM679 -97l230 670l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1282 -24l235 678q59 169 59 276q0 42 -6 79 q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 455q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360l272 133v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5zM1134 860v172q277 -33 481 -157l140 79l37 -390l-525 114l147 83 q-119 70 -280 99z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 -128q0 26 20.5 45t48.5 19h1782q28 0 48.5 -19t20.5 -45v-128h-1920v128zM0 1024v128l960 384l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128zM128 0v64q0 26 20.5 45t48.5 19h59v768h256v-768h128v768h256v-768h128v768h256 v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664z" />
|
||||
<glyph unicode="" horiz-adv-x="2304" d="M0 1024q0 23 22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31t-22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433 q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31zM512 384l18 316l574 -181q22 -7 48 -7t48 7l574 181l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128z" />
|
||||
<glyph unicode="" d="M109 1536q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610l13 -707q-62 11 -105 11 q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M111 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5t-59.5 -93 t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131zM297 228q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13 t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5zM403 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5 q53 56 53 159q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160z" />
|
||||
<glyph unicode="" horiz-adv-x="1984" d="M0 722q0 94 66 160t160 66q83 0 148 -55q248 158 592 164l134 423q4 14 17.5 21.5t28.5 4.5l347 -82q22 50 68.5 81t102.5 31q77 0 131.5 -54.5t54.5 -131.5t-54.5 -132t-131.5 -55q-76 0 -130.5 54t-55.5 131l-315 74l-116 -366q327 -14 560 -166q64 58 151 58 q94 0 160 -66t66 -160q0 -62 -31 -114t-83 -82q5 -33 5 -61q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5zM77 722q0 -67 51 -111 q49 131 180 235q-36 25 -82 25q-62 0 -105.5 -43.5t-43.5 -105.5zM178 465q0 -101 59.5 -194t171.5 -166q116 -75 265.5 -115.5t313.5 -40.5t313.5 40.5t265.5 115.5q112 73 171.5 166t59.5 194t-59.5 193.5t-171.5 165.5q-116 75 -265.5 115.5t-313.5 40.5t-313.5 -40.5 t-265.5 -115.5q-112 -73 -171.5 -165.5t-59.5 -193.5zM555 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM661 209.5q0 16.5 11 27.5t27 11t27 -11q77 -77 265 -77h2q188 0 265 77q11 11 27 11t27 -11t11 -27.5t-11 -27.5 q-99 -99 -319 -99h-2q-220 0 -319 99q-11 11 -11 27.5zM1153 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM1555 1350q0 -45 32 -77t77 -32t77 32t32 77t-32 77t-77 32t-77 -32t-32 -77zM1672 843q131 -105 178 -238 q57 46 57 117q0 62 -43.5 105.5t-105.5 43.5q-49 0 -86 -28z" />
|
||||
<glyph unicode="" d="M0 193v894q0 133 94 227t226 94h896q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227zM155 709q0 -37 19.5 -67.5t52.5 -45.5q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54 q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43 q-51 0 -87 -36.5t-36 -87.5zM493 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM560 375q0 11 8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18z M882 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM1143 1120q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 502q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14 q19 0 32.5 -14t13.5 -33v-54l60 -28l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122zM806 500q0 -80 58 -137t139 -57t138.5 57t57.5 139v122h-150v-126q0 -20 -13.5 -33.5t-33.5 -13.5 q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 336v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58l-131 61v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5zM1062 332 v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275h328v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM64 640h704v-704h480q93 0 158.5 65.5t65.5 158.5v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480z " />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 271v697h328v286h204v-983h-532zM205 435h123v369h-123v-369zM614 271h205v697h-205v-697zM614 1050h205v204h-205v-204zM901 26v163h328v82h-328v697h533v-942h-533zM1106 435h123v369h-123v-369zM1516 26v163h327v82h-327v697h532v-942h-532zM1720 435h123v369h-123 v-369z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM293 388l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229t-88.5 229t-213.5 95q-74 0 -141 -36h-186v-840z M504 804v277q28 17 70 17q53 0 91 -45t38 -109t-38 -109.5t-91 -45.5q-43 0 -70 15zM636 -39l211 41v206q51 -19 117 -19q125 0 213 95t88 229t-88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101v-636zM847 377v277q28 17 70 17q53 0 91 -45.5t38 -109.5 t-38 -109t-91 -45q-43 0 -70 15z" />
|
||||
<glyph unicode="" horiz-adv-x="2038" d="M41 455q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80 t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5l1 -21q75 3 143.5 -20.5 t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14q6 -5 28 -23.5t25.5 -22t19 -18 t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63 t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27zM764 676q10 1 32.5 7t34.5 6q19 0 35 -10l-96 -20zM822 568l48 12l109 -177l-73 -48zM859 884q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1 v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5 t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43zM1061 45h31l10 -83l-41 -12v95zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM1116 29 q21 2 60.5 8.5t72 10t60.5 3.5h14q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13t-54 -9.5t-53.5 -7.5t-32 -4.5zM1947 1528l1 3l2 4l-1 -5zM1950 1535v1v-1zM1950 1535l1 1z" />
|
||||
<glyph unicode="" d="M0 520q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5 t19.5 -177.5q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302zM333 256q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5zM685.5 -76q-0.5 -10 7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5 q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16zM852 31q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5 t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10q-29 -12 -78 -56q-26 -24 -12 -44z" />
|
||||
<glyph unicode="" d="M0 78q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160l151 -152l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5 t-60 145.5zM2 1202q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5t149.5 -87.5l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5 q-70 15 -115 71t-45 129zM446 803l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126t135.5 51q85 0 145 -60.5t60 -145.5q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152 l-160 -160zM776 793l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5q76 -11 126.5 -68.5t50.5 -134.5q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30 l-152 152z" />
|
||||
<glyph unicode="" d="M0 -16v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5q20 0 20 -21v-418l147 -47v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3zM39 15l694 232v1032l-694 -233v-1031zM147 293q6 4 82 92 q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8 t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110 q-4 -2 -19.5 -4t-18.5 0zM268 933l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41zM310 -116q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11q73 -37 159.5 -61.5t157.5 -24.5 q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5l-43 73l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16zM777 1294l573 -184v380zM885 453l102 -31l45 110l211 -65l37 -135l102 -31l-181 657l-100 31z M1071 630l76 185l63 -227z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -96v1088q0 66 47 113t113 47h128q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113zM512 -96v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-163q58 -34 93 -93t35 -128v-768q0 -106 -75 -181 t-181 -75h-864q-66 0 -113 47t-47 113zM640 896h896v256h-160q-40 0 -68 28t-28 68v160h-640v-512zM736 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM736 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9 h-128q-14 0 -23 -9t-9 -23v-128zM736 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 256q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23 v-128zM1248 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128z" />
|
||||
<glyph unicode="" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM256 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 1184q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 96v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23zM512 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM512 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 928q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM1024 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M64 1056q0 40 28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68zM416 1152q0 93 65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 724q0 80 42 139.5t119 59.5q76 0 141.5 -55.5t100.5 -134t35 -152.5q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152zM256 19q0 86 56 191.5t139.5 192.5t187.5 146t193 59q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45 t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146zM333 1163q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151zM884 1064 q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5q-61 0 -105 39t-63 92.5t-19 113.5zM1226 581q0 74 35 152.5t100.5 134t141.5 55.5q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5 q-77 0 -119 59t-42 139z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M64 1008q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 256v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65zM134 1026l698 -254l698 254l-698 254zM896 -93l640 349v636l-640 -233v-752z" />
|
||||
<glyph unicode="" horiz-adv-x="2304" d="M0 96v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70v-400l434 -186q36 -16 57 -48t21 -70v-416q0 -36 -19 -67t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4 l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67zM172 531l404 -173l404 173l-404 173zM640 -96l384 192v314l-384 -164v-342zM647 1219l441 -189l441 189l-441 189zM1152 651l384 165v266l-384 -164v-267zM1196 531l404 -173l404 173l-404 173zM1664 -96 l384 192v314l-384 -164v-342z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 22v1260h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5 t45.5 113.5q0 144 -190 144h-260v-294zM1137 477q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658q0 -111 57.5 -171.5t166.5 -60.5q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347zM1337 1073h511v124 h-511v-124zM1388 576h408q-18 195 -200 195q-90 0 -146 -52.5t-62 -142.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 254h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5t-56.5 60.5t-79 29.5 t-97 8.5h-371v-787zM301 388v217h189q124 0 124 -113q0 -104 -128 -104h-185zM301 723v184h163q119 0 119 -90q0 -94 -106 -94h-176zM838 538q0 -135 79 -217t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20q-68 0 -104 38t-36 107h411q1 10 1 30 q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216zM964 911v77h319v-77h-319zM996 600q4 56 39 89t91 33q113 0 124 -122h-254z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 764q0 86 61 146.5t146 60.5q73 0 130 -46t73 -117l783 -315q49 29 106 29q14 0 21 -1l173 248q1 114 82 194.5t195 80.5q115 0 196.5 -81t81.5 -196t-81.5 -196.5t-196.5 -81.5l-265 -194q-8 -80 -67.5 -133.5t-138.5 -53.5q-73 0 -130 46t-73 117l-783 315 q-51 -30 -106 -30q-85 0 -146 61t-61 147zM55 764q0 -64 44.5 -108.5t107.5 -44.5q11 0 33 4l-64 26q-33 14 -52.5 44.5t-19.5 66.5q0 50 35.5 85.5t85.5 35.5q20 0 41 -8v1l76 -31q-20 37 -56.5 59t-78.5 22q-63 0 -107.5 -44.5t-44.5 -107.5zM1164 244q19 -37 55.5 -59 t79.5 -22q63 0 107.5 44.5t44.5 107.5t-44.5 108t-107.5 45q-13 0 -33 -4q2 -1 20 -8t21.5 -8.5t18.5 -8.5t19 -10t16 -11t15.5 -13.5t11 -14.5t10 -18t5 -21t2.5 -25q0 -50 -35.5 -85.5t-85.5 -35.5q-14 0 -31.5 4.5t-29 9t-31.5 13.5t-28 12zM1584 767q0 -77 54.5 -131.5 t131.5 -54.5t132 54.5t55 131.5t-55 131.5t-132 54.5q-76 0 -131 -54.5t-55 -131.5zM1623 767q0 62 43.5 105.5t104.5 43.5t105 -44t44 -105t-43.5 -104.5t-105.5 -43.5q-61 0 -104.5 43.5t-43.5 104.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 693q0 -53 38 -91t92 -38q36 0 66 18l489 -197q10 -44 45.5 -73t81.5 -29q50 0 86.5 34t41.5 83l167 122 q71 0 122 50.5t51 122.5t-51 123t-122 51q-72 0 -122.5 -50.5t-51.5 -121.5l-108 -155q-2 0 -6.5 0.5t-6.5 0.5q-35 0 -67 -19l-489 197q-10 44 -45.5 73t-80.5 29q-54 0 -92 -38t-38 -92zM162 693q0 40 28 68t68 28q27 0 49.5 -14t34.5 -37l-48 19q-29 11 -56.5 -2 t-38.5 -41q-12 -29 -0.5 -57t39.5 -40v-1l40 -16q-14 -2 -20 -2q-40 0 -68 27.5t-28 67.5zM855 369q5 -2 47 -19q29 -12 58 0.5t41 41.5q11 29 -1 57.5t-41 40.5l-40 16q14 2 21 2q39 0 67 -27.5t28 -67.5t-28 -67.5t-67 -27.5q-59 0 -85 51zM1118 695q0 48 34 82t83 34 q48 0 82 -34t34 -82t-34 -82t-82 -34q-49 0 -83 34t-34 82zM1142 696q0 -39 27.5 -66t65.5 -27t65.5 27t27.5 66q0 38 -27.5 65.5t-65.5 27.5t-65.5 -27.5t-27.5 -65.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M16 970l433 -17l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188zM270.5 158q-3.5 28 4 65t12 55t21.5 64t19 53q78 -12 509 -28l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5 q-11 27 -14.5 55zM294 1124l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5t36 -39.5t32 -35q-47 -63 -265 -435l-317 187zM782 1524l405 -1q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190l142 83l-220 -373l-419 20l151 86q-34 89 -75 166 t-75.5 123.5t-64.5 80t-47 46.5zM953 197l211 362l7 -173q170 -16 283 -5t170 33l56 22l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164zM1218 847l313 195l19 11l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22 t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436z" />
|
||||
<glyph unicode="" horiz-adv-x="1984" d="M0 160v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h704q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-928v-128q0 -80 -56 -136 t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23zM160 448q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 768h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 448q0 -66 47 -113t113 -47t113 47t47 113 t-47 113t-113 47t-113 -47t-47 -113z" />
|
||||
<glyph unicode="" horiz-adv-x="1984" d="M0 32v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h64q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-64q0 -80 -56 -136t-136 -56 t-136 56t-56 136v64h-928v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23zM160 320q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 640h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 320 q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113z" />
|
||||
<glyph unicode="" d="M32 64q0 26 19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45t-19 -45t-45 -19 h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM237 886q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37q159 0 309.5 -34t253.5 -95q21 -12 40 -12 q29 0 50.5 20.5t21.5 51.5q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5zM289 637q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5q0 40 -35 61 q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64zM321 406q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52z" />
|
||||
<glyph unicode="" d="M0 11v1258q0 58 40.5 98.5t98.5 40.5h1258q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5zM71 11q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258z M121 11v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 7 -240 -16l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5zM121 709v560q0 7 5.5 12.5 t12.5 5.5h1258q7 0 12.5 -5.5t5.5 -12.5v-428q-85 30 -188 52q-294 64 -645 12l-18 -3l-65 134h-233l85 -190q-132 -51 -230 -137zM246 413q-24 203 166 305l129 -270l-255 -61q-14 -3 -26 4.5t-14 21.5z" />
|
||||
<glyph unicode="" horiz-adv-x="2304" d="M0 405l17 128q2 9 9 9t9 -9l20 -128l-20 -126q-2 -9 -9 -9t-9 9zM79 405l23 207q0 9 9 9q8 0 10 -9l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10zM169 405l21 245q2 12 12 12q11 0 11 -12l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11zM259 405l21 252q0 13 13 13 q12 0 14 -13l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13zM350 405l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5zM401 159zM442 405l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5l21 -380l-21 -246q0 -7 -5 -12.5 t-12 -5.5q-16 0 -18 18zM534 403l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19zM628 405l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5l18 -506l-18 -242q-2 -21 -22 -21q-19 0 -21 21zM723 405l14 -241 q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17zM784 164zM817 405l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18zM913 404l12 492q1 12 9 20t19 8t18.5 -8 t8.5 -20l14 -492l-14 -236q0 -11 -8 -19t-19 -8t-19 8t-9 19zM1010 405q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11q11 0 20 9q9 7 9 20l1 24l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6zM1079 169zM1103 404l12 636v3q2 15 12 24q9 7 20 7 q8 0 15 -5q14 -8 16 -26l14 -639l-14 -231q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114zM1204 174v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22z" />
|
||||
<glyph unicode="" d="M0 0v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 384v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 768 v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 1152v128q0 69 103 128t280 93.5t385 34.5t385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM257 60q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4 q52 85 107 197q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38 q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83z M714 842q1 7 7 44q0 3 7 43q1 4 4 8q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2q-15 -42 -2 -132zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1098 353q76 -28 124 -28q14 0 18 1q0 1 -2 3q-24 24 -140 24z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM233 661h70l164 -661h159l128 485q7 20 10 46q2 16 2 24 h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300v-107zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM429 0h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4 h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107h-290v-107h68l189 -272l-194 -283h-68v-106zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM416 0h327v106h-93v167h137q76 0 118 15q67 23 106.5 87 t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92v-106zM650 386v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15h-119zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 0v192l192 192l128 -128l384 384l320 -320v-320 h-1024zM256 704q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536zM384 192q0 25 8 52q21 63 120 396 v128h128v-128h79q22 0 39 -13t23 -34l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5zM512 192q0 -26 37.5 -45t90.5 -19t90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45zM512 896h128v128h-128v-128zM512 1152h128v128h-128v-128 zM640 768h128v128h-128v-128zM640 1024h128v128h-128v-128zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 288v192q0 14 9 23t23 9h131l166 167q16 15 35 7 q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23zM762 206.5q1 -26.5 20 -44.5q20 -17 44 -17q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5z M973.5 54.5q2.5 -26.5 23.5 -42.5q18 -15 40 -15q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 256v384q0 52 38 90t90 38h384q52 0 90 -38t38 -90 v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90zM960 403v90l265 266q9 9 23 9q4 0 12 -2q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM254 429q-14 19 0 38l226 301q8 11 21 12.5t24 -6.5 l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5zM636 43l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5l-63 10q-13 2 -20.5 13t-5.5 24zM947.5 181 q-1.5 13 6.5 24l182 243l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5l226 -301q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M39 1286h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132 t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 367v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64v-546q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64zM154 511l193 129l-193 129v-258zM216 367l603 -402v359l-334 223zM216 913l269 -180l334 223v359zM624 640 l272 -182l272 182l-272 182zM973 -35l603 402l-269 180l-334 -223v-359zM973 956l334 -223l269 180l-603 402v-359zM1445 640l193 -129v258z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 407q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5 h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55t121.5 -21 q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z " />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM128 640q0 -190 90 -361l194 194q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361zM512 640 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM535 -38q171 -90 361 -90t361 90l-194 194q-82 -28 -167 -28t-167 28zM535 1318l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90t-361 -90z M1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM44 640q0 -173 67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331 t-67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331zM87 640q0 205 98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385zM206 217l58 34q29 -49 73 -99 l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13v-66q-208 6 -385 109.5t-283 275.5zM207 1063q106 172 282 275.5t385 109.5v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98zM415 805q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10 t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162q-67 77 -98 169l232 80q-14 42 -14 85t14 85zM918 -102 q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99l58 -34q-106 -172 -283 -275.5t-385 -109.5v66zM918 1382v66q209 -6 385 -109.5t282 -275.5l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13zM1516 428q36 103 36 212q0 112 -35 212l82 28 q-19 56 -49 112l57 33q98 -180 98 -385t-98 -385l-57 33q27 52 49 112z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 218q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5 t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85q0 -53 41 -77v-3q-113 -37 -113 -139zM382 225q0 64 98 64q102 0 102 -61q0 -66 -93 -66 q-107 0 -107 63zM395 693q0 90 77 90q36 0 55 -25.5t19 -63.5q0 -85 -74 -85q-77 0 -77 84zM755 1072q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392q0 -50 -3 -75z M966 771q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M68 7q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47q98 0 218 47v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58q0 -31 22.5 -51.5t58 -32 t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5zM272 18q0 -101 172 -101q151 0 151 105q0 100 -165 100q-158 0 -158 -104zM293 775q0 -135 124 -135q119 0 119 137q0 61 -30 102t-89 41 q-124 0 -124 -145zM875 1389q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5t-39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5zM901 220q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134h-222zM1217 901v190h96v76q0 54 -6 89h227q-6 -41 -6 -165 h171v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM368 1135l323 -589v-435h134v436l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3 q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M57 953q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5t-78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153 t-153 102t-186 38t-186 -38t-153 -102t-102 -153t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265zM113.5 38.5q10.5 121.5 29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5t136.5 -56.5 t56.5 -136.5t-57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M18 264q0 275 252 466q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5 t3.5 -5t2 -3.5q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9 t-98 20t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20 q-18 -41 -54.5 -74.5t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 858q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490z M380 1075q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5t-25 66t-66 25q-43 0 -76 -25.5t-33 -65.5zM816 404q0 143 81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109q-150 -37 -218 -37 q-169 0 -311 70.5t-223.5 191.5t-81.5 264zM888 1075q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5t-24.5 66t-65.5 25q-43 0 -76 -25.5t-33 -65.5zM1160 568q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5 t-22.5 -49.5zM1559 568q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 508q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 508q-3 39 32 59l1664 960q35 21 68 -2q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55zM209 522l336 -137l863 639l-478 -797l492 -201 l221 1323z" />
|
||||
<glyph unicode="" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45zM512 480v64q0 14 9 23t23 9h224v352 q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M62 1338q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5 t45 -15t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18 q-15 10 -45 12t-53 2t-41 14t-18 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M24 926q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108 q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179q-64 117 -64 259z" />
|
||||
<glyph unicode="" d="M0 736v64q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM128 -96v672h256v-672q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM128 960v416q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-416h-256zM512 224v64q0 40 28 68 t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 64h256v-160q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v160zM640 448v928q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-928h-256zM1024 992v64q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1152 -96v928h256v-928q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 1216v160q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-160h-256z" />
|
||||
<glyph unicode="" d="M0 640q0 133 93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86q133 0 226.5 -93.5t93.5 -226.5 t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 640q0 -88 62.5 -150.5t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5 t150.5 62.5t62.5 150.5t-62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 448q0 143 55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68l243 244l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5 t-225 150t-150 225t-55.5 273.5zM170 615q10 -24 35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49t-34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49zM1376 1472q0 13 9 23q10 9 23 9t23 -9l90 -91q10 -9 10 -22.5t-10 -22.5 q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23zM1536 1408v96q0 14 9 23t23 9t23 -9t9 -23v-96q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1605 1242.5q0 13.5 10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5z M1605 1381.5q0 13.5 10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5zM1632 1312q0 14 9 23t23 9h96q14 0 23 -9t9 -23t-9 -23t-23 -9h-96q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 248 KiB |
BIN
main/inc/lib/javascript/badge-studio/media/fonts/opensans.woff
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
main/inc/lib/javascript/badge-studio/media/images/bg.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,101 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" width="512px" height="512px"
|
||||
viewBox="15 5 200 220"
|
||||
xml:space="preserve">
|
||||
|
||||
<g id="mask">
|
||||
<g opacity="0.3">
|
||||
<defs>
|
||||
<clipPath id="maskClipPath">
|
||||
<path d="M187.49,165.321
|
||||
c4.372-4.314,7.429-10.826,7.429-16.562
|
||||
V83.179
|
||||
c0-7.318-4.964-15.914-11.3-19.573
|
||||
l-56.794-32.791
|
||||
c-3.09-1.783-7.104-2.767-11.3-2.767
|
||||
c-4.197,0-8.21,0.983-11.301,2.767
|
||||
L47.431,63.606
|
||||
c-6.336,3.658-11.3,12.255-11.3,19.572
|
||||
v65.578c0,7.316,4.964,15.914,11.3,19.572
|
||||
l56.793,32.791
|
||||
c3.09,1.783,7.104,2.767,11.301,2.767
|
||||
c2.812,0,5.534-0.45,7.96-1.278" />
|
||||
</clipPath>
|
||||
|
||||
<radialGradient id="maskFill"
|
||||
cx="387.1008" cy="-373.7534" r="110.1988"
|
||||
gradientTransform="matrix(0.9666 -0.2563 -0.2563 -0.9666 -354.4388 -149.2191)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.1191" style="stop-color:#FFFFFF" />
|
||||
<stop offset="0.8285" style="stop-color:#FFFFFF; stop-opacity:0;" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
|
||||
<path fill="url(#maskFill)"
|
||||
d="M27.931,27.123l191.622,111.302c0.188,0.726,0.392,1.467,0.559,2.161
|
||||
L25.988,27.825C26.64,27.593,27.29,27.357,27.931,27.123z M17.02,110.476l159.595,92.703c0.52-0.304,1.044-0.61,1.576-0.916
|
||||
L16.35,108.261C16.575,109,16.797,109.736,17.02,110.476z M178.612-11.653c-0.719,0.2-1.432,0.397-2.146,0.589l8.014,4.654
|
||||
c-0.183-0.765-0.355-1.479-0.519-2.134L178.612-11.653z M169.945-9.363l16.022,9.309c-0.168-0.727-0.331-1.433-0.49-2.115
|
||||
l-13.342-7.753C171.404-9.733,170.669-9.542,169.945-9.363z M38.439,188.816l56.42,32.771c1.078,0,2.129-0.002,3.147-0.008
|
||||
l-60.161-34.939C38.041,187.368,38.238,188.124,38.439,188.816z M40.66,195.601l44.562,25.884
|
||||
c0.036-0.001,0.071,0.002,0.108,0.002c1.079,0.027,2.121,0.041,3.157,0.057l-48.633-28.248
|
||||
C40.12,194.081,40.388,194.866,40.66,195.601z M-3.37,43.721l222.214,129.076c0.24-0.418,0.472-0.836,0.686-1.268
|
||||
c0.02-0.041,0.041-0.091,0.063-0.131L-4.004,41.523C-3.809,42.202-3.599,42.934-3.37,43.721z M156.281-6.321l32.54,18.9
|
||||
c-0.157-0.705-0.313-1.403-0.469-2.097L158.617-6.79C157.831-6.628,157.054-6.474,156.281-6.321z M149.075-5.006l41.153,23.908
|
||||
c-0.156-0.707-0.312-1.409-0.469-2.11L151.51-5.426C150.694-5.282,149.881-5.139,149.075-5.006z M15.005,103.813l166.369,96.635
|
||||
c0.53-0.3,1.052-0.597,1.592-0.902L14.33,101.595C14.555,102.334,14.781,103.074,15.005,103.813z M163.217-7.779l24.189,14.051
|
||||
c-0.161-0.717-0.32-1.416-0.479-2.111L165.485-8.294C164.721-8.117,163.969-7.948,163.217-7.779z M19.014,117.127l152.945,88.841
|
||||
c0.505-0.313,1.022-0.624,1.538-0.938L18.352,114.915C18.573,115.651,18.795,116.392,19.014,117.127z M-4.962,37.307
|
||||
l225.787,131.148c0.17-0.486,0.333-1.002,0.486-1.549L-3.15,36.527C-3.849,36.735-4.498,37.031-4.962,37.307z M13.945,31.814
|
||||
l208.269,120.972c-0.057-0.637-0.111-1.265-0.193-1.938L16.004,31.18C15.325,31.393,14.632,31.601,13.945,31.814z M32.073,163.157
|
||||
l115.589,67.139c0.271-0.457,0.545-0.916,0.818-1.356L31.5,160.991C31.694,161.717,31.886,162.444,32.073,163.157z
|
||||
M24.845,136.991l134.726,78.248c0.404-0.373,0.806-0.76,1.216-1.123L24.21,134.79C24.423,135.524,24.635,136.256,24.845,136.991z
|
||||
M26.723,143.573l129.393,75.157c0.368-0.405,0.741-0.797,1.11-1.187L26.1,141.377C26.309,142.11,26.517,142.845,26.723,143.573z
|
||||
M30.346,156.659l119.859,69.621c0.3-0.445,0.601-0.883,0.904-1.309l-121.355-70.49C29.951,155.209,30.152,155.938,30.346,156.659
|
||||
z M2.904,34.971c-0.556,0.147-1.128,0.285-1.692,0.433l220.802,128.25c0.086-0.545,0.158-1.109,0.223-1.703L3.393,34.837
|
||||
C3.228,34.88,3.07,34.927,2.904,34.971z M36.348,180.606c0.136,0.607,0.278,1.16,0.416,1.746l67.514,39.217
|
||||
c1.077-0.002,2.141,0.002,3.189,0.018L36.26,180.225C36.288,180.35,36.321,180.481,36.348,180.606z M20.986,123.764
|
||||
l146.528,85.113c0.48-0.332,0.973-0.658,1.462-0.985L20.331,121.556C20.551,122.292,20.768,123.026,20.986,123.764z
|
||||
M33.724,169.604l92.28,53.602c1.843,0.375,3.698,0.84,5.57,1.402l-98.396-57.152C33.364,168.177,33.547,168.894,33.724,169.604z
|
||||
M12.976,97.15l173.183,100.591c0.521-0.295,1.062-0.603,1.597-0.908L12.293,94.92C12.521,95.66,12.748,96.403,12.976,97.15z
|
||||
M35.283,175.997l78.812,45.779c1.198,0.062,2.389,0.139,3.567,0.241l-82.889-48.146
|
||||
C34.948,174.588,35.117,175.297,35.283,175.997z M22.931,130.387l140.439,81.572c0.446-0.354,0.892-0.705,1.345-1.051
|
||||
L22.286,128.183C22.503,128.92,22.717,129.65,22.931,130.387z M20.055,29.87l201.354,116.96c-0.116-0.67-0.238-1.344-0.377-2.047
|
||||
L22.05,29.197C21.388,29.423,20.727,29.647,20.055,29.87z M2.684,63.712l206.186,119.767c0.458-0.354,0.899-0.705,1.334-1.057
|
||||
L1.997,61.477C2.223,62.217,2.453,62.964,2.684,63.712z M6.812,77.092L200.198,189.42c0.515-0.32,1.01-0.641,1.505-0.959
|
||||
L6.124,74.86C6.352,75.6,6.581,76.342,6.812,77.092z M37.359,23.447l179.002,103.977c-0.211-0.725-0.426-1.463-0.639-2.205
|
||||
L39.182,22.674C38.575,22.932,37.977,23.19,37.359,23.447z M67.339,7.915l138.835,80.647c-0.172-0.709-0.345-1.423-0.516-2.137
|
||||
L68.822,6.943C68.337,7.265,67.842,7.589,67.339,7.915z M141.591-3.864l50.04,29.068c-0.116-0.527-0.234-1.062-0.351-1.581
|
||||
c-0.038-0.175-0.077-0.35-0.117-0.523l-47.04-27.324C143.272-4.1,142.427-3.978,141.591-3.864z M79.859-1.286L201.64,69.452
|
||||
c-0.165-0.705-0.328-1.413-0.49-2.117L81.132-2.379C80.724-2.025,80.3-1.658,79.859-1.286z M4.746,70.402l199.9,116.111
|
||||
c0.491-0.331,0.977-0.663,1.443-0.993L4.057,68.167C4.287,68.913,4.516,69.656,4.746,70.402z M-1.395,50.362l217.511,126.339
|
||||
c0.345-0.416,0.675-0.834,0.989-1.26L-2.063,48.14C-1.846,48.857-1.625,49.6-1.395,50.362z M71.715,4.964l132.921,77.211
|
||||
c-0.167-0.707-0.337-1.415-0.507-2.127L73.126,3.955C72.665,4.29,72.198,4.624,71.715,4.964z M53.119,16.136l157.88,91.707
|
||||
c-0.187-0.716-0.372-1.436-0.558-2.161L54.785,15.271C54.242,15.558,53.679,15.849,53.119,16.136z M42.78,21.106l171.705,99.732
|
||||
c-0.2-0.717-0.401-1.442-0.604-2.176L44.551,20.307C43.967,20.572,43.377,20.839,42.78,21.106z M48.04,18.667l164.664,95.65
|
||||
c-0.192-0.718-0.384-1.438-0.577-2.166L49.755,17.839C49.195,18.114,48.616,18.392,48.04,18.667z M62.779,10.759L207.74,94.965
|
||||
c-0.175-0.708-0.35-1.423-0.525-2.14l-142.893-83C63.82,10.136,63.298,10.448,62.779,10.759z M0.632,57.026l212.11,123.204
|
||||
c0.408-0.378,0.807-0.757,1.187-1.14L-0.047,54.807C0.176,55.536,0.402,56.276,0.632,57.026z M58.042,13.497l151.304,87.885
|
||||
c-0.18-0.712-0.36-1.427-0.54-2.143L59.643,12.599C59.121,12.897,58.582,13.197,58.042,13.497z M75.893,1.895l127.233,73.908
|
||||
c-0.167-0.707-0.331-1.411-0.498-2.117L77.238,0.849C76.804,1.192,76.357,1.542,75.893,1.895z M84.924-5.029l-1.219,0.323
|
||||
c-0.035,0.031-0.072,0.065-0.106,0.099L200.174,63.11c-0.161-0.706-0.325-1.41-0.485-2.118L86.741-4.611
|
||||
C86.108-4.753,85.494-4.892,84.924-5.029z M125.45-2.26l68.997,40.076c-0.158-0.705-0.315-1.402-0.471-2.101L128.268-2.45
|
||||
C127.317-2.381,126.375-2.316,125.45-2.26z M133.743-2.933l59.293,34.439c-0.157-0.703-0.313-1.402-0.467-2.099L136.406-3.217
|
||||
C135.507-3.114,134.622-3.021,133.743-2.933z M50.491,212.288l11.257,6.535c1.652,0.51,3.414,0.922,5.312,1.256L47.35,208.631
|
||||
C48.421,210.09,49.474,211.29,50.491,212.288z M43.878,202.956l31.108,18.068c1.133,0.086,2.313,0.158,3.528,0.219l-35.871-20.838
|
||||
C43.053,201.305,43.466,202.157,43.878,202.956z M31.752,25.684l186.583,108.378c-0.157-0.532-0.294-1.036-0.464-1.586
|
||||
c-0.063-0.205-0.127-0.42-0.19-0.628L33.644,24.95C33.021,25.195,32.386,25.44,31.752,25.684z M10.93,90.469l179.988,104.54
|
||||
c0.521-0.304,1.036-0.601,1.568-0.913L10.249,88.246C10.474,88.983,10.702,89.725,10.93,90.469z M95.703-3.066l103.021,59.842
|
||||
c-0.162-0.704-0.32-1.409-0.481-2.109L99.628-2.618C98.256-2.753,96.947-2.903,95.703-3.066z M7.673,33.664L222.45,158.418
|
||||
c0.01-0.594,0.012-1.2-0.004-1.836L9.782,33.052C9.081,33.258,8.384,33.461,7.673,33.664z M8.875,83.784l186.726,108.46
|
||||
c0.526-0.32,1.032-0.627,1.54-0.938L8.189,81.555C8.417,82.293,8.644,83.036,8.875,83.784z M106.825-2.097l90.46,52.543
|
||||
c-0.159-0.703-0.318-1.406-0.478-2.107L110.185-1.978C109.036-2.006,107.912-2.044,106.825-2.097z M28.557,150.124l124.453,72.287
|
||||
c0.331-0.424,0.667-0.836,1-1.244L27.951,147.946C28.155,148.672,28.359,149.401,28.557,150.124z M116.56-1.935l79.302,46.063
|
||||
c-0.161-0.705-0.316-1.402-0.474-2.104L119.605-1.997C118.571-1.966,117.558-1.946,116.56-1.935z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.0 KiB |
@@ -0,0 +1,175 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" width="512px" height="512px"
|
||||
viewBox="15 5 200 220"
|
||||
xml:space="preserve">
|
||||
|
||||
<defs>
|
||||
<style type="text/css" id="palette">
|
||||
<![CDATA[
|
||||
.color-background { fill: #04A; }
|
||||
.color-stitching { fill: #0AE; }
|
||||
]]>
|
||||
</style>
|
||||
|
||||
<path id="backgroundShape"
|
||||
d="M115.089,214.155c-4.736,0-9.265-1.109-12.754-3.123l-64.099-37.009
|
||||
c-7.151-4.13-12.754-13.833-12.754-22.091V77.917c0-8.26,5.603-17.962,12.754-22.092
|
||||
l64.099-37.009c3.489-2.014,8.018-3.122,12.754-3.122c4.737,0,9.268,1.108,12.753,3.122
|
||||
l64.102,37.009c7.15,4.13,12.754,13.832,12.754,22.092
|
||||
v74.016c0,8.258-5.604,17.961-12.754,22.091l-64.102,37.008
|
||||
C124.357,213.045,119.826,214.155,115.089,214.155z" />
|
||||
</defs>
|
||||
|
||||
<g id="background" class="color-background">
|
||||
<use xlink:href="#backgroundShape" />
|
||||
</g>
|
||||
|
||||
<g id="mask"></g>
|
||||
|
||||
<path id="stitching"
|
||||
class="color-stitching optional"
|
||||
title="Stitching"
|
||||
d="M115.089,198.725c-0.28,0-0.531-0.227-0.531-0.506c0-0.28,0.201-0.508,0.481-0.508h0.05
|
||||
c1.333,0,2.661-0.154,3.841-0.447c0.271-0.066,0.545,0.098,0.613,0.369c0.067,0.271-0.098,0.546-0.369,0.613
|
||||
C117.915,198.56,116.503,198.725,115.089,198.725z M111.029,198.237c-0.042,0-0.084-0.005-0.126-0.016
|
||||
c-1.038-0.268-1.952-0.626-2.719-1.066l-1.09-0.631c-0.242-0.14-0.325-0.449-0.185-0.691c0.14-0.242,0.448-0.326,0.69-0.186
|
||||
l1.091,0.629c0.686,0.396,1.515,0.721,2.464,0.965c0.27,0.069,0.434,0.346,0.363,0.616
|
||||
C111.459,198.086,111.253,198.237,111.029,198.237z M122.744,196.642c-0.175,0-0.345-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.553,0.186-0.691l3.507-2.025c0.241-0.139,0.551-0.057,0.691,0.188c0.141,0.241,0.058,0.551-0.186,0.69
|
||||
l-3.507,2.024C122.917,196.622,122.83,196.642,122.744,196.642z M103.838,194.567c-0.086,0-0.173-0.021-0.253-0.068l-3.507-2.023
|
||||
c-0.242-0.141-0.325-0.449-0.186-0.691c0.141-0.242,0.45-0.326,0.691-0.186l3.507,2.023c0.242,0.142,0.326,0.449,0.187,0.692
|
||||
C104.183,194.476,104.013,194.567,103.838,194.567z M129.76,192.593c-0.175,0-0.345-0.091-0.438-0.255
|
||||
c-0.141-0.241-0.058-0.551,0.185-0.69l3.507-2.024c0.242-0.141,0.552-0.058,0.692,0.186c0.14,0.242,0.057,0.553-0.187,0.691
|
||||
l-3.507,2.025C129.932,192.571,129.846,192.593,129.76,192.593z M96.823,190.517c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.024
|
||||
c-0.241-0.14-0.324-0.449-0.186-0.69c0.14-0.244,0.45-0.328,0.692-0.188l3.507,2.025c0.242,0.141,0.325,0.449,0.186,0.691
|
||||
C97.168,190.426,96.998,190.517,96.823,190.517z M136.776,188.542c-0.176,0-0.346-0.09-0.439-0.252
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.025c0.24-0.14,0.551-0.058,0.69,0.187c0.141,0.241,0.058,0.552-0.186,0.69
|
||||
l-3.507,2.025C136.948,188.52,136.862,188.542,136.776,188.542z M89.808,186.465c-0.086,0-0.173-0.02-0.253-0.066l-3.507-2.025
|
||||
c-0.242-0.139-0.325-0.448-0.185-0.69c0.14-0.243,0.449-0.325,0.69-0.187l3.507,2.025c0.242,0.141,0.325,0.449,0.187,0.691
|
||||
C90.154,186.375,89.984,186.465,89.808,186.465z M143.79,184.493c-0.175,0-0.345-0.092-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.691l3.508-2.024c0.241-0.142,0.551-0.06,0.691,0.187c0.14,0.242,0.057,0.552-0.186,0.69
|
||||
l-3.508,2.024C143.963,184.471,143.876,184.493,143.79,184.493z M82.793,182.417c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.024
|
||||
c-0.242-0.141-0.325-0.449-0.187-0.691c0.14-0.242,0.45-0.326,0.692-0.186l3.508,2.024c0.242,0.14,0.325,0.448,0.187,0.69
|
||||
C83.138,182.325,82.968,182.417,82.793,182.417z M150.805,180.442c-0.175,0-0.345-0.091-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.691l3.507-2.024c0.241-0.142,0.552-0.058,0.691,0.187c0.14,0.242,0.057,0.551-0.186,0.69
|
||||
l-3.508,2.024C150.978,180.42,150.891,180.442,150.805,180.442z M75.779,178.366c-0.086,0-0.174-0.021-0.252-0.068l-3.509-2.023
|
||||
c-0.241-0.141-0.324-0.449-0.186-0.691c0.14-0.242,0.45-0.326,0.692-0.186l3.508,2.023c0.242,0.142,0.325,0.449,0.186,0.691
|
||||
C76.123,178.274,75.953,178.366,75.779,178.366z M157.821,176.392c-0.176,0-0.346-0.09-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.025c0.24-0.139,0.551-0.057,0.69,0.188c0.141,0.241,0.058,0.551-0.185,0.69
|
||||
l-3.507,2.024C157.993,176.37,157.906,176.392,157.821,176.392z M68.762,174.315c-0.086,0-0.173-0.021-0.252-0.066l-3.508-2.025
|
||||
c-0.242-0.141-0.325-0.449-0.186-0.691c0.139-0.242,0.448-0.324,0.691-0.186l3.508,2.025c0.242,0.14,0.325,0.449,0.187,0.69
|
||||
C69.109,174.225,68.938,174.315,68.762,174.315z M164.835,172.342c-0.175,0-0.345-0.092-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.023c0.24-0.142,0.551-0.059,0.691,0.185c0.14,0.243,0.057,0.552-0.186,0.692
|
||||
l-3.507,2.023C165.009,172.319,164.921,172.342,164.835,172.342z M61.747,170.266c-0.086,0-0.173-0.021-0.252-0.066l-3.508-2.025
|
||||
c-0.242-0.141-0.326-0.449-0.187-0.691c0.141-0.242,0.45-0.326,0.692-0.186l3.508,2.023c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C62.093,170.175,61.923,170.266,61.747,170.266z M171.85,168.292c-0.175,0-0.345-0.09-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.551,0.186-0.69l3.507-2.024c0.24-0.142,0.552-0.059,0.692,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.508,2.024C172.025,168.269,171.937,168.292,171.85,168.292z M54.733,166.215c-0.087,0-0.174-0.021-0.253-0.067l-3.507-2.024
|
||||
c-0.241-0.141-0.326-0.449-0.186-0.691c0.14-0.243,0.449-0.324,0.691-0.186l3.508,2.024c0.241,0.14,0.324,0.449,0.185,0.69
|
||||
C55.077,166.125,54.908,166.215,54.733,166.215z M178.866,164.241c-0.175,0-0.346-0.091-0.439-0.252
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.693l3.445-1.988l0.314,0.402l0.251,0.439l-3.505,2.023
|
||||
C179.039,164.22,178.952,164.241,178.866,164.241z M47.718,162.163c-0.089,0-0.18-0.023-0.262-0.074
|
||||
c-1.062-0.643-2.137-1.623-3.11-2.832c-0.176-0.217-0.142-0.535,0.076-0.711c0.218-0.178,0.537-0.143,0.712,0.076
|
||||
c0.9,1.119,1.885,2.019,2.848,2.603c0.238,0.146,0.314,0.456,0.17,0.694C48.056,162.077,47.889,162.163,47.718,162.163z
|
||||
M185.375,159.526c-0.113,0-0.227-0.037-0.32-0.113c-0.217-0.178-0.249-0.496-0.071-0.713c0.805-0.986,1.532-2.131,2.104-3.314
|
||||
c0.123-0.251,0.424-0.355,0.676-0.235c0.252,0.123,0.357,0.425,0.235,0.677c-0.607,1.254-1.378,2.469-2.231,3.514
|
||||
C185.667,159.463,185.521,159.526,185.375,159.526z M42.592,156.02c-0.188,0-0.37-0.105-0.458-0.288
|
||||
c-0.643-1.346-1.09-2.721-1.295-3.978c-0.044-0.275,0.144-0.535,0.419-0.58c0.273-0.047,0.536,0.142,0.581,0.418
|
||||
c0.189,1.162,0.606,2.441,1.209,3.701c0.121,0.254,0.014,0.556-0.238,0.677C42.74,156.004,42.665,156.02,42.592,156.02z
|
||||
M188.824,152.282c-0.029,0-0.059-0.004-0.087-0.009c-0.276-0.048-0.461-0.31-0.414-0.585c0.089-0.512,0.134-1.005,0.134-1.466
|
||||
v-2.49c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v2.49c0,0.519-0.05,1.067-0.146,1.638
|
||||
C189.281,152.106,189.066,152.282,188.824,152.282z M41.216,148.137c-0.28,0-0.506-0.227-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051C41.722,147.911,41.495,148.137,41.216,148.137z M188.964,144.188
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05
|
||||
C189.47,143.961,189.243,144.188,188.964,144.188z M41.216,140.038c-0.28,0-0.506-0.228-0.506-0.508v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,139.81,41.495,140.038,41.216,140.038z M188.964,136.088
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.507,0.506-0.507s0.506,0.228,0.506,0.507v4.051
|
||||
C189.47,135.862,189.243,136.088,188.964,136.088z M41.216,131.936c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05C41.722,131.709,41.495,131.936,41.216,131.936z M188.964,127.987
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,127.761,189.243,127.987,188.964,127.987z M41.216,123.836c-0.28,0-0.506-0.228-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.507,0.506-0.507s0.506,0.228,0.506,0.507v4.051C41.722,123.609,41.495,123.836,41.216,123.836z M188.964,119.887
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,119.661,189.243,119.887,188.964,119.887z M41.216,115.735c-0.28,0-0.506-0.227-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051C41.722,115.509,41.495,115.735,41.216,115.735z M188.964,111.787
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05
|
||||
C189.47,111.56,189.243,111.787,188.964,111.787z M41.216,107.635c-0.28,0-0.506-0.226-0.506-0.506v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,107.409,41.495,107.635,41.216,107.635z M188.964,103.686
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.28,0.227-0.506,0.506-0.506s0.506,0.226,0.506,0.506v4.05
|
||||
C189.47,103.46,189.243,103.686,188.964,103.686z M41.216,99.535c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,99.308,41.495,99.535,41.216,99.535z M188.964,95.586
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05
|
||||
C189.47,95.359,189.243,95.586,188.964,95.586z M41.216,91.434c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.28,0.227-0.506,0.506-0.506s0.506,0.226,0.506,0.506v4.05C41.722,91.208,41.495,91.434,41.216,91.434z M188.964,87.485
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,87.259,189.243,87.485,188.964,87.485z M41.216,83.334c-0.28,0-0.506-0.227-0.506-0.506v-2.543
|
||||
c0-0.502,0.047-1.034,0.139-1.584c0.046-0.276,0.304-0.468,0.583-0.416c0.275,0.046,0.461,0.307,0.416,0.582
|
||||
c-0.083,0.495-0.125,0.973-0.125,1.418v2.543C41.722,83.107,41.495,83.334,41.216,83.334z M188.847,79.391
|
||||
c-0.244,0-0.46-0.178-0.5-0.427c-0.182-1.161-0.595-2.442-1.194-3.706c-0.12-0.253-0.013-0.555,0.24-0.675
|
||||
c0.247-0.119,0.555-0.013,0.675,0.24c0.64,1.351,1.083,2.728,1.279,3.982c0.044,0.276-0.145,0.536-0.421,0.579
|
||||
C188.901,79.389,188.873,79.391,188.847,79.391z M42.614,75.455c-0.074,0-0.148-0.016-0.22-0.05
|
||||
c-0.252-0.121-0.357-0.424-0.236-0.676c0.603-1.254,1.372-2.471,2.222-3.52c0.176-0.217,0.495-0.251,0.712-0.074
|
||||
c0.217,0.176,0.25,0.495,0.074,0.712c-0.801,0.988-1.525,2.137-2.095,3.32C42.983,75.35,42.801,75.455,42.614,75.455z
|
||||
M185.471,72.115c-0.147,0-0.295-0.065-0.396-0.189c-0.896-1.12-1.876-2.024-2.837-2.616c-0.238-0.146-0.312-0.459-0.166-0.696
|
||||
c0.146-0.238,0.458-0.312,0.695-0.166c1.06,0.652,2.131,1.637,3.098,2.846c0.174,0.218,0.14,0.536-0.079,0.712
|
||||
C185.695,72.079,185.582,72.115,185.471,72.115z M47.762,69.331c-0.172,0-0.34-0.088-0.435-0.246
|
||||
c-0.144-0.24-0.065-0.551,0.175-0.694l3.513-2.03c0.241-0.14,0.553-0.058,0.691,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.5,2.022C47.942,69.308,47.851,69.331,47.762,69.331z M178.999,67.356c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691c0.14-0.242,0.449-0.326,0.691-0.186l3.508,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C179.344,67.266,179.174,67.356,178.999,67.356z M54.778,65.28c-0.176,0-0.346-0.091-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.551,0.187-0.691l3.507-2.024c0.24-0.141,0.551-0.058,0.69,0.185c0.141,0.242,0.058,0.552-0.185,0.692
|
||||
l-3.507,2.024C54.95,65.259,54.865,65.28,54.778,65.28z M171.985,63.307c-0.086,0-0.174-0.022-0.253-0.068l-3.509-2.024
|
||||
c-0.241-0.141-0.324-0.45-0.185-0.692c0.14-0.241,0.449-0.326,0.69-0.185l3.509,2.024c0.241,0.14,0.324,0.45,0.186,0.692
|
||||
C172.328,63.216,172.158,63.307,171.985,63.307z M61.792,61.229c-0.175,0-0.345-0.09-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.187-0.691l3.507-2.025c0.241-0.141,0.551-0.058,0.692,0.186c0.14,0.242,0.057,0.552-0.187,0.691
|
||||
l-3.507,2.025C61.966,61.208,61.879,61.229,61.792,61.229z M164.969,59.256c-0.086,0-0.173-0.021-0.253-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691c0.14-0.243,0.449-0.325,0.691-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.187,0.691
|
||||
C165.313,59.166,165.143,59.256,164.969,59.256z M68.807,57.18c-0.175,0-0.345-0.091-0.438-0.253
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.692l3.508-2.025c0.241-0.141,0.552-0.058,0.692,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.509,2.026C68.98,57.158,68.893,57.18,68.807,57.18z M157.953,55.206c-0.086,0-0.173-0.021-0.253-0.068l-3.507-2.024
|
||||
c-0.242-0.14-0.325-0.449-0.187-0.691c0.14-0.243,0.45-0.326,0.692-0.186l3.507,2.024c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C158.298,55.115,158.128,55.206,157.953,55.206z M75.823,53.129c-0.175,0-0.346-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.691l3.508-2.025c0.241-0.141,0.551-0.057,0.691,0.186c0.141,0.242,0.058,0.552-0.186,0.691
|
||||
l-3.508,2.025C75.995,53.107,75.908,53.129,75.823,53.129z M150.938,51.155c-0.086,0-0.173-0.021-0.253-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691s0.45-0.326,0.691-0.186l3.508,2.025c0.241,0.14,0.324,0.449,0.186,0.691
|
||||
C151.283,51.065,151.114,51.155,150.938,51.155z M82.838,49.079c-0.175,0-0.345-0.091-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.691l3.507-2.025c0.24-0.14,0.551-0.057,0.692,0.186c0.14,0.242,0.057,0.552-0.187,0.692
|
||||
l-3.507,2.024C83.011,49.057,82.924,49.079,82.838,49.079z M143.923,47.105c-0.086,0-0.173-0.021-0.252-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.187-0.691c0.141-0.243,0.45-0.325,0.692-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C144.268,47.015,144.098,47.105,143.923,47.105z M89.853,45.028c-0.175,0-0.345-0.09-0.438-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.185-0.691l3.508-2.025c0.239-0.141,0.552-0.058,0.691,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.508,2.025C90.027,45.007,89.939,45.028,89.853,45.028z M136.908,43.056c-0.086,0-0.173-0.022-0.252-0.068l-3.507-2.024
|
||||
c-0.242-0.141-0.325-0.45-0.187-0.692c0.139-0.242,0.449-0.325,0.692-0.186l3.507,2.025c0.242,0.141,0.325,0.449,0.185,0.691
|
||||
C137.253,42.965,137.083,43.056,136.908,43.056z M96.868,40.978c-0.175,0-0.345-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.692l3.507-2.024c0.241-0.141,0.551-0.059,0.691,0.185c0.141,0.243,0.058,0.552-0.186,0.692
|
||||
L97.12,40.91C97.041,40.956,96.954,40.978,96.868,40.978z M129.892,39.005c-0.086,0-0.173-0.021-0.252-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.326-0.449-0.186-0.691c0.14-0.243,0.448-0.325,0.691-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C130.239,38.915,130.069,39.005,129.892,39.005z M103.883,36.928c-0.175,0-0.345-0.091-0.438-0.253
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.692l3.507-2.024c0.241-0.141,0.552-0.059,0.691,0.186c0.14,0.242,0.057,0.552-0.187,0.691
|
||||
l-3.507,2.025C104.056,36.906,103.969,36.928,103.883,36.928z M122.877,34.955c-0.086,0-0.173-0.021-0.252-0.068l-1.137-0.656
|
||||
c-0.673-0.389-1.486-0.708-2.415-0.95c-0.271-0.071-0.434-0.348-0.362-0.618s0.347-0.432,0.618-0.362
|
||||
c1.016,0.266,1.913,0.62,2.665,1.054l1.137,0.656c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C123.222,34.864,123.053,34.955,122.877,34.955z M111.076,33.27c-0.228,0-0.434-0.152-0.491-0.382
|
||||
c-0.068-0.271,0.096-0.547,0.367-0.615c1.271-0.321,2.703-0.491,4.137-0.491c0.28,0,0.56,0.227,0.56,0.507
|
||||
c0,0.279-0.175,0.506-0.454,0.506h-0.112c-1.345,0-2.689,0.159-3.881,0.46C111.159,33.266,111.117,33.27,111.076,33.27z" />
|
||||
|
||||
<g id="glyph"></g>
|
||||
|
||||
<radialGradient id="glossGradient"
|
||||
cx="115"
|
||||
cy="-160"
|
||||
r="400"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.50" style="stop-color: #FFF; stop-opacity: 0.1;" />
|
||||
<stop offset="0.75" style="stop-color: #FFF; stop-opacity: 1.0;" />
|
||||
<stop offset="0.75" style="stop-color: #FFF; stop-opacity: 0.0;" />
|
||||
</radialGradient>
|
||||
|
||||
<g id="gloss" class="optional" title="Glossy Overlay" display="none">
|
||||
<use xlink:href="#backgroundShape" style="fill: url(#glossGradient); opacity: 0.1;" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,196 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" width="512px" height="512px"
|
||||
viewBox="15 5 200 220"
|
||||
xml:space="preserve">
|
||||
|
||||
<defs>
|
||||
<style id="palette">
|
||||
<![CDATA[
|
||||
.color-background { fill: #04A; }
|
||||
.color-stitching { fill: #0AE; }
|
||||
.color-border { fill: #0AE; }
|
||||
.color-detail { fill: #FFF; }
|
||||
]]>
|
||||
</style>
|
||||
|
||||
<path id="backgroundShape"
|
||||
d="M115.089,214.155c-4.736,0-9.265-1.109-12.754-3.123l-64.099-37.009
|
||||
c-7.151-4.13-12.754-13.833-12.754-22.091V77.917c0-8.26,5.603-17.962,12.754-22.092
|
||||
l64.099-37.009c3.489-2.014,8.018-3.122,12.754-3.122c4.737,0,9.268,1.108,12.753,3.122
|
||||
l64.102,37.009c7.15,4.13,12.754,13.832,12.754,22.092
|
||||
v74.016c0,8.258-5.604,17.961-12.754,22.091l-64.102,37.008
|
||||
C124.357,213.045,119.826,214.155,115.089,214.155z" />
|
||||
</defs>
|
||||
|
||||
<g id="background" class="color-background">
|
||||
<use xlink:href="#backgroundShape" />
|
||||
</g>
|
||||
|
||||
<g id="mask"></g>
|
||||
|
||||
<path id="stitching"
|
||||
class="color-stitching optional"
|
||||
title="Stitching"
|
||||
d="M115.089,198.725c-0.28,0-0.531-0.227-0.531-0.506c0-0.28,0.201-0.508,0.481-0.508h0.05
|
||||
c1.333,0,2.661-0.154,3.841-0.447c0.271-0.066,0.545,0.098,0.613,0.369c0.067,0.271-0.098,0.546-0.369,0.613
|
||||
C117.915,198.56,116.503,198.725,115.089,198.725z M111.029,198.237c-0.042,0-0.084-0.005-0.126-0.016
|
||||
c-1.038-0.268-1.952-0.626-2.719-1.066l-1.09-0.631c-0.242-0.14-0.325-0.449-0.185-0.691c0.14-0.242,0.448-0.326,0.69-0.186
|
||||
l1.091,0.629c0.686,0.396,1.515,0.721,2.464,0.965c0.27,0.069,0.434,0.346,0.363,0.616
|
||||
C111.459,198.086,111.253,198.237,111.029,198.237z M122.744,196.642c-0.175,0-0.345-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.553,0.186-0.691l3.507-2.025c0.241-0.139,0.551-0.057,0.691,0.188c0.141,0.241,0.058,0.551-0.186,0.69
|
||||
l-3.507,2.024C122.917,196.622,122.83,196.642,122.744,196.642z M103.838,194.567c-0.086,0-0.173-0.021-0.253-0.068l-3.507-2.023
|
||||
c-0.242-0.141-0.325-0.449-0.186-0.691c0.141-0.242,0.45-0.326,0.691-0.186l3.507,2.023c0.242,0.142,0.326,0.449,0.187,0.692
|
||||
C104.183,194.476,104.013,194.567,103.838,194.567z M129.76,192.593c-0.175,0-0.345-0.091-0.438-0.255
|
||||
c-0.141-0.241-0.058-0.551,0.185-0.69l3.507-2.024c0.242-0.141,0.552-0.058,0.692,0.186c0.14,0.242,0.057,0.553-0.187,0.691
|
||||
l-3.507,2.025C129.932,192.571,129.846,192.593,129.76,192.593z M96.823,190.517c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.024
|
||||
c-0.241-0.14-0.324-0.449-0.186-0.69c0.14-0.244,0.45-0.328,0.692-0.188l3.507,2.025c0.242,0.141,0.325,0.449,0.186,0.691
|
||||
C97.168,190.426,96.998,190.517,96.823,190.517z M136.776,188.542c-0.176,0-0.346-0.09-0.439-0.252
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.025c0.24-0.14,0.551-0.058,0.69,0.187c0.141,0.241,0.058,0.552-0.186,0.69
|
||||
l-3.507,2.025C136.948,188.52,136.862,188.542,136.776,188.542z M89.808,186.465c-0.086,0-0.173-0.02-0.253-0.066l-3.507-2.025
|
||||
c-0.242-0.139-0.325-0.448-0.185-0.69c0.14-0.243,0.449-0.325,0.69-0.187l3.507,2.025c0.242,0.141,0.325,0.449,0.187,0.691
|
||||
C90.154,186.375,89.984,186.465,89.808,186.465z M143.79,184.493c-0.175,0-0.345-0.092-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.691l3.508-2.024c0.241-0.142,0.551-0.06,0.691,0.187c0.14,0.242,0.057,0.552-0.186,0.69
|
||||
l-3.508,2.024C143.963,184.471,143.876,184.493,143.79,184.493z M82.793,182.417c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.024
|
||||
c-0.242-0.141-0.325-0.449-0.187-0.691c0.14-0.242,0.45-0.326,0.692-0.186l3.508,2.024c0.242,0.14,0.325,0.448,0.187,0.69
|
||||
C83.138,182.325,82.968,182.417,82.793,182.417z M150.805,180.442c-0.175,0-0.345-0.091-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.691l3.507-2.024c0.241-0.142,0.552-0.058,0.691,0.187c0.14,0.242,0.057,0.551-0.186,0.69
|
||||
l-3.508,2.024C150.978,180.42,150.891,180.442,150.805,180.442z M75.779,178.366c-0.086,0-0.174-0.021-0.252-0.068l-3.509-2.023
|
||||
c-0.241-0.141-0.324-0.449-0.186-0.691c0.14-0.242,0.45-0.326,0.692-0.186l3.508,2.023c0.242,0.142,0.325,0.449,0.186,0.691
|
||||
C76.123,178.274,75.953,178.366,75.779,178.366z M157.821,176.392c-0.176,0-0.346-0.09-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.025c0.24-0.139,0.551-0.057,0.69,0.188c0.141,0.241,0.058,0.551-0.185,0.69
|
||||
l-3.507,2.024C157.993,176.37,157.906,176.392,157.821,176.392z M68.762,174.315c-0.086,0-0.173-0.021-0.252-0.066l-3.508-2.025
|
||||
c-0.242-0.141-0.325-0.449-0.186-0.691c0.139-0.242,0.448-0.324,0.691-0.186l3.508,2.025c0.242,0.14,0.325,0.449,0.187,0.69
|
||||
C69.109,174.225,68.938,174.315,68.762,174.315z M164.835,172.342c-0.175,0-0.345-0.092-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.023c0.24-0.142,0.551-0.059,0.691,0.185c0.14,0.243,0.057,0.552-0.186,0.692
|
||||
l-3.507,2.023C165.009,172.319,164.921,172.342,164.835,172.342z M61.747,170.266c-0.086,0-0.173-0.021-0.252-0.066l-3.508-2.025
|
||||
c-0.242-0.141-0.326-0.449-0.187-0.691c0.141-0.242,0.45-0.326,0.692-0.186l3.508,2.023c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C62.093,170.175,61.923,170.266,61.747,170.266z M171.85,168.292c-0.175,0-0.345-0.09-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.551,0.186-0.69l3.507-2.024c0.24-0.142,0.552-0.059,0.692,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.508,2.024C172.025,168.269,171.937,168.292,171.85,168.292z M54.733,166.215c-0.087,0-0.174-0.021-0.253-0.067l-3.507-2.024
|
||||
c-0.241-0.141-0.326-0.449-0.186-0.691c0.14-0.243,0.449-0.324,0.691-0.186l3.508,2.024c0.241,0.14,0.324,0.449,0.185,0.69
|
||||
C55.077,166.125,54.908,166.215,54.733,166.215z M178.866,164.241c-0.175,0-0.346-0.091-0.439-0.252
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.693l3.445-1.988l0.314,0.402l0.251,0.439l-3.505,2.023
|
||||
C179.039,164.22,178.952,164.241,178.866,164.241z M47.718,162.163c-0.089,0-0.18-0.023-0.262-0.074
|
||||
c-1.062-0.643-2.137-1.623-3.11-2.832c-0.176-0.217-0.142-0.535,0.076-0.711c0.218-0.178,0.537-0.143,0.712,0.076
|
||||
c0.9,1.119,1.885,2.019,2.848,2.603c0.238,0.146,0.314,0.456,0.17,0.694C48.056,162.077,47.889,162.163,47.718,162.163z
|
||||
M185.375,159.526c-0.113,0-0.227-0.037-0.32-0.113c-0.217-0.178-0.249-0.496-0.071-0.713c0.805-0.986,1.532-2.131,2.104-3.314
|
||||
c0.123-0.251,0.424-0.355,0.676-0.235c0.252,0.123,0.357,0.425,0.235,0.677c-0.607,1.254-1.378,2.469-2.231,3.514
|
||||
C185.667,159.463,185.521,159.526,185.375,159.526z M42.592,156.02c-0.188,0-0.37-0.105-0.458-0.288
|
||||
c-0.643-1.346-1.09-2.721-1.295-3.978c-0.044-0.275,0.144-0.535,0.419-0.58c0.273-0.047,0.536,0.142,0.581,0.418
|
||||
c0.189,1.162,0.606,2.441,1.209,3.701c0.121,0.254,0.014,0.556-0.238,0.677C42.74,156.004,42.665,156.02,42.592,156.02z
|
||||
M188.824,152.282c-0.029,0-0.059-0.004-0.087-0.009c-0.276-0.048-0.461-0.31-0.414-0.585c0.089-0.512,0.134-1.005,0.134-1.466
|
||||
v-2.49c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v2.49c0,0.519-0.05,1.067-0.146,1.638
|
||||
C189.281,152.106,189.066,152.282,188.824,152.282z M41.216,148.137c-0.28,0-0.506-0.227-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051C41.722,147.911,41.495,148.137,41.216,148.137z M188.964,144.188
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05
|
||||
C189.47,143.961,189.243,144.188,188.964,144.188z M41.216,140.038c-0.28,0-0.506-0.228-0.506-0.508v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,139.81,41.495,140.038,41.216,140.038z M188.964,136.088
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.507,0.506-0.507s0.506,0.228,0.506,0.507v4.051
|
||||
C189.47,135.862,189.243,136.088,188.964,136.088z M41.216,131.936c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05C41.722,131.709,41.495,131.936,41.216,131.936z M188.964,127.987
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,127.761,189.243,127.987,188.964,127.987z M41.216,123.836c-0.28,0-0.506-0.228-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.507,0.506-0.507s0.506,0.228,0.506,0.507v4.051C41.722,123.609,41.495,123.836,41.216,123.836z M188.964,119.887
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,119.661,189.243,119.887,188.964,119.887z M41.216,115.735c-0.28,0-0.506-0.227-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051C41.722,115.509,41.495,115.735,41.216,115.735z M188.964,111.787
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05
|
||||
C189.47,111.56,189.243,111.787,188.964,111.787z M41.216,107.635c-0.28,0-0.506-0.226-0.506-0.506v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,107.409,41.495,107.635,41.216,107.635z M188.964,103.686
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.28,0.227-0.506,0.506-0.506s0.506,0.226,0.506,0.506v4.05
|
||||
C189.47,103.46,189.243,103.686,188.964,103.686z M41.216,99.535c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,99.308,41.495,99.535,41.216,99.535z M188.964,95.586
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05
|
||||
C189.47,95.359,189.243,95.586,188.964,95.586z M41.216,91.434c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.28,0.227-0.506,0.506-0.506s0.506,0.226,0.506,0.506v4.05C41.722,91.208,41.495,91.434,41.216,91.434z M188.964,87.485
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,87.259,189.243,87.485,188.964,87.485z M41.216,83.334c-0.28,0-0.506-0.227-0.506-0.506v-2.543
|
||||
c0-0.502,0.047-1.034,0.139-1.584c0.046-0.276,0.304-0.468,0.583-0.416c0.275,0.046,0.461,0.307,0.416,0.582
|
||||
c-0.083,0.495-0.125,0.973-0.125,1.418v2.543C41.722,83.107,41.495,83.334,41.216,83.334z M188.847,79.391
|
||||
c-0.244,0-0.46-0.178-0.5-0.427c-0.182-1.161-0.595-2.442-1.194-3.706c-0.12-0.253-0.013-0.555,0.24-0.675
|
||||
c0.247-0.119,0.555-0.013,0.675,0.24c0.64,1.351,1.083,2.728,1.279,3.982c0.044,0.276-0.145,0.536-0.421,0.579
|
||||
C188.901,79.389,188.873,79.391,188.847,79.391z M42.614,75.455c-0.074,0-0.148-0.016-0.22-0.05
|
||||
c-0.252-0.121-0.357-0.424-0.236-0.676c0.603-1.254,1.372-2.471,2.222-3.52c0.176-0.217,0.495-0.251,0.712-0.074
|
||||
c0.217,0.176,0.25,0.495,0.074,0.712c-0.801,0.988-1.525,2.137-2.095,3.32C42.983,75.35,42.801,75.455,42.614,75.455z
|
||||
M185.471,72.115c-0.147,0-0.295-0.065-0.396-0.189c-0.896-1.12-1.876-2.024-2.837-2.616c-0.238-0.146-0.312-0.459-0.166-0.696
|
||||
c0.146-0.238,0.458-0.312,0.695-0.166c1.06,0.652,2.131,1.637,3.098,2.846c0.174,0.218,0.14,0.536-0.079,0.712
|
||||
C185.695,72.079,185.582,72.115,185.471,72.115z M47.762,69.331c-0.172,0-0.34-0.088-0.435-0.246
|
||||
c-0.144-0.24-0.065-0.551,0.175-0.694l3.513-2.03c0.241-0.14,0.553-0.058,0.691,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.5,2.022C47.942,69.308,47.851,69.331,47.762,69.331z M178.999,67.356c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691c0.14-0.242,0.449-0.326,0.691-0.186l3.508,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C179.344,67.266,179.174,67.356,178.999,67.356z M54.778,65.28c-0.176,0-0.346-0.091-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.551,0.187-0.691l3.507-2.024c0.24-0.141,0.551-0.058,0.69,0.185c0.141,0.242,0.058,0.552-0.185,0.692
|
||||
l-3.507,2.024C54.95,65.259,54.865,65.28,54.778,65.28z M171.985,63.307c-0.086,0-0.174-0.022-0.253-0.068l-3.509-2.024
|
||||
c-0.241-0.141-0.324-0.45-0.185-0.692c0.14-0.241,0.449-0.326,0.69-0.185l3.509,2.024c0.241,0.14,0.324,0.45,0.186,0.692
|
||||
C172.328,63.216,172.158,63.307,171.985,63.307z M61.792,61.229c-0.175,0-0.345-0.09-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.187-0.691l3.507-2.025c0.241-0.141,0.551-0.058,0.692,0.186c0.14,0.242,0.057,0.552-0.187,0.691
|
||||
l-3.507,2.025C61.966,61.208,61.879,61.229,61.792,61.229z M164.969,59.256c-0.086,0-0.173-0.021-0.253-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691c0.14-0.243,0.449-0.325,0.691-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.187,0.691
|
||||
C165.313,59.166,165.143,59.256,164.969,59.256z M68.807,57.18c-0.175,0-0.345-0.091-0.438-0.253
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.692l3.508-2.025c0.241-0.141,0.552-0.058,0.692,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.509,2.026C68.98,57.158,68.893,57.18,68.807,57.18z M157.953,55.206c-0.086,0-0.173-0.021-0.253-0.068l-3.507-2.024
|
||||
c-0.242-0.14-0.325-0.449-0.187-0.691c0.14-0.243,0.45-0.326,0.692-0.186l3.507,2.024c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C158.298,55.115,158.128,55.206,157.953,55.206z M75.823,53.129c-0.175,0-0.346-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.691l3.508-2.025c0.241-0.141,0.551-0.057,0.691,0.186c0.141,0.242,0.058,0.552-0.186,0.691
|
||||
l-3.508,2.025C75.995,53.107,75.908,53.129,75.823,53.129z M150.938,51.155c-0.086,0-0.173-0.021-0.253-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691s0.45-0.326,0.691-0.186l3.508,2.025c0.241,0.14,0.324,0.449,0.186,0.691
|
||||
C151.283,51.065,151.114,51.155,150.938,51.155z M82.838,49.079c-0.175,0-0.345-0.091-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.691l3.507-2.025c0.24-0.14,0.551-0.057,0.692,0.186c0.14,0.242,0.057,0.552-0.187,0.692
|
||||
l-3.507,2.024C83.011,49.057,82.924,49.079,82.838,49.079z M143.923,47.105c-0.086,0-0.173-0.021-0.252-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.187-0.691c0.141-0.243,0.45-0.325,0.692-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C144.268,47.015,144.098,47.105,143.923,47.105z M89.853,45.028c-0.175,0-0.345-0.09-0.438-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.185-0.691l3.508-2.025c0.239-0.141,0.552-0.058,0.691,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.508,2.025C90.027,45.007,89.939,45.028,89.853,45.028z M136.908,43.056c-0.086,0-0.173-0.022-0.252-0.068l-3.507-2.024
|
||||
c-0.242-0.141-0.325-0.45-0.187-0.692c0.139-0.242,0.449-0.325,0.692-0.186l3.507,2.025c0.242,0.141,0.325,0.449,0.185,0.691
|
||||
C137.253,42.965,137.083,43.056,136.908,43.056z M96.868,40.978c-0.175,0-0.345-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.692l3.507-2.024c0.241-0.141,0.551-0.059,0.691,0.185c0.141,0.243,0.058,0.552-0.186,0.692
|
||||
L97.12,40.91C97.041,40.956,96.954,40.978,96.868,40.978z M129.892,39.005c-0.086,0-0.173-0.021-0.252-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.326-0.449-0.186-0.691c0.14-0.243,0.448-0.325,0.691-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C130.239,38.915,130.069,39.005,129.892,39.005z M103.883,36.928c-0.175,0-0.345-0.091-0.438-0.253
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.692l3.507-2.024c0.241-0.141,0.552-0.059,0.691,0.186c0.14,0.242,0.057,0.552-0.187,0.691
|
||||
l-3.507,2.025C104.056,36.906,103.969,36.928,103.883,36.928z M122.877,34.955c-0.086,0-0.173-0.021-0.252-0.068l-1.137-0.656
|
||||
c-0.673-0.389-1.486-0.708-2.415-0.95c-0.271-0.071-0.434-0.348-0.362-0.618s0.347-0.432,0.618-0.362
|
||||
c1.016,0.266,1.913,0.62,2.665,1.054l1.137,0.656c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C123.222,34.864,123.053,34.955,122.877,34.955z M111.076,33.27c-0.228,0-0.434-0.152-0.491-0.382
|
||||
c-0.068-0.271,0.096-0.547,0.367-0.615c1.271-0.321,2.703-0.491,4.137-0.491c0.28,0,0.56,0.227,0.56,0.507
|
||||
c0,0.279-0.175,0.506-0.454,0.506h-0.112c-1.345,0-2.689,0.159-3.881,0.46C111.159,33.266,111.117,33.27,111.076,33.27z" />
|
||||
|
||||
<g id="glyph"></g>
|
||||
|
||||
<g id="tab" class="optional" title="Chamilo Tab">
|
||||
<path class="color-border"
|
||||
d="M123.457,203.577l65.297-37.799l-0.824-1.423l-0.294,0.17
|
||||
c-4.923,0.761-10.909,0.496-15.256-3.56c-8.746-8.156-15.314-13.549-30.813-4.577c-0.522,0.302-2.136,1.235-2.657,1.538
|
||||
c-15.499,8.972-14.094,17.354-11.375,29c1.351,5.789-1.401,11.111-4.511,15.003l-0.39,0.226L123.457,203.577z" />
|
||||
<path class="color-detail"
|
||||
d="m 151.31362,159.12558 -1.34031,0.30475 c -1.02125,0.23287 -1.46545,0.94933 -1.27487,1.67888 l 1.50227,5.74723 c 0.19061,0.72968 0.58283,1.14115 1.30811,1.00473 l 1.78072,-0.33484 c 0.57367,-0.10775 0.81173,-0.55784 0.71675,-1.3059 l -0.75791,-5.96679 c -0.12184,-0.95954 -1.21522,-1.29198 -1.93477,-1.12784 z m -9.3409,4.58849 c -0.42456,0.10759 -0.81711,0.38017 -1.05402,0.69149 l -0.88209,1.16077 c -0.67235,0.88377 -0.56456,1.77073 0.0651,2.23803 l 4.95827,3.68048 c 0.62957,0.4673 1.2168,0.53742 1.71318,-0.0665 l 1.21806,-1.48258 c 0.39261,-0.47767 0.29088,-1.00774 -0.27344,-1.55511 l -4.50155,-4.3648 c -0.36202,-0.35105 -0.81896,-0.40932 -1.24349,-0.30166 z m 15.03796,4.37856 c -0.11004,0.0195 -0.20898,0.0605 -0.29269,0.12668 -0.66968,0.53051 0.19395,1.49103 0.29786,1.80856 0.12915,0.33523 0.55262,0.83972 0.44645,0.85969 -0.13146,0.002 -2.33,-2.79709 -6.20128,-1.16974 -0.99551,0.43444 -1.80121,1.05796 -2.41285,1.77975 -0.2736,0.2986 -0.4963,0.63307 -0.69797,0.96309 -1.18398,1.88552 -1.47868,3.94023 -1.54556,4.40219 -0.10597,0.71679 -1.15619,3.43081 -1.01326,4.88719 0.16777,1.4739 0.81229,5.01559 4.12999,4.88575 0.39445,-0.007 0.75631,-0.0751 1.06246,-0.20078 0.30625,-0.12498 0.57845,-0.3109 0.77934,-0.52842 1.28127,-1.25224 0.87944,-3.73841 -0.0175,-4.06402 -0.26221,-0.10822 -0.51651,-0.17194 -0.78357,-0.18906 -0.29234,-0.0354 -0.59816,-0.0234 -0.86203,0.094 -0.57416,0.22041 -0.99378,0.79398 -1.06538,1.93097 -0.0536,0.99876 0.99493,1.43117 1.66223,1.23822 0.0424,-0.008 0.10694,-0.0203 0.14539,-0.0501 0,0 -0.035,0.0516 -0.13307,0.11484 -0.28095,0.14271 -0.92225,0.35293 -1.82845,-0.37761 -1.21883,-0.98405 -1.09064,-2.98532 -0.42749,-3.78414 0.42785,-0.52993 0.87076,-0.86136 1.25053,-1.17994 0.18789,-0.17019 0.35534,-0.33606 0.4925,-0.54162 0.0862,-0.12835 0.14943,-0.25255 0.21808,-0.35535 0.20581,-0.30834 0.28759,-0.458 0.28759,-0.458 0,0 0.52141,1.25 1.14142,1.73999 0.62008,0.49005 1.3013,0.72016 1.41057,0.2507 0.11344,-0.44832 -0.81705,-2.1145 -0.81705,-2.1145 0,0 1.30887,0.87707 1.67645,1.07758 0.36753,0.20068 1.04545,0.4095 1.1048,-0.20892 0.0378,-0.61398 -0.57559,-1.41961 -0.96522,-1.50358 -0.36886,-0.0855 -0.58055,-0.0485 -0.58055,-0.0485 0,0 -0.26556,-0.24255 -0.38811,-0.30941 -0.14374,-0.0624 -0.16516,-0.0586 -0.16516,-0.0586 0,0 0.17028,-0.1438 0.76904,-0.23391 0.61992,-0.0942 1.11204,-0.1645 1.11204,-0.1645 0,0 0.7088,0.72119 1.09768,0.9177 0.37167,0.22217 1.3262,0.73875 1.67662,0.96492 0.32924,0.2301 0.52351,0.32818 0.58424,0.0728 0.0415,-0.2542 -0.22787,-0.85609 -0.69585,-1.23988 -0.48525,-0.3581 -0.95491,-0.51642 -1.14448,-0.70546 -0.17646,-0.23637 -0.29745,-0.41614 -0.29745,-0.41614 0,0 0.89548,0.43752 1.12341,0.59687 0.24506,0.1336 1.81454,0.76032 2.07675,0.86834 0.26628,0.12999 0.35172,4.7e-4 0.35172,4.7e-4 0,0 0.19436,0.0987 0.24164,-1e-4 0.0473,-0.0994 0.10603,-0.71744 -0.40396,-0.98063 -0.53671,-0.28099 -0.84584,-0.40256 -0.81157,-0.45396 0.0121,-0.0473 0.50922,0.0167 0.54838,-0.1254 0.0216,-0.11654 -0.0745,-0.27813 -0.14645,-0.30951 -0.0547,-0.057 0.0915,-0.2193 0.0915,-0.2193 0,0 0.17015,-0.0314 0.88319,-0.0981 0.71301,-0.0668 2.36084,-1.00634 2.6973,-1.20445 0.33646,-0.19817 0.51042,-0.32123 0.51042,-0.32123 0,0 0.19317,-0.14833 0.18721,-0.52928 -7.5e-4,-0.0211 -0.008,-0.0432 -0.0122,-0.0644 l -0.0121,-0.0649 c -0.0867,-0.34322 -0.50329,-0.69123 -0.96317,-1.03163 -0.53181,-0.37181 -0.95551,-0.51676 -0.95551,-0.51676 0,0 -0.36268,-0.87571 -1.40673,-1.98253 -0.89495,-0.97201 -2.23849,-1.91124 -3.00896,-1.77544 z m -18.97389,5.85828 c -0.72882,0.14751 -1.13503,1.00397 -1.12245,1.65766 l 0.0276,1.39119 c 0.0204,1.06031 0.61325,1.65193 1.34443,1.61835 l 5.75877,-0.26457 c 0.73121,-0.0337 1.20025,-0.33515 1.21323,-1.08195 l 0.0326,-1.83271 c 0.0103,-0.59069 -0.37154,-0.92201 -1.10148,-0.98704 l -5.82101,-0.51849 c -0.11672,-0.0132 -0.22766,-0.003 -0.3318,0.0182 z m 5.06311,7.21666 c -0.10811,0.0406 -0.2205,0.10275 -0.33884,0.18634 l -3.77546,2.67236 c -0.60701,0.42953 -0.42942,1.32165 -0.0525,1.77195 l 0.702,0.83918 c 0.5352,0.63912 1.18584,0.69647 1.61135,0.30058 l 3.35131,-3.11765 c 0.42554,-0.396 0.56044,-0.82263 0.2,-1.28695 l -0.88507,-1.13873 c -0.21377,-0.27543 -0.48906,-0.34909 -0.81286,-0.22727 z m 7.60789,1.48563 c 0,0 0.11481,0.0214 0.26664,0.12781 0.0716,0.0316 0.14741,0.0853 0.21033,0.1859 0.17652,0.23643 0.1741,0.57329 0.1741,0.57329 0,0 -0.0989,-0.40744 -0.28841,-0.59648 -0.0255,-0.0165 -0.0512,-0.0357 -0.0762,-0.0546 -0.16017,-0.14989 -0.28622,-0.2371 -0.28622,-0.2371 z m -0.35489,0.93377 c 0.0307,0.003 0.0536,0.032 0.0466,0.11223 -0.009,0.0898 -0.0683,0.10278 -0.11116,0.11071 -0.10646,0.0199 -0.20375,-0.0299 -0.18618,-0.1671 0.0547,0.057 0.0969,0.0488 0.15275,-0.006 0.0278,-0.0275 0.067,-0.0521 0.0977,-0.0491 z" />
|
||||
</g>
|
||||
|
||||
<path id="outerRing"
|
||||
class="color-border"
|
||||
d="M191.944,55.825l-64.102-37.009c-3.485-2.014-8.016-3.122-12.753-3.122
|
||||
c-4.736,0-9.265,1.108-12.754,3.122L38.237,55.825c-7.151,4.13-12.754,13.832-12.754,22.092v74.015
|
||||
c0,8.258,5.603,17.961,12.754,22.091l64.099,37.009c3.489,2.014,8.018,3.123,12.754,3.123c4.737,0,9.268-1.109,12.753-3.123
|
||||
l64.102-37.008c7.15-4.13,12.754-13.833,12.754-22.091V77.917C204.698,69.657,199.094,59.955,191.944,55.825z M194.484,148.043
|
||||
c0,7.316-4.965,15.914-11.301,19.572l-56.794,32.791c-3.09,1.783-7.103,2.766-11.3,2.766s-8.21-0.981-11.3-2.766l-56.793-32.791
|
||||
c-6.336-3.658-11.3-12.256-11.3-19.572V82.465c0-7.317,4.964-15.914,11.3-19.573l56.793-32.79c3.09-1.783,7.103-2.767,11.3-2.767
|
||||
s8.21,0.983,11.3,2.767l56.794,32.79c6.336,3.659,11.301,12.256,11.301,19.573V148.043z" />
|
||||
|
||||
<radialGradient id="glossGradient"
|
||||
cx="115"
|
||||
cy="-160"
|
||||
r="400"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.50" style="stop-color: #FFF; stop-opacity: 0.1;" />
|
||||
<stop offset="0.75" style="stop-color: #FFF; stop-opacity: 1.0;" />
|
||||
<stop offset="0.75" style="stop-color: #FFF; stop-opacity: 0.0;" />
|
||||
</radialGradient>
|
||||
|
||||
<g id="gloss" class="optional" title="Glossy Overlay" display="none">
|
||||
<use xlink:href="#backgroundShape" style="fill: url(#glossGradient); opacity: 0.1;" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,206 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
x="0px" y="0px" width="512px" height="512px"
|
||||
viewBox="15 5 200 220"
|
||||
xml:space="preserve">
|
||||
|
||||
<defs>
|
||||
<style id="palette">
|
||||
<![CDATA[
|
||||
.color-background { fill: #04A; }
|
||||
.color-stitching { fill: #0AE; }
|
||||
.color-border { fill: #0AE; }
|
||||
.color-detail { fill: #FFF; }
|
||||
]]>
|
||||
</style>
|
||||
|
||||
<path id="backgroundShape"
|
||||
d="M115.089,214.155c-4.736,0-9.265-1.109-12.754-3.123l-64.099-37.009
|
||||
c-7.151-4.13-12.754-13.833-12.754-22.091V77.917c0-8.26,5.603-17.962,12.754-22.092
|
||||
l64.099-37.009c3.489-2.014,8.018-3.122,12.754-3.122c4.737,0,9.268,1.108,12.753,3.122
|
||||
l64.102,37.009c7.15,4.13,12.754,13.832,12.754,22.092
|
||||
v74.016c0,8.258-5.604,17.961-12.754,22.091l-64.102,37.008
|
||||
C124.357,213.045,119.826,214.155,115.089,214.155z" />
|
||||
</defs>
|
||||
|
||||
<g id="background" class="color-background">
|
||||
<use xlink:href="#backgroundShape" />
|
||||
</g>
|
||||
|
||||
<g id="mask"></g>
|
||||
|
||||
<path id="innerRing"
|
||||
class="color-detail"
|
||||
d="M115.089,203.172c-4.197,0-8.21-0.981-11.3-2.766l-56.793-32.791
|
||||
c-6.336-3.658-11.3-12.256-11.3-19.572V82.465c0-7.317,4.964-15.914,11.3-19.573l56.793-32.79c3.09-1.783,7.103-2.767,11.3-2.767
|
||||
s8.21,0.983,11.3,2.767l56.794,32.79c6.336,3.659,11.301,12.256,11.301,19.573v65.579c0,7.316-4.965,15.914-11.301,19.572
|
||||
l-56.794,32.791C123.299,202.19,119.286,203.172,115.089,203.172z M115.089,37.461c-2.412,0-4.685,0.514-6.237,1.41l-56.794,32.79
|
||||
c-3.265,1.885-6.236,7.034-6.236,10.804v65.579c0,3.77,2.973,8.918,6.236,10.804l56.793,32.791c1.553,0.896,3.826,1.409,6.237,1.409
|
||||
c2.412,0,4.687-0.514,6.238-1.409l56.794-32.791c3.264-1.886,6.238-7.034,6.238-10.804V82.465c0-3.77-2.975-8.919-6.238-10.804
|
||||
l-56.794-32.79C119.776,37.975,117.501,37.461,115.089,37.461z" />
|
||||
|
||||
<path id="stitching"
|
||||
class="color-stitching optional"
|
||||
title="Stitching"
|
||||
d="M115.089,198.725c-0.28,0-0.531-0.227-0.531-0.506c0-0.28,0.201-0.508,0.481-0.508h0.05
|
||||
c1.333,0,2.661-0.154,3.841-0.447c0.271-0.066,0.545,0.098,0.613,0.369c0.067,0.271-0.098,0.546-0.369,0.613
|
||||
C117.915,198.56,116.503,198.725,115.089,198.725z M111.029,198.237c-0.042,0-0.084-0.005-0.126-0.016
|
||||
c-1.038-0.268-1.952-0.626-2.719-1.066l-1.09-0.631c-0.242-0.14-0.325-0.449-0.185-0.691c0.14-0.242,0.448-0.326,0.69-0.186
|
||||
l1.091,0.629c0.686,0.396,1.515,0.721,2.464,0.965c0.27,0.069,0.434,0.346,0.363,0.616
|
||||
C111.459,198.086,111.253,198.237,111.029,198.237z M122.744,196.642c-0.175,0-0.345-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.553,0.186-0.691l3.507-2.025c0.241-0.139,0.551-0.057,0.691,0.188c0.141,0.241,0.058,0.551-0.186,0.69
|
||||
l-3.507,2.024C122.917,196.622,122.83,196.642,122.744,196.642z M103.838,194.567c-0.086,0-0.173-0.021-0.253-0.068l-3.507-2.023
|
||||
c-0.242-0.141-0.325-0.449-0.186-0.691c0.141-0.242,0.45-0.326,0.691-0.186l3.507,2.023c0.242,0.142,0.326,0.449,0.187,0.692
|
||||
C104.183,194.476,104.013,194.567,103.838,194.567z M129.76,192.593c-0.175,0-0.345-0.091-0.438-0.255
|
||||
c-0.141-0.241-0.058-0.551,0.185-0.69l3.507-2.024c0.242-0.141,0.552-0.058,0.692,0.186c0.14,0.242,0.057,0.553-0.187,0.691
|
||||
l-3.507,2.025C129.932,192.571,129.846,192.593,129.76,192.593z M96.823,190.517c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.024
|
||||
c-0.241-0.14-0.324-0.449-0.186-0.69c0.14-0.244,0.45-0.328,0.692-0.188l3.507,2.025c0.242,0.141,0.325,0.449,0.186,0.691
|
||||
C97.168,190.426,96.998,190.517,96.823,190.517z M136.776,188.542c-0.176,0-0.346-0.09-0.439-0.252
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.025c0.24-0.14,0.551-0.058,0.69,0.187c0.141,0.241,0.058,0.552-0.186,0.69
|
||||
l-3.507,2.025C136.948,188.52,136.862,188.542,136.776,188.542z M89.808,186.465c-0.086,0-0.173-0.02-0.253-0.066l-3.507-2.025
|
||||
c-0.242-0.139-0.325-0.448-0.185-0.69c0.14-0.243,0.449-0.325,0.69-0.187l3.507,2.025c0.242,0.141,0.325,0.449,0.187,0.691
|
||||
C90.154,186.375,89.984,186.465,89.808,186.465z M143.79,184.493c-0.175,0-0.345-0.092-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.691l3.508-2.024c0.241-0.142,0.551-0.06,0.691,0.187c0.14,0.242,0.057,0.552-0.186,0.69
|
||||
l-3.508,2.024C143.963,184.471,143.876,184.493,143.79,184.493z M82.793,182.417c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.024
|
||||
c-0.242-0.141-0.325-0.449-0.187-0.691c0.14-0.242,0.45-0.326,0.692-0.186l3.508,2.024c0.242,0.14,0.325,0.448,0.187,0.69
|
||||
C83.138,182.325,82.968,182.417,82.793,182.417z M150.805,180.442c-0.175,0-0.345-0.091-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.691l3.507-2.024c0.241-0.142,0.552-0.058,0.691,0.187c0.14,0.242,0.057,0.551-0.186,0.69
|
||||
l-3.508,2.024C150.978,180.42,150.891,180.442,150.805,180.442z M75.779,178.366c-0.086,0-0.174-0.021-0.252-0.068l-3.509-2.023
|
||||
c-0.241-0.141-0.324-0.449-0.186-0.691c0.14-0.242,0.45-0.326,0.692-0.186l3.508,2.023c0.242,0.142,0.325,0.449,0.186,0.691
|
||||
C76.123,178.274,75.953,178.366,75.779,178.366z M157.821,176.392c-0.176,0-0.346-0.09-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.025c0.24-0.139,0.551-0.057,0.69,0.188c0.141,0.241,0.058,0.551-0.185,0.69
|
||||
l-3.507,2.024C157.993,176.37,157.906,176.392,157.821,176.392z M68.762,174.315c-0.086,0-0.173-0.021-0.252-0.066l-3.508-2.025
|
||||
c-0.242-0.141-0.325-0.449-0.186-0.691c0.139-0.242,0.448-0.324,0.691-0.186l3.508,2.025c0.242,0.14,0.325,0.449,0.187,0.69
|
||||
C69.109,174.225,68.938,174.315,68.762,174.315z M164.835,172.342c-0.175,0-0.345-0.092-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.691l3.507-2.023c0.24-0.142,0.551-0.059,0.691,0.185c0.14,0.243,0.057,0.552-0.186,0.692
|
||||
l-3.507,2.023C165.009,172.319,164.921,172.342,164.835,172.342z M61.747,170.266c-0.086,0-0.173-0.021-0.252-0.066l-3.508-2.025
|
||||
c-0.242-0.141-0.326-0.449-0.187-0.691c0.141-0.242,0.45-0.326,0.692-0.186l3.508,2.023c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C62.093,170.175,61.923,170.266,61.747,170.266z M171.85,168.292c-0.175,0-0.345-0.09-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.551,0.186-0.69l3.507-2.024c0.24-0.142,0.552-0.059,0.692,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.508,2.024C172.025,168.269,171.937,168.292,171.85,168.292z M54.733,166.215c-0.087,0-0.174-0.021-0.253-0.067l-3.507-2.024
|
||||
c-0.241-0.141-0.326-0.449-0.186-0.691c0.14-0.243,0.449-0.324,0.691-0.186l3.508,2.024c0.241,0.14,0.324,0.449,0.185,0.69
|
||||
C55.077,166.125,54.908,166.215,54.733,166.215z M178.866,164.241c-0.175,0-0.346-0.091-0.439-0.252
|
||||
c-0.14-0.242-0.057-0.553,0.187-0.693l3.445-1.988l0.314,0.402l0.251,0.439l-3.505,2.023
|
||||
C179.039,164.22,178.952,164.241,178.866,164.241z M47.718,162.163c-0.089,0-0.18-0.023-0.262-0.074
|
||||
c-1.062-0.643-2.137-1.623-3.11-2.832c-0.176-0.217-0.142-0.535,0.076-0.711c0.218-0.178,0.537-0.143,0.712,0.076
|
||||
c0.9,1.119,1.885,2.019,2.848,2.603c0.238,0.146,0.314,0.456,0.17,0.694C48.056,162.077,47.889,162.163,47.718,162.163z
|
||||
M185.375,159.526c-0.113,0-0.227-0.037-0.32-0.113c-0.217-0.178-0.249-0.496-0.071-0.713c0.805-0.986,1.532-2.131,2.104-3.314
|
||||
c0.123-0.251,0.424-0.355,0.676-0.235c0.252,0.123,0.357,0.425,0.235,0.677c-0.607,1.254-1.378,2.469-2.231,3.514
|
||||
C185.667,159.463,185.521,159.526,185.375,159.526z M42.592,156.02c-0.188,0-0.37-0.105-0.458-0.288
|
||||
c-0.643-1.346-1.09-2.721-1.295-3.978c-0.044-0.275,0.144-0.535,0.419-0.58c0.273-0.047,0.536,0.142,0.581,0.418
|
||||
c0.189,1.162,0.606,2.441,1.209,3.701c0.121,0.254,0.014,0.556-0.238,0.677C42.74,156.004,42.665,156.02,42.592,156.02z
|
||||
M188.824,152.282c-0.029,0-0.059-0.004-0.087-0.009c-0.276-0.048-0.461-0.31-0.414-0.585c0.089-0.512,0.134-1.005,0.134-1.466
|
||||
v-2.49c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v2.49c0,0.519-0.05,1.067-0.146,1.638
|
||||
C189.281,152.106,189.066,152.282,188.824,152.282z M41.216,148.137c-0.28,0-0.506-0.227-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051C41.722,147.911,41.495,148.137,41.216,148.137z M188.964,144.188
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05
|
||||
C189.47,143.961,189.243,144.188,188.964,144.188z M41.216,140.038c-0.28,0-0.506-0.228-0.506-0.508v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,139.81,41.495,140.038,41.216,140.038z M188.964,136.088
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.507,0.506-0.507s0.506,0.228,0.506,0.507v4.051
|
||||
C189.47,135.862,189.243,136.088,188.964,136.088z M41.216,131.936c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05C41.722,131.709,41.495,131.936,41.216,131.936z M188.964,127.987
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,127.761,189.243,127.987,188.964,127.987z M41.216,123.836c-0.28,0-0.506-0.228-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.507,0.506-0.507s0.506,0.228,0.506,0.507v4.051C41.722,123.609,41.495,123.836,41.216,123.836z M188.964,119.887
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,119.661,189.243,119.887,188.964,119.887z M41.216,115.735c-0.28,0-0.506-0.227-0.506-0.506v-4.051
|
||||
c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051C41.722,115.509,41.495,115.735,41.216,115.735z M188.964,111.787
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05
|
||||
C189.47,111.56,189.243,111.787,188.964,111.787z M41.216,107.635c-0.28,0-0.506-0.226-0.506-0.506v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,107.409,41.495,107.635,41.216,107.635z M188.964,103.686
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.28,0.227-0.506,0.506-0.506s0.506,0.226,0.506,0.506v4.05
|
||||
C189.47,103.46,189.243,103.686,188.964,103.686z M41.216,99.535c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.28,0.227-0.507,0.506-0.507s0.506,0.227,0.506,0.507v4.05C41.722,99.308,41.495,99.535,41.216,99.535z M188.964,95.586
|
||||
c-0.28,0-0.506-0.227-0.506-0.507v-4.05c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.05
|
||||
C189.47,95.359,189.243,95.586,188.964,95.586z M41.216,91.434c-0.28,0-0.506-0.227-0.506-0.507v-4.05
|
||||
c0-0.28,0.227-0.506,0.506-0.506s0.506,0.226,0.506,0.506v4.05C41.722,91.208,41.495,91.434,41.216,91.434z M188.964,87.485
|
||||
c-0.28,0-0.506-0.227-0.506-0.506v-4.051c0-0.279,0.227-0.506,0.506-0.506s0.506,0.227,0.506,0.506v4.051
|
||||
C189.47,87.259,189.243,87.485,188.964,87.485z M41.216,83.334c-0.28,0-0.506-0.227-0.506-0.506v-2.543
|
||||
c0-0.502,0.047-1.034,0.139-1.584c0.046-0.276,0.304-0.468,0.583-0.416c0.275,0.046,0.461,0.307,0.416,0.582
|
||||
c-0.083,0.495-0.125,0.973-0.125,1.418v2.543C41.722,83.107,41.495,83.334,41.216,83.334z M188.847,79.391
|
||||
c-0.244,0-0.46-0.178-0.5-0.427c-0.182-1.161-0.595-2.442-1.194-3.706c-0.12-0.253-0.013-0.555,0.24-0.675
|
||||
c0.247-0.119,0.555-0.013,0.675,0.24c0.64,1.351,1.083,2.728,1.279,3.982c0.044,0.276-0.145,0.536-0.421,0.579
|
||||
C188.901,79.389,188.873,79.391,188.847,79.391z M42.614,75.455c-0.074,0-0.148-0.016-0.22-0.05
|
||||
c-0.252-0.121-0.357-0.424-0.236-0.676c0.603-1.254,1.372-2.471,2.222-3.52c0.176-0.217,0.495-0.251,0.712-0.074
|
||||
c0.217,0.176,0.25,0.495,0.074,0.712c-0.801,0.988-1.525,2.137-2.095,3.32C42.983,75.35,42.801,75.455,42.614,75.455z
|
||||
M185.471,72.115c-0.147,0-0.295-0.065-0.396-0.189c-0.896-1.12-1.876-2.024-2.837-2.616c-0.238-0.146-0.312-0.459-0.166-0.696
|
||||
c0.146-0.238,0.458-0.312,0.695-0.166c1.06,0.652,2.131,1.637,3.098,2.846c0.174,0.218,0.14,0.536-0.079,0.712
|
||||
C185.695,72.079,185.582,72.115,185.471,72.115z M47.762,69.331c-0.172,0-0.34-0.088-0.435-0.246
|
||||
c-0.144-0.24-0.065-0.551,0.175-0.694l3.513-2.03c0.241-0.14,0.553-0.058,0.691,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.5,2.022C47.942,69.308,47.851,69.331,47.762,69.331z M178.999,67.356c-0.086,0-0.173-0.021-0.253-0.067l-3.508-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691c0.14-0.242,0.449-0.326,0.691-0.186l3.508,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C179.344,67.266,179.174,67.356,178.999,67.356z M54.778,65.28c-0.176,0-0.346-0.091-0.439-0.254
|
||||
c-0.14-0.242-0.057-0.551,0.187-0.691l3.507-2.024c0.24-0.141,0.551-0.058,0.69,0.185c0.141,0.242,0.058,0.552-0.185,0.692
|
||||
l-3.507,2.024C54.95,65.259,54.865,65.28,54.778,65.28z M171.985,63.307c-0.086,0-0.174-0.022-0.253-0.068l-3.509-2.024
|
||||
c-0.241-0.141-0.324-0.45-0.185-0.692c0.14-0.241,0.449-0.326,0.69-0.185l3.509,2.024c0.241,0.14,0.324,0.45,0.186,0.692
|
||||
C172.328,63.216,172.158,63.307,171.985,63.307z M61.792,61.229c-0.175,0-0.345-0.09-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.187-0.691l3.507-2.025c0.241-0.141,0.551-0.058,0.692,0.186c0.14,0.242,0.057,0.552-0.187,0.691
|
||||
l-3.507,2.025C61.966,61.208,61.879,61.229,61.792,61.229z M164.969,59.256c-0.086,0-0.173-0.021-0.253-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691c0.14-0.243,0.449-0.325,0.691-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.187,0.691
|
||||
C165.313,59.166,165.143,59.256,164.969,59.256z M68.807,57.18c-0.175,0-0.345-0.091-0.438-0.253
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.692l3.508-2.025c0.241-0.141,0.552-0.058,0.692,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.509,2.026C68.98,57.158,68.893,57.18,68.807,57.18z M157.953,55.206c-0.086,0-0.173-0.021-0.253-0.068l-3.507-2.024
|
||||
c-0.242-0.14-0.325-0.449-0.187-0.691c0.14-0.243,0.45-0.326,0.692-0.186l3.507,2.024c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C158.298,55.115,158.128,55.206,157.953,55.206z M75.823,53.129c-0.175,0-0.346-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.691l3.508-2.025c0.241-0.141,0.551-0.057,0.691,0.186c0.141,0.242,0.058,0.552-0.186,0.691
|
||||
l-3.508,2.025C75.995,53.107,75.908,53.129,75.823,53.129z M150.938,51.155c-0.086,0-0.173-0.021-0.253-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.186-0.691s0.45-0.326,0.691-0.186l3.508,2.025c0.241,0.14,0.324,0.449,0.186,0.691
|
||||
C151.283,51.065,151.114,51.155,150.938,51.155z M82.838,49.079c-0.175,0-0.345-0.091-0.438-0.254
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.691l3.507-2.025c0.24-0.14,0.551-0.057,0.692,0.186c0.14,0.242,0.057,0.552-0.187,0.692
|
||||
l-3.507,2.024C83.011,49.057,82.924,49.079,82.838,49.079z M143.923,47.105c-0.086,0-0.173-0.021-0.252-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.325-0.449-0.187-0.691c0.141-0.243,0.45-0.325,0.692-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C144.268,47.015,144.098,47.105,143.923,47.105z M89.853,45.028c-0.175,0-0.345-0.09-0.438-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.185-0.691l3.508-2.025c0.239-0.141,0.552-0.058,0.691,0.186c0.14,0.242,0.057,0.552-0.186,0.691
|
||||
l-3.508,2.025C90.027,45.007,89.939,45.028,89.853,45.028z M136.908,43.056c-0.086,0-0.173-0.022-0.252-0.068l-3.507-2.024
|
||||
c-0.242-0.141-0.325-0.45-0.187-0.692c0.139-0.242,0.449-0.325,0.692-0.186l3.507,2.025c0.242,0.141,0.325,0.449,0.185,0.691
|
||||
C137.253,42.965,137.083,43.056,136.908,43.056z M96.868,40.978c-0.175,0-0.345-0.091-0.439-0.253
|
||||
c-0.14-0.242-0.057-0.552,0.186-0.692l3.507-2.024c0.241-0.141,0.551-0.059,0.691,0.185c0.141,0.243,0.058,0.552-0.186,0.692
|
||||
L97.12,40.91C97.041,40.956,96.954,40.978,96.868,40.978z M129.892,39.005c-0.086,0-0.173-0.021-0.252-0.067l-3.507-2.025
|
||||
c-0.242-0.14-0.326-0.449-0.186-0.691c0.14-0.243,0.448-0.325,0.691-0.186l3.507,2.025c0.242,0.14,0.325,0.449,0.186,0.691
|
||||
C130.239,38.915,130.069,39.005,129.892,39.005z M103.883,36.928c-0.175,0-0.345-0.091-0.438-0.253
|
||||
c-0.141-0.242-0.058-0.552,0.186-0.692l3.507-2.024c0.241-0.141,0.552-0.059,0.691,0.186c0.14,0.242,0.057,0.552-0.187,0.691
|
||||
l-3.507,2.025C104.056,36.906,103.969,36.928,103.883,36.928z M122.877,34.955c-0.086,0-0.173-0.021-0.252-0.068l-1.137-0.656
|
||||
c-0.673-0.389-1.486-0.708-2.415-0.95c-0.271-0.071-0.434-0.348-0.362-0.618s0.347-0.432,0.618-0.362
|
||||
c1.016,0.266,1.913,0.62,2.665,1.054l1.137,0.656c0.242,0.141,0.325,0.45,0.186,0.692
|
||||
C123.222,34.864,123.053,34.955,122.877,34.955z M111.076,33.27c-0.228,0-0.434-0.152-0.491-0.382
|
||||
c-0.068-0.271,0.096-0.547,0.367-0.615c1.271-0.321,2.703-0.491,4.137-0.491c0.28,0,0.56,0.227,0.56,0.507
|
||||
c0,0.279-0.175,0.506-0.454,0.506h-0.112c-1.345,0-2.689,0.159-3.881,0.46C111.159,33.266,111.117,33.27,111.076,33.27z" />
|
||||
|
||||
<g id="glyph"></g>
|
||||
|
||||
<g id="tab" class="optional" title="Chamilo Tab">
|
||||
<path class="color-border"
|
||||
d="M123.457,203.577l65.297-37.799l-0.824-1.423l-0.294,0.17
|
||||
c-4.923,0.761-10.909,0.496-15.256-3.56c-8.746-8.156-15.314-13.549-30.813-4.577c-0.522,0.302-2.136,1.235-2.657,1.538
|
||||
c-15.499,8.972-14.094,17.354-11.375,29c1.351,5.789-1.401,11.111-4.511,15.003l-0.39,0.226L123.457,203.577z" />
|
||||
<path class="color-detail"
|
||||
d="m 151.31362,159.12558 -1.34031,0.30475 c -1.02125,0.23287 -1.46545,0.94933 -1.27487,1.67888 l 1.50227,5.74723 c 0.19061,0.72968 0.58283,1.14115 1.30811,1.00473 l 1.78072,-0.33484 c 0.57367,-0.10775 0.81173,-0.55784 0.71675,-1.3059 l -0.75791,-5.96679 c -0.12184,-0.95954 -1.21522,-1.29198 -1.93477,-1.12784 z m -9.3409,4.58849 c -0.42456,0.10759 -0.81711,0.38017 -1.05402,0.69149 l -0.88209,1.16077 c -0.67235,0.88377 -0.56456,1.77073 0.0651,2.23803 l 4.95827,3.68048 c 0.62957,0.4673 1.2168,0.53742 1.71318,-0.0665 l 1.21806,-1.48258 c 0.39261,-0.47767 0.29088,-1.00774 -0.27344,-1.55511 l -4.50155,-4.3648 c -0.36202,-0.35105 -0.81896,-0.40932 -1.24349,-0.30166 z m 15.03796,4.37856 c -0.11004,0.0195 -0.20898,0.0605 -0.29269,0.12668 -0.66968,0.53051 0.19395,1.49103 0.29786,1.80856 0.12915,0.33523 0.55262,0.83972 0.44645,0.85969 -0.13146,0.002 -2.33,-2.79709 -6.20128,-1.16974 -0.99551,0.43444 -1.80121,1.05796 -2.41285,1.77975 -0.2736,0.2986 -0.4963,0.63307 -0.69797,0.96309 -1.18398,1.88552 -1.47868,3.94023 -1.54556,4.40219 -0.10597,0.71679 -1.15619,3.43081 -1.01326,4.88719 0.16777,1.4739 0.81229,5.01559 4.12999,4.88575 0.39445,-0.007 0.75631,-0.0751 1.06246,-0.20078 0.30625,-0.12498 0.57845,-0.3109 0.77934,-0.52842 1.28127,-1.25224 0.87944,-3.73841 -0.0175,-4.06402 -0.26221,-0.10822 -0.51651,-0.17194 -0.78357,-0.18906 -0.29234,-0.0354 -0.59816,-0.0234 -0.86203,0.094 -0.57416,0.22041 -0.99378,0.79398 -1.06538,1.93097 -0.0536,0.99876 0.99493,1.43117 1.66223,1.23822 0.0424,-0.008 0.10694,-0.0203 0.14539,-0.0501 0,0 -0.035,0.0516 -0.13307,0.11484 -0.28095,0.14271 -0.92225,0.35293 -1.82845,-0.37761 -1.21883,-0.98405 -1.09064,-2.98532 -0.42749,-3.78414 0.42785,-0.52993 0.87076,-0.86136 1.25053,-1.17994 0.18789,-0.17019 0.35534,-0.33606 0.4925,-0.54162 0.0862,-0.12835 0.14943,-0.25255 0.21808,-0.35535 0.20581,-0.30834 0.28759,-0.458 0.28759,-0.458 0,0 0.52141,1.25 1.14142,1.73999 0.62008,0.49005 1.3013,0.72016 1.41057,0.2507 0.11344,-0.44832 -0.81705,-2.1145 -0.81705,-2.1145 0,0 1.30887,0.87707 1.67645,1.07758 0.36753,0.20068 1.04545,0.4095 1.1048,-0.20892 0.0378,-0.61398 -0.57559,-1.41961 -0.96522,-1.50358 -0.36886,-0.0855 -0.58055,-0.0485 -0.58055,-0.0485 0,0 -0.26556,-0.24255 -0.38811,-0.30941 -0.14374,-0.0624 -0.16516,-0.0586 -0.16516,-0.0586 0,0 0.17028,-0.1438 0.76904,-0.23391 0.61992,-0.0942 1.11204,-0.1645 1.11204,-0.1645 0,0 0.7088,0.72119 1.09768,0.9177 0.37167,0.22217 1.3262,0.73875 1.67662,0.96492 0.32924,0.2301 0.52351,0.32818 0.58424,0.0728 0.0415,-0.2542 -0.22787,-0.85609 -0.69585,-1.23988 -0.48525,-0.3581 -0.95491,-0.51642 -1.14448,-0.70546 -0.17646,-0.23637 -0.29745,-0.41614 -0.29745,-0.41614 0,0 0.89548,0.43752 1.12341,0.59687 0.24506,0.1336 1.81454,0.76032 2.07675,0.86834 0.26628,0.12999 0.35172,4.7e-4 0.35172,4.7e-4 0,0 0.19436,0.0987 0.24164,-1e-4 0.0473,-0.0994 0.10603,-0.71744 -0.40396,-0.98063 -0.53671,-0.28099 -0.84584,-0.40256 -0.81157,-0.45396 0.0121,-0.0473 0.50922,0.0167 0.54838,-0.1254 0.0216,-0.11654 -0.0745,-0.27813 -0.14645,-0.30951 -0.0547,-0.057 0.0915,-0.2193 0.0915,-0.2193 0,0 0.17015,-0.0314 0.88319,-0.0981 0.71301,-0.0668 2.36084,-1.00634 2.6973,-1.20445 0.33646,-0.19817 0.51042,-0.32123 0.51042,-0.32123 0,0 0.19317,-0.14833 0.18721,-0.52928 -7.5e-4,-0.0211 -0.008,-0.0432 -0.0122,-0.0644 l -0.0121,-0.0649 c -0.0867,-0.34322 -0.50329,-0.69123 -0.96317,-1.03163 -0.53181,-0.37181 -0.95551,-0.51676 -0.95551,-0.51676 0,0 -0.36268,-0.87571 -1.40673,-1.98253 -0.89495,-0.97201 -2.23849,-1.91124 -3.00896,-1.77544 z m -18.97389,5.85828 c -0.72882,0.14751 -1.13503,1.00397 -1.12245,1.65766 l 0.0276,1.39119 c 0.0204,1.06031 0.61325,1.65193 1.34443,1.61835 l 5.75877,-0.26457 c 0.73121,-0.0337 1.20025,-0.33515 1.21323,-1.08195 l 0.0326,-1.83271 c 0.0103,-0.59069 -0.37154,-0.92201 -1.10148,-0.98704 l -5.82101,-0.51849 c -0.11672,-0.0132 -0.22766,-0.003 -0.3318,0.0182 z m 5.06311,7.21666 c -0.10811,0.0406 -0.2205,0.10275 -0.33884,0.18634 l -3.77546,2.67236 c -0.60701,0.42953 -0.42942,1.32165 -0.0525,1.77195 l 0.702,0.83918 c 0.5352,0.63912 1.18584,0.69647 1.61135,0.30058 l 3.35131,-3.11765 c 0.42554,-0.396 0.56044,-0.82263 0.2,-1.28695 l -0.88507,-1.13873 c -0.21377,-0.27543 -0.48906,-0.34909 -0.81286,-0.22727 z m 7.60789,1.48563 c 0,0 0.11481,0.0214 0.26664,0.12781 0.0716,0.0316 0.14741,0.0853 0.21033,0.1859 0.17652,0.23643 0.1741,0.57329 0.1741,0.57329 0,0 -0.0989,-0.40744 -0.28841,-0.59648 -0.0255,-0.0165 -0.0512,-0.0357 -0.0762,-0.0546 -0.16017,-0.14989 -0.28622,-0.2371 -0.28622,-0.2371 z m -0.35489,0.93377 c 0.0307,0.003 0.0536,0.032 0.0466,0.11223 -0.009,0.0898 -0.0683,0.10278 -0.11116,0.11071 -0.10646,0.0199 -0.20375,-0.0299 -0.18618,-0.1671 0.0547,0.057 0.0969,0.0488 0.15275,-0.006 0.0278,-0.0275 0.067,-0.0521 0.0977,-0.0491 z" />
|
||||
</g>
|
||||
|
||||
<path id="outerRing"
|
||||
class="color-border"
|
||||
d="M191.944,55.825l-64.102-37.009c-3.485-2.014-8.016-3.122-12.753-3.122
|
||||
c-4.736,0-9.265,1.108-12.754,3.122L38.237,55.825c-7.151,4.13-12.754,13.832-12.754,22.092v74.015
|
||||
c0,8.258,5.603,17.961,12.754,22.091l64.099,37.009c3.489,2.014,8.018,3.123,12.754,3.123c4.737,0,9.268-1.109,12.753-3.123
|
||||
l64.102-37.008c7.15-4.13,12.754-13.833,12.754-22.091V77.917C204.698,69.657,199.094,59.955,191.944,55.825z M194.484,148.043
|
||||
c0,7.316-4.965,15.914-11.301,19.572l-56.794,32.791c-3.09,1.783-7.103,2.766-11.3,2.766s-8.21-0.981-11.3-2.766l-56.793-32.791
|
||||
c-6.336-3.658-11.3-12.256-11.3-19.572V82.465c0-7.317,4.964-15.914,11.3-19.573l56.793-32.79c3.09-1.783,7.103-2.767,11.3-2.767
|
||||
s8.21,0.983,11.3,2.767l56.794,32.79c6.336,3.659,11.301,12.256,11.301,19.573V148.043z" />
|
||||
|
||||
<radialGradient id="glossGradient"
|
||||
cx="115"
|
||||
cy="-160"
|
||||
r="400"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0.50" style="stop-color: #FFF; stop-opacity: 0.1;" />
|
||||
<stop offset="0.75" style="stop-color: #FFF; stop-opacity: 1.0;" />
|
||||
<stop offset="0.75" style="stop-color: #FFF; stop-opacity: 0.0;" />
|
||||
</radialGradient>
|
||||
|
||||
<g id="gloss" class="optional" title="Glossy Overlay" display="none">
|
||||
<use xlink:href="#backgroundShape" style="fill: url(#glossGradient); opacity: 0.1;" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
824
main/inc/lib/javascript/badge-studio/media/js/studio.js
Normal file
@@ -0,0 +1,824 @@
|
||||
// set superglobal js var by default 100 for glyph
|
||||
window.size = 'medium';
|
||||
|
||||
var SVG_NS = "http://www.w3.org/2000/svg";
|
||||
|
||||
var svgCache = {};
|
||||
var options = {};
|
||||
|
||||
var $badge;
|
||||
var $badgeRaster;
|
||||
var $studio = document.getElementById('studio');
|
||||
|
||||
var $template = document.getElementById('studio-template');
|
||||
var $palette = document.getElementById('studio-palette');
|
||||
var $mask = document.getElementById('studio-mask');
|
||||
var $glyph = document.getElementById('studio-glyph');
|
||||
|
||||
var $glyphSelector;
|
||||
var $glyphSelectorButton;
|
||||
|
||||
window.addEventListener('load', function init() {
|
||||
|
||||
$badgeRaster = new Image();
|
||||
$badgeRaster.id = 'raster';
|
||||
document.getElementById('output').appendChild($badgeRaster);
|
||||
|
||||
$template.addEventListener('change', updateTemplate);
|
||||
$palette.addEventListener('change', updatePalette);
|
||||
$mask.addEventListener('change', updateMask);
|
||||
$glyph.addEventListener('change', updateGlyph);
|
||||
|
||||
initStudio();
|
||||
initPalettes();
|
||||
initOptions();
|
||||
updateTemplate();
|
||||
|
||||
});
|
||||
|
||||
// ==[ General Methods ]======================================================
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function showError(err) {
|
||||
// TO DO - show errors :)
|
||||
console.err(err);
|
||||
}
|
||||
|
||||
// ==[ Studio ]===============================================================
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function initStudio() {
|
||||
|
||||
initGlyphSelector();
|
||||
|
||||
document.addEventListener('keydown', function (event) {
|
||||
if (event.keyCode === 27) { // Escape
|
||||
if ($glyphSelector && $glyphSelector.offsetWidth)
|
||||
closeGlyphSelector();
|
||||
}
|
||||
}, true);
|
||||
|
||||
document.addEventListener('focus', function (event) {
|
||||
[$glyphSelector].forEach(function ($overlay) {
|
||||
if ($overlay && $overlay.offsetWidth && !$overlay.contains(event.target)) {
|
||||
event.stopPropagation();
|
||||
$overlay.focus();
|
||||
}
|
||||
});
|
||||
}, true);
|
||||
}
|
||||
|
||||
// ==[ Glyph Selector ]=======================================================
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function initGlyphSelector() {
|
||||
|
||||
if ($glyphSelector) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var glyphLog = [];
|
||||
|
||||
$glyphSelectorButton = document.createElement('button');
|
||||
$glyphSelectorButton.className = 'btn btn-default pull-right';
|
||||
$glyphSelectorButton.id = 'search-glyphs';
|
||||
$glyphSelectorButton.type = 'button';
|
||||
$glyphSelectorButton.innerHTML = '<em class="fa fa-search"></em> Search';
|
||||
$glyphSelectorButton.addEventListener('click', openGlyphSelector);
|
||||
|
||||
$glyph.parentNode.insertBefore($glyphSelectorButton, $glyph.nextSibling);
|
||||
|
||||
var $$options = $glyph.querySelectorAll('option');
|
||||
|
||||
$glyphSelector = importTemplate('glyph-selector', function ($template) {
|
||||
|
||||
var $list = $template.querySelector('ul');
|
||||
|
||||
for (var i = 0, l = $$options.length; i < l; i++) {
|
||||
(function ($option, index) {
|
||||
var value = $option.value;
|
||||
var id = 'glyph-selector-item-' + value;
|
||||
|
||||
var $node = importTemplate('glyph-selector-item', function ($template) {
|
||||
var $input = $template.querySelector('input');
|
||||
$input.id = id;
|
||||
$input.value = index;
|
||||
|
||||
var checked = $glyph.selectedIndex === index;
|
||||
$input[checked ? 'setAttribute' : 'removeAttribute']('checked', 'checked');
|
||||
|
||||
var $label = $template.querySelector('label');
|
||||
$label.id = id + '-label';
|
||||
$label.className = 'fa fa-' + value;
|
||||
$label.setAttribute('for', id);
|
||||
$label.setAttribute('title', $option.text);
|
||||
}).querySelector('li');
|
||||
|
||||
$list.appendChild($node);
|
||||
|
||||
glyphLog.push({
|
||||
id: id,
|
||||
value: value
|
||||
});
|
||||
})($$options[i], i);
|
||||
}
|
||||
|
||||
}).querySelector('#glyph-selector');
|
||||
|
||||
$glyphSelector.querySelector('.header').appendChild(makeCloseButton(closeGlyphSelector));
|
||||
$studio.appendChild($glyphSelector);
|
||||
|
||||
$glyphSelector.addEventListener('change', function (event) {
|
||||
|
||||
event.stopPropagation();
|
||||
var index = event.target.value;
|
||||
$glyph.selectedIndex = index;
|
||||
|
||||
updateGlyph();
|
||||
});
|
||||
|
||||
$glyphSelector.addEventListener('click', function (event) {
|
||||
if (event.target.nodeName.toLowerCase() !== 'label') {
|
||||
return;
|
||||
}
|
||||
|
||||
event.stopPropagation();
|
||||
closeGlyphSelector();
|
||||
});
|
||||
|
||||
$glyphSelector.addEventListener('keydown', function (event) {
|
||||
|
||||
if (event.keyCode === 13) { // Enter
|
||||
if (event.target.name)
|
||||
$glyph.selectedIndex = event.target.value;
|
||||
return updateGlyph(closeGlyphSelector);
|
||||
}
|
||||
|
||||
if (event.keyCode === 38 || event.keyCode === 40) { // Up / Down
|
||||
event.preventDefault();
|
||||
|
||||
var $container = event.target.parentNode.parentNode;
|
||||
var itemSize = event.target.parentNode.offsetWidth;
|
||||
var containerSize = $container.offsetWidth;
|
||||
var rowCount = Math.floor(containerSize / itemSize);
|
||||
var currentIndex = parseInt(event.target.value);
|
||||
var newIndex = currentIndex;
|
||||
var altFinder;
|
||||
|
||||
if (event.keyCode === 38) {
|
||||
// Move up a row
|
||||
newIndex = currentIndex - rowCount;
|
||||
altFinder = 'firstElementChild';
|
||||
} else {
|
||||
// Move down a row
|
||||
newIndex = currentIndex + rowCount;
|
||||
altFinder = 'lastElementChild';
|
||||
}
|
||||
|
||||
var newItem = $container.querySelector('input[value="' + newIndex + '"]') ||
|
||||
$container[altFinder].querySelector('input');
|
||||
|
||||
$glyph.selectedIndex = newItem.value;
|
||||
newItem.checked = true;
|
||||
newItem.focus();
|
||||
rasterize();
|
||||
}
|
||||
});
|
||||
|
||||
$glyphSelector.addEventListener('focus', function (event) {
|
||||
if (event.target !== $glyphSelector)
|
||||
return;
|
||||
|
||||
event.stopPropagation();
|
||||
}, true);
|
||||
|
||||
$glyph.addEventListener('change', function (event) {
|
||||
var $selectorItem = document.getElementById('glyph-selector-item-' + this.value);
|
||||
if ($selectorItem) {
|
||||
$selectorItem.click();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function openGlyphSelector() {
|
||||
if (!$glyphSelector)
|
||||
initGlyphSelector();
|
||||
|
||||
$glyphSelector.classList.remove('hidden');
|
||||
|
||||
if ($glyph.value)
|
||||
document.getElementById('glyph-selector-item-' + $glyph.value + '-label').focus();
|
||||
|
||||
$glyphSelector.focus();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function closeGlyphSelector() {
|
||||
if (!$glyphSelector)
|
||||
return;
|
||||
|
||||
$glyphSelector.classList.add('hidden');
|
||||
$glyphSelectorButton.focus();
|
||||
}
|
||||
|
||||
// ==[ Templates ]============================================================
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function getCurrentTemplate() {
|
||||
return $template.value;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function updateTemplate(callback) {
|
||||
callback = cb(callback);
|
||||
|
||||
var path = $template.dataset.path;
|
||||
var shape = getCurrentTemplate();
|
||||
|
||||
loadSVG(path + '/' + shape + '.svg', function (err, $svg) {
|
||||
if (err)
|
||||
return showError(err);
|
||||
|
||||
$badge = $svg;
|
||||
|
||||
extractOptions();
|
||||
setCustomPalette($svg);
|
||||
updatePalette(function () {
|
||||
updateMask(callback);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// ==[ Palettes ]=============================================================
|
||||
|
||||
function Palette(colors) {
|
||||
this._colors = {};
|
||||
if (colors) {
|
||||
for (var color in colors) {
|
||||
if (colors.hasOwnProperty(color)) {
|
||||
this._colors[color] = Palette.parseColor(colors[color]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this._colors.hasOwnProperty('glyph'))
|
||||
this._colors['glyph'] = '#000000';
|
||||
}
|
||||
|
||||
Palette.prototype.toNode = function (id) {
|
||||
var content = [];
|
||||
for (var color in this._colors) {
|
||||
if (this._colors.hasOwnProperty(color)) {
|
||||
content.push('.color-' + color + ' { fill: ' + this._colors[color] + '; }');
|
||||
}
|
||||
}
|
||||
|
||||
var $node = document.createElement('style');
|
||||
$node.type = 'text/css';
|
||||
$node.id = id || 'palette';
|
||||
$node.textContent = content.join('\n');
|
||||
return $node;
|
||||
}
|
||||
|
||||
Palette.prototype.colors = function () {
|
||||
return Object.keys(this._colors);
|
||||
}
|
||||
|
||||
Palette.prototype.color = function (name) {
|
||||
return this._colors[name] || '#000';
|
||||
}
|
||||
|
||||
Palette.parseColor = function (str) {
|
||||
// Should probably be a bit more robust about this!
|
||||
if (!/^#[a-f0-9]{3}$/i.test(str))
|
||||
return str.toLowerCase();
|
||||
return '#' + str.charAt(1) + str.charAt(1)
|
||||
+ str.charAt(2) + str.charAt(2)
|
||||
+ str.charAt(3) + str.charAt(3);
|
||||
}
|
||||
|
||||
Palette.fromDataset = function (dataset) {
|
||||
var colors = {};
|
||||
for (var item in dataset) {
|
||||
if (/^color\w+/i.test(item)) {
|
||||
var color = item
|
||||
.replace(/^color(\w)/i, function (m, c) {
|
||||
return c.toLowerCase();
|
||||
})
|
||||
.replace(/[A-Z]/, function (m) {
|
||||
return '-' + m.toLowerCase();
|
||||
});
|
||||
colors[color] = dataset[item];
|
||||
}
|
||||
}
|
||||
return new Palette(colors);
|
||||
}
|
||||
|
||||
Palette.fromSVG = function ($svg) {
|
||||
var colors = {};
|
||||
var $node = $svg.getElementById('palette');
|
||||
if (!$node || $node.nodeName !== 'style')
|
||||
return new Palette();
|
||||
|
||||
var $stylesheet = document.createElement('style');
|
||||
$stylesheet.setAttribute('media', 'print');
|
||||
$stylesheet.appendChild(document.createTextNode($node.textContent));
|
||||
document.head.appendChild($stylesheet);
|
||||
var sheet = $stylesheet.sheet;
|
||||
document.head.removeChild($stylesheet);
|
||||
|
||||
var rules = sheet.rules || sheet.cssRules;
|
||||
for (var i = 0, l = rules.length; i < l; i++) {
|
||||
var rule = rules[i];
|
||||
var selector = rule.selectorText;
|
||||
if (/^\.color-/.test(selector)) {
|
||||
var key = selector.replace(/^\.color-/, '');
|
||||
var value = rule.style.fill || '#000';
|
||||
colors[key] = value;
|
||||
}
|
||||
}
|
||||
|
||||
return new Palette(colors);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function initPalettes() {
|
||||
var $custom = document.createElement('option');
|
||||
$custom.disabled = true;
|
||||
$custom.value = 'custom';
|
||||
$custom.text = 'Custom';
|
||||
$custom.id = 'custom-color-option';
|
||||
$palette.options.add($custom);
|
||||
|
||||
var $container = document.getElementById('custom-palette');
|
||||
|
||||
$palette.addEventListener('change', function () {
|
||||
var isCustom = (this.options[this.selectedIndex] === $custom);
|
||||
$custom.disabled = !isCustom;
|
||||
|
||||
setCustomColors();
|
||||
updatePalette();
|
||||
});
|
||||
|
||||
var changeTimer;
|
||||
|
||||
$container.addEventListener('change', function (event) {
|
||||
var $input = event.target;
|
||||
$custom.setAttribute('data-color-' + $input.name, $input.value);
|
||||
$custom.disabled = false;
|
||||
$palette.selectedIndex = $palette.options.length - 1;
|
||||
|
||||
updatePalette();
|
||||
});
|
||||
|
||||
setCustomColors();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function getCurrentPalette() {
|
||||
var $option = $palette.options[$palette.selectedIndex];
|
||||
return Palette.fromDataset($option.dataset);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function updatePalette(callback) {
|
||||
callback = cb(callback);
|
||||
|
||||
var $oldPalette = $badge.getElementById('palette');
|
||||
var $newPalette = getCurrentPalette().toNode();
|
||||
|
||||
if ($oldPalette) {
|
||||
$oldPalette.parentNode.insertBefore($newPalette, $oldPalette);
|
||||
$oldPalette.parentNode.removeChild($oldPalette);
|
||||
} else {
|
||||
var $defs = $badge.querySelector('defs') || document.createElement('defs');
|
||||
|
||||
if (!$defs.parentNode)
|
||||
$badge.insertBefore($defs, $badge.childNodes[0]);
|
||||
|
||||
$defs.appendChild($newPalette)
|
||||
}
|
||||
|
||||
updateGlyph(callback);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function setCustomPalette($svg, callback) {
|
||||
callback = cb(callback);
|
||||
|
||||
var colors = Palette.fromSVG($svg).colors();
|
||||
|
||||
var $container = document.getElementById('custom-palette');
|
||||
var display = $container.style.display;
|
||||
$container.innerHTML = '';
|
||||
$container.style.display = 'none';
|
||||
$container.className = 'item';
|
||||
|
||||
for (var i = 0, l = colors.length; i < l; i++) {
|
||||
var name = colors[i];
|
||||
var label = name.replace(/(^|-)(\w)/g, function (m, x, c) {
|
||||
return (x ? ' ' : '') + c.toUpperCase();
|
||||
});
|
||||
|
||||
$container.appendChild(importTemplate('custom-color', function ($template) {
|
||||
var $label = $template.querySelector('span');
|
||||
$label.textContent = label;
|
||||
var $input = $template.querySelector('input');
|
||||
$input.name = name;
|
||||
$input.id = 'custom-color-picker-' + name;
|
||||
}));
|
||||
}
|
||||
|
||||
if (colors.length)
|
||||
$container.style.display = display;
|
||||
|
||||
setCustomColors();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function setCustomColors() {
|
||||
var $custom = document.getElementById('custom-color-option');
|
||||
var $option = $palette.options[$palette.selectedIndex];
|
||||
var palette = Palette.fromDataset($option.dataset);
|
||||
var colors = palette.colors();
|
||||
|
||||
for (var i = 0, l = colors.length; i < l; i++) {
|
||||
var colorName = colors[i];
|
||||
var colorValue = palette.color(colorName);
|
||||
$custom.setAttribute('data-color-' + colorName, colorValue);
|
||||
var $input = document.getElementById('custom-color-picker-' + colorName);
|
||||
if ($input) {
|
||||
$input.value = colorValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==[ Masks ]================================================================
|
||||
|
||||
function getCurrentMask() {
|
||||
return $mask.value;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function updateMask(callback) {
|
||||
callback = cb(callback);
|
||||
|
||||
var path = $mask.dataset.path;
|
||||
var mask = getCurrentMask();
|
||||
|
||||
if (!mask) {
|
||||
var $svg = document.createElementNS(SVG_NS, 'svg');
|
||||
var $g = document.createElementNS(SVG_NS, 'g');
|
||||
$g.id = 'mask';
|
||||
$svg.appendChild($g);
|
||||
return done(null, $svg);
|
||||
}
|
||||
|
||||
loadSVG(path + '/' + mask + '.svg', done);
|
||||
|
||||
function done(err, $svg) {
|
||||
if (err)
|
||||
return showError(err);
|
||||
|
||||
var $oldMask = $badge.querySelector('#mask');
|
||||
var $newMask = $svg.querySelector('#mask');
|
||||
|
||||
$oldMask.parentNode.insertBefore($newMask, $oldMask);
|
||||
$oldMask.parentNode.removeChild($oldMask);
|
||||
|
||||
rasterize(callback);
|
||||
}
|
||||
}
|
||||
|
||||
// ==[ Options ]==============================================================
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function initOptions() {
|
||||
if ($badge)
|
||||
extractOptions();
|
||||
|
||||
var $options = document.getElementById('options');
|
||||
$options.addEventListener('change', function (event) {
|
||||
event.stopPropagation();
|
||||
var option = event.target.name;
|
||||
if (!options.hasOwnProperty(option))
|
||||
return;
|
||||
|
||||
options[option] = !!event.target.checked;
|
||||
setOptions();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function extractOptions() {
|
||||
var $options = document.getElementById('options');
|
||||
$options.innerHTML = '';
|
||||
|
||||
var $optional = $badge.querySelectorAll('.optional');
|
||||
|
||||
if (!$optional.length) {
|
||||
$options.innerHTML = '<i>None</l>';
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = 0, l = $optional.length; i < l; i++) {
|
||||
var $option = $optional[i];
|
||||
var label = $option.getAttribute('title');
|
||||
var name = $option.id;
|
||||
var enabled = ($option.getAttribute('display') !== 'none');
|
||||
if (!options.hasOwnProperty(name))
|
||||
options[name] = enabled;
|
||||
|
||||
$option[!!options[name] ? 'removeAttribute' : 'setAttribute']('display', 'none');
|
||||
|
||||
$options.appendChild(importTemplate('option', function ($template) {
|
||||
var $checkbox = $template.querySelector('input');
|
||||
$checkbox.name = name;
|
||||
$checkbox.checked = !!options[name];
|
||||
|
||||
var $label = $template.querySelector('span');
|
||||
$label.textContent = label;
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function setOptions(callback) {
|
||||
callback = cb(callback);
|
||||
|
||||
if (!$badge)
|
||||
return callback();
|
||||
|
||||
for (var option in options) {
|
||||
if (options.hasOwnProperty(option)) {
|
||||
var $node = $badge.getElementById(option);
|
||||
var visible = !!options[option];
|
||||
$node && ($node[visible ? 'removeAttribute' : 'setAttribute']('display', 'none'));
|
||||
}
|
||||
}
|
||||
|
||||
rasterize(callback)
|
||||
}
|
||||
|
||||
// ==[ Glyphs ]===============================================================
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function getCurrentGlyph() {
|
||||
return $glyph.value;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function getCurrentGlyphValue() {
|
||||
if (!$glyph.value)
|
||||
return '';
|
||||
|
||||
var $i = document.createElement('i');
|
||||
$i.className = 'fa fa-' + getCurrentGlyph();
|
||||
document.body.appendChild($i);
|
||||
var chr = window.getComputedStyle($i, ':before').content;
|
||||
document.body.removeChild($i);
|
||||
|
||||
chr = chr.replace(/["']/g, '');
|
||||
return chr;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function updateGlyph(callback) {
|
||||
var glyph = getCurrentGlyphValue();
|
||||
|
||||
if (!glyph)
|
||||
return setGlyphImage(null, callback);
|
||||
|
||||
var $canvas = document.createElement('canvas');
|
||||
$canvas.width = parseInt($badgeRaster.offsetWidth);
|
||||
$canvas.height = parseInt($badgeRaster.offsetHeight);
|
||||
|
||||
var ctx = $canvas.getContext('2d');
|
||||
ctx.font = parseInt($canvas.width / 3) + "px FontAwesome";
|
||||
ctx.fillStyle = getCurrentPalette().color('glyph');
|
||||
ctx.textAlign = "center";
|
||||
ctx.textBaseline = "middle";
|
||||
ctx.shadowColor = "rgba(0,0,0,0.5)";
|
||||
ctx.shadowOffsetX = 0;
|
||||
ctx.shadowOffsetY = 0;
|
||||
ctx.shadowBlur = 5;
|
||||
|
||||
ctx.fillText(glyph, $canvas.width / 2, $canvas.height / 2);
|
||||
|
||||
var $image = new Image();
|
||||
$image.onload = function () {
|
||||
setGlyphImage($image, callback);
|
||||
}
|
||||
$image.src = $canvas.toDataURL("image/png");
|
||||
// $image.src = "./media/images/cheese.jpg";
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function setGlyphImage($image, callback) {
|
||||
callback = cb(callback);
|
||||
|
||||
var $newGlyph = document.createElementNS(SVG_NS, 'g');
|
||||
$newGlyph.id = 'glyph';
|
||||
|
||||
if (!$image)
|
||||
return done();
|
||||
|
||||
var gxyAdd = 0;
|
||||
var whAdd = 0;
|
||||
|
||||
|
||||
if (window.size == 'big') {
|
||||
gxyAdd = 40;
|
||||
whAdd = 80
|
||||
} else if (window.size == 'small') {
|
||||
gxyAdd = -40;
|
||||
whAdd = -80
|
||||
}
|
||||
|
||||
var iWidth = $image.width;
|
||||
var iHeight = $image.height;
|
||||
|
||||
var rWidth = $badgeRaster.width;
|
||||
var rHeight = $badgeRaster.height;
|
||||
|
||||
var box = $badge.getAttribute('viewBox').split(' ');
|
||||
|
||||
var bWidth = parseInt(box[2]);
|
||||
var bHeight = parseInt(box[3]);
|
||||
|
||||
var cx = bWidth / 2 + parseInt(box[0]);
|
||||
var cy = bHeight / 2 + parseInt(box[1]);
|
||||
|
||||
var gWidth = iWidth / (rWidth / bWidth);
|
||||
var gHeight = iHeight / (rHeight / bHeight);
|
||||
var gx = cx - (gWidth / 2);
|
||||
var gy = cy - (gHeight / 2);
|
||||
|
||||
var $glyph = document.createElementNS(SVG_NS, 'image');
|
||||
$glyph.setAttribute('x', gx - gxyAdd);
|
||||
$glyph.setAttribute('y', gy - gxyAdd);
|
||||
$glyph.setAttribute('width', gWidth + whAdd);
|
||||
$glyph.setAttribute('height', gHeight + whAdd);
|
||||
$glyph.setAttribute('xlink:href', $image.src);
|
||||
$newGlyph.appendChild($glyph);
|
||||
|
||||
done();
|
||||
|
||||
function done() {
|
||||
var $oldGlyph = $badge.getElementById('glyph');
|
||||
|
||||
$oldGlyph.parentNode.insertBefore($newGlyph, $oldGlyph);
|
||||
$oldGlyph.parentNode.removeChild($oldGlyph);
|
||||
|
||||
rasterize(callback);
|
||||
}
|
||||
}
|
||||
|
||||
// ==[ Helpers ]==============================================================
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function rasterize(callback) {
|
||||
|
||||
callback = cb(callback);
|
||||
|
||||
var $svg = $badge.cloneNode(true);
|
||||
|
||||
var $canvas = document.createElement('canvas');
|
||||
$canvas.width = parseInt($svg.getAttribute('width'));
|
||||
$canvas.height = parseInt($svg.getAttribute('height'));
|
||||
|
||||
var ctx = $canvas.getContext('2d');
|
||||
var svg_xml = (new XMLSerializer()).serializeToString($svg);
|
||||
|
||||
/*
|
||||
// This is the 'official' way of doing this. However, Firefox seems to have
|
||||
// an issue referencing relative fragment URIs created by `createObjectURL`.
|
||||
// So we're using a base64 encoding hack instead :( Worth noting that if
|
||||
// there are non-standard unicode characters in the XML, it'll die a death.
|
||||
|
||||
var DOMURL = window.URL || window.webkitURL || window;
|
||||
var blob = new Blob([svg_xml], {type: 'image/svg+xml;charset=utf-8'});
|
||||
var url = DOMURL.createObjectURL(blob);
|
||||
*/
|
||||
|
||||
var url = 'data:image/svg+xml;base64,' + btoa(svg_xml);
|
||||
|
||||
var $img = new Image();
|
||||
|
||||
$img.onload = function () {
|
||||
ctx.drawImage($img, 0, 0);
|
||||
$badgeRaster.src = $canvas.toDataURL("image/png");
|
||||
callback();
|
||||
}
|
||||
|
||||
$img.src = url;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function cb(fn) {
|
||||
if (typeof fn === 'function')
|
||||
return fn;
|
||||
return function () {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function load(url, method, callback) {
|
||||
var request = new XMLHttpRequest();
|
||||
|
||||
request.onload = function () {
|
||||
callback(null, request.responseXML || request.responseText, request);
|
||||
}
|
||||
|
||||
request.onerror = function (err) {
|
||||
callback(err, null, request);
|
||||
}
|
||||
|
||||
request.open(method, url, true);
|
||||
request.send();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function loadSVG(path, callback) {
|
||||
if (svgCache[path])
|
||||
return callback(null, svgCache[path].cloneNode(true));
|
||||
|
||||
load(path, 'GET', function (err, $doc, request) {
|
||||
if (err)
|
||||
return callback(err);
|
||||
|
||||
if (!$doc || typeof $doc === 'string')
|
||||
return callback(new Error('Not valid SVG'));
|
||||
|
||||
svgCache[path] = $doc.getElementsByTagName('svg')[0];
|
||||
callback(null, svgCache[path].cloneNode(true));
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function importTemplate(name, builder) {
|
||||
var $template = document.getElementById(name + '-template');
|
||||
if (typeof builder === 'function')
|
||||
builder($template.content);
|
||||
return document.importNode($template.content, true);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function makeCloseButton(callback) {
|
||||
var $template = importTemplate('close-button');
|
||||
$template.querySelector('button').addEventListener('click', callback);
|
||||
return $template;
|
||||
}
|
||||
|
||||
53
main/inc/lib/javascript/bigupload/README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
BigUpload
|
||||
|
||||
version 1.2
|
||||
Created by: Sean Thielen <sean@p27.us>
|
||||
[BigUpload: Uploading really big files in the browser](http://p27.us/2013/03/bigupload-uploading-really-big-files-in-the-browser/)
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
BigUpload is a tool for handling large file uploads (tested up to 2GB) through the browser.
|
||||
|
||||

|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
It uses the HTML5 FileReader library to split large files into manageable chunks,
|
||||
and then sends these chunks to the server one at a time using an XmlHttpRequest.
|
||||
|
||||
The php script then pieces these chunks together into one large file.
|
||||
|
||||
Because the chunks are all the same size, it is easy to calculate an accurate progress bar
|
||||
and a fairly accurate time remaining variable.
|
||||
|
||||
This tool is capable of handling file uploads of up to 2GB in size, without the need to tweak
|
||||
the max_upload and timeout variables on your httpd.
|
||||
|
||||
This tool only works on Chrome and Firefox, but falls back to a normal file upload form on other browsers.
|
||||
|
||||
If you want to deploy this as-is, the variables you need to worry about are in the top of
|
||||
* js/bigUpload.js
|
||||
* inc/bigUpload.php
|
||||
|
||||
And you need to be sure to make /BigUpload/files and /BigUpload/files/tmp writeable
|
||||
|
||||
|
||||
Please feel free to contribute and use this in your projects!
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
v 1.2
|
||||
* Cleaned up the code quite a lot
|
||||
* Added pause/resume functionality
|
||||
* Added fallback for unsupported browsers
|
||||
|
||||
v 1.0.1
|
||||
* Added time remaining calculator
|
||||
* Response from php script is now a json object, allowing for error processing
|
||||
* Minor script changes and bugfixes
|
||||
* Better comments
|
||||
|
||||
v 1.0.0
|
||||
* Initial version
|
||||
BIN
main/inc/lib/javascript/bigupload/css/import_scorm.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
main/inc/lib/javascript/bigupload/css/load745.gif
Normal file
|
After Width: | Height: | Size: 37 KiB |
299
main/inc/lib/javascript/bigupload/inc/bigUpload.php
Normal file
@@ -0,0 +1,299 @@
|
||||
<?php
|
||||
|
||||
require_once '../../../../global.inc.php';
|
||||
require_once api_get_path(SYS_CODE_PATH).'work/work.lib.php';
|
||||
|
||||
class BigUploadResponse
|
||||
{
|
||||
/**
|
||||
* Max allowed filesize. This is for unsupported browsers and
|
||||
* as an additional security check in case someone bypasses the js filesize check.
|
||||
*/
|
||||
private $maxSize;
|
||||
|
||||
/**
|
||||
* Temporary directory.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $tempDirectory;
|
||||
|
||||
/**
|
||||
* Name of the temporary file. Used as a reference to make sure chunks get written to the right file.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $tempName;
|
||||
|
||||
/**
|
||||
* Constructor function, sets the temporary directory and main directory.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$tempDirectory = api_get_path(SYS_ARCHIVE_PATH);
|
||||
$this->setTempDirectory($tempDirectory);
|
||||
$this->maxSize = getIniMaxFileSizeInBytes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a random file name for the file to use as it's being uploaded.
|
||||
*
|
||||
* @param string $value Temporary filename
|
||||
*/
|
||||
public function setTempName($value = null)
|
||||
{
|
||||
if ($value) {
|
||||
$this->tempName = $value;
|
||||
} else {
|
||||
if ('learnpath' === $_REQUEST['origin'] && !empty($_REQUEST['name'])) {
|
||||
$this->tempName = disable_dangerous_file(
|
||||
api_replace_dangerous_char($_REQUEST['name'])
|
||||
);
|
||||
} else {
|
||||
$this->tempName = mt_rand().'.tmp';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the name of the temporary file.
|
||||
*
|
||||
* @return string Temporary filename
|
||||
*/
|
||||
public function getTempName()
|
||||
{
|
||||
return $this->tempName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the temporary directory.
|
||||
*
|
||||
* @param string $value Temporary directory
|
||||
*/
|
||||
public function setTempDirectory($value)
|
||||
{
|
||||
$this->tempDirectory = $value;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the name of the temporary directory.
|
||||
*
|
||||
* @return string Temporary directory
|
||||
*/
|
||||
public function getTempDirectory()
|
||||
{
|
||||
return $this->tempDirectory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to upload the individual file chunks.
|
||||
*
|
||||
* @return string JSON object with result of upload
|
||||
*/
|
||||
public function uploadFile()
|
||||
{
|
||||
//Make sure the total file we're writing to hasn't surpassed the file size limit
|
||||
if (file_exists($this->getTempDirectory().$this->getTempName())) {
|
||||
if (filesize($this->getTempDirectory().$this->getTempName()) > $this->maxSize) {
|
||||
$this->abortUpload();
|
||||
|
||||
return json_encode([
|
||||
'errorStatus' => 1,
|
||||
'errorText' => get_lang('UplFileTooBig'),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
//Open the raw POST data from php://input
|
||||
$fileData = file_get_contents('php://input');
|
||||
|
||||
//Write the actual chunk to the larger file
|
||||
$handle = fopen($this->getTempDirectory().$this->getTempName(), 'a');
|
||||
|
||||
fwrite($handle, $fileData);
|
||||
fclose($handle);
|
||||
|
||||
return json_encode([
|
||||
'key' => $this->getTempName(),
|
||||
'errorStatus' => 0,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function for cancelling uploads while they're in-progress; deletes the temp file.
|
||||
*
|
||||
* @return string JSON object with result of deletion
|
||||
*/
|
||||
public function abortUpload()
|
||||
{
|
||||
if (unlink($this->getTempDirectory().$this->getTempName())) {
|
||||
return json_encode(['errorStatus' => 0]);
|
||||
} else {
|
||||
return json_encode([
|
||||
'errorStatus' => 1,
|
||||
'errorText' => get_lang('UnableToDeleteTempFile'),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to rename and move the finished file.
|
||||
*
|
||||
* @return string JSON object with result of rename
|
||||
*/
|
||||
public function finishUpload()
|
||||
{
|
||||
$tempName = $this->getTempName();
|
||||
|
||||
$sessionBigUpload = ChamiloSession::read('bigupload', []);
|
||||
|
||||
if (!isset($sessionBigUpload[$tempName])) {
|
||||
return json_encode(
|
||||
[
|
||||
'errorStatus' => 1,
|
||||
'errorText' => get_lang('UnableToDeleteTempFile'),
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/** @var string $finalName Name to rename the finished upload to */
|
||||
$finalName = $sessionBigUpload[$tempName];
|
||||
|
||||
$origin = $_POST['origin'];
|
||||
if ($origin == 'document') {
|
||||
$tmpFile = $this->getTempDirectory().$this->getTempName();
|
||||
chmod($tmpFile, '0777');
|
||||
$file = [
|
||||
'name' => $finalName,
|
||||
'type' => $_POST['type'],
|
||||
'tmp_name' => $tmpFile,
|
||||
'error' => 0,
|
||||
'size' => $_POST['size'],
|
||||
'copy_file' => true,
|
||||
];
|
||||
$files = ['file' => $file];
|
||||
$unzip = isset($_POST['unzip']) ? $_POST['unzip'] : null;
|
||||
$index = isset($_POST['index_document']) ? $_POST['index_document'] : null;
|
||||
DocumentManager::upload_document(
|
||||
$files,
|
||||
$_POST['curdirpath'],
|
||||
$_POST['title'],
|
||||
$_POST['comment'],
|
||||
$unzip,
|
||||
$_POST['if_exists'],
|
||||
$index,
|
||||
true
|
||||
);
|
||||
$redirectUrl = api_get_path(WEB_CODE_PATH).'document/document.php?'.api_get_cidreq();
|
||||
if (!empty($_POST['id'])) {
|
||||
$redirectUrl .= '&'.http_build_query(
|
||||
[
|
||||
'id' => $_POST['id'],
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
return json_encode(['errorStatus' => 0, 'redirect' => $redirectUrl]);
|
||||
} elseif ($origin == 'learnpath') {
|
||||
unset($_REQUEST['origin']);
|
||||
$redirectUrl = api_get_path(WEB_CODE_PATH).'upload/upload.php?'.api_get_cidreq().'&'
|
||||
.http_build_query(
|
||||
[
|
||||
'from' => 'bigUpload',
|
||||
'name' => $this->getTempName(),
|
||||
'use_max_score' => $_POST['use_max_score'] ?? 0,
|
||||
]
|
||||
);
|
||||
|
||||
return json_encode(['errorStatus' => 0, 'redirect' => $redirectUrl]);
|
||||
} elseif ($origin == 'work') {
|
||||
$tmpFile = $this->getTempDirectory().$this->getTempName();
|
||||
chmod($tmpFile, '0777');
|
||||
$workInfo = get_work_data_by_id($_REQUEST['id']);
|
||||
$values = $_REQUEST;
|
||||
$courseInfo = api_get_course_info();
|
||||
$sessionId = api_get_session_id();
|
||||
$groupId = api_get_group_id();
|
||||
$userId = api_get_user_id();
|
||||
$values['contains_file'] = 1;
|
||||
$values['title'] = $finalName;
|
||||
$file = [
|
||||
'name' => $finalName,
|
||||
'type' => $_POST['type'],
|
||||
'tmp_name' => $tmpFile,
|
||||
'error' => 0,
|
||||
'size' => $_POST['size'],
|
||||
'copy_file' => true,
|
||||
];
|
||||
|
||||
// Process work
|
||||
$result = processWorkForm(
|
||||
$workInfo,
|
||||
$values,
|
||||
$courseInfo,
|
||||
$sessionId,
|
||||
$groupId,
|
||||
$userId,
|
||||
$file,
|
||||
api_get_configuration_value('assignment_prevent_duplicate_upload')
|
||||
);
|
||||
$extraParams = '';
|
||||
if (!empty($_SESSION['oLP'])) {
|
||||
$extraParams .= '&origin=learnpath';
|
||||
}
|
||||
$redirectUrl = api_get_path(WEB_CODE_PATH).'work/work.php?'.api_get_cidreq().$extraParams;
|
||||
|
||||
return json_encode(['errorStatus' => 0, 'redirect' => $redirectUrl]);
|
||||
}
|
||||
|
||||
return json_encode(['errorStatus' => 0]);
|
||||
}
|
||||
}
|
||||
|
||||
$sessionBigUpload = ChamiloSession::read('bigupload', []);
|
||||
|
||||
//Instantiate the class
|
||||
$bigUpload = new BigUploadResponse();
|
||||
|
||||
//Set the temporary filename
|
||||
$tempName = null;
|
||||
if (isset($_GET['key'])) {
|
||||
$tempName = $_GET['key'];
|
||||
}
|
||||
if (isset($_POST['key'])) {
|
||||
$tempName = $_POST['key'];
|
||||
}
|
||||
|
||||
if (!empty($tempName)) {
|
||||
$tempName = api_replace_dangerous_char($tempName);
|
||||
$tempName = disable_dangerous_file($tempName);
|
||||
}
|
||||
|
||||
$bigUpload->setTempName($tempName);
|
||||
|
||||
if (isset($_GET['name'])) {
|
||||
$sessionBigUpload[$bigUpload->getTempName()] = disable_dangerous_file(
|
||||
api_replace_dangerous_char($_GET['name'])
|
||||
);
|
||||
ChamiloSession::write('bigupload', $sessionBigUpload);
|
||||
}
|
||||
|
||||
switch ($_GET['action']) {
|
||||
case 'upload':
|
||||
print $bigUpload->uploadFile();
|
||||
break;
|
||||
case 'abort':
|
||||
print $bigUpload->abortUpload();
|
||||
break;
|
||||
case 'finish':
|
||||
print $bigUpload->finishUpload();
|
||||
|
||||
if (isset($sessionBigUpload[$bigUpload->getTempName()])) {
|
||||
unset($sessionBigUpload[$bigUpload->getTempName()]);
|
||||
|
||||
ChamiloSession::write('bigupload', $sessionBigUpload);
|
||||
}
|
||||
break;
|
||||
}
|
||||
347
main/inc/lib/javascript/bigupload/js/bigUpload.js
Normal file
@@ -0,0 +1,347 @@
|
||||
function bigUpload () {
|
||||
|
||||
//These are the main config variables and should be able to take care of most of the customization
|
||||
this.settings = {
|
||||
//The id of the file input
|
||||
'inputField': 'bigUploadFile',
|
||||
|
||||
//The id of the form with the file upload.
|
||||
//This should be a valid html form (see index.html) so there is a fallback for unsupported browsers
|
||||
'formId': 'bigUploadForm',
|
||||
|
||||
//The id of the progress bar
|
||||
//Width of this element will change based on progress
|
||||
//Content of this element will display a percentage
|
||||
//See bigUpload.progressUpdate() to change this code
|
||||
'progressBarField': 'bigUploadProgressBarFilled',
|
||||
|
||||
//The id of the time remaining field
|
||||
//Content of this element will display the estimated time remaining for the upload
|
||||
//See bigUpload.progressUpdate() to change this code
|
||||
'timeRemainingField': 'bigUploadTimeRemaining',
|
||||
|
||||
//The id of the text response field
|
||||
//Content of this element will display the response from the server on success or error
|
||||
'responseField': 'bigUploadResponse',
|
||||
|
||||
//The id of the submit button
|
||||
//This is then changed to become the pause/resume button based on the status of the upload
|
||||
'submitButton': 'bigUploadSubmit',
|
||||
|
||||
//Color of the background of the progress bar
|
||||
//This must also be defined in the progressBarField css, but it's used here to reset the color after an error
|
||||
//Default: green
|
||||
'progressBarColor': '#5bb75b',
|
||||
|
||||
//Color of the background of the progress bar when an error is triggered
|
||||
//Default: red
|
||||
'progressBarColorError': '#da4f49',
|
||||
|
||||
//Path to the php script for handling the uploads
|
||||
'scriptPath': 'inc/bigUpload.php',
|
||||
|
||||
//Size of chunks to upload (in bytes)
|
||||
//Default: 1MB
|
||||
'chunkSize': 1000000,
|
||||
|
||||
//Max file size allowed
|
||||
//Default: 2GB
|
||||
'maxFileSize': 2147483648,
|
||||
|
||||
//CidReq
|
||||
'cidReq': '',
|
||||
|
||||
// Message error upload filesize
|
||||
'errMessageFileSize': '',
|
||||
|
||||
};
|
||||
|
||||
//Upload specific variables
|
||||
this.uploadData = {
|
||||
'uploadStarted': false,
|
||||
'file': false,
|
||||
'numberOfChunks': 0,
|
||||
'aborted': false,
|
||||
'paused': false,
|
||||
'pauseChunk': 0,
|
||||
'key': 0,
|
||||
'timeStart': 0,
|
||||
'totalTime': 0
|
||||
};
|
||||
|
||||
parent = this;
|
||||
|
||||
//Quick function for accessing objects
|
||||
this.$ = function(id) {
|
||||
return document.getElementById(id);
|
||||
};
|
||||
|
||||
//Resets all the upload specific data before a new upload
|
||||
this.resetKey = function() {
|
||||
this.uploadData = {
|
||||
'uploadStarted': false,
|
||||
'file': false,
|
||||
'numberOfChunks': 0,
|
||||
'aborted': false,
|
||||
'paused': false,
|
||||
'pauseChunk': 0,
|
||||
'key': 0,
|
||||
'timeStart': 0,
|
||||
'totalTime': 0
|
||||
};
|
||||
};
|
||||
|
||||
//Inital method called
|
||||
//Determines whether to begin/pause/resume an upload based on whether or not one is already in progress
|
||||
this.fire = function() {
|
||||
if(this.uploadData.uploadStarted === true && this.uploadData.paused === false) {
|
||||
this.pauseUpload();
|
||||
}
|
||||
else if(this.uploadData.uploadStarted === true && this.uploadData.paused === true) {
|
||||
this.resumeUpload();
|
||||
}
|
||||
else {
|
||||
this.processFiles();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
//Initial upload method
|
||||
//Pulls the size of the file being uploaded and calculated the number of chunks, then calls the recursive upload method
|
||||
this.processFiles = function() {
|
||||
|
||||
//If the user is using an unsupported browser, the form just submits as a regular form
|
||||
if(!Blob.prototype.slice) {
|
||||
this.$(this.settings.formId).submit();
|
||||
return;
|
||||
}
|
||||
|
||||
//Reset the upload-specific variables
|
||||
this.resetKey();
|
||||
this.uploadData.uploadStarted = true;
|
||||
|
||||
//Some HTML tidying
|
||||
//Reset the background color of the progress bar in case it was changed by any earlier errors
|
||||
//Change the Upload button to a Pause button
|
||||
this.$(this.settings.progressBarField).style.backgroundColor = this.settings.progressBarColor;
|
||||
this.$(this.settings.progressBarField).style.width = '0%';
|
||||
this.$(this.settings.progressBarField).textContent = '0%';
|
||||
this.$(this.settings.responseField).textContent = '';
|
||||
this.$(this.settings.submitButton).value = 'Pause';
|
||||
this.$(this.settings.submitButton).disabled = true;
|
||||
|
||||
//Alias the file input object to this.uploadData
|
||||
this.uploadData.file = this.$(this.settings.inputField).files[0];
|
||||
|
||||
//Check the filesize. Obviously this is not very secure, so it has another check in inc/bigUpload.php
|
||||
//But this should be good enough to catch any immediate errors
|
||||
var fileSize = this.uploadData.file.size;
|
||||
if(fileSize > this.settings.maxFileSize) {
|
||||
this.printResponse(this.settings.errMessageFileSize, true);
|
||||
this.$(this.settings.submitButton).disabled = false;
|
||||
return;
|
||||
}
|
||||
|
||||
//Calculate the total number of file chunks
|
||||
this.uploadData.numberOfChunks = Math.ceil(fileSize / this.settings.chunkSize);
|
||||
|
||||
//Start the upload
|
||||
this.sendFile(0);
|
||||
};
|
||||
|
||||
//Main upload method
|
||||
this.sendFile = function (chunk) {
|
||||
|
||||
//Set the time for the beginning of the upload, used for calculating time remaining
|
||||
this.uploadData.timeStart = new Date().getTime();
|
||||
|
||||
//Check if the upload has been cancelled by the user
|
||||
if(this.uploadData.aborted === true) {
|
||||
return;
|
||||
}
|
||||
|
||||
//Check if the upload has been paused by the user
|
||||
if(this.uploadData.paused === true) {
|
||||
this.uploadData.pauseChunk = chunk;
|
||||
this.printResponse('Upload paused.', false);
|
||||
return;
|
||||
}
|
||||
|
||||
//Set the byte to start uploading from and the byte to end uploading at
|
||||
var start = chunk * this.settings.chunkSize;
|
||||
var stop = start + this.settings.chunkSize;
|
||||
|
||||
//Initialize a new FileReader object
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onloadend = function(evt) {
|
||||
|
||||
//Build the AJAX request
|
||||
//
|
||||
//this.uploadData.key is the temporary filename
|
||||
//If the server sees it as 0 it will generate a new filename and pass it back in the JSON object
|
||||
//this.uploadData.key is then populated with the filename to use for subsequent requests
|
||||
//When this method sends a valid filename (i.e. key != 0), the server will just append the data being sent to that file.
|
||||
xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", parent.settings.scriptPath + '?' + parent.settings.cidReq + '&action=upload' + '&key=' + parent.uploadData.key + '&origin=' + parent.settings.origin + (parent.uploadData.key ? '' : '&name=' + parent.uploadData.file.name), true);
|
||||
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
|
||||
xhr.onreadystatechange = function() {
|
||||
if(xhr.readyState == 4) {
|
||||
var response = JSON.parse(xhr.response);
|
||||
|
||||
//If there's an error, call the error method and break the loop
|
||||
if(response.errorStatus !== 0 || xhr.status != 200) {
|
||||
parent.printResponse(response.errorText, true);
|
||||
return;
|
||||
}
|
||||
|
||||
//If it's the first chunk, set this.uploadData.key to the server response (see above)
|
||||
if(chunk === 0 || parent.uploadData.key === 0) {
|
||||
parent.uploadData.key = response.key;
|
||||
}
|
||||
|
||||
//If the file isn't done uploading, update the progress bar and run this.sendFile again for the next chunk
|
||||
if(chunk < parent.uploadData.numberOfChunks) {
|
||||
parent.progressUpdate(chunk + 1);
|
||||
parent.sendFile(chunk + 1);
|
||||
}
|
||||
//If the file is complete uploaded, instantiate the finalizing method
|
||||
else {
|
||||
parent.sendFileData();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
//Send the file chunk
|
||||
xhr.send(blob);
|
||||
};
|
||||
|
||||
//Slice the file into the desired chunk
|
||||
//This is the core of the script. Everything else is just fluff.
|
||||
var blob = this.uploadData.file.slice(start, stop);
|
||||
reader.readAsBinaryString(blob);
|
||||
};
|
||||
|
||||
//This method is for whatever housekeeping work needs to be completed after the file is finished uploading.
|
||||
//As it's setup now, it passes along the original filename to the server and the server renames the file and removes it form the temp directory.
|
||||
//This function could also pass things like this.uploadData.file.type for the mime-type (although it would be more accurate to use php for that)
|
||||
//Or it could pass along user information or something like that, depending on the context of the application.
|
||||
this.sendFileData = function() {
|
||||
var data = 'key=' + this.uploadData.key + '&name=' + this.uploadData.file.name + '&type=' + this.uploadData.file.type + '&size=' + this.uploadData.file.size + '&origin=' + parent.settings.origin + '&' + parent.settings.formParams;
|
||||
xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", parent.settings.scriptPath + '?' + parent.settings.cidReq + '&action=finish', true);
|
||||
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
|
||||
xhr.onreadystatechange = function() {
|
||||
if(xhr.readyState == 4) {
|
||||
var response = JSON.parse(xhr.response);
|
||||
|
||||
//If there's an error, call the error method
|
||||
if(response.errorStatus !== 0 || xhr.status != 200) {
|
||||
parent.printResponse(response.errorText, true);
|
||||
return;
|
||||
}
|
||||
|
||||
//Reset the upload-specific data so we can process another upload
|
||||
parent.resetKey();
|
||||
|
||||
//Change the submit button text so it's ready for another upload and spit out a sucess message
|
||||
parent.$(parent.settings.submitButton).value = 'Start Upload';
|
||||
parent.printResponse('File uploaded successfully.', false);
|
||||
|
||||
if (response.redirect) {
|
||||
location.href = response.redirect;
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
//Send the reques
|
||||
xhr.send(data);
|
||||
};
|
||||
|
||||
//This method cancels the upload of a file.
|
||||
//It sets this.uploadData.aborted to true, which stops the recursive upload script.
|
||||
//The server then removes the incomplete file from the temp directory, and the html displays an error message.
|
||||
this.abortFileUpload = function() {
|
||||
this.uploadData.aborted = true;
|
||||
var data = 'key=' + this.uploadData.key;
|
||||
xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", this.settings.scriptPath + '?' + this.settings.cidReq + '&action=abort', true);
|
||||
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
|
||||
xhr.onreadystatechange = function() {
|
||||
if(xhr.readyState == 4) {
|
||||
var response = JSON.parse(xhr.response);
|
||||
|
||||
//If there's an error, call the error method.
|
||||
if(response.errorStatus !== 0 || xhr.status != 200) {
|
||||
parent.printResponse(response.errorText, true);
|
||||
return;
|
||||
}
|
||||
parent.printResponse('File upload was cancelled.', true);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
//Send the request
|
||||
xhr.send(data);
|
||||
};
|
||||
|
||||
//Pause the upload
|
||||
//Sets this.uploadData.paused to true, which breaks the upload loop.
|
||||
//The current chunk is still stored in this.uploadData.pauseChunk, so the upload can later be resumed.
|
||||
//In a production environment, you might want to have a cron job to clean up files that have been paused and never resumed,
|
||||
//because this method won't delete the file from the temp directory if the user pauses and then leaves the page.
|
||||
this.pauseUpload = function() {
|
||||
this.uploadData.paused = true;
|
||||
this.printResponse('', false);
|
||||
this.$(this.settings.submitButton).value = 'Resume';
|
||||
};
|
||||
|
||||
//Resume the upload
|
||||
//Undoes the doings of this.pauseUpload and then re-enters the loop at the last chunk uploaded
|
||||
this.resumeUpload = function() {
|
||||
this.uploadData.paused = false;
|
||||
this.$(this.settings.submitButton).value = 'Pause';
|
||||
this.sendFile(this.uploadData.pauseChunk);
|
||||
};
|
||||
|
||||
//This method updates a simple progress bar by calculating the percentage of chunks uploaded.
|
||||
//Also includes a method to calculate the time remaining by taking the average time to upload individual chunks
|
||||
//and multiplying it by the number of chunks remaining.
|
||||
this.progressUpdate = function(progress) {
|
||||
|
||||
var percent = Math.ceil((progress / this.uploadData.numberOfChunks) * 100);
|
||||
this.$(this.settings.progressBarField).style.width = percent + '%';
|
||||
this.$(this.settings.progressBarField).textContent = percent + '%';
|
||||
|
||||
//Calculate the estimated time remaining
|
||||
//Only run this every five chunks, otherwise the time remaining jumps all over the place (see: http://xkcd.com/612/)
|
||||
if(progress % 5 === 0) {
|
||||
|
||||
//Calculate the total time for all of the chunks uploaded so far
|
||||
this.uploadData.totalTime += (new Date().getTime() - this.uploadData.timeStart);
|
||||
console.log(this.uploadData.totalTime);
|
||||
|
||||
//Estimate the time remaining by finding the average time per chunk upload and
|
||||
//multiplying it by the number of chunks remaining, then convert into seconds
|
||||
var timeLeft = Math.ceil((this.uploadData.totalTime / progress) * (this.uploadData.numberOfChunks - progress) / 100);
|
||||
|
||||
//Update this.settings.timeRemainingField with the estimated time remaining
|
||||
this.$(this.settings.timeRemainingField).textContent = timeLeft + ' seconds remaining';
|
||||
}
|
||||
};
|
||||
|
||||
//Simple response/error handler
|
||||
this.printResponse = function(responseText, error) {
|
||||
this.$(this.settings.responseField).textContent = responseText;
|
||||
this.$(this.settings.timeRemainingField).textContent = '';
|
||||
if(error === true) {
|
||||
this.$(this.settings.progressBarField).style.backgroundColor = this.settings.progressBarColorError;
|
||||
}
|
||||
};
|
||||
}
|
||||
14456
main/inc/lib/javascript/chartjs/Chart.js
vendored
Normal file
10
main/inc/lib/javascript/chartjs/Chart.min.js
vendored
Normal file
198
main/inc/lib/javascript/chat/css/chat.css
Normal file
@@ -0,0 +1,198 @@
|
||||
.chatboxmain {
|
||||
position: fixed;
|
||||
width: auto;
|
||||
z-index: 9000;
|
||||
bottom: 0px;
|
||||
right: 20px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.chatboxheadmain {
|
||||
color: #ffffff;
|
||||
background-color: #000;
|
||||
min-height: 34px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
#chatboxtitlemain {
|
||||
font-weight: normal;
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
padding-top: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.user_status_main {
|
||||
width: 18px;
|
||||
display: inline;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.chatbox {
|
||||
position: fixed;
|
||||
position: expression("absolute");
|
||||
width: 320px;
|
||||
display: none;
|
||||
z-index: 9000;
|
||||
}
|
||||
|
||||
.chatbox-common {
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.chatboxmessage_me {
|
||||
background-color: #4080ff;
|
||||
color: #fff;
|
||||
width: 80%;
|
||||
float: right !important;
|
||||
border-radius: 12px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.chatboxmessage {
|
||||
background-color: #ebedf2;
|
||||
color: #2a2f35;
|
||||
width: 80%;
|
||||
float: left;
|
||||
border-radius: 12px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.chatboxmessagecontent {
|
||||
}
|
||||
|
||||
.chatboxmessage_me .chatboxmessagecontent a {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.chatboxcontent {
|
||||
font-family: arial, sans-serif;
|
||||
font-size: 13px;
|
||||
color: #333333;
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
overflow-x: auto;
|
||||
padding: 7px;
|
||||
border-left: 1px solid #cccccc;
|
||||
border-right: 1px solid #cccccc;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
background-color: #ffffff;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
.chatboxcontent .alert {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.user_status {
|
||||
width: 8px;
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.chatimage {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.chatboxtitle {
|
||||
font-weight: normal;
|
||||
display: inline-block;
|
||||
font-size: 10px;
|
||||
width: auto;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
padding-left: 2px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
line-height: 10px;
|
||||
}
|
||||
|
||||
.chatboxhead {
|
||||
/* background-color: #222; */
|
||||
padding: 5px;
|
||||
color: #ffffff;
|
||||
border-right: 1px solid #222;
|
||||
border-left: 1px solid #222;
|
||||
background-color: #222;
|
||||
background-repeat: repeat-x;
|
||||
background-image: -khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222));
|
||||
background-image: -moz-linear-gradient(top, #333333, #222222);
|
||||
background-image: -ms-linear-gradient(top, #333333, #222222);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222));
|
||||
background-image: -webkit-linear-gradient(top, #333333, #222222);
|
||||
background-image: -o-linear-gradient(top, #333333, #222222);
|
||||
background-image: linear-gradient(top, #333333, #222222);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
|
||||
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.chatboxblink {
|
||||
background-color: #FF921F;
|
||||
border-right: 1px solid #EF7A00;
|
||||
border-left: 1px solid #EF7A00;
|
||||
background-repeat: repeat-x;
|
||||
background-image: -khtml-gradient(linear, left top, left bottom, from(#FF921F), to(#FF921F));
|
||||
background-image: -moz-linear-gradient(top, #FF921F, #FFAC55);
|
||||
background-image: -ms-linear-gradient(top, #FF921F, #FF921F);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #FF921F), color-stop(100%, #FF921F));
|
||||
background-image: -webkit-linear-gradient(top, #FF921F, #FF921F);
|
||||
background-image: -o-linear-gradient(top, #FF921F, #FF921F);
|
||||
background-image: linear-gradient(top, #FF921F, #FF921F);
|
||||
}
|
||||
|
||||
.chatboxinput {
|
||||
padding: 5px;
|
||||
background-color: #ffffff;
|
||||
border-left: 1px solid #cccccc;
|
||||
border-right: 1px solid #cccccc;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
|
||||
.chatboxtextarea {
|
||||
width: 300px;
|
||||
height: 44px;
|
||||
padding: 3px 0pt 3px 3px;
|
||||
border: 1px solid #eeeeee;
|
||||
margin: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.chatboxtextareaselected {
|
||||
border: 2px solid #f99d39;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.chatboxinfo {
|
||||
margin-left: -1em;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.chatboxmessagefrom {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.chatboxoptions {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.chatboxoptions a {
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-family: Verdana, Arial, "Bitstream Vera Sans", sans-serif;
|
||||
}
|
||||
|
||||
.chatboxoptions a:hover {
|
||||
background-color: #aaa;
|
||||
}
|
||||
|
||||
.chatbox_checks {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.chatbox_checked {
|
||||
color: #13A7F0;
|
||||
}
|
||||
22
main/inc/lib/javascript/chat/css/screen.css
Normal file
@@ -0,0 +1,22 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* CSS Document
|
||||
* Written by Ryan Yonzon
|
||||
* http://ryan.rawswift.com/
|
||||
*/
|
||||
|
||||
html, body {
|
||||
/* FF hack: or we'll have double scrollbar showing on the browser */
|
||||
/*margin:0px; */
|
||||
/* hide browser's main scrollbar */
|
||||
/*overflow:hidden;*/
|
||||
}
|
||||
|
||||
#main_container {
|
||||
width:100%;
|
||||
background-color:#ffffff; /* DO NOT REMOVE THIS; or you'll have issue w/ the scrollbar, when the mouse pointer is on a white space */
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
height:100%; /* this will make sure that the height will extend at the bottom */
|
||||
position:absolute; /* container div must be absolute, for our fixed bar to work */
|
||||
}
|
||||
24
main/inc/lib/javascript/chat/css/screen_ie.css
Normal file
@@ -0,0 +1,24 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* CSS Document
|
||||
* Written by Ryan Yonzon
|
||||
* http://ryan.rawswift.com/
|
||||
*/
|
||||
|
||||
/*
|
||||
* IE hack
|
||||
*/
|
||||
html, body {
|
||||
/*margin:0px;*/
|
||||
/* hide browser's main scrollbar */
|
||||
/*overflow:hidden; */
|
||||
/* make sure we'll use 100% of the page's height */
|
||||
/*height:100%; */
|
||||
}
|
||||
|
||||
#main_container {
|
||||
width:100%; /* make sure we'll use 100% of page's width */
|
||||
background-color:#ffffff; /* DO NOT REMOVE THIS; or you'll have issue w/ the scrollbar, when the mouse pointer is on a white space */
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
BIN
main/inc/lib/javascript/chat/img/webrtc_chrome.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
main/inc/lib/javascript/chat/img/webrtc_firefox.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
950
main/inc/lib/javascript/chat/js/chat.js
Normal file
@@ -0,0 +1,950 @@
|
||||
/*
|
||||
|
||||
Copyright (c) 2009 Anant Garg (anantgarg.com | inscripts.com)
|
||||
|
||||
This script may be used for non-commercial purposes only. For any
|
||||
commercial purposes, please contact the author at
|
||||
anant.garg@inscripts.com
|
||||
|
||||
Changes and Chamilo Integration: Julio Montoya <gugli100@gmail.com>
|
||||
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
*/
|
||||
|
||||
var windowFocus = true;
|
||||
var username;
|
||||
var currentUserId;
|
||||
var chatHeartbeatCount = 0;
|
||||
var minChatHeartbeat = 4000;
|
||||
var maxChatHeartbeat = 33000;
|
||||
var chatHeartbeatTime = minChatHeartbeat;
|
||||
var originalTitle;
|
||||
var blinkOrder = 0;
|
||||
var chatboxFocus = new Array();
|
||||
var newMessages = new Array();
|
||||
var newMessagesWin = new Array();
|
||||
var chatBoxes = new Array();
|
||||
var intervals = new Array();
|
||||
var timer;
|
||||
var user_status = 0;
|
||||
var widthBox = 320; // see css class .chatbox
|
||||
//var ajax_url = 'chat.php'; // This variable is loaded in the template/layout/head.tpl file
|
||||
var doubleCheck = '<span class="chatbox_checked"><i class="fa fa-check"></i><i class="fa fa-check"></i></span>';
|
||||
var currentToken = '';
|
||||
|
||||
function set_user_status(status)
|
||||
{
|
||||
if (status == 1) {
|
||||
stopChatHeartBeat();
|
||||
startChatHeartBeat();
|
||||
$('.user_status_main').html(online_button);
|
||||
$('#chatboxtitlemain').html(connect_lang);
|
||||
} else {
|
||||
stopChatHeartBeat();
|
||||
$('.user_status_main').html(offline_button);
|
||||
$('#chatboxtitlemain').html(disconnect_lang);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: ajax_url+"?action=set_status",
|
||||
data: "status="+status,
|
||||
cache: false,
|
||||
success: function(data) {
|
||||
}
|
||||
});
|
||||
user_status = status;
|
||||
}
|
||||
|
||||
$(function() {
|
||||
originalTitle = document.title;
|
||||
startChatSession();
|
||||
$([window, document]).blur(function() {
|
||||
windowFocus = false;
|
||||
}).focus(function(){
|
||||
windowFocus = true;
|
||||
document.title = originalTitle;
|
||||
});
|
||||
|
||||
/* "On" conditions, divs are created dynamically */
|
||||
// User name header toggle
|
||||
$('body').on('click', '#chatboxtitlemain', function() {
|
||||
createMyContactsWindow();
|
||||
set_user_status(1);
|
||||
});
|
||||
|
||||
// User name header toogle
|
||||
$('body').on('click', '.chatboxtitle', function(){
|
||||
chatbox = $(this).parents(".chatbox");
|
||||
var chat_id = chatbox.attr('id');
|
||||
chat_id = chat_id.split('_')[1];
|
||||
toggleChatBoxGrowth(chat_id);
|
||||
});
|
||||
|
||||
// Minimize button
|
||||
$('body').on('click', '.chatboxhead .togglelink', function(){
|
||||
var chat_id = $(this).attr('rel');
|
||||
toggleChatBoxGrowth(chat_id);
|
||||
});
|
||||
|
||||
// Close button
|
||||
$('body').on('click', '.chatboxhead .closelink', function(){
|
||||
var chat_id = $(this).attr('rel');
|
||||
closeWindow(chat_id);
|
||||
});
|
||||
|
||||
// Close main chat
|
||||
$('body').on('click', '.chatboxhead .close_chat', function(){
|
||||
closeChat();
|
||||
});
|
||||
});
|
||||
|
||||
function showChatConnect()
|
||||
{
|
||||
if (user_status == 1) {
|
||||
button = online_button;
|
||||
label = connect_lang;
|
||||
} else {
|
||||
button = offline_button;
|
||||
label = disconnect_lang;
|
||||
}
|
||||
$("<div />").attr("id","chatmain")
|
||||
.addClass("chatboxmain")
|
||||
.html('<div class="chatboxheadmain"><div class="user_status_main">'+button+'</div><div id="chatboxtitlemain">'+label+'</div><div class="chatboxoptions"></div></div>')
|
||||
.appendTo($( "body" ));
|
||||
}
|
||||
|
||||
/**
|
||||
* Start chat session
|
||||
*/
|
||||
function startChatSession()
|
||||
{
|
||||
/* fix bug BT#5728 whereby users cannot move to the next question in IE9 */
|
||||
if (typeof ajax_url != 'undefined') {
|
||||
$.ajax({
|
||||
url: ajax_url+"?action=startchatsession",
|
||||
cache: false,
|
||||
dataType: "json",
|
||||
success: function(data) {
|
||||
if (data) {
|
||||
currentToken = data.sec_token;
|
||||
username = data.me;
|
||||
currentUserId = data.user_id;
|
||||
user_status = data.user_status;
|
||||
showChatConnect();
|
||||
if (user_status == 1) {
|
||||
startChatHeartBeat();
|
||||
} else {
|
||||
stopChatHeartBeat();
|
||||
}
|
||||
|
||||
$.each(data.items, function(my_user_id, user_items) {
|
||||
if (currentUserId == my_user_id) {
|
||||
// show contact list
|
||||
createMyContactsWindow();
|
||||
return true;
|
||||
}
|
||||
|
||||
my_items = user_items['items'];
|
||||
window_user_info = user_items['window_user_info'];
|
||||
$.each(my_items, function(i, item) {
|
||||
if (item) {
|
||||
// fix strange ie bug
|
||||
if ($("#chatbox_"+my_user_id).length <= 0) {
|
||||
createChatBox(
|
||||
my_user_id,
|
||||
window_user_info.complete_name,
|
||||
1,
|
||||
window_user_info.online,
|
||||
window_user_info.avatar_small
|
||||
);
|
||||
}
|
||||
createChatBubble(my_user_id, item);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
for (i = 0; i < chatBoxes.length; i++) {
|
||||
my_user_id = chatBoxes[i];
|
||||
$("#chatbox_"+my_user_id+" .chatboxcontent").scrollTop(
|
||||
$("#chatbox_"+my_user_id+" .chatboxcontent")[0].scrollHeight
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function stopChatHeartBeat()
|
||||
{
|
||||
clearInterval(timer);
|
||||
timer = null;
|
||||
}
|
||||
|
||||
function startChatHeartBeat()
|
||||
{
|
||||
timer = setInterval(chatHeartbeat, chatHeartbeatTime);
|
||||
}
|
||||
|
||||
/*
|
||||
* Shows the user messages in all windows
|
||||
*
|
||||
* Item array structure :
|
||||
*
|
||||
* item.s = type of message: 1 = message, 2 = "sent at" string
|
||||
* item.f = from_user
|
||||
*
|
||||
**/
|
||||
function chatHeartbeat()
|
||||
{
|
||||
var itemsfound = 0;
|
||||
if (windowFocus == false) {
|
||||
var blinkNumber = 0;
|
||||
var titleChanged = 0;
|
||||
|
||||
for (x in newMessagesWin) {
|
||||
if (newMessagesWin[x].status == true) {
|
||||
++blinkNumber;
|
||||
if (blinkNumber >= blinkOrder) {
|
||||
//document.title = newMessagesWin[x].username+' says...';
|
||||
//titleChanged = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (titleChanged == 0) {
|
||||
document.title = originalTitle;
|
||||
blinkOrder = 0;
|
||||
} else {
|
||||
++blinkOrder;
|
||||
}
|
||||
} else {
|
||||
for (x in newMessagesWin) {
|
||||
newMessagesWin[x].status = false;
|
||||
}
|
||||
}
|
||||
|
||||
for (x in newMessages) {
|
||||
if (newMessages[x] == true) {
|
||||
if (chatboxFocus[x] == false) {
|
||||
//FIXME: add toggle all or none policy, otherwise it looks funny
|
||||
$('#chatbox_'+x+' .chatboxhead').toggleClass('chatboxblink');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: ajax_url+"?action=chatheartbeat",
|
||||
cache: false,
|
||||
dataType: "json",
|
||||
success: function(data) {
|
||||
$.each(data.items, function(my_user_id, user_items) {
|
||||
// Each window
|
||||
my_items = user_items['items'];
|
||||
userInfo = user_items['window_user_info'];
|
||||
|
||||
update_online_user(
|
||||
my_user_id,
|
||||
userInfo.user_is_online
|
||||
);
|
||||
|
||||
$.each(my_items, function(i, item) {
|
||||
if (item) {
|
||||
// fix strange ie bug
|
||||
if ($("#chatbox_"+my_user_id).length <= 0) {
|
||||
createChatBox(
|
||||
my_user_id,
|
||||
userInfo.complete_name,
|
||||
0,
|
||||
userInfo.online,
|
||||
userInfo.avatar_small
|
||||
);
|
||||
}
|
||||
|
||||
if ($("#chatbox_"+my_user_id).css('display') == 'none') {
|
||||
$("#chatbox_"+my_user_id).css('display','block');
|
||||
restructureChatBoxes();
|
||||
}
|
||||
|
||||
newMessages[my_user_id] = {'status':true, 'username':item.username};
|
||||
newMessagesWin[my_user_id]= {'status':true, 'username':item.username};
|
||||
|
||||
var chatBubble = createChatBubble(my_user_id, item);
|
||||
|
||||
$("#chatbox_"+my_user_id+" .chatboxcontent").scrollTop(
|
||||
$("#chatbox_"+my_user_id+" .chatboxcontent")[0].scrollHeight
|
||||
);
|
||||
|
||||
if ($('#chatbox_'+my_user_id+' .chatboxcontent').css('display') == 'none') {
|
||||
$('#chatbox_'+my_user_id+' .chatboxhead').toggleClass('chatboxblink');
|
||||
}
|
||||
itemsfound += 1;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
chatHeartbeatCount++;
|
||||
|
||||
if (itemsfound > 0) {
|
||||
chatHeartbeatTime = minChatHeartbeat;
|
||||
chatHeartbeatCount = 1;
|
||||
} else if (chatHeartbeatCount >= 10) {
|
||||
chatHeartbeatTime *= 2;
|
||||
chatHeartbeatCount = 1;
|
||||
if (chatHeartbeatTime > maxChatHeartbeat) {
|
||||
chatHeartbeatTime = maxChatHeartbeat;
|
||||
}
|
||||
}
|
||||
}
|
||||
}); //ajax
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws a message bubble
|
||||
* @param my_user_id
|
||||
* @param item
|
||||
* @returns {string}
|
||||
*/
|
||||
function createChatBubble(my_user_id, item, appendType = 'append')
|
||||
{
|
||||
var myDiv = 'chatboxmessage_me';
|
||||
if (my_user_id == item.from_user_info.id) {
|
||||
myDiv = 'chatboxmessage';
|
||||
}
|
||||
var sentDate = '';
|
||||
if (moment.unix(item.date).isValid()) {
|
||||
sentDate = moment.unix(item.date).format('LLL');
|
||||
}
|
||||
|
||||
var check = '';
|
||||
var unCheckClass = ' check_status';
|
||||
if (my_user_id != item.from_user_info.id) {
|
||||
check = '<i class="fa fa-check"></i><i class="fa fa-check"></i>';
|
||||
if (item.recd == 1) {
|
||||
unCheckClass = '';
|
||||
check = doubleCheck;
|
||||
}
|
||||
}
|
||||
|
||||
var messageObject = $("#chatbox_"+my_user_id+" .chatboxcontent").find('#message_id_' + item.id);
|
||||
var exists = messageObject.length !== 0;
|
||||
var messageHeader = '<div id="message_id_'+item.id+'" class="chatbox-common well '+myDiv+'" title="'+sentDate+'" >';
|
||||
var messageEnd = '</div>';
|
||||
|
||||
var message = '';
|
||||
if (my_user_id == item.from_user_info.id) {
|
||||
message += '<span class="chatboxmessagefrom">'+item.from_user_info.complete_name+': </span>';
|
||||
}
|
||||
|
||||
message += '<div class="chatboxmessagecontent">'+item.message+'</div>';
|
||||
message += '<div class="chatbox_checks' + unCheckClass + '">'+check+'</div>';
|
||||
|
||||
if (exists) {
|
||||
messageObject.html(message);
|
||||
$(messageObject).linkify({
|
||||
target: "_blank"
|
||||
});
|
||||
} else {
|
||||
message = messageHeader + message + messageEnd;
|
||||
if (appendType == 'append') {
|
||||
$("#chatbox_"+my_user_id+" .chatboxcontent").append(message);
|
||||
} else {
|
||||
$("#chatbox_"+my_user_id+" .chatboxcontent").prepend(message);
|
||||
}
|
||||
|
||||
$("#chatbox_"+my_user_id+" .chatboxcontent").linkify({
|
||||
target: "_blank"
|
||||
});
|
||||
}
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Disconnect user from chat
|
||||
*/
|
||||
function closeChat()
|
||||
{
|
||||
$.post(
|
||||
ajax_url + "?action=close", {},
|
||||
function (data) {
|
||||
// Disconnects from chat
|
||||
set_user_status(0);
|
||||
// Clean cookies
|
||||
Cookies.set('chatbox_minimized', new Array());
|
||||
// Delete all windows
|
||||
$('.chatbox ').remove();
|
||||
|
||||
// Reset variables
|
||||
chatBoxes = new Array();
|
||||
intervals = new Array();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function closeWindow(user_id)
|
||||
{
|
||||
$('#chatbox_'+user_id).css('display','none');
|
||||
restructureChatBoxes();
|
||||
$.post(
|
||||
ajax_url + "?action=close_window",
|
||||
{
|
||||
chatbox: user_id
|
||||
},
|
||||
function (data) {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function restructureChatBoxes()
|
||||
{
|
||||
var align = 0;
|
||||
for (x in chatBoxes) {
|
||||
user_id = chatBoxes[x];
|
||||
if ($("#chatbox_"+user_id).css('display') != 'none') {
|
||||
if (align == 0) {
|
||||
$("#chatbox_"+user_id).css('right', '10px');
|
||||
} else {
|
||||
width = (align)*(widthBox+7) + 5 + 5;
|
||||
$("#chatbox_"+user_id).css('right', width+'px');
|
||||
}
|
||||
align++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that fires the chat with an user (creates a chat bloclk)
|
||||
* @param int user id
|
||||
* @param string user's firstname + lastname
|
||||
* @param status
|
||||
*
|
||||
**/
|
||||
function chatWith(user_id, user_name, status, userImage)
|
||||
{
|
||||
set_user_status(1);
|
||||
createChatBox(user_id, user_name, 0, status, userImage);
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").focus();
|
||||
getMoreItems(user_id, 'last');
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a div
|
||||
*/
|
||||
function createMyContactsWindow()
|
||||
{
|
||||
var user_id = 'contacts';
|
||||
var oldChatBox = $("#chatbox_"+user_id);
|
||||
if (oldChatBox.length > 0) {
|
||||
// reload contact list
|
||||
if (oldChatBox.css('display') == 'none') {
|
||||
oldChatBox.css('display','block');
|
||||
restructureChatBoxes();
|
||||
}
|
||||
|
||||
chatboxContent = oldChatBox.find('.chatboxcontent');
|
||||
|
||||
$.post(ajax_url + "?action=get_contacts", {
|
||||
to: 'user_id'
|
||||
}, function (data) {
|
||||
chatboxContent.html(data);
|
||||
});
|
||||
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").focus();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var chatbox = $('<div>')
|
||||
.attr({
|
||||
id: 'chatbox_' + user_id
|
||||
})
|
||||
.addClass('chatbox')
|
||||
.css('bottom', 0);
|
||||
|
||||
var chatboxHead = $('<div>')
|
||||
.addClass('chatboxhead')
|
||||
.append('');
|
||||
|
||||
$('<div>')
|
||||
.addClass('chatboxtitle')
|
||||
.append(chatLang)
|
||||
.appendTo(chatboxHead);
|
||||
|
||||
var chatboxoptions = $('<div>')
|
||||
.addClass('chatboxoptions')
|
||||
.appendTo(chatboxHead);
|
||||
|
||||
$('<a>')
|
||||
.addClass('btn btn-xs togglelink')
|
||||
.attr({
|
||||
href: 'javascript:void(0)',
|
||||
rel: user_id
|
||||
})
|
||||
.html('<em class="fa fa-toggle-down"></em>')
|
||||
.appendTo(chatboxoptions);
|
||||
|
||||
$('<a>')
|
||||
.addClass('btn btn-xs close_chat')
|
||||
.attr({
|
||||
href: 'javascript:void(0)',
|
||||
rel: user_id
|
||||
})
|
||||
.html('<em class="fa fa-close"></em>')
|
||||
.appendTo(chatboxoptions);
|
||||
|
||||
$('<br>')
|
||||
.attr('clear', 'all')
|
||||
.appendTo(chatboxHead);
|
||||
|
||||
var chatboxContent = $('<div>').addClass('chatboxcontent');
|
||||
var chatboxInput = $('<div>').addClass('chatboxinput');
|
||||
|
||||
$.post(ajax_url + "?action=get_contacts", {
|
||||
to: 'user_id'
|
||||
}, function (data) {
|
||||
$('<div>').html(data).appendTo(chatboxContent);
|
||||
});
|
||||
|
||||
chatbox
|
||||
.append(chatboxHead)
|
||||
.append(chatboxContent)
|
||||
.append(chatboxInput)
|
||||
.appendTo('body');
|
||||
|
||||
var chatBoxeslength = 0;
|
||||
for (x in chatBoxes) {
|
||||
if ($("#chatbox_"+chatBoxes[x]).css('display') != 'none') {
|
||||
chatBoxeslength++;
|
||||
}
|
||||
}
|
||||
|
||||
if (chatBoxeslength == 0) {
|
||||
$("#chatbox_"+user_id).css('right', '10px');
|
||||
} else {
|
||||
width = (chatBoxeslength)*(widthBox+7) + 5 + 5;
|
||||
$("#chatbox_"+user_id).css('right', width+'px');
|
||||
}
|
||||
|
||||
chatBoxes.push(user_id);
|
||||
chatboxFocus[user_id] = false;
|
||||
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").blur(function(){
|
||||
chatboxFocus[user_id] = false;
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").removeClass('chatboxtextareaselected');
|
||||
}).focus(function(){
|
||||
chatboxFocus[user_id] = true;
|
||||
newMessages[user_id] = false;
|
||||
$('#chatbox_'+user_id+' .chatboxhead').removeClass('chatboxblink');
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").addClass('chatboxtextareaselected');
|
||||
});
|
||||
|
||||
$("#chatbox_"+user_id).click(function() {
|
||||
if ($('#chatbox_'+user_id+' .chatboxcontent').css('display') != 'none') {
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").focus();
|
||||
}
|
||||
});
|
||||
|
||||
$("#chatbox_"+user_id).show();
|
||||
$("#chatbox_"+user_id+" .chatboxcontent").scroll(function () {
|
||||
var iCurScrollPos = $(this).scrollTop();
|
||||
if (iCurScrollPos == 0) {
|
||||
getMoreItems(user_id);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
minimizedChatBoxes = new Array();
|
||||
if (Cookies.get('chatbox_minimized')) {
|
||||
minimizedChatBoxes = Cookies.getJSON('chatbox_minimized');
|
||||
|
||||
minimize = 0;
|
||||
for (j = 0; j < minimizedChatBoxes.length; j++) {
|
||||
if (minimizedChatBoxes[j] == user_id) {
|
||||
minimize = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (minimize == 1) {
|
||||
$('.togglelink').html('<em class="fa fa-toggle-up"></em>');
|
||||
$('#chatbox_'+user_id+' .chatboxcontent').css('display','none');
|
||||
$('#chatbox_'+user_id+' .chatboxinput').css('display','none');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a div
|
||||
*/
|
||||
function createChatBox(user_id, chatboxtitle, minimizeChatBox, online, userImage)
|
||||
{
|
||||
var oldChatBox = $("#chatbox_"+user_id);
|
||||
if (oldChatBox.length > 0) {
|
||||
if (oldChatBox.css('display') == 'none') {
|
||||
oldChatBox.css('display','block');
|
||||
restructureChatBoxes();
|
||||
}
|
||||
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").focus();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var user_is_online = return_online_user(user_id, online, userImage);
|
||||
|
||||
var chatbox = $('<div>')
|
||||
.attr({
|
||||
id: 'chatbox_' + user_id
|
||||
})
|
||||
.addClass('chatbox')
|
||||
.css('bottom', 0);
|
||||
|
||||
var chatboxHead = $('<div>')
|
||||
.addClass('chatboxhead')
|
||||
.append(user_is_online);
|
||||
|
||||
$('<div>')
|
||||
.addClass('chatimage')
|
||||
.append('<img src="'+userImage+'"/>')
|
||||
.appendTo(chatboxHead);
|
||||
|
||||
$('<div>')
|
||||
.addClass('chatboxtitle')
|
||||
.append(chatboxtitle)
|
||||
.appendTo(chatboxHead);
|
||||
|
||||
var chatboxoptions = $('<div>')
|
||||
.addClass('chatboxoptions')
|
||||
.appendTo(chatboxHead);
|
||||
|
||||
if (!hide_chat_video) {
|
||||
if (!!Modernizr.prefixed('RTCPeerConnection', window) &&
|
||||
(online === '1' || online === 1)
|
||||
) {
|
||||
/*$('<a>')
|
||||
.addClass('btn btn-xs ajax')
|
||||
.attr({
|
||||
href: ajax_url + '?action=create_room&to=' + user_id
|
||||
})
|
||||
.data({
|
||||
title: '<em class="fa fa-video-camera"></em>',
|
||||
size: 'sm'
|
||||
})
|
||||
.on('click', function () {
|
||||
$(this).data('title', $('.chatboxtitle').text());
|
||||
})
|
||||
.html('<em class="fa fa-video-camera"></em>')
|
||||
.appendTo(chatboxoptions);*/
|
||||
}
|
||||
}
|
||||
|
||||
$('<a>')
|
||||
.addClass('btn btn-xs togglelink')
|
||||
.attr({
|
||||
href: 'javascript:void(0)',
|
||||
rel: user_id
|
||||
})
|
||||
.html('<em class="fa fa-toggle-down"></em>')
|
||||
.appendTo(chatboxoptions);
|
||||
|
||||
$('<a>')
|
||||
.addClass('btn btn-xs closelink')
|
||||
.attr({
|
||||
href: 'javascript:void(0)',
|
||||
rel: user_id
|
||||
})
|
||||
.html('<em class="fa fa-close"></em>')
|
||||
.appendTo(chatboxoptions);
|
||||
|
||||
$('<br>')
|
||||
.attr('clear', 'all')
|
||||
.appendTo(chatboxHead);
|
||||
|
||||
var chatboxContent = $('<div>').addClass('chatboxcontent');
|
||||
var chatboxInput = $('<div>').addClass('chatboxinput');
|
||||
|
||||
$('<textarea>')
|
||||
.addClass('chatboxtextarea')
|
||||
.on('keydown', function(e) {
|
||||
return checkChatBoxInputKey(e.originalEvent, this, user_id);
|
||||
})
|
||||
.appendTo(chatboxInput);
|
||||
|
||||
chatbox
|
||||
.append(chatboxHead)
|
||||
.append(chatboxContent)
|
||||
.append(chatboxInput)
|
||||
.appendTo('body');
|
||||
|
||||
var chatBoxeslength = 0;
|
||||
for (x in chatBoxes) {
|
||||
if ($("#chatbox_"+chatBoxes[x]).css('display') != 'none') {
|
||||
chatBoxeslength++;
|
||||
}
|
||||
}
|
||||
|
||||
if (chatBoxeslength == 0) {
|
||||
$("#chatbox_"+user_id).css('right', '10px');
|
||||
} else {
|
||||
width = (chatBoxeslength)*(widthBox+7) + 5 + 5;
|
||||
$("#chatbox_"+user_id).css('right', width+'px');
|
||||
}
|
||||
|
||||
chatBoxes.push(user_id);
|
||||
|
||||
if (minimizeChatBox == 1) {
|
||||
minimizedChatBoxes = new Array();
|
||||
if (Cookies.get('chatbox_minimized')) {
|
||||
minimizedChatBoxes = Cookies.getJSON('chatbox_minimized');
|
||||
}
|
||||
minimize = 0;
|
||||
for (j = 0; j < minimizedChatBoxes.length; j++) {
|
||||
if (minimizedChatBoxes[j] == user_id) {
|
||||
minimize = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (minimize == 1) {
|
||||
$('.togglelink').html('<em class="fa fa-toggle-up"></em>');
|
||||
$('#chatbox_'+user_id+' .chatboxcontent').css('display','none');
|
||||
$('#chatbox_'+user_id+' .chatboxinput').css('display','none');
|
||||
}
|
||||
}
|
||||
|
||||
chatboxFocus[user_id] = false;
|
||||
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").blur(function(){
|
||||
chatboxFocus[user_id] = false;
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").removeClass('chatboxtextareaselected');
|
||||
}).focus(function(){
|
||||
chatboxFocus[user_id] = true;
|
||||
newMessages[user_id] = false;
|
||||
$('#chatbox_'+user_id+' .chatboxhead').removeClass('chatboxblink');
|
||||
$("#chatbox_"+user_id+" .chatboxtextarea").addClass('chatboxtextareaselected');
|
||||
});
|
||||
|
||||
$("#chatbox_"+user_id).click(function() {
|
||||
if ($('#chatbox_'+user_id+' .chatboxcontent').css('display') != 'none') {
|
||||
//$("#chatbox_"+user_id+" .chatboxtextarea").focus();
|
||||
}
|
||||
});
|
||||
|
||||
$("#chatbox_"+user_id).show();
|
||||
$("#chatbox_"+user_id+" .chatboxcontent").scroll(function () {
|
||||
var iCurScrollPos = $(this).scrollTop();
|
||||
if (iCurScrollPos == 0) {
|
||||
getMoreItems(user_id);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int userId
|
||||
* @param string scrollType
|
||||
*/
|
||||
function getMoreItems(userId, scrollType)
|
||||
{
|
||||
var visibleMessages = $("#chatbox_"+userId+" .chatboxcontent").find('.chatbox-common').length;
|
||||
$.ajax({
|
||||
url: ajax_url+"?action=get_previous_messages&user_id="+userId+"&visible_messages="+visibleMessages,
|
||||
cache: false,
|
||||
dataType: "json",
|
||||
success: function(items) {
|
||||
items = items.reverse();
|
||||
$.each(items, function(i, item) {
|
||||
if (item) {
|
||||
if ($("#chatbox_"+userId).css('display') == 'none') {
|
||||
$("#chatbox_"+userId).css('display','block');
|
||||
restructureChatBoxes();
|
||||
}
|
||||
var chatBubble = createChatBubble(userId, item, 'prepend');
|
||||
if ($('#chatbox_'+userId+' .chatboxcontent').css('display') == 'none') {
|
||||
$('#chatbox_'+userId+' .chatboxhead').toggleClass('chatboxblink');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the div user status (green/gray button next to the user name)
|
||||
* @param int user id
|
||||
* @param int status 1 or 0
|
||||
*/
|
||||
function return_online_user(user_id, status, userImage)
|
||||
{
|
||||
var div_wrapper = $("<div />" );
|
||||
var new_div = $("<div />" );
|
||||
|
||||
new_div.attr("id","online_"+user_id);
|
||||
new_div.attr("class","user_status");
|
||||
|
||||
if (status == '1' || status == 1) {
|
||||
new_div.html(online_button);
|
||||
} else {
|
||||
new_div.html(offline_button);
|
||||
}
|
||||
div_wrapper.append(new_div);
|
||||
|
||||
return div_wrapper.html();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the user status (green/gray button next to the user name)
|
||||
*/
|
||||
function update_online_user(user_id, status)
|
||||
{
|
||||
if ($("#online_" +user_id).length > 0) {
|
||||
if (status == 1) {
|
||||
$("#online_" +user_id).html(online_button);
|
||||
} else {
|
||||
$("#online_" +user_id).html(offline_button);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param user_id
|
||||
*/
|
||||
function toggleChatBoxGrowth(user_id)
|
||||
{
|
||||
if ($('#chatbox_'+user_id+' .chatboxcontent').css('display') == 'none') {
|
||||
// Show box
|
||||
var minimizedChatBoxes = new Array();
|
||||
if (Cookies.get('chatbox_minimized')) {
|
||||
minimizedChatBoxes = Cookies.getJSON('chatbox_minimized');
|
||||
}
|
||||
|
||||
var newCookie = new Array();
|
||||
for (var i = 0; i < minimizedChatBoxes.length; i++) {
|
||||
if (minimizedChatBoxes[i] != user_id) {
|
||||
newCookie.push(minimizedChatBoxes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
Cookies.set('chatbox_minimized', newCookie);
|
||||
$('#chatbox_'+user_id+' .chatboxcontent').css('display','block');
|
||||
$('#chatbox_'+user_id+' .chatboxinput').css('display','block');
|
||||
$('.togglelink').html('<em class="fa fa-toggle-down"></em>');
|
||||
} else {
|
||||
// hide box
|
||||
if (Cookies.get('chatbox_minimized')) {
|
||||
newCookie = Cookies.getJSON('chatbox_minimized');
|
||||
if ($.isArray(newCookie)) {
|
||||
for (i = 0; i < newCookie.length; i++) {
|
||||
if (newCookie[i] == user_id) {
|
||||
newCookie.splice(i, 1);
|
||||
}
|
||||
}
|
||||
newCookie.push(user_id);
|
||||
} else {
|
||||
newCookie = new Array();
|
||||
newCookie.push(user_id);
|
||||
}
|
||||
|
||||
Cookies.set('chatbox_minimized', newCookie);
|
||||
}
|
||||
|
||||
$('#chatbox_'+user_id+' .chatboxcontent').css('display','none');
|
||||
$('#chatbox_'+user_id+' .chatboxinput').css('display','none');
|
||||
$('.togglelink').html('<em class="fa fa-toggle-up"></em>');
|
||||
}
|
||||
}
|
||||
|
||||
function checkMessageStatus(messageId, chatBox)
|
||||
{
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
dataType: 'json',
|
||||
url: ajax_url + "?action=get_message_status",
|
||||
data: {
|
||||
message_id: messageId
|
||||
},
|
||||
success: function (messageInfo) {
|
||||
if (messageInfo) {
|
||||
if (messageInfo.recd == 1) {
|
||||
$('#message_id_' + messageId + ' .chatbox_checks ').html(doubleCheck);
|
||||
clearInterval(intervals[messageId]);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sending message
|
||||
* @param event
|
||||
* @param chatboxtextarea
|
||||
* @param user_id
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function checkChatBoxInputKey(event, chatboxtextarea, user_id)
|
||||
{
|
||||
if(event.keyCode == 13 && event.shiftKey == 0) {
|
||||
message = $(chatboxtextarea).val();
|
||||
message = message.replace(/^\s+|\s+$/g,"");
|
||||
|
||||
$(chatboxtextarea).val('');
|
||||
$(chatboxtextarea).focus();
|
||||
$(chatboxtextarea).css('height','44px');
|
||||
|
||||
if (message != '') {
|
||||
$.post(ajax_url + "?action=sendchat", {
|
||||
to: user_id,
|
||||
message: message,
|
||||
chat_sec_token: currentToken
|
||||
}, function (messageId) {
|
||||
if (messageId.id > 0) {
|
||||
currentToken = messageId.sec_token;
|
||||
message = message.replace(/</g, "<").replace(/>/g, ">").replace(/\"/g, """);
|
||||
var item = {
|
||||
from_user_info : {id: currentUserId, complete_name: 'me'},
|
||||
username: username,
|
||||
date: moment().unix(),
|
||||
f: currentUserId,
|
||||
message: message,
|
||||
id: messageId.id
|
||||
};
|
||||
createChatBubble(user_id, item);
|
||||
$("#chatbox_" + user_id + " .chatboxcontent").scrollTop(
|
||||
$("#chatbox_" + user_id + " .chatboxcontent")[0].scrollHeight
|
||||
);
|
||||
|
||||
intervals[messageId.id] = setInterval(checkMessageStatus, chatHeartbeatTime, messageId.id);
|
||||
} else {
|
||||
$("#chatbox_" + user_id + " .chatboxcontent").
|
||||
append('<i class="fa fa-exclamation-triangle" aria-hidden="true"></i><br />');
|
||||
}
|
||||
});
|
||||
}
|
||||
chatHeartbeatTime = minChatHeartbeat;
|
||||
chatHeartbeatCount = 1;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
var adjustedHeight = chatboxtextarea.clientHeight;
|
||||
var maxHeight = 94;
|
||||
|
||||
if (maxHeight > adjustedHeight) {
|
||||
adjustedHeight = Math.max(chatboxtextarea.scrollHeight, adjustedHeight);
|
||||
if (maxHeight)
|
||||
adjustedHeight = Math.min(maxHeight, adjustedHeight);
|
||||
if (adjustedHeight > chatboxtextarea.clientHeight)
|
||||
$(chatboxtextarea).css('height',adjustedHeight+8 +'px');
|
||||
} else {
|
||||
$(chatboxtextarea).css('overflow','auto');
|
||||
}
|
||||
}
|
||||
66
main/inc/lib/javascript/chat/video.php
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
require_once __DIR__.'/../../../global.inc.php';
|
||||
|
||||
if (api_is_anonymous()) {
|
||||
api_not_allowed(true);
|
||||
}
|
||||
|
||||
$roomId = isset($_GET['room']) ? $_GET['room'] : null;
|
||||
|
||||
$entityManager = Database::getManager();
|
||||
|
||||
$chatVideo = $entityManager->find('ChamiloCoreBundle:ChatVideo', $roomId);
|
||||
|
||||
if (!$chatVideo) {
|
||||
header('Location: '.api_get_path(WEB_PATH));
|
||||
exit;
|
||||
}
|
||||
|
||||
$friend_html = SocialManager::listMyFriendsBlock($user_id, '', false);
|
||||
$isSender = $chatVideo->getFromUser() === api_get_user_id();
|
||||
$isReceiver = $chatVideo->getToUser() === api_get_user_id();
|
||||
|
||||
if (!$isSender && !$isReceiver) {
|
||||
header('Location: '.api_get_path(WEB_PATH));
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($isSender) {
|
||||
$chatUser = api_get_user_info($chatVideo->getToUser());
|
||||
} elseif ($isReceiver) {
|
||||
$chatUser = api_get_user_info($chatVideo->getFromUser());
|
||||
}
|
||||
$idUserLocal = api_get_user_id();
|
||||
$userLocal = api_get_user_info($idUserLocal, true);
|
||||
$htmlHeadXtra[] = '<script type="text/javascript" src="'
|
||||
. api_get_path(WEB_PUBLIC_PATH).'assets/simpleWebRTC/latest-v2.js'
|
||||
. '"></script>' . "\n";
|
||||
|
||||
$navigator = api_get_navigator();
|
||||
|
||||
Display::addFlash(
|
||||
Display::return_message(get_lang('FeatureDisabledBecauseOfUnmaintainedThirdPartyLibraries'), 'error')
|
||||
);
|
||||
|
||||
$template = new Template();
|
||||
$template->assign('room_name', $chatVideo->getRoomName());
|
||||
$template->assign('chat_user', $chatUser);
|
||||
$template->assign('user_local', $userLocal);
|
||||
$template->assign('block_friends', $friend_html);
|
||||
$template->assign('navigator_is_firefox', $navigator['name'] == 'Mozilla');
|
||||
|
||||
$tpl = $template->get_template('chat/video.tpl');
|
||||
$content = $template->fetch($tpl);
|
||||
|
||||
$templateHeader = Display::returnFontAwesomeIcon('video-camera', 'lg', true)
|
||||
. $chatVideo->getRoomName();
|
||||
|
||||
$template->assign('header', $templateHeader);
|
||||
$template->assign('content', $content);
|
||||
$template->assign(
|
||||
'message',
|
||||
Display::return_message(get_lang('YourBroswerDoesNotSupportWebRTC'), 'warning')
|
||||
);
|
||||
$template->display_one_col_template();
|
||||
BIN
main/inc/lib/javascript/chosen/chosen-sprite.png
Normal file
|
After Width: | Height: | Size: 538 B |
BIN
main/inc/lib/javascript/chosen/chosen-sprite@2x.png
Normal file
|
After Width: | Height: | Size: 738 B |
450
main/inc/lib/javascript/chosen/chosen.css
Normal file
@@ -0,0 +1,450 @@
|
||||
/*!
|
||||
Chosen, a Select Box Enhancer for jQuery and Prototype
|
||||
by Patrick Filler for Harvest, http://getharvest.com
|
||||
|
||||
Version 1.4.0
|
||||
Full source at https://github.com/harvesthq/chosen
|
||||
Copyright (c) 2011-2015 Harvest http://getharvest.com
|
||||
|
||||
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
|
||||
This file is generated by `grunt build`, do not edit it by hand.
|
||||
*/
|
||||
|
||||
/* @group Base */
|
||||
.chosen-container {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
font-size: 13px;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.chosen-container * {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.chosen-container .chosen-drop {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: -9999px;
|
||||
z-index: 1010;
|
||||
width: 100%;
|
||||
border: 1px solid #aaa;
|
||||
border-top: 0;
|
||||
background: #fff;
|
||||
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.chosen-container.chosen-with-drop .chosen-drop {
|
||||
left: 0;
|
||||
}
|
||||
.chosen-container a {
|
||||
cursor: pointer;
|
||||
}
|
||||
.chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
|
||||
margin-right: 4px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
font-weight: normal;
|
||||
color: #999999;
|
||||
}
|
||||
.chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
|
||||
content: ":";
|
||||
padding-left: 2px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Single Chosen */
|
||||
.chosen-container-single .chosen-single {
|
||||
position: relative;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
padding: 0 0 0 8px;
|
||||
height: 35px;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 5px;
|
||||
background-color: #fff;
|
||||
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
|
||||
background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background-clip: padding-box;
|
||||
box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||
color: #444;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
line-height: 30px;
|
||||
}
|
||||
.chosen-container-single .chosen-default {
|
||||
color: #999;
|
||||
}
|
||||
.chosen-container-single .chosen-single span {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
margin-right: 26px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.chosen-container-single .chosen-single-with-deselect span {
|
||||
margin-right: 38px;
|
||||
}
|
||||
.chosen-container-single .chosen-single abbr {
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 26px;
|
||||
display: block;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
background: url('chosen-sprite.png') -42px 1px no-repeat;
|
||||
font-size: 1px;
|
||||
}
|
||||
.chosen-container-single .chosen-single abbr:hover {
|
||||
background-position: -42px -10px;
|
||||
}
|
||||
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
|
||||
background-position: -42px -10px;
|
||||
}
|
||||
.chosen-container-single .chosen-single div {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
display: block;
|
||||
width: 18px;
|
||||
height: 100%;
|
||||
}
|
||||
.chosen-container-single .chosen-single div b {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url('chosen-sprite.png') no-repeat 0px 7px;
|
||||
}
|
||||
.chosen-container-single .chosen-search {
|
||||
position: relative;
|
||||
z-index: 1010;
|
||||
margin: 0;
|
||||
padding: 3px 4px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.chosen-container-single .chosen-search input[type="text"] {
|
||||
margin: 1px 0;
|
||||
padding: 4px 20px 4px 5px;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
outline: 0;
|
||||
border: 1px solid #aaa;
|
||||
background: white url('chosen-sprite.png') no-repeat 100% -20px;
|
||||
background: url('chosen-sprite.png') no-repeat 100% -20px;
|
||||
font-size: 1em;
|
||||
font-family: sans-serif;
|
||||
line-height: normal;
|
||||
border-radius: 0;
|
||||
}
|
||||
.chosen-container-single .chosen-drop {
|
||||
margin-top: -1px;
|
||||
border-radius: 0 0 4px 4px;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
|
||||
position: absolute;
|
||||
left: -9999px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Results */
|
||||
.chosen-container .chosen-results {
|
||||
color: #444;
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
max-height: 240px;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
.chosen-container .chosen-results li {
|
||||
display: none;
|
||||
margin: 0;
|
||||
padding: 5px 6px;
|
||||
list-style: none;
|
||||
line-height: 15px;
|
||||
word-wrap: break-word;
|
||||
-webkit-touch-callout: none;
|
||||
}
|
||||
.chosen-container .chosen-results li.active-result {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
.chosen-container .chosen-results li.disabled-result {
|
||||
display: list-item;
|
||||
color: #ccc;
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-container .chosen-results li.highlighted {
|
||||
background-color: #3875d7;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
|
||||
background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
color: #fff;
|
||||
}
|
||||
.chosen-container .chosen-results li.no-results {
|
||||
color: #777;
|
||||
display: list-item;
|
||||
background: #f4f4f4;
|
||||
}
|
||||
.chosen-container .chosen-results li.group-result {
|
||||
display: list-item;
|
||||
font-weight: bold;
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-container .chosen-results li.group-option {
|
||||
padding-left: 15px;
|
||||
}
|
||||
.chosen-container .chosen-results li em {
|
||||
font-style: normal;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Multi Chosen */
|
||||
.chosen-container-multi .chosen-choices {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
width: 100%;
|
||||
height: auto !important;
|
||||
height: 1%;
|
||||
border: 1px solid #aaa;
|
||||
background-color: #fff;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
||||
background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
cursor: text;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li {
|
||||
float: left;
|
||||
list-style: none;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-field {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
|
||||
margin: 1px 0;
|
||||
padding: 0;
|
||||
height: 25px;
|
||||
outline: 0;
|
||||
border: 0 !important;
|
||||
background: transparent !important;
|
||||
box-shadow: none;
|
||||
color: #999;
|
||||
font-size: 100%;
|
||||
font-family: sans-serif;
|
||||
line-height: normal;
|
||||
border-radius: 0;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice {
|
||||
position: relative;
|
||||
margin: 3px 5px 3px 0;
|
||||
padding: 3px 20px 3px 5px;
|
||||
border: 1px solid #aaa;
|
||||
max-width: 100%;
|
||||
border-radius: 3px;
|
||||
background-color: #eeeeee;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
||||
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-size: 100% 19px;
|
||||
background-repeat: repeat-x;
|
||||
background-clip: padding-box;
|
||||
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
|
||||
color: #333;
|
||||
line-height: 13px;
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice span {
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
right: 3px;
|
||||
display: block;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
background: url('chosen-sprite.png') -42px 1px no-repeat;
|
||||
font-size: 1px;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
|
||||
background-position: -42px -10px;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice-disabled {
|
||||
padding-right: 5px;
|
||||
border: 1px solid #ccc;
|
||||
background-color: #e4e4e4;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
||||
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
color: #666;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice-focus {
|
||||
background: #d4d4d4;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
|
||||
background-position: -42px -10px;
|
||||
}
|
||||
.chosen-container-multi .chosen-results {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.chosen-container-multi .chosen-drop .result-selected {
|
||||
display: list-item;
|
||||
color: #ccc;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Active */
|
||||
.chosen-container-active .chosen-single {
|
||||
border: 1px solid #5897fb;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.chosen-container-active.chosen-with-drop .chosen-single {
|
||||
border: 1px solid #aaa;
|
||||
-moz-border-radius-bottomright: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
-moz-border-radius-bottomleft: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
|
||||
background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
box-shadow: 0 1px 0 #fff inset;
|
||||
}
|
||||
.chosen-container-active.chosen-with-drop .chosen-single div {
|
||||
border-left: none;
|
||||
background: transparent;
|
||||
}
|
||||
.chosen-container-active.chosen-with-drop .chosen-single div b {
|
||||
background-position: -18px 7px;
|
||||
}
|
||||
.chosen-container-active .chosen-choices {
|
||||
border: 1px solid #5897fb;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
|
||||
color: #222 !important;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Disabled Support */
|
||||
.chosen-disabled {
|
||||
opacity: 0.5 !important;
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-disabled .chosen-single {
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Right to Left */
|
||||
.chosen-rtl {
|
||||
text-align: right;
|
||||
}
|
||||
.chosen-rtl .chosen-single {
|
||||
overflow: visible;
|
||||
padding: 0 8px 0 0;
|
||||
}
|
||||
.chosen-rtl .chosen-single span {
|
||||
margin-right: 0;
|
||||
margin-left: 26px;
|
||||
direction: rtl;
|
||||
}
|
||||
.chosen-rtl .chosen-single-with-deselect span {
|
||||
margin-left: 38px;
|
||||
}
|
||||
.chosen-rtl .chosen-single div {
|
||||
right: auto;
|
||||
left: 3px;
|
||||
}
|
||||
.chosen-rtl .chosen-single abbr {
|
||||
right: auto;
|
||||
left: 26px;
|
||||
}
|
||||
.chosen-rtl .chosen-choices li {
|
||||
float: right;
|
||||
}
|
||||
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
|
||||
direction: rtl;
|
||||
}
|
||||
.chosen-rtl .chosen-choices li.search-choice {
|
||||
margin: 3px 5px 3px 0;
|
||||
padding: 3px 5px 3px 19px;
|
||||
}
|
||||
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
|
||||
right: auto;
|
||||
left: 4px;
|
||||
}
|
||||
.chosen-rtl.chosen-container-single-nosearch .chosen-search,
|
||||
.chosen-rtl .chosen-drop {
|
||||
left: 9999px;
|
||||
}
|
||||
.chosen-rtl.chosen-container-single .chosen-results {
|
||||
margin: 0 0 4px 4px;
|
||||
padding: 0 4px 0 0;
|
||||
}
|
||||
.chosen-rtl .chosen-results li.group-option {
|
||||
padding-right: 15px;
|
||||
padding-left: 0;
|
||||
}
|
||||
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
|
||||
border-right: none;
|
||||
}
|
||||
.chosen-rtl .chosen-search input[type="text"] {
|
||||
padding: 4px 5px 4px 20px;
|
||||
background: white url('chosen-sprite.png') no-repeat -30px -20px;
|
||||
background: url('chosen-sprite.png') no-repeat -30px -20px;
|
||||
direction: rtl;
|
||||
}
|
||||
.chosen-rtl.chosen-container-single .chosen-single div b {
|
||||
background-position: 6px 2px;
|
||||
}
|
||||
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
|
||||
background-position: -12px 2px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Retina compatibility */
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) {
|
||||
.chosen-rtl .chosen-search input[type="text"],
|
||||
.chosen-container-single .chosen-single abbr,
|
||||
.chosen-container-single .chosen-single div b,
|
||||
.chosen-container-single .chosen-search input[type="text"],
|
||||
.chosen-container-multi .chosen-choices .search-choice .search-choice-close,
|
||||
.chosen-container .chosen-results-scroll-down span,
|
||||
.chosen-container .chosen-results-scroll-up span {
|
||||
background-image: url('chosen-sprite@2x.png') !important;
|
||||
background-size: 52px 37px !important;
|
||||
background-repeat: no-repeat !important;
|
||||
}
|
||||
}
|
||||
/* @end */
|
||||
1258
main/inc/lib/javascript/chosen/chosen.jquery.js
Normal file
2
main/inc/lib/javascript/chosen/chosen.jquery.min.js
vendored
Normal file
64
main/inc/lib/javascript/ckeditor/config_js.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/* For licensing terms, see /license.txt */
|
||||
|
||||
use Chamilo\CoreBundle\Component\Utils\ChamiloApi;
|
||||
|
||||
require_once __DIR__.'/../../../global.inc.php';
|
||||
|
||||
$moreButtonsInMaximizedMode = false;
|
||||
if (api_get_setting('more_buttons_maximized_mode') === 'true') {
|
||||
$moreButtonsInMaximizedMode = true;
|
||||
}
|
||||
|
||||
$template = new Template();
|
||||
$template->assign(
|
||||
'bootstrap_css',
|
||||
api_get_path(WEB_PUBLIC_PATH).'assets/bootstrap/dist/css/bootstrap.min.css'
|
||||
);
|
||||
$template->assign(
|
||||
'font_awesome_css',
|
||||
api_get_path(WEB_PUBLIC_PATH).'assets/fontawesome/css/font-awesome.min.css'
|
||||
);
|
||||
$template->assign(
|
||||
'css_editor',
|
||||
ChamiloApi::getEditorBlockStylePath()
|
||||
);
|
||||
$template->assign('moreButtonsInMaximizedMode', $moreButtonsInMaximizedMode);
|
||||
$courseId = api_get_course_int_id();
|
||||
$courseCondition = '';
|
||||
if (!empty($courseId)) {
|
||||
$courseCondition = api_get_cidreq();
|
||||
}
|
||||
$template->assign('course_condition', $courseCondition);
|
||||
|
||||
$languageList = api_get_languages();
|
||||
$list = [];
|
||||
foreach ($languageList['all'] as $language) {
|
||||
$list[] = $language['isocode'].':'.$language['original_name'];
|
||||
}
|
||||
|
||||
$template->assign('language_list', implode("','", $list));
|
||||
|
||||
$enterMode = api_get_configuration_value('ck_editor_enter_mode_value');
|
||||
if (!empty($enterMode)) {
|
||||
$template->assign('enter_mode', $enterMode);
|
||||
}
|
||||
|
||||
$fontNames = [];
|
||||
foreach (api_get_configuration_sub_value('ck_editor_font_names/names', [
|
||||
'Arial' => 'Arial, Helvetica, sans-serif',
|
||||
'Comic Sans MS' => 'Comic Sans MS, cursive',
|
||||
'Courier New' => 'Courier New, Courier, monospace',
|
||||
'Georgia' => 'Georgia, serif',
|
||||
'Lucida Sans Unicode' => 'Lucida Sans Unicode, Lucida Grande, sans-serif',
|
||||
'Tahoma' => 'Tahoma, Geneva, sans-serif',
|
||||
'Times New Roman' => 'Times New Roman, Times, serif',
|
||||
'Trebuchet MS' => 'Trebuchet MS, Helvetica, sans-serif',
|
||||
'Verdana' => 'Verdana, Geneva, sans-serif',
|
||||
]) as $label => $value) {
|
||||
$fontNames[] = "$label/$value";
|
||||
}
|
||||
$template->assign('font_names', join(';', $fontNames));
|
||||
|
||||
header('Content-type: application/x-javascript');
|
||||
$template->display($template->get_template('javascript/editor/ckeditor/config_js.tpl'));
|
||||
@@ -0,0 +1,255 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<!--
|
||||
* Chamilo LMS
|
||||
*
|
||||
* Copyright (c) 2009-2010 Ivan Tcholakov <ivantcholakov@gmail.com>
|
||||
* Copyright (c) 2009 Dokeos SPRL
|
||||
*
|
||||
* License:
|
||||
* GNU Lesser General Public License, Version 3, 29 June 2007
|
||||
* by Free Software Foundation, Inc. (http://www.gnu.org/licenses/lgpl.html)
|
||||
-->
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>AsciiMath Editor</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
|
||||
<script type="text/javascript">
|
||||
document.write( '<scr' + 'ipt type="text/javascript" src="' + window.parent.frameElement._DialogArguments.Editor.FCKConfig.ScriptASCIIMathML + '"><\/scr' + 'ipt>' ) ;
|
||||
</script>
|
||||
|
||||
<script src="../../dialog/common/fck_dialog_common.js" type="text/javascript"></script>
|
||||
<script src="fck_asciimath.js" type="text/javascript"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
document.write( FCKTools.GetStyleHtml( GetCommonDialogCss() ) ) ;
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
body, td, input, textarea, select, label, button { font-family: Arial, Verdana, Geneva, helvetica, sans-serif; font-size: 11px; }
|
||||
form { padding: 0px; margin: 0px; }
|
||||
form p { margin-top: 5px; margin-bottom: 5px; }
|
||||
|
||||
#clickInput
|
||||
{
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
background-color: white;
|
||||
text-align: center;
|
||||
}
|
||||
#clickInput td
|
||||
{
|
||||
border: 1px solid gray;
|
||||
font-size: 1.1em;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#clickInput img {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#inputText, #outputNode
|
||||
{
|
||||
padding: 5px;
|
||||
background-color: white;
|
||||
width: 98%;
|
||||
height: 80px;
|
||||
font-size: 1.3em;
|
||||
border: 1px solid darkgrey;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.Hand
|
||||
{
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body scroll="no" style="overflow: hidden;">
|
||||
|
||||
<!--
|
||||
Table modified from CharacterMap for ASCIIMathML by Peter Jipsen
|
||||
HTMLSource based on HTMLArea XTD 1.5 (http://mosforge.net/projects/htmlarea3xtd/) modified by Holger Hees
|
||||
Original Author - Bernhard Pfeifer novocaine@gmx.net
|
||||
-->
|
||||
<table id="clickInput">
|
||||
<tr>
|
||||
<td colspan="3" class="Hand" title="(x+1)/(x-1)" onclick="javascript: Set('(x+1)/(x-1)');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/x1x1.png" /></td>
|
||||
<td colspan="2" class="Hand" title="x^(m+n)" onclick="javascript: Set('x^(m+n)');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/xmn.png" /></td>
|
||||
<td colspan="2" class="Hand" title="x_(mn)" onclick="javascript: Set('x_(mn)');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/x_mn.png" /></td>
|
||||
<td colspan="2" class="Hand" title="sqrt(x)" onclick="javascript: Set('sqrt(x)');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/sqrtx.png" /></td>
|
||||
<td colspan="3" class="Hand" title="root(n)(x)" onclick="javascript: Set('root(n)(x)');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/rootnx.png" /></td>
|
||||
<td colspan="3" class="Hand" title="{(1 if x>=0),(0 if x<0):}" onclick="javascript: Set('{(1 if x>=0),(0 if x<0):}');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ifx.png" /></td>
|
||||
<td colspan="2" class="Hand" title=""text"" onclick="javascript: Set('"text"');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/text.png" /></td>
|
||||
</tr><tr>
|
||||
<td colspan="2" class="Hand" title="dy/dx" onclick="javascript: Set('dy/dx');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/dydx.png" /></td>
|
||||
<td colspan="3" class="Hand" title="lim_(x->oo)" onclick="javascript: Set('lim_(x->oo)');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/lim.png" /></td>
|
||||
<td colspan="3" class="Hand" title="sum_(n=1)^oo" onclick="javascript: Set('sum_(n=1)^oo');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/sumn.png" /></td>
|
||||
<td colspan="3" class="Hand" title="int_a^bf(x)dx" onclick="javascript: Set('int_a^bf(x)dx');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/intab.png" /></td>
|
||||
<td colspan="3" class="Hand" title="[[a,b],[c,d]]" onclick="javascript: Set('[[a,b],[c,d]]');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/abcd.png" /></td>
|
||||
<td colspan="2" class="Hand" title="((n),(k))" onclick="javascript: Set('((n),(k))');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/nk.png" /></td>
|
||||
</tr><tr>
|
||||
<td class="Hand" title="*" onclick="javascript: Set('*');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/dot.png" /></td>
|
||||
<td class="Hand" title="**" onclick="javascript: Set('**');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/star.png" /></td>
|
||||
<td class="Hand" title="//" onclick="javascript: Set('//');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/slash.png" /></td>
|
||||
<td class="Hand" title="\\" onclick="javascript: Set('\\\\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/backslash.png" /></td>
|
||||
<td class="Hand" title="xx" onclick="javascript: Set('xx');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/times.png" /></td>
|
||||
<td class="Hand" title="-:" onclick="javascript: Set('-:');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/div.png" /></td>
|
||||
<td class="Hand" title="@" onclick="javascript: Set('@');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/circ.png" /></td>
|
||||
<td class="Hand" title="o+" onclick="javascript: Set('o+');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/oplus.png" /></td>
|
||||
<td class="Hand" title="ox" onclick="javascript: Set('ox');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/otimes.png" /></td>
|
||||
<td class="Hand" title="o." onclick="javascript: Set('o.');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/odot.png" /></td>
|
||||
<td class="Hand" title="sum" onclick="javascript: Set('sum');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/sum.png" /></td>
|
||||
<td class="Hand" title="prod" onclick="javascript: Set('prod');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/prod.png" /></td>
|
||||
<td class="Hand" title="^^" onclick="javascript: Set('^^');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/wedge.png" /></td>
|
||||
<td class="Hand" title="^^^" onclick="javascript: Set('^^^');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/bigwedge.png" /></td>
|
||||
<td class="Hand" title="vv" onclick="javascript: Set('vv');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/vee.png" /></td>
|
||||
<td class="Hand" title="vvv" onclick="javascript: Set('vvv');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/bigvee.png" /></td>
|
||||
</tr><tr>
|
||||
<td class="Hand" title="!=" onclick="javascript: Set('!=');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ne.png" /></td>
|
||||
<td class="Hand" title="<=" onclick="javascript: Set('<=');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/le.png" /></td>
|
||||
<td class="Hand" title=">=" onclick="javascript: Set('>=');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ge.png" /></td>
|
||||
<td class="Hand" title="-<" onclick="javascript: Set('-<');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/prec.png" /></td>
|
||||
<td class="Hand" title=">-" onclick="javascript: Set('>-');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/succ.png" /></td>
|
||||
<td class="Hand" title="in" onclick="javascript: Set('in');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/in.png" /></td>
|
||||
<td class="Hand" title="!in" onclick="javascript: Set('!in');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/notin.png" /></td>
|
||||
<td class="Hand" title="sub" onclick="javascript: Set('sub');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/subset.png" /></td>
|
||||
<td class="Hand" title="sup" onclick="javascript: Set('sup');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/supset.png" /></td>
|
||||
<td class="Hand" title="sube" onclick="javascript: Set('sube');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/subseteq.png" /></td>
|
||||
<td class="Hand" title="supe" onclick="javascript: Set('supe');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/supseteq.png" /></td>
|
||||
<td class="Hand" title="O/" onclick="javascript: Set('O/');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/emptyset.png" /></td>
|
||||
<td class="Hand" title="nn" onclick="javascript: Set('nn');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/cap.png" /></td>
|
||||
<td class="Hand" title="nnn" onclick="javascript: Set('nnn');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/bigcap.png" /></td>
|
||||
<td class="Hand" title="uu" onclick="javascript: Set('uu');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/cup.png" /></td>
|
||||
<td class="Hand" title="uuu" onclick="javascript: Set('uuu');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/bigcup.png" /></td>
|
||||
</tr><tr>
|
||||
<td class="Hand" title="and" onclick="javascript: Set('and');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/text_and.png" /></td>
|
||||
<td class="Hand" title="or" onclick="javascript: Set('or');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/text_or.png" /></td>
|
||||
<td class="Hand" title="not" onclick="javascript: Set('not');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/not.png" /></td>
|
||||
<td class="Hand" title="=>" onclick="javascript: Set('=>');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/rightarrow.png" /></td>
|
||||
<td class="Hand" title="if" onclick="javascript: Set('if');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/if.png" /></td>
|
||||
<td class="Hand" title="<=>" onclick="javascript: Set('<=>');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/leftrightarrow.png" /></td>
|
||||
<td class="Hand" title="AA" onclick="javascript: Set('AA');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/forall.png" /></td>
|
||||
<td class="Hand" title="EE" onclick="javascript: Set('EE');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/exists.png" /></td>
|
||||
<td class="Hand" title="_|_" onclick="javascript: Set('_|_');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/bot.png" /></td>
|
||||
<td class="Hand" title="TT" onclick="javascript: Set('TT');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/top.png" /></td>
|
||||
<td class="Hand" title="|--" onclick="javascript: Set('|--');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/vdash.png" /></td>
|
||||
<td class="Hand" title="|==" onclick="javascript: Set('|==');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/models.png" /></td>
|
||||
<td class="Hand" title="-=" onclick="javascript: Set('-=');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/equiv.png" /></td>
|
||||
<td class="Hand" title="~=" onclick="javascript: Set('~=');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/cong.png" /></td>
|
||||
<td class="Hand" title="~~" onclick="javascript: Set('~~');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/approx.png" /></td>
|
||||
<td class="Hand" title="prop" onclick="javascript: Set('prop');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/propto.png" /></td>
|
||||
</tr><tr>
|
||||
<td class="Hand" title="int" onclick="javascript: Set('int');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/int.png" /></td>
|
||||
<td class="Hand" title="oint" onclick="javascript: Set('oint');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/oint.png" /></td>
|
||||
<td class="Hand" title="del" onclick="javascript: Set('del');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/partial.png" /></td>
|
||||
<td class="Hand" title="grad" onclick="javascript: Set('grad');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/nabla.png" /></td>
|
||||
<td class="Hand" title="+-" onclick="javascript: Set('+-');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/pm.png" /></td>
|
||||
<td class="Hand" title="oo" onclick="javascript: Set('oo');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/infty.png" /></td>
|
||||
<td class="Hand" title="A\ B (space between A and B)" onclick="javascript: Set('A\\ B');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/space.png" /></td>
|
||||
<td class="Hand" title="AquadB (double space between A and B)" onclick="javascript: Set('AquadB');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/quad.png" /></td>
|
||||
<td class="Hand" title="diamond" onclick="javascript: Set('diamond');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/diamond.png" /></td>
|
||||
<td class="Hand" title="square" onclick="javascript: Set('square');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/square.png" /></td>
|
||||
<td class="Hand" title="|__" onclick="javascript: Set('|__');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/lfloor.png" /></td>
|
||||
<td class="Hand" title="__|" onclick="javascript: Set('__|');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/rfloor.png" /></td>
|
||||
<td class="Hand" title="|~" onclick="javascript: Set('|~');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/lceil.png" /></td>
|
||||
<td class="Hand" title="~|" onclick="javascript: Set('~|');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/rceil.png" /></td>
|
||||
<td class="Hand" title="<<x>>" onclick="javascript: Set('<<x>>');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/braxcket.png" /></td>
|
||||
<td class="Hand" title="/_" onclick="javascript: Set('/_');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/angle.png" /></td>
|
||||
</tr><tr>
|
||||
<td class="Hand" title="uarr" onclick="javascript: Set('uarr');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/uarr.png" /></td>
|
||||
<td class="Hand" title="darr" onclick="javascript: Set('darr');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/darr.png" /></td>
|
||||
<td class="Hand" title="larr" onclick="javascript: Set('larr');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/larr.png" /></td>
|
||||
<td class="Hand" title="->" onclick="javascript: Set('->');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/rarr.png" /></td>
|
||||
<td class="Hand" title="|->" onclick="javascript: Set('|->');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/mapsto.png" /></td>
|
||||
<td class="Hand" title="harr" onclick="javascript: Set('harr');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/harr.png" /></td>
|
||||
<td class="Hand" title="lArr" onclick="javascript: Set('lArr');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/llarr.png" /></td>
|
||||
<td class="Hand" title="rArr" onclick="javascript: Set('rArr');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/rrarr.png" /></td>
|
||||
<td class="Hand" title="hArr" onclick="javascript: Set('hArr');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/hharr.png" /></td>
|
||||
<td class="Hand" title="hata" onclick="javascript: Set('hata');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/hata.png" /></td>
|
||||
<td class="Hand" title="ula" onclick="javascript: Set('ula');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ula.png" /></td>
|
||||
<td class="Hand" title="dota" onclick="javascript: Set('dota');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/dota.png" /></td>
|
||||
<td class="Hand" title="ddota" onclick="javascript: Set('ddota');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ddota.png" /></td>
|
||||
<td class="Hand" title="veca" onclick="javascript: Set('veca');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/veca.png" /></td>
|
||||
<td class="Hand" title="bara" onclick="javascript: Set('bara');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/bara.png" /></td>
|
||||
<td class="Hand" title=":." onclick="javascript: Set(':.');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/therefore.png" /></td>
|
||||
</tr><tr>
|
||||
<td class="Hand" title="NN" onclick="javascript: Set('NN');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/nn.png" /></td>
|
||||
<td class="Hand" title="ZZ" onclick="javascript: Set('ZZ');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/zz.png" /></td>
|
||||
<td class="Hand" title="QQ" onclick="javascript: Set('QQ');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/qq.png" /></td>
|
||||
<td class="Hand" title="RR" onclick="javascript: Set('RR');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/rr.png" /></td>
|
||||
<td class="Hand" title="CC" onclick="javascript: Set('CC');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/cc.png" /></td>
|
||||
<td class="Hand" title="bbA" onclick="javascript: Set('bbA');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/bba.png" /></td>
|
||||
<td class="Hand" title="bbbA" onclick="javascript: Set('bbbA');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/bbba.png" /></td>
|
||||
<td class="Hand" title="ccA" onclick="javascript: Set('ccA');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/cca.png" /></td>
|
||||
<td class="Hand" title="frA" onclick="javascript: Set('frA');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/fra.png" /></td>
|
||||
<td class="Hand" title="sfA" onclick="javascript: Set('sfA');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/sfa.png" /></td>
|
||||
<td class="Hand" title="ttA" onclick="javascript: Set('ttA');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/tta.png" /></td>
|
||||
<td colspan="3" class="Hand" title="stackrel(->)(+)" onclick="javascript: Set('stackrel(->)(+)');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/stackrel.png" /></td>
|
||||
<td class="Hand" title="aleph" onclick="javascript: Set('aleph');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/aleph.png" /></td>
|
||||
<td class="Hand" title="upsilon" onclick="javascript: Set('upsilon');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/upsilon.png" /></td>
|
||||
</tr><tr>
|
||||
<td class="Hand" title="alpha" onclick="javascript: Set('alpha');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/alpha.png" /></td>
|
||||
<td class="Hand" title="beta" onclick="javascript: Set('beta');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/beta.png" /></td>
|
||||
<td class="Hand" title="gamma" onclick="javascript: Set('gamma');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/gamma.png" /></td>
|
||||
<td class="Hand" title="Gamma" onclick="javascript: Set('Gamma');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ggamma.png" /></td>
|
||||
<td class="Hand" title="delta" onclick="javascript: Set('delta');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/delta.png" /></td>
|
||||
<td class="Hand" title="Delta" onclick="javascript: Set('Delta');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ddelta.png" /></td>
|
||||
<td class="Hand" title="epsi" onclick="javascript: Set('epsi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/epsilon.png" /></td>
|
||||
<td class="Hand" title="zeta" onclick="javascript: Set('zeta');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/zeta.png" /></td>
|
||||
<td class="Hand" title="eta" onclick="javascript: Set('eta');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/eta.png" /></td>
|
||||
<td class="Hand" title="theta" onclick="javascript: Set('theta');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/theta.png" /></td>
|
||||
<td class="Hand" title="Theta" onclick="javascript: Set('Theta');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ttheta.png" /></td>
|
||||
<td class="Hand" title="iota" onclick="javascript: Set('iota');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/iota.png" /></td>
|
||||
<td class="Hand" title="kappa" onclick="javascript: Set('kappa');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/kappa.png" /></td>
|
||||
<td class="Hand" title="lambda" onclick="javascript: Set('lambda');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/lambda.png" /></td>
|
||||
<td class="Hand" title="Lambda" onclick="javascript: Set('Lambda');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/llambda.png" /></td>
|
||||
<td class="Hand" title="mu" onclick="javascript: Set('mu');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/mu.png" /></td>
|
||||
</tr><tr>
|
||||
<td class="Hand" title="nu" onclick="javascript: Set('nu');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/nu.png" /></td>
|
||||
<td class="Hand" title="pi" onclick="javascript: Set('pi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/pi.png" /></td>
|
||||
<td class="Hand" title="Pi" onclick="javascript: Set('Pi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ppi.png" /></td>
|
||||
<td class="Hand" title="rho" onclick="javascript: Set('rho');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/rho.png" /></td>
|
||||
<td class="Hand" title="sigma" onclick="javascript: Set('sigma');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/sigma.png" /></td>
|
||||
<td class="Hand" title="Sigma" onclick="javascript: Set('Sigma');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ssigma.png" /></td>
|
||||
<td class="Hand" title="tau" onclick="javascript: Set('tau');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/tau.png" /></td>
|
||||
<td class="Hand" title="xi" onclick="javascript: Set('xi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/xi.png" /></td>
|
||||
<td class="Hand" title="Xi" onclick="javascript: Set('Xi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/xxi.png" /></td>
|
||||
<td class="Hand" title="phi" onclick="javascript: Set('phi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/phi.png" /></td>
|
||||
<td class="Hand" title="Phi" onclick="javascript: Set('Phi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/pphi.png" /></td>
|
||||
<td class="Hand" title="chi" onclick="javascript: Set('chi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/chi.png" /></td>
|
||||
<td class="Hand" title="psi" onclick="javascript: Set('psi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/psi.png" /></td>
|
||||
<td class="Hand" title="Psi" onclick="javascript: Set('Psi');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/ppsi.png" /></td>
|
||||
<td class="Hand" title="omega" onclick="javascript: Set('omega');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/omega.png" /></td>
|
||||
<td class="Hand" title="Omega" onclick="javascript: Set('Omega');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="images/oomega.png" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
<form action="javascript: void(0);">
|
||||
<table style="width: 100%; border: none;">
|
||||
<tr>
|
||||
<td style="width:50%;" nowrap="nowrap"><span fckLang="DlgAsciiMathInput">Input</span> <input id="clear" type="button" fckLang="DlgAsciiMathClear" onclick="javascript: Clear();" style="width: 100px; font-size: 10px;" value="Clear" /> <input id="delete" type="button" fckLang="DlgAsciiMathDelete" onclick="javascript: Delete();" style="width: 100px; font-size: 10px;" value="Delete" /> </td>
|
||||
<td style="width:50%;"><input id="show_mathml" type="button" fckLang="DlgAsciiMathShowMathML" onclick="javascript: ShowMathML();" style="float: right; font-size: 10px; display: none;" value="Show MathML" /><span fckLang="DlgAsciiMathPreview">Preview</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table style="width: 100%; border: none;">
|
||||
<tr>
|
||||
<td style="width:50%; min-width: 300px; max-width: 435px;">
|
||||
<textarea id="inputText" onkeyup="javascript: Preview();"></textarea>
|
||||
</td>
|
||||
<td style="width:50%; min-width: 300px; max-width: 435px;">
|
||||
<div id="outputNode"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan="2">
|
||||
<span fckLang="DlgAsciiMathBasedOn">Based on ASCIIMathML by </span><a href="http://www.chapman.edu/~jipsen" onclick="javascript: window.open(this.href,'_blank','');return false;">Peter Jipsen</a>,
|
||||
<a href="http://www.chapman.edu" onclick="javascript: window.open(this.href,'_blank','');return false;">Chapman University</a><br />
|
||||
<span fckLang="DlgAsciiMathForMoreInfo">For more information on AsciiMathML visit this page: </span><a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html" onclick="javascript: window.open(this.href,'_blank','');return false;">http://www1.chapman.edu/~jipsen/mathml/asciimath.html</a></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,282 @@
|
||||
/*
|
||||
* Chamilo LMS
|
||||
*
|
||||
* Copyright (c) 2009-2010 Ivan Tcholakov <ivantcholakov@gmail.com>
|
||||
* Copyright (c) 2009 Dokeos SPRL
|
||||
*
|
||||
* License:
|
||||
* GNU Lesser General Public License, Version 3, 29 June 2007
|
||||
* by Free Software Foundation, Inc. (http://www.gnu.org/licenses/lgpl.html)
|
||||
*/
|
||||
|
||||
var dialog = window.parent ;
|
||||
var oEditor = dialog.InnerDialogLoaded() ;
|
||||
var FCK = oEditor.FCK ;
|
||||
var FCKLang = oEditor.FCKLang ;
|
||||
var FCKConfig = oEditor.FCKConfig ;
|
||||
var FCKTools = oEditor.FCKTools ;
|
||||
var FCKBrowserInfo = oEditor.FCKBrowserInfo ;
|
||||
var FCKUndo = oEditor.FCKUndo ;
|
||||
var FCKAsciiMath = oEditor.FCKAsciiMath ;
|
||||
|
||||
// Set the language direction.
|
||||
window.document.dir = FCKLang.Dir ;
|
||||
|
||||
FCKLang["DlgAsciiIncompatibleBrowser"] = FCKLang["DlgAsciiIncompatibleBrowser"] ? FCKLang["DlgAsciiIncompatibleBrowser"] : 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
|
||||
FCKLang['DlgAsciiIncompatibleBrowser'] = FCKLang['DlgAsciiIncompatibleBrowser'].replace( '%s1', '<a href="http://www.mozilla.com" onclick="javascript: window.open(this.href,\'_blank\');return false;">Mozilla Firefox 1.5+</a>, <a href="http://www.opera.com" onclick="javascript: window.open(this.href,\'_blank\');return false;">Opera 9.5+</a>' ) ;
|
||||
FCKLang['DlgAsciiIncompatibleBrowser'] = FCKLang['DlgAsciiIncompatibleBrowser'].replace( '%s2', '<a href="http://www.dessci.com/en/products/mathplayer/" onclick="javascript: window.open(this.href,\'_blank\');return false;">MathPlayer</a>' ) ;
|
||||
|
||||
FCKLang["DlgAsciiMathOldIE"] = FCKLang["DlgAsciiMathOldIE"] ? FCKLang["DlgAsciiMathOldIE"] : 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
|
||||
FCKLang['DlgAsciiMathOldIE'] = FCKLang['DlgAsciiMathOldIE'].replace( '%s', '<a href="http://www.dessci.com/en/products/mathplayer/" onclick="javascript: window.open(this.href,\'_blank\');return false;">http://www.dessci.com/en/products/mathplayer/</a>' ) ;
|
||||
|
||||
FCKLang['DlgAsciiMathInstallMathPlayer'] = FCKLang['DlgAsciiMathInstallMathPlayer'] ? FCKLang['DlgAsciiMathInstallMathPlayer'] : 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
|
||||
FCKLang['DlgAsciiMathInstallMathPlayer'] = FCKLang['DlgAsciiMathInstallMathPlayer'].replace( '%s', '<a href="http://www.dessci.com/en/products/mathplayer/" onclick="javascript: window.open(this.href,\'_blank\');return false;">http://www.dessci.com/en/products/mathplayer/</a>' ) ;
|
||||
|
||||
FCKLang['DlgAsciiMathOldMathPlayer'] = FCKLang['DlgAsciiMathOldMathPlayer'] ? FCKLang['DlgAsciiMathOldMathPlayer'] : 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;
|
||||
FCKLang['DlgAsciiMathOldMathPlayer'] = FCKLang['DlgAsciiMathOldMathPlayer'].replace( '%s', '<a href="http://www.dessci.com/en/products/mathplayer/" onclick="javascript: window.open(this.href,\'_blank\');return false;">http://www.dessci.com/en/products/mathplayer/</a>' ) ;
|
||||
|
||||
// Settings for ASCIIMathML.js
|
||||
// Checking for native MathML support, it is always needed for this dialog.
|
||||
var checkForMathML = true;
|
||||
// Suppressing the built-in notification messages when the browser is incompatible.
|
||||
var notifyIfNoMathML = false ;
|
||||
var alertIfNoMathML = false ;
|
||||
var notifyIfNoSVG = false ;
|
||||
var alertIfNoSVG = false ;
|
||||
// Formula translation will be called explicitly in this dialog after it loads.
|
||||
var translateOnLoad = false ;
|
||||
// Formula tooltips are hard-coded in this dialog, there is no need they to be generated.
|
||||
var showasciiformulaonhover = false ;
|
||||
// Font size of the formulas in this dialog.
|
||||
var mathfontsize = "1.1em" ;
|
||||
|
||||
// oSpanAM: The actual selected span element in the editor that contains the formula.
|
||||
var oSpanAM = FCKAsciiMath.FindFormulaContainer( FCKAsciiMath.GetSearchElementFromSelection() ) ;
|
||||
if ( oSpanAM )
|
||||
{
|
||||
FCK.Selection.SelectNode( oSpanAM ) ;
|
||||
}
|
||||
|
||||
function LoadSelection()
|
||||
{
|
||||
GetE( 'inputText' ).value = FCKAsciiMath.GetFormula( oSpanAM ) ;
|
||||
Preview() ;
|
||||
}
|
||||
|
||||
function Ok()
|
||||
{
|
||||
if ( FCKBrowserInfo.IsIE )
|
||||
{
|
||||
if ( oSpanAM )
|
||||
{
|
||||
FCK.Selection.SelectNode( oSpanAM ) ;
|
||||
// For IE: Before updating, we have to move the selection outside the formula
|
||||
// in order to prevent "Unspecified error".
|
||||
var span_target = FCK.EditorDocument.createElement( 'span' ) ;
|
||||
span_target.innerHTML = ' ' ;
|
||||
span_target = oSpanAM.parentNode.insertBefore( span_target, oSpanAM ) ;
|
||||
FCK.Selection.SelectNode( span_target ) ;
|
||||
}
|
||||
}
|
||||
|
||||
var formula = GetE( 'inputText' ).value ;
|
||||
|
||||
if ( formula != '' )
|
||||
{
|
||||
FCK.InsertHtml( '<span class="AM">`' + formula + '`<\/span>' ) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
FCK.Selection.Delete() ;
|
||||
}
|
||||
|
||||
if ( FCKBrowserInfo.IsIE )
|
||||
{
|
||||
if ( oSpanAM )
|
||||
{
|
||||
FCKUndo.SaveUndoStep() ;
|
||||
oSpanAM.parentNode.removeChild( oSpanAM ) ;
|
||||
}
|
||||
}
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
window.onload = function()
|
||||
{
|
||||
// Translate the dialog box texts.
|
||||
oEditor.FCKLanguageManager.TranslatePage( document ) ;
|
||||
|
||||
// Initialization of the script ASCIIMathML.js.
|
||||
init() ;
|
||||
|
||||
// Load the selected element information (if any).
|
||||
LoadSelection() ;
|
||||
|
||||
dialog.SetAutoSize( true ) ;
|
||||
|
||||
// When MathML is available show the button "Show MathML code".
|
||||
if ( !noMathML ) {
|
||||
GetE( 'show_mathml' ).style.display = '' ;
|
||||
}
|
||||
|
||||
// Activate the "OK" button.
|
||||
dialog.SetOkButton( true ) ;
|
||||
|
||||
var inputField = GetE( 'inputText' ) ;
|
||||
inputField.focus() ;
|
||||
}
|
||||
|
||||
function Set( string )
|
||||
{
|
||||
var inputField = GetE( 'inputText' ) ;
|
||||
inputField.value += string ;
|
||||
Preview() ;
|
||||
inputField.focus() ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
function Clear()
|
||||
{
|
||||
var inputField = GetE( 'inputText' ) ;
|
||||
inputField.value = '' ;
|
||||
Preview() ;
|
||||
inputField.focus() ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
function Delete()
|
||||
{
|
||||
Clear();
|
||||
dialog.Ok();
|
||||
}
|
||||
|
||||
function Preview()
|
||||
{
|
||||
if ( GetE( 'inputText' ).value != '' )
|
||||
{
|
||||
var str = GetE( 'inputText' ).value ;
|
||||
var outnode = GetE( 'outputNode' ) ;
|
||||
var newnode = createElementXHTML( 'div' ) ;
|
||||
newnode.setAttribute( 'id', 'outputNode' ) ;
|
||||
outnode.parentNode.replaceChild( newnode, outnode ) ;
|
||||
outnode = GetE( 'outputNode' ) ;
|
||||
var n = outnode.childNodes.length ;
|
||||
for ( var i = 0; i < n; i++ )
|
||||
{
|
||||
outnode.removeChild( outnode.firstChild ) ;
|
||||
}
|
||||
outnode.appendChild( document.createComment( '`' + str + '`' ) ) ;
|
||||
AMprocessNode( outnode, true ) ;
|
||||
if ( FCKLang['DlgAsciiMathShowMathML'] )
|
||||
{
|
||||
GetE( 'show_mathml' ).value = FCKLang['DlgAsciiMathShowMathML'] ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var outnode = GetE( 'outputNode' ) ;
|
||||
var n = outnode.childNodes.length ;
|
||||
for ( var i = 0; i < n; i++ )
|
||||
{
|
||||
outnode.removeChild( outnode.firstChild ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function AMnode2string( inNode, indent )
|
||||
{
|
||||
// thanks to James Frazer for contributing an initial version of this function
|
||||
var i, str = '' ;
|
||||
if ( inNode.nodeType == 1 )
|
||||
{
|
||||
var name = inNode.nodeName.toLowerCase() ; // (IE fix)
|
||||
str = '\r' + indent + '<' + name ;
|
||||
for ( i = 0; i < inNode.attributes.length; i++ )
|
||||
{
|
||||
if ( inNode.attributes[i].nodeValue != 'italic' &&
|
||||
inNode.attributes[i].nodeValue != '' && //stop junk attributes
|
||||
inNode.attributes[i].nodeValue != 'inherit' && // (mostly IE)
|
||||
inNode.attributes[i].nodeValue != undefined &&
|
||||
inNode.attributes[i].nodeName[0] != '-' )
|
||||
{
|
||||
str += ' ' + inNode.attributes[i].nodeName + '=' + '"' + inNode.attributes[i].nodeValue + '"' ;
|
||||
}
|
||||
}
|
||||
if ( name == 'math' )
|
||||
{
|
||||
str += ' xmlns="http://www.w3.org/1998/Math/MathML"' ;
|
||||
}
|
||||
str += '>' ;
|
||||
for ( i = 0; i < inNode.childNodes.length; i++ )
|
||||
{
|
||||
str += AMnode2string( inNode.childNodes[i], indent + ' ' ) ;
|
||||
}
|
||||
if ( name != 'mo' && name != 'mi' && name != 'mn' ) str += '\r' + indent ;
|
||||
str += '</' + name + '>' ;
|
||||
}
|
||||
else if( inNode.nodeType == 3 )
|
||||
{
|
||||
var st = inNode.nodeValue ;
|
||||
for ( i = 0; i < st.length; i++ )
|
||||
{
|
||||
if ( st.charCodeAt( i ) < 32 || st.charCodeAt( i ) > 126 )
|
||||
{
|
||||
str += '&#' + st.charCodeAt( i ) + ';' ;
|
||||
}
|
||||
else if ( st.charAt(i) == '<' && indent != ' ' ) str += '<' ;
|
||||
else if ( st.charAt(i) == '>' && indent != ' ' ) str += '>' ;
|
||||
else if ( st.charAt(i) == '&' && indent != ' ' ) str += '&' ;
|
||||
else str += st.charAt( i ) ;
|
||||
}
|
||||
}
|
||||
return str ;
|
||||
}
|
||||
|
||||
function ShowMathML()
|
||||
{
|
||||
if ( GetE( 'inputText' ).value != '' )
|
||||
{
|
||||
var math = GetE( 'outputNode' ).getElementsByTagName( 'math' )[0] ;
|
||||
if ( math )
|
||||
{
|
||||
var width ;
|
||||
if ( GetE( 'outputNode' ).offsetWidth )
|
||||
{
|
||||
width = GetE( 'outputNode' ).offsetWidth ;
|
||||
}
|
||||
|
||||
math.parentNode.innerHTML = '<pre>' + FCKTools.HTMLEncode( AMnode2string( math, '' ) ) + '</pre>' ;
|
||||
|
||||
if ( width && FCKBrowserInfo.IsGecko )
|
||||
{
|
||||
GetE( 'outputNode' ).style.width = width + 'px' ;
|
||||
}
|
||||
|
||||
if ( FCKLang['DlgAsciiMathFormulaPreview'] )
|
||||
{
|
||||
GetE( 'show_mathml' ).value = FCKLang['DlgAsciiMathFormulaPreview'] ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Preview() ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Preview() ;
|
||||
}
|
||||
}
|
||||
|
||||
// Highlighting formulas.
|
||||
|
||||
function over(td)
|
||||
{
|
||||
td.className = 'LightBackground Hand' ;
|
||||
}
|
||||
|
||||
function out(td)
|
||||
{
|
||||
td.className = 'Hand' ;
|
||||
}
|
||||
@@ -0,0 +1,289 @@
|
||||
/**
|
||||
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.md or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
CKEDITOR.dialog.add( 'asciimath', function( editor ) {
|
||||
|
||||
var preview,
|
||||
lang = editor.lang.asciimath;
|
||||
|
||||
var imagePath = CKEDITOR.plugins.getPath('asciimath') + "images/";
|
||||
|
||||
return {
|
||||
title: lang.title,
|
||||
minWidth: 350,
|
||||
minHeight: 100,
|
||||
contents: [
|
||||
{
|
||||
id: 'info',
|
||||
elements: [
|
||||
{
|
||||
id: 'equation',
|
||||
type: 'textarea',
|
||||
label: lang.dialogInput,
|
||||
class: 'asciimath_textarea',
|
||||
|
||||
onLoad: function( widget ) {
|
||||
var that = this;
|
||||
|
||||
if ( !( CKEDITOR.env.ie && CKEDITOR.env.version == 8 ) ) {
|
||||
this.getInputElement().on( 'keyup', function() {
|
||||
// Add ` and ` for preview.
|
||||
preview.setValue( '`' + that.getInputElement().getValue() + '`' );
|
||||
} );
|
||||
|
||||
$('.Hand').on('click', function() {
|
||||
preview.setValue( '`' + that.getInputElement().getValue() + '`' );
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
setup: function( widget ) {
|
||||
// Remove ` and `.
|
||||
this.setValue( CKEDITOR.plugins.asciimath.trim( widget.data.math ) );
|
||||
},
|
||||
|
||||
commit: function( widget ) {
|
||||
// Add ` and ` to make ASCII be parsed by MathJax by default.
|
||||
widget.setData( 'math', '`' + this.getValue() + '`' );
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'clickInput',
|
||||
type: 'html',
|
||||
html:
|
||||
'<style type="text/css">'+
|
||||
'body, td, input, textarea, select, label, button { font-family: Arial, Verdana, Geneva, helvetica, sans-serif; font-size: 11px; }' +
|
||||
'form { padding: 0px; margin: 0px; }' +
|
||||
'form p { margin-top: 5px; margin-bottom: 5px; }' +
|
||||
|
||||
'#clickInput' +
|
||||
'{' +
|
||||
'width: 100%;' +
|
||||
'border-collapse: collapse;' +
|
||||
'background-color: white;' +
|
||||
'text-align: center;' +
|
||||
'}' +
|
||||
'#clickInput td' +
|
||||
'{' +
|
||||
'border: 1px solid gray;' +
|
||||
'font-size: 1.1em;' +
|
||||
'}' +
|
||||
'#clickInput img' +
|
||||
'{' +
|
||||
'cursor: pointer;' +
|
||||
'}' +
|
||||
|
||||
'.Hand' +
|
||||
'{' +
|
||||
'cursor: pointer;' +
|
||||
'}' +
|
||||
|
||||
'</style>'+
|
||||
'<table id="clickInput">' +
|
||||
'<tr>' +
|
||||
'<td colspan="3" class="Hand" title="(x+1)/(x-1)" onclick="javascript: Set(\'(x+1)/(x-1)\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'x1x1.png" /></td>' +
|
||||
'<td colspan="2" class="Hand" title="x^(m+n)" onclick="javascript: Set(\'x^(m+n)\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'xmn.png" /></td>' +
|
||||
'<td colspan="2" class="Hand" title="x_(mn)" onclick="javascript: Set(\'x_(mn)\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'x_mn.png" /></td>' +
|
||||
'<td colspan="2" class="Hand" title="sqrt(x)" onclick="javascript: Set(\'sqrt(x)\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'sqrtx.png" /></td>' +
|
||||
'<td colspan="3" class="Hand" title="root(n)(x)" onclick="javascript: Set(\'root(n)(x)\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'rootnx.png" /></td>' +
|
||||
'<td colspan="3" class="Hand" title="{(1 if x>=0),(0 if x<0):}" onclick="javascript: Set(\'{(1 if x>=0),(0 if x<0):}\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ifx.png" /></td>' +
|
||||
'<td colspan="2" class="Hand" title=""text"" onclick="javascript: Set(\'"text"\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'text.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td colspan="2" class="Hand" title="dy/dx" onclick="javascript: Set(\'dy/dx\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'dydx.png" /></td>' +
|
||||
'<td colspan="3" class="Hand" title="lim_(x->oo)" onclick="javascript: Set(\'lim_(x->oo)\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'lim.png" /></td>' +
|
||||
'<td colspan="3" class="Hand" title="sum_(n=1)^oo" onclick="javascript: Set(\'sum_(n=1)^oo\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'sumn.png" /></td>' +
|
||||
'<td colspan="3" class="Hand" title="int_a^bf(x)dx" onclick="javascript: Set(\'int_a^bf(x)dx\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'intab.png" /></td>' +
|
||||
'<td colspan="3" class="Hand" title="[[a,b],[c,d]]" onclick="javascript: Set(\'[[a,b],[c,d]]\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'abcd.png" /></td>' +
|
||||
'<td colspan="2" class="Hand" title="((n),(k))" onclick="javascript: Set(\'((n),(k))\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'nk.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td class="Hand" title="*" onclick="javascript: Set(\'*\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'dot.png" /></td>' +
|
||||
'<td class="Hand" title="**" onclick="javascript: Set(\'**\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'star.png" /></td>' +
|
||||
'<td class="Hand" title="//" onclick="javascript: Set(\'//\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'slash.png" /></td>' +
|
||||
'<td class="Hand" title="\\" onclick="javascript: Set(\'\\\\\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'backslash.png" /></td>' +
|
||||
'<td class="Hand" title="xx" onclick="javascript: Set(\'xx\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'times.png" /></td>' +
|
||||
'<td class="Hand" title="-:" onclick="javascript: Set(\'-:\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'div.png" /></td>' +
|
||||
'<td class="Hand" title="@" onclick="javascript: Set(\'@\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'circ.png" /></td>' +
|
||||
'<td class="Hand" title="o+" onclick="javascript: Set(\'o+\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'oplus.png" /></td>' +
|
||||
'<td class="Hand" title="ox" onclick="javascript: Set(\'ox\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'otimes.png" /></td>' +
|
||||
'<td class="Hand" title="o." onclick="javascript: Set(\'o.\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'odot.png" /></td>' +
|
||||
'<td class="Hand" title="sum" onclick="javascript: Set(\'sum\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'sum.png" /></td>' +
|
||||
'<td class="Hand" title="prod" onclick="javascript: Set(\'prod\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'prod.png" /></td>' +
|
||||
'<td class="Hand" title="^^" onclick="javascript: Set(\'^^\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'wedge.png" /></td>' +
|
||||
'<td class="Hand" title="^^^" onclick="javascript: Set(\'^^^\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'bigwedge.png" /></td>' +
|
||||
'<td class="Hand" title="vv" onclick="javascript: Set(\'vv\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'vee.png" /></td>' +
|
||||
'<td class="Hand" title="vvv" onclick="javascript: Set(\'vvv\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'bigvee.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td class="Hand" title="!=" onclick="javascript: Set(\'!=\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ne.png" /></td>' +
|
||||
'<td class="Hand" title="<=" onclick="javascript: Set(\'<=\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'le.png" /></td>' +
|
||||
'<td class="Hand" title=">=" onclick="javascript: Set(\'>=\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ge.png" /></td>' +
|
||||
'<td class="Hand" title="-<" onclick="javascript: Set(\'-<\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'prec.png" /></td>' +
|
||||
'<td class="Hand" title=">-" onclick="javascript: Set(\'>-\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'succ.png" /></td>' +
|
||||
'<td class="Hand" title="in" onclick="javascript: Set(\'in\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'in.png" /></td>' +
|
||||
'<td class="Hand" title="!in" onclick="javascript: Set(\'!in\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'notin.png" /></td>' +
|
||||
'<td class="Hand" title="sub" onclick="javascript: Set(\'sub\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'subset.png" /></td>' +
|
||||
'<td class="Hand" title="sup" onclick="javascript: Set(\'sup\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'supset.png" /></td>' +
|
||||
'<td class="Hand" title="sube" onclick="javascript: Set(\'sube\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'subseteq.png" /></td>' +
|
||||
'<td class="Hand" title="supe" onclick="javascript: Set(\'supe\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'supseteq.png" /></td>' +
|
||||
'<td class="Hand" title="O/" onclick="javascript: Set(\'O/\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'emptyset.png" /></td>' +
|
||||
'<td class="Hand" title="nn" onclick="javascript: Set(\'nn\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'cap.png" /></td>' +
|
||||
'<td class="Hand" title="nnn" onclick="javascript: Set(\'nnn\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'bigcap.png" /></td>' +
|
||||
'<td class="Hand" title="uu" onclick="javascript: Set(\'uu\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'cup.png" /></td>' +
|
||||
'<td class="Hand" title="uuu" onclick="javascript: Set(\'uuu\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'bigcup.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td class="Hand" title="and" onclick="javascript: Set(\'and\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'text_and.png" /></td>' +
|
||||
'<td class="Hand" title="or" onclick="javascript: Set(\'or\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'text_or.png" /></td>' +
|
||||
'<td class="Hand" title="not" onclick="javascript: Set(\'not\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'not.png" /></td>' +
|
||||
'<td class="Hand" title="=>" onclick="javascript: Set(\'=>\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'rightarrow.png" /></td>' +
|
||||
'<td class="Hand" title="if" onclick="javascript: Set(\'if\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'if.png" /></td>' +
|
||||
'<td class="Hand" title="<=>" onclick="javascript: Set(\'<=>\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'leftrightarrow.png" /></td>' +
|
||||
'<td class="Hand" title="AA" onclick="javascript: Set(\'AA\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'forall.png" /></td>' +
|
||||
'<td class="Hand" title="EE" onclick="javascript: Set(\'EE\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'exists.png" /></td>' +
|
||||
'<td class="Hand" title="_|_" onclick="javascript: Set(\'_|_\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'bot.png" /></td>' +
|
||||
'<td class="Hand" title="TT" onclick="javascript: Set(\'TT\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'top.png" /></td>' +
|
||||
'<td class="Hand" title="|--" onclick="javascript: Set(\'|--\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'vdash.png" /></td>' +
|
||||
'<td class="Hand" title="|==" onclick="javascript: Set(\'|==\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'models.png" /></td>' +
|
||||
'<td class="Hand" title="-=" onclick="javascript: Set(\'-=\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'equiv.png" /></td>' +
|
||||
'<td class="Hand" title="~=" onclick="javascript: Set(\'~=\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'cong.png" /></td>' +
|
||||
'<td class="Hand" title="~~" onclick="javascript: Set(\'~~\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'approx.png" /></td>' +
|
||||
'<td class="Hand" title="prop" onclick="javascript: Set(\'prop\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'propto.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td class="Hand" title="int" onclick="javascript: Set(\'int\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'int.png" /></td>' +
|
||||
'<td class="Hand" title="oint" onclick="javascript: Set(\'oint\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'oint.png" /></td>' +
|
||||
'<td class="Hand" title="del" onclick="javascript: Set(\'del\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'partial.png" /></td>' +
|
||||
'<td class="Hand" title="grad" onclick="javascript: Set(\'grad\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'nabla.png" /></td>' +
|
||||
'<td class="Hand" title="+-" onclick="javascript: Set(\'+-\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'pm.png" /></td>' +
|
||||
'<td class="Hand" title="oo" onclick="javascript: Set(\'oo\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'infty.png" /></td>' +
|
||||
'<td class="Hand" title="A\ B (space between A and B)" onclick="javascript: Set(\'A\\ B\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'space.png" /></td>' +
|
||||
'<td class="Hand" title="AquadB (double space between A and B)" onclick="javascript: Set(\'AquadB\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'quad.png" /></td>' +
|
||||
'<td class="Hand" title="diamond" onclick="javascript: Set(\'diamond\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'diamond.png" /></td>' +
|
||||
'<td class="Hand" title="square" onclick="javascript: Set(\'square\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'square.png" /></td>' +
|
||||
'<td class="Hand" title="|__" onclick="javascript: Set(\'|__\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'lfloor.png" /></td>' +
|
||||
'<td class="Hand" title="__|" onclick="javascript: Set(\'__|\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'rfloor.png" /></td>' +
|
||||
'<td class="Hand" title="|~" onclick="javascript: Set(\'|~\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'lceil.png" /></td>' +
|
||||
'<td class="Hand" title="~|" onclick="javascript: Set(\'~|\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'rceil.png" /></td>' +
|
||||
'<td class="Hand" title="<<x>>" onclick="javascript: Set(\'<<x>>\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'braxcket.png" /></td>' +
|
||||
'<td class="Hand" title="/_" onclick="javascript: Set(\'/_\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'angle.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td class="Hand" title="uarr" onclick="javascript: Set(\'uarr\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'uarr.png" /></td>' +
|
||||
'<td class="Hand" title="darr" onclick="javascript: Set(\'darr\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'darr.png" /></td>' +
|
||||
'<td class="Hand" title="larr" onclick="javascript: Set(\'larr\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'larr.png" /></td>' +
|
||||
'<td class="Hand" title="->" onclick="javascript: Set(\'->\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'rarr.png" /></td>' +
|
||||
'<td class="Hand" title="|->" onclick="javascript: Set(\'|->\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'mapsto.png" /></td>' +
|
||||
'<td class="Hand" title="harr" onclick="javascript: Set(\'harr\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'harr.png" /></td>' +
|
||||
'<td class="Hand" title="lArr" onclick="javascript: Set(\'lArr\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'llarr.png" /></td>' +
|
||||
'<td class="Hand" title="rArr" onclick="javascript: Set(\'rArr\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'rrarr.png" /></td>' +
|
||||
'<td class="Hand" title="hArr" onclick="javascript: Set(\'hArr\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'hharr.png" /></td>' +
|
||||
'<td class="Hand" title="hata" onclick="javascript: Set(\'hata\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'hata.png" /></td>' +
|
||||
'<td class="Hand" title="ula" onclick="javascript: Set(\'ula\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ula.png" /></td>' +
|
||||
'<td class="Hand" title="dota" onclick="javascript: Set(\'dota\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'dota.png" /></td>' +
|
||||
'<td class="Hand" title="ddota" onclick="javascript: Set(\'ddota\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ddota.png" /></td>' +
|
||||
'<td class="Hand" title="veca" onclick="javascript: Set(\'veca\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'veca.png" /></td>' +
|
||||
'<td class="Hand" title="bara" onclick="javascript: Set(\'bara\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'bara.png" /></td>' +
|
||||
'<td class="Hand" title=":." onclick="javascript: Set(\':.\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'therefore.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td class="Hand" title="NN" onclick="javascript: Set(\'NN\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'nn.png" /></td>' +
|
||||
'<td class="Hand" title="ZZ" onclick="javascript: Set(\'ZZ\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'zz.png" /></td>' +
|
||||
'<td class="Hand" title="QQ" onclick="javascript: Set(\'QQ\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'qq.png" /></td>' +
|
||||
'<td class="Hand" title="RR" onclick="javascript: Set(\'RR\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'rr.png" /></td>' +
|
||||
'<td class="Hand" title="CC" onclick="javascript: Set(\'CC\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'cc.png" /></td>' +
|
||||
'<td class="Hand" title="bbA" onclick="javascript: Set(\'bbA\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'bba.png" /></td>' +
|
||||
'<td class="Hand" title="bbbA" onclick="javascript: Set(\'bbbA\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'bbba.png" /></td>' +
|
||||
'<td class="Hand" title="ccA" onclick="javascript: Set(\'ccA\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'cca.png" /></td>' +
|
||||
'<td class="Hand" title="frA" onclick="javascript: Set(\'frA\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'fra.png" /></td>' +
|
||||
'<td class="Hand" title="sfA" onclick="javascript: Set(\'sfA\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'sfa.png" /></td>' +
|
||||
'<td class="Hand" title="ttA" onclick="javascript: Set(\'ttA\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'tta.png" /></td>' +
|
||||
'<td colspan="3" class="Hand" title="stackrel(->)(+)" onclick="javascript: Set(\'stackrel(->)(+)\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'stackrel.png" /></td>' +
|
||||
'<td class="Hand" title="aleph" onclick="javascript: Set(\'aleph\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'aleph.png" /></td>' +
|
||||
'<td class="Hand" title="upsilon" onclick="javascript: Set(\'upsilon\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'upsilon.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td class="Hand" title="alpha" onclick="javascript: Set(\'alpha\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'alpha.png" /></td>' +
|
||||
'<td class="Hand" title="beta" onclick="javascript: Set(\'beta\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'beta.png" /></td>' +
|
||||
'<td class="Hand" title="gamma" onclick="javascript: Set(\'gamma\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'gamma.png" /></td>' +
|
||||
'<td class="Hand" title="Gamma" onclick="javascript: Set(\'Gamma\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ggamma.png" /></td>' +
|
||||
'<td class="Hand" title="delta" onclick="javascript: Set(\'delta\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'delta.png" /></td>' +
|
||||
'<td class="Hand" title="Delta" onclick="javascript: Set(\'Delta\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ddelta.png" /></td>' +
|
||||
'<td class="Hand" title="epsi" onclick="javascript: Set(\'epsi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'epsilon.png" /></td>' +
|
||||
'<td class="Hand" title="zeta" onclick="javascript: Set(\'zeta\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'zeta.png" /></td>' +
|
||||
'<td class="Hand" title="eta" onclick="javascript: Set(\'eta\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'eta.png" /></td>' +
|
||||
'<td class="Hand" title="theta" onclick="javascript: Set(\'theta\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'theta.png" /></td>' +
|
||||
'<td class="Hand" title="Theta" onclick="javascript: Set(\'Theta\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ttheta.png" /></td>' +
|
||||
'<td class="Hand" title="iota" onclick="javascript: Set(\'iota\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'iota.png" /></td>' +
|
||||
'<td class="Hand" title="kappa" onclick="javascript: Set(\'kappa\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'kappa.png" /></td>' +
|
||||
'<td class="Hand" title="lambda" onclick="javascript: Set(\'lambda\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'lambda.png" /></td>' +
|
||||
'<td class="Hand" title="Lambda" onclick="javascript: Set(\'Lambda\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'llambda.png" /></td>' +
|
||||
'<td class="Hand" title="mu" onclick="javascript: Set(\'mu\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'mu.png" /></td>' +
|
||||
'</tr><tr>' +
|
||||
'<td class="Hand" title="nu" onclick="javascript: Set(\'nu\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'nu.png" /></td>' +
|
||||
'<td class="Hand" title="pi" onclick="javascript: Set(\'pi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'pi.png" /></td>' +
|
||||
'<td class="Hand" title="Pi" onclick="javascript: Set(\'Pi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ppi.png" /></td>' +
|
||||
'<td class="Hand" title="rho" onclick="javascript: Set(\'rho\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'rho.png" /></td>' +
|
||||
'<td class="Hand" title="sigma" onclick="javascript: Set(\'sigma\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'sigma.png" /></td>' +
|
||||
'<td class="Hand" title="Sigma" onclick="javascript: Set(\'Sigma\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ssigma.png" /></td>' +
|
||||
'<td class="Hand" title="tau" onclick="javascript: Set(\'tau\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'tau.png" /></td>' +
|
||||
'<td class="Hand" title="xi" onclick="javascript: Set(\'xi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'xi.png" /></td>' +
|
||||
'<td class="Hand" title="Xi" onclick="javascript: Set(\'Xi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'xxi.png" /></td>' +
|
||||
'<td class="Hand" title="phi" onclick="javascript: Set(\'phi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'phi.png" /></td>' +
|
||||
'<td class="Hand" title="Phi" onclick="javascript: Set(\'Phi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'pphi.png" /></td>' +
|
||||
'<td class="Hand" title="chi" onclick="javascript: Set(\'chi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'chi.png" /></td>' +
|
||||
'<td class="Hand" title="psi" onclick="javascript: Set(\'psi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'psi.png" /></td>' +
|
||||
'<td class="Hand" title="Psi" onclick="javascript: Set(\'Psi\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'ppsi.png" /></td>' +
|
||||
'<td class="Hand" title="omega" onclick="javascript: Set(\'omega\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'omega.png" /></td>' +
|
||||
'<td class="Hand" title="Omega" onclick="javascript: Set(\'Omega\');" onmouseover="javascript: over(this);" onmouseout="javascript: out(this);"><img src="'+imagePath+'oomega.png" /></td>' +
|
||||
'</tr>' +
|
||||
'</table>'
|
||||
},
|
||||
{
|
||||
id: 'documentation',
|
||||
type: 'html',
|
||||
html:
|
||||
'<div style="width:100%;text-align:right;margin:-8px 0 10px">' +
|
||||
'<a class="cke_mathjax_doc" href="' + lang.docUrl + '" target="_black" style="cursor:pointer;color:#00B2CE;text-decoration:underline">' +
|
||||
lang.docLabel +
|
||||
'</a>' +
|
||||
'</div>'
|
||||
},
|
||||
( !( CKEDITOR.env.ie && CKEDITOR.env.version == 8 ) ) && {
|
||||
id: 'preview',
|
||||
type: 'html',
|
||||
html:
|
||||
'<div style="width:100%;text-align:center;">' +
|
||||
'<iframe style="border:0;width:0;height:0;font-size:20px" scrolling="no" frameborder="0" allowTransparency="true" src="' + CKEDITOR.plugins.asciimath.fixSrc + '"></iframe>' +
|
||||
'</div>',
|
||||
|
||||
onLoad: function( widget ) {
|
||||
var iFrame = CKEDITOR.document.getById( this.domId ).getChild( 0 );
|
||||
preview = new CKEDITOR.plugins.asciimath.frameWrapper( iFrame, editor );
|
||||
},
|
||||
|
||||
setup: function( widget ) {
|
||||
preview.setValue( widget.data.math );
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
} );
|
||||
|
||||
// Highlighting formulas.
|
||||
|
||||
function over(td)
|
||||
{
|
||||
td.className = 'LightBackground Hand' ;
|
||||
}
|
||||
|
||||
function out(td)
|
||||
{
|
||||
td.className = 'Hand' ;
|
||||
}
|
||||
|
||||
function Set( string )
|
||||
{
|
||||
var inputField = document.getElementsByClassName('asciimath_textarea')[0];
|
||||
inputField.value += string;
|
||||
return false;
|
||||
}
|
||||
|
After Width: | Height: | Size: 703 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 561 B |
|
After Width: | Height: | Size: 407 B |
|
After Width: | Height: | Size: 315 B |
|
After Width: | Height: | Size: 404 B |
|
After Width: | Height: | Size: 331 B |
|
After Width: | Height: | Size: 476 B |
|
After Width: | Height: | Size: 486 B |
|
After Width: | Height: | Size: 516 B |
|
After Width: | Height: | Size: 492 B |
|
After Width: | Height: | Size: 347 B |
|
After Width: | Height: | Size: 356 B |
|
After Width: | Height: | Size: 379 B |
|
After Width: | Height: | Size: 396 B |
|
After Width: | Height: | Size: 222 B |
|
After Width: | Height: | Size: 663 B |
|
After Width: | Height: | Size: 287 B |
BIN
main/inc/lib/javascript/ckeditor/plugins/asciimath/images/cc.png
Normal file
|
After Width: | Height: | Size: 514 B |
|
After Width: | Height: | Size: 597 B |
|
After Width: | Height: | Size: 494 B |
|
After Width: | Height: | Size: 369 B |
|
After Width: | Height: | Size: 346 B |
|
After Width: | Height: | Size: 308 B |
|
After Width: | Height: | Size: 290 B |
|
After Width: | Height: | Size: 417 B |
|
After Width: | Height: | Size: 461 B |
|
After Width: | Height: | Size: 427 B |