Initial commit

This commit is contained in:
Aurelien Labate 2019-12-27 01:57:39 +01:00
commit c545f8b1a1
122 changed files with 24300 additions and 0 deletions

BIN
Images/Banniere.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

BIN
Images/Navigation.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
Images/Onglet.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
Images/Planete-Casio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
Images/TI-Planet.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
Images/ampoule.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 B

BIN
Images/attention.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
Images/autres.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
Images/boucles.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
Images/buttons.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
Images/conditions.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
Images/conversion_algo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
Images/conversion_casio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
Images/conversion_ti.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
Images/disable.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
Images/entrees-sorties.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
Images/executer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
Images/favicon_ie.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
Images/onglet_deroulant.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
Images/pause.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
Images/publier.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
Images/reset.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
Images/schema_algo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
Images/schema_condition.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
Images/signes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

BIN
Images/support_menus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

BIN
Images/tester.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
Images/toolbar.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

41
Perrine.php Normal file
View File

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>Compte à rebours :)</title>
<script src="jquery.js"></script>
</head>
<body style="background-color: violet;">
<div style="color: pink; font-size: 50px;"></div>
<SCRIPT LANGUAGE="JavaScript">
setInterval(function() {
Maintenant = new Date;
TempMaintenant = Maintenant.getTime();
Future = new Date(2013, 6, 10);
TempFuture = Future.getTime();
DiffSec = Math.floor((TempFuture-TempMaintenant)/1000);
DiffMin = Math.floor(DiffSec/60);
Diffheure = Math.floor(DiffMin/60);
DiffJour = Math.floor(Diffheure/24);
while (DiffMin>=60)
{
DiffMin = DiffMin-60;
}
while (Diffheure>=24)
{
Diffheure = Diffheure-24;
}
while (DiffSec>=60)
{
DiffSec = DiffSec-60;
}
$('div').replaceWith('<div style="color: pink; font-size: 50px;">Lyon : ' + DiffJour + ' jour(s), ' + Diffheure + ' heure(s), ' + DiffMin + ' minute(s) et ' + DiffSec + ' seconde(s)</div>');
}, 10);
</SCRIPT>
</body>
</html>

Binary file not shown.

View File

@ -0,0 +1,157 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : Copyright c Iconian FontsShyFonts Type Foundry 2000
</metadata>
<defs>
<font id="webfontlJ5n67xr" horiz-adv-x="894" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="768" />
<glyph unicode=" " horiz-adv-x="768" />
<glyph unicode="&#x09;" horiz-adv-x="768" />
<glyph unicode="&#xa0;" horiz-adv-x="768" />
<glyph unicode="!" horiz-adv-x="456" d="M68 174q0 25 12 43q10 16 33 31q18 12 41 18q20 6 45 2q29 2 55 -10q16 -8 37 -37q14 -20 18 -51t-2 -55q-2 -20 -16 -41q-14 -23 -31 -33q-23 -16 -41 -21q-29 -8 -43 -6q-25 6 -47 23q-16 12 -35 37q-16 23 -22 47q-6 28 -4 53zM178 518v45q2 18 5 39t7.5 44.5 t6.5 37.5l20 123q18 68 25 133l4 34.5t2 33.5l6 65q2 14 5 43t5 43q4 35 27 82q12 33 22 47q18 25 33 35q25 16 39 18q18 2 41 -4q23 -16 33 -34q14 -25 16 -46q4 -33 4 -53q0 -10 -1 -26.5t-1 -24.5q-10 -109 -33 -201q-10 -41 -53 -198q-18 -43 -31 -92q-12 -47 -30 -95 q-23 -55 -41 -88q-25 -45 -64 -73q-25 6 -32 24q-12 25 -15 41v47z" />
<glyph unicode="&#x22;" horiz-adv-x="702" d="M207 1028q0 14 2 40t2 36q4 45 8 65q8 45 14 68q10 37 27 61q16 27 47 50q4 0 6 2q4 4 9 4l18 4q18 -2 33 -17q8 -8 16 -32q6 -18 6 -41q0 -14 4 -39q0 -35 -4 -96q-4 -66 -8 -97q-2 -8 -3 -26.5t-1 -26.5q-2 -18 -10 -55q-6 -27 -19 -51q-10 -20 -39 -39l-16 -2h-12 q-33 14 -54 47q-16 27 -22 67q-4 25 -4 78zM502 905q-2 18 2 60q2 20 2 55l4 39q4 14 4 43l6 67q0 34 6 68q2 4 4 14.5t2 14.5q4 20 9 30q6 16 14 27q9 12 25 18q18 6 28 5q23 -6 35 -22.5t19 -33.5q10 -33 12 -41l5 -20t3 -19q2 -31 -2 -90l-6 -92q-2 -12 -5 -25.5 t-5 -27.5q-8 -37 -15 -55q-10 -33 -22 -50q-14 -20 -41 -36q-16 -8 -31 -11q-27 6 -41 31q-8 14 -12 51z" />
<glyph unicode="#" horiz-adv-x="970" d="M133 711q6 33 25 45q29 20 47 24q37 8 55 8q10 0 27.5 1.5t23.5 1.5q2 14 5 41.5t3 39.5q2 23 11 82q-25 3 -49.5 0t-49.5 0q-18 4 -26 11q-16 12 -23 20q-8 8 -12 27q-4 16 0 32q14 29 33 39q29 16 45 21q18 4 51 8q37 4 51 6q2 14 10 47q6 25 20.5 49.5t31.5 38.5 q18 16 45 19q10 0 22.5 -4t18.5 -13l12 -18q4 -12 4 -23l-6 -47q0 -8 -2 -23.5t-2 -23.5q57 -4 83.5 -4t84.5 -4q0 10 2 22.5t4 22.5q2 14 10 43q10 31 22.5 51.5t34.5 16.5q20 0 31 -8q23 -14 29 -19l10 -10l10 -17l11 -14v-12q0 -8 -1 -20.5t-1 -20.5q0 -27 2 -41 q8 0 24.5 -3t20.5 -3q18 -2 47 -15q20 -8 35 -26q16 -20 16 -43q-4 -27 -21 -43q-18 -18 -43 -19h-45q-6 0 -22.5 1t-22.5 1l-6 -82q-4 -49 -8 -79q25 -4 41 -4q14 0 43 -5q23 -4 39 -16q14 -12 20 -33q-2 -16 -12 -32q-12 -20 -20 -31q-20 -18 -25 -23q-16 -10 -33 -12h-37 q-6 0 -18 -1t-18 -1q-2 -14 -11 -53q-2 -14 -5 -26.5t-5 -27.5q-4 -27 -22 -43q-23 -18 -48 -18q-29 0 -43 18.5t-20 40.5q-4 16 -4 54q0 8 6 51q-45 -4 -88 0q-43 2 -88 0q-2 -14 -2 -45q0 -18 -4 -47q-4 -20 -13 -29q-16 -16 -26 -23q-14 -8 -29 -14t-31 -6q-25 8 -36 29 q-8 14 -17 43q-6 25 -6 49v49q-70 4 -106 8q-27 4 -41 21q-16 18 -19 43zM473 788q31 2 90.5 2.5t89.5 2.5q0 2 6 81q0 14 2.5 41t2.5 41h-175z" />
<glyph unicode="$" horiz-adv-x="870" d="M76 555l4 14q6 4 12 10.5t8 8.5q8 4 17 4q16 -4 20 -4q2 0 6 -1t9.5 -3t7.5 -2l139 -47q55 -20 145 -27q23 0 35 2q23 4 37 12q16 10 27 21q12 12 12 35q4 31 -4 49t-27 41q-15 18 -37 30l-45 23l-110 31l-111 30q-6 2 -19.5 9.5t-19.5 9.5q-18 8 -35 24q-14 14 -24 35 q-8 14 -4 43q8 29 20 45q10 12 39 33q18 14 45 27l26.5 11t20.5 9q63 27 103 37q70 16 104 22q6 41 19 101q10 51 18 102l7 21.5t7 23.5q4 16 21 45q12 20 29 35q16 12 43 17q29 0 43 -5q18 -4 36 -20q15 -12 25 -31q8 -14 4 -43q0 -4 -12 -57q-2 -12 -17 -53l-16 -60 q-6 -16 -10 -57l6 -6q0 -2 2 -4t2 -4l16 -2h7q35 -6 59 -21q37 -20 53 -31q20 -12 30.5 -20t27.5 -25q14 -14 20 -30q8 -20 8 -37q-4 -14 -10 -19q-12 -8 -18.5 -10t-20.5 -2h-20q-33 4 -48 4q-27 0 -47 6q-14 4 -47 8q-16 2 -49 2h-24q-8 0 -25 -4q-14 -4 -23 -12 q-8 -6 -10 -22q4 -31 29 -54q25 -22 49 -37q16 -10 76 -43l74 -45l26 -26q15 -15 25 -31q12 -20 16 -33q6 -16 2 -41q-4 -29 -14 -47q-16 -29 -27 -41q-15 -18 -37 -37q-18 -16 -41 -28q-53 -35 -92 -52q-47 -20 -98 -26v-12q-2 -8 -2 -26.5t-2 -27.5q-4 -37 -4 -53v-51 q0 -20 -4 -53q-2 -10 -4.5 -28.5t-4.5 -29.5q-2 -27 -20 -55q-20 -31 -49 -39q-27 -8 -62 -8q-4 0 -11 1t-13 2t-13 3q-16 6 -26 23v20v21q2 20 5 38.5t5 34.5q6 43 14 72q2 6 13 76q2 12 4 22t3 16.5t2 15.5t3 24v2v4q-45 2 -92 16q-33 10 -84 37q-41 23 -72 55 q-29 31 -51 74q-4 10 -8 22q-4 17 -2 23z" />
<glyph unicode="%" horiz-adv-x="1218" d="M147 49q6 39 23 62q8 12 35 59q45 76 94 147l96 146l150 237l155 236l156 235l154 238q2 4 7 8t7 8l14 21q4 6 14.5 16.5t20.5 12.5q14 0 39 -9q14 -4 31 -20q12 -12 22 -33q6 -12 6 -39q-39 -94 -84 -170l-100 -164q-53 -80 -110 -157q-98 -141 -109 -158l-205 -303 l-203 -305q-6 -12 -18 -33q-2 -4 -6 -9t-7 -10.5t-5 -11.5q-14 -20 -19 -35q-2 -6 -9 -18t-9 -16q-8 -18 -23 -29q-12 -10 -35 -10q-23 4 -34 10q-14 8 -27 25q-14 18 -18 30q-7 16 -3 39zM170 995q0 18 4 52q8 45 25 98q14 47 47 92q29 47 76 76q49 29 98 35q28 3 55 0 q37 -4 55 -11q28 -9 50 -24q25 -18 36 -37q27 -47 33 -107q6 -55 0 -114q0 -51 -18 -111q-16 -55 -56 -102q-39 -49 -88 -72q-51 -25 -112 -18q-55 -2 -101 24q-49 29 -69 74q-16 25 -23 45q-8 33 -10 49t-2 51zM315 997q0 -14 9 -39q4 -12 20 -28q12 -12 35 -10 q29 -4 51 12q16 12 34.5 36.5t22.5 47.5q8 39 11 51q2 16 2 47q0 33 -2 47q-9 22 -31 31q-23 10 -47 6q-27 -2 -47 -22q-16 -16 -29 -41q-8 -18 -16 -52q-4 -14 -9 -49q-4 -25 -4 -37zM684 199q-8 47 2 104q6 51 23 117q14 55 53 106q43 49 100 68q66 20 119 20q55 4 96 -20 q43 -25 64 -70q23 -43 24 -90q2 -43 -4 -96q-6 -55 -26 -105q-23 -55 -56 -96q-33 -49 -82 -80q-51 -33 -104 -34q-61 -12 -105 12q-45 27 -69 67q-27 48 -35 97zM840 274q4 -33 10 -47q10 -23 28.5 -35t47.5 -6q22 0 37 13q20 16 26 28q8 14 15 39q4 16 8 37q4 29 4 49 q0 35 -4 51q-6 25 -21 39q-16 16 -45 17q-20 0 -47 -10q-23 -8 -37 -33q-10 -18 -14 -45q-2 -14 -6 -47q-4 -32 -2 -50z" />
<glyph unicode="&#x26;" horiz-adv-x="1050" d="M133 492q0 43 21 90q16 39 49 77q27 33 71 64q37 27 82 45q-29 25 -55 59q-23 27 -43 70q-8 16 -16 35q-6 12 -15 37q-4 12 -8 37q-2 12 2 41q2 29 17 63q10 25 32 59q16 25 45 54q23 23 54 43q57 45 118 65q68 23 131 23q27 0 84 -4q29 -2 82 -15q35 -8 76 -28 q29 -14 62 -52q4 -6 8 -18q6 -18 6 -20l-12 -37q-4 -12 -21 -33l-24 -31q-12 -16 -33 -18q-14 4 -43 8q-39 6 -41 6l-51 11t-45 10q-53 10 -99 8q-6 -2 -17 -4t-18 -2q-8 -2 -34 -15q-14 -10 -29 -22q-10 -10 -14 -31q-6 -45 4 -82q12 -43 43 -63q43 -25 76 -33 q20 -4 40.5 -10.5l40.5 -12.5q23 -4 44.5 -7t44.5 -7q33 -6 88 -14q4 18 12 32q12 20 20 29q14 14 29 21q20 8 35 6q25 0 43 -13q20 -14 31 -28q12 -18 18 -39q4 -14 0 -45q-10 -109 -39 -250l-51 -250q-8 -29 -19 -59q-8 -27 -22 -60q-12 -28 -31 -55q-18 -27 -41 -47 q-20 -18 -53 -33q-27 -12 -59 -18l-60 -11q-10 0 -29.5 -1t-29.5 -3q-43 -2 -96 9q-31 6 -88 30q-35 14 -78 47q-49 37 -70 60q-37 45 -53 71q-23 37 -41 80q-16 39 -27 88q-8 38 -4 93zM336 477q-4 -29 6 -53q14 -39 20 -47q20 -29 35 -41l43 -33q49 -29 99 -43 q45 -12 110 -12q14 0 43 4q10 2 20.5 3t20.5 3q10 47 33 176l29 176l-31 6q-6 2 -16.5 3.5t-16.5 1.5q-12 2 -33 6q-10 2 -32 2q-35 0 -101 -8q-41 -4 -96 -23q-20 -6 -45 -16.5t-41 -24.5q-23 -18 -33 -35q-14 -22 -14 -45z" />
<glyph unicode="'" horiz-adv-x="401" d="M195 1024q0 57 4 86l8 64q2 31 12 65q10 37 25 64q16 31 43 51q16 8 35 8q18 -2 30 -14q14 -14 21 -29l12 -35l8 -35l6 -75q4 -45 -2 -80q-4 -25 -8 -70q-2 -27 -14 -72q-10 -39 -27 -65q-16 -29 -49 -51q-6 -2 -16 -2q-8 0 -15 -3q-23 4 -30 11q-10 8 -19 24 q-8 14 -10 29q0 6 -4 16.5t-4 14.5q-6 55 -6 98z" />
<glyph unicode="(" horiz-adv-x="813" d="M115 598q9 108 37 215q25 96 75 209q16 33 54 98q23 41 63 97q33 45 76 88q35 35 88 73q41 31 82 47q43 18 94 15q20 -2 41 -17q18 -12 31 -30q8 -12 16 -41q6 -20 2 -45q-10 -18 -26 -25q-6 -2 -35 -16q-98 -45 -166 -115q-72 -76 -117 -162q-43 -84 -70 -188 q-27 -111 -32 -193q-6 -80 0 -162q6 -84 39 -151q37 -68 94 -119q61 -55 123 -90q6 -2 19 -7l23.5 -9t18.5 -9q20 -10 57 -22q8 -6 14.5 -14.5t2.5 -18.5q-2 -20 -12 -39q-6 -12 -27 -33q-10 -10 -35 -22q-23 -12 -39 -14q-23 -6 -51.5 -2t-46.5 8q-29 8 -45 16l-43 25 q-78 45 -141 123q-61 74 -99 163q-37 78 -57 179q-18 88 -8 188z" />
<glyph unicode=")" horiz-adv-x="811" d="M150 37q0 12 6 20q4 4 14 12.5t23 10.5q8 2 20 6q53 16 94 45q39 29 78 70q43 47 66 84q41 68 51 90q47 94 76 203q29 104 36 210q8 84 -12 164q-20 78 -65 148q-43 66 -109 117q-68 51 -143 75q-4 2 -11.5 4t-11.5 4q-8 2 -24 11q-12 6 -21 14q-6 6 -10 23q2 18 16 38 q8 12 33 29t39 21q2 0 17.5 5t23.5 7q76 10 162 -16q41 -25 59 -37q25 -16 51 -43q57 -53 103 -129q43 -70 67 -152q23 -76 33 -164q8 -84 0 -170q-6 -72 -20 -129q-12 -55 -41 -125q-37 -92 -52 -121q-33 -68 -63 -118l-68 -109q-37 -59 -82 -106q-41 -43 -102 -78 q-55 -31 -125 -25q-20 2 -39 13q-12 6 -33 22q-18 18 -26 35q-10 21 -10 41z" />
<glyph unicode="*" horiz-adv-x="757" d="M123 731q6 33 31 53q12 10 47 37q20 14 61 39q6 4 19.5 11.5l23.5 13.5t19 12q-4 4 -52 39q-33 25 -49 39q-20 18 -39 39q-20 25 -20 53q10 33 32.5 55.5t57.5 26.5h8l4 -1l4 -1l21 -10q41 -47 51 -55.5t51 -55.5q4 29 4 47q0 12 1 24.5t1 22.5l7 49q2 12 16 48 q10 23 29 38q23 18 47 19q27 -4 47 -21q20 -18 20 -43l-14 -84l-12 -82l41 33l45 33q14 10 43 27q14 8 45 12q31 -6 51 -26.5t20 -55.5q0 -14 -6 -28.5t-18 -22.5q-51 -25 -107 -62l-104 -65q43 -29 84 -60q39 -29 88 -57q14 -14 16 -24q4 -16 -2 -33l-6 -31q-6 -14 -16 -29 q-12 -18 -23 -24q-14 -10 -31 -10q-20 0 -41 14q-6 4 -17 12t-17 12q-23 23 -35 31q-18 12 -37 31q2 -18 2 -55v-56q-10 -39 -41 -55q-18 -10 -35 -16q-25 -8 -35 -9q-14 0 -24 11q-6 6 -14 22q-6 12 -7 27q0 6 -2 15t-2 13q-2 20 2 60q0 14 2 29.5l4 31.5l-51 -39l-53 -36 q-2 -2 -16 -7q-6 -2 -21 -2q-33 6 -61 25q-23 14 -27 20q-6 13 -10 31z" />
<glyph unicode="+" horiz-adv-x="729" d="M90 705q2 12 14 28q9 12 25 19q29 12 33 12l31 6q41 10 83 10q47 0 70 2q8 49 10 74q3 37 13 74q2 16 12 33q12 20 22 30q12 12 27 19q20 8 37 8q27 0 45 -21q20 -23 23 -49q-4 -57 -5 -88q0 -59 -4 -88q25 -2 74 -2t74 -6q12 -2 32.5 -10t30.5 -19q14 -14 19 -24 q6 -16 6 -35q0 -12 -8 -29q-6 -14 -19 -22q-16 -12 -24 -17q-16 -8 -29 -8q-14 0 -43 -1t-43 -1t-43 -1t-43 -1l-6 -78q0 -4 -3 -17.5t-3 -19.5q0 -25 -2 -39q-4 -18 -15 -32q-14 -18 -28 -27q-10 -8 -35 -16q-12 -4 -37 -9q-35 12 -47 41q-10 25 -15 62q-2 33 0 69 q4 49 5 66q-14 2 -39 2q-6 0 -19.5 -1t-19.5 -1q-14 2 -37 2h-39q-18 0 -33 10l-12 11l-12 12v2q-10 12 -17 33q-6 19 -6 37z" />
<glyph unicode="," horiz-adv-x="401" d="M51 -74q4 57 31 107q37 66 57 98q20 29 30.5 45.5t35.5 44.5q12 14 41 35q22 15 49 18q18 -4 27 -10q16 -12 20 -20q8 -16 10 -27q2 -14 0 -29v-16q0 -6 -2 -12q-4 -37 -10 -55.5t-23 -51.5q-14 -27 -30 -47l-33 -45l-29 -33q-20 -25 -30 -34q-4 -4 -35 -25 q-20 -14 -41 -16q-4 2 -12.5 2t-14.5 2q-27 6 -33 26q-8 29 -8 43z" />
<glyph unicode="-" d="M176 707q16 29 43 41q37 16 57 20q41 8 62 8q23 0 59 4q14 -2 45 -2q8 0 22.5 -1t22.5 -1q33 0 47.5 -2t45.5 -2q6 0 18 1t18 1q10 0 35 -4q39 0 60 -2q41 -4 59 -10q29 -10 51.5 -28.5t24.5 -51.5q-2 -12 -15 -29q-10 -12 -22 -22q-8 -6 -29 -15q-15 -6 -30 -6 q-120 -6 -240 -6q-160 0 -240 2q-25 0 -37 10q-4 2 -15 10.5t-15 12.5q-16 20 -23 33q-10 19 -4 39z" />
<glyph unicode="." horiz-adv-x="440" d="M109 106q-6 28 0 56q2 25 16 47q12 23 32.5 39t41.5 24q27 10 49 11q23 2 47 -9q22 -9 37 -24q12 -12 22 -37q10 -23 6 -47q-6 -63 -43 -109q-12 -14 -45 -39q-27 -20 -55 -16q-35 0 -55 14q-23 16 -35 37q-10 18 -18 53z" />
<glyph unicode="/" horiz-adv-x="761" d="M43 74q6 57 27 106q18 47 47 103l55 112q20 37 59 115l70 139q55 104 70 139l112 205q63 111 123 201q14 20 39 61q20 35 41 64q12 16 21 24q10 12 26 21q20 12 31 14q16 4 33 -2q12 -4 28 -10q15 -6 19 -25q-2 -29 -17 -63q-2 -6 -7 -19.5l-9 -23.5t-8 -18l-64 -132 q-92 -199 -229 -456l-252 -449q-4 -4 -34.5 -51t-37.5 -53q-23 -27 -45 -43q-25 -18 -57 -19q-16 2 -31 23q-12 21 -10 37z" />
<glyph unicode="0" horiz-adv-x="1019" d="M147 659q18 227 117 420q20 39 55 95q25 39 72 86q43 43 86 65q49 27 105 29q92 0 157 -33q72 -35 115 -88t76 -129q29 -72 45 -152q16 -86 16 -159q0 -88 -8 -154q-14 -117 -41 -207q-31 -104 -86 -194q-23 -39 -65 -88q-35 -39 -82 -72q-47 -31 -94.5 -49.5 t-104.5 -14.5q-59 0 -102 21q-49 23 -84 55q-29 27 -64 80q-23 35 -47 88q-43 98 -57 195q-17 110 -9 206zM344 538.5q0 -51.5 2 -77.5q4 -41 12 -78q10 -39 27 -68q16 -27 47 -51q25 -18 74 -22q33 -2 65 10q31 12 60 35q25 18 49 51q18 25 33 59q31 63 49 133 q14 55 22 138q6 74 7 147q0 80 -15 146q-14 53 -22 73q-16 35 -35 60q-20 27 -51 43q-29 16 -66 12q-39 -2 -70 -25q-27 -18 -51 -57q-23 -35 -37 -70q-27 -63 -28 -69q-23 -59 -45 -158q-18 -76 -25 -158q-2 -22 -2 -73.5z" />
<glyph unicode="1" horiz-adv-x="477" d="M170 1202q6 45 8 49q4 10 23 43q8 14 32 35q18 14 46 19q35 -6 65.5 -24.5t52.5 -47.5q29 -37 39 -59.5t23 -67.5q10 -80 0 -158l-19 -168l-20 -166q-16 -115 -27 -170q-14 -74 -20 -168l-6 -43q-2 -14 -2 -45q0 -27 -3 -41l-4 -40q-4 -25 -6 -39q-2 -16 -12 -37t-23 -33 q-14 -14 -34 -21q-28 -6 -56 7q-18 8 -43 36q-16 47 -14 89l6 90q8 98 17 151q4 37 10 76l12 76q18 115 23 155q4 25 10 76t10 78q0 23 4 59q2 18 2 58q0 2 -6 57q-2 27 -16 53q-2 2 -7.5 8.5t-10.5 10.5t-9 8q-8 8 -25 27q-14 18 -18 30q-4 14 -2 37z" />
<glyph unicode="2" horiz-adv-x="1056" d="M182 1026q0 29 4 43q10 45 31 78q16 27 55 61q31 28 68 49q33 18 76 37q84 35 161.5 47.5t165.5 8.5q25 0 50 -11q18 -8 38 -24q18 -15 31 -37q2 -4 8.5 -13.5t10.5 -16.5t6 -13q16 -39 26 -98q8 -45 2 -101q0 -31 -10 -71q-8 -35 -24 -70q-14 -33 -33 -66l-37 -63 l-98 -141l-101 -142q-14 -20 -41 -63q-10 -12 -39 -68q-12 -23 -28 -67q-12 -33 -19 -72q16 4 35 7l39.5 6t32.5 5q76 12 106 23q27 4 51.5 10l49.5 12q49 8 102 13h17q12 0 18 -2q16 -12 22 -21q4 -4 8.5 -12t8.5 -12q6 -8 14 -25q6 -14 4 -29q-27 -31 -65 -49 q-53 -27 -74 -33q-8 -2 -24.5 -8t-30 -10t-25.5 -6q-59 -14 -80 -21q-16 -4 -180 -30q-92 -14 -182 -6q-25 0 -47 14q-16 10 -29 33q-14 25 -16 45q-4 33 -2 49q6 72 41 145q37 76 75 135l113 164l111 162q23 35 43 72q14 25 38 74q18 39 31 75q12 43 19 78q4 23 0 41 q-2 18 -17 35q-10 14 -28 22q-14 8 -39 5q-57 0 -107 -21l-102 -43q-29 -20 -39 -45q-8 -14 -27 -55q-14 -33 -39 -49q-29 -18 -57 -19q-29 -4 -43 8q-16 14 -23 33q-6 20 -6 43z" />
<glyph unicode="3" horiz-adv-x="1030" d="M170 1057q8 27 12 30q14 27 43 54l49 47l58 39l57 37l30.5 15l31.5 15q41 20 61 29q39 16 66 20q45 8 65 9q51 0 92 -21q39 -18 76 -53q35 -35 53 -72q20 -43 19 -90q-4 -37 -15 -67q-16 -45 -28 -66q-25 -41 -39 -61l-41 -58q66 4 114 -20q49 -23 87 -70q35 -45 47 -100 q14 -63 0 -119q-6 -57 -25 -109q-18 -55 -49 -102q-33 -53 -68 -90q-43 -47 -82 -80q-49 -41 -90 -68q-47 -29 -100 -51q-61 -25 -107 -32q-55 -8 -108 -7q-29 2 -53 21q-14 10 -41 41q-16 27 -25 51q-10 29 -6 59q-4 16 8 26.5t27 14.5q2 0 8 1t8 1h19l61 5q41 4 61 10 q70 18 121 39q57 25 109 63q25 18 47 41t41 47q10 14 29 56q10 25 14 59q2 12 2 35q0 16 -10.5 32.5t-22.5 24.5q-14 8 -35 8q-100 0 -166 -12q-83 -15 -159 -55q-14 -10 -43 -23q-14 -6 -43 -22q-23 4 -39.5 16t-28.5 29q-8 10 -20 34q-10 20 -11 41q2 12 15 37 q6 12 24.5 30.5t30.5 27.5l17.5 12l17.5 12l94 58l44 25.5l52 31.5q41 31 74 78q31 47 37 96v23q0 16 -2 24q-4 14 -8 19q-8 8 -19 10q-29 -4 -53 -13q-16 -6 -49 -22q-23 -10 -47 -27q-41 -25 -47 -28q-35 -20 -72 -47q-31 -23 -76 -43q-14 2 -35 12q-12 6 -28.5 22.5 t-22.5 26.5q-8 15 -8 33z" />
<glyph unicode="4" horiz-adv-x="954" d="M88 707q6 59 27 114l43 111l53 110q25 53 59 109q6 10 14.5 20.5t16.5 24.5q20 33 31 47q16 25 37 41q23 20 45 31q20 2 41 -10q18 -12 32 -27q16 -10 27 -33q6 -12 10 -41q-18 -55 -45 -102l-55 -101l-29 -53l-28 -55q-10 -18 -27 -55q-12 -27 -18 -58l2 -16v2 q49 -4 71 -6q34 -3 68 -12l69 -13q33 -6 72 -6h17h4q18 90 24 184q4 53 17 181q8 49 8 77q0 37 12 76q2 14 12 35q8 16 23 31q16 16 29 20q20 6 36 4q29 -4 41 -12q20 -14 30.5 -28.5t17 -39t4.5 -45.5l-9 -110q-2 -33 -10 -113l-6 -94q-3 -46 -12 -92q0 -8 -1 -24.5 t-1 -24.5q0 -33 2 -47q31 -12 53.5 -41t17.5 -66q-4 -20 -8 -31q-2 -4 -16 -28q-8 -14 -23 -25q-12 -9 -30 -6l-13 -43q-4 -14 -8 -43q-4 -41 -4 -66q0 -23 -4 -63q0 -23 -4 -64q0 -10 -2 -31.5t-2 -31.5q-2 -18 -11 -45q-6 -22 -18 -43q-12 -20 -29 -35q-18 -15 -43 -18 q-18 -2 -34 0q-14 2 -31 12q-10 6 -22.5 22.5t-12.5 30.5q-12 31 -8 70l6 71q6 20 6 47t6 48l6 24.5t4 22.5l7 47q0 6 1 19.5t1 19.5v37q-31 6 -64 6q-20 0 -61 4q-76 6 -105 8q-37 2 -106 14q-52 9 -98 31q-45 20 -84 60q-12 16 -17 41q-4 33 -4 45z" />
<glyph unicode="5" horiz-adv-x="1042" d="M164 637q8 80 14 125l19 125q10 47 20 121q4 33 23 120q4 27 12 52q10 27 24 47q47 47 103 71q57 25 115 37q41 8 122 13q41 2 121 2q27 0 51 -7q27 -6 48 -18q43 -37 34 -94q2 -16 -10 -29q-14 -14 -24 -18q-18 -4 -25 -2q-12 4 -27 0q-31 2 -88 -2q-61 -4 -88 -9 q-16 -2 -47 -9t-37 -9q-41 -8 -82 -33q-4 -37 -14 -88q-4 -29 -16 -90l-17 -90q-8 -61 -10 -92l-2 -19l2 -10q31 49 74 92q39 39 94 74q51 31 106 47q51 14 113 14q72 6 125 -20.5t90 -75.5q33 -43 49 -110q14 -59 2 -127q-6 -61 -30 -121q-25 -58 -62 -111 q-45 -63 -82 -100q-51 -51 -94 -86q-51 -43 -102 -78q-45 -33 -111 -59q-59 -25 -119 -37q-61 -12 -121 -6q-20 4 -47 20q-18 10 -37 37q-12 20 -18 47q-4 16 -4 53q-2 20 8 41q14 25 35 27q8 2 26.5 2t26.5 2q18 2 55 2q18 2 58 2q31 0 55 8q68 23 111 62q57 49 92 90 q18 25 39 49q20 23 39 51q18 28 30 55q14 31 17 60q2 10 2 33q0 12 -8 32q-6 18 -17 25q-10 8 -30 8q-61 -6 -107 -35l-92 -63l-92 -74q-66 -49 -92 -74l-50 -28q-25 -16 -55 -13q-33 4 -51 23q-22 22 -31 49q-6 12 -14 57q-6 27 -2 62z" />
<glyph unicode="6" horiz-adv-x="970" d="M133 481q10 121 41 219q29 94 74 213q6 18 39 103l43 104q10 27 51 99q29 53 63 92q25 20 48 28q28 9 55 13h26q14 0 25 -9q6 -14 14 -30q6 -12 6 -23q2 -10 3 -28v-31l-54 -105l-57 -102l-64 -133q-29 -63 -45 -137q31 31 68 49q39 18 76 31q35 10 80 14q53 4 80 4 q65 -3 122 -25q57 -20 93 -75q35 -51 47 -109q10 -51 4 -119q-12 -102 -53 -182q-47 -96 -107 -160q-27 -31 -70 -67q-45 -39 -79 -56q-51 -25 -87 -34q-49 -12 -94 -11q-43 0 -82 13q-27 8 -71 36q-31 20 -61.5 53.5t-49.5 63.5q-45 68 -65 142q-25 85 -19 159zM342 336 q-2 -31 10 -53q14 -25 33 -35q27 -16 49 -21q31 -6 51 -4q55 -3 111 19q55 20 94 63q41 43 62 94q20 49 26 107q6 20 2 51q-4 29 -16 51.5t-34.5 34.5t-51.5 10q-45 0 -86 -14q-29 -10 -78 -43q-31 -18 -70 -53q-35 -31 -55 -70q-18 -31 -31 -67q-14 -41 -16 -70z" />
<glyph unicode="7" horiz-adv-x="950" d="M168 1106q6 47 28.5 80t59.5 63.5t74 46.5q23 10 82 29q86 22 172 25q100 4 174 -4q34 -3 73 -13q43 -10 74 -26q39 -20 58 -45q20 -27 24 -72q-23 -76 -33 -98q-14 -31 -39 -97l-145 -319l-149 -320q-16 -25 -27 -59q-16 -55 -19 -59q-8 -23 -14 -54q-2 -8 -5 -26.5 t-5 -28.5q-4 -14 -12 -47q-6 -25 -21 -45q-35 -23 -74 -23q-25 -2 -47 11q-22 12 -37 30q-10 12 -18 45q-6 29 -2 50q6 72 25 118q14 39 47 113l133 297q78 170 131 297q8 16 21.5 49t15.5 39q12 29 32 90q-12 0 -36.5 4t-36.5 4q-25 4 -39 4q-6 0 -18.5 1t-20.5 1 q-51 0 -92 -8q-46 -9 -86 -31q-18 -10 -39 -30l-11.5 -11.5t-13.5 -12.5t-10 -11q-20 -25 -25 -29q-14 -12 -34 -12q-43 -4 -84 18q-18 12 -27 27q-10 16 -4 39z" />
<glyph unicode="8" horiz-adv-x="989" d="M133 360q4 53 23 97q23 51 57 86q43 47 84 73q39 27 98 48q-35 10 -86 38q-37 20 -73 62q-33 35 -48 78q-16 47 -8 98q12 82 55.5 151.5t102.5 127.5q58 61 135 98q72 35 158 35q74 0 135 -31q63 -31 106 -84q41 -45 76 -113q31 -59 27 -135q0 -59 -19 -102 q-23 -51 -55 -90q-29 -35 -82 -70q-45 -29 -94 -45q41 -18 78 -45q41 -31 65 -64q27 -35 39 -79q14 -51 6 -95q-12 -80 -51 -143q-47 -78 -96 -123q-55 -53 -129 -88q-72 -35 -152 -31q-71 0 -135 25q-59 23 -112 76q-51 47 -78 110q-29 69 -27 135zM352 342q0 -28 13 -49 q12 -20 34 -37q18 -14 50 -20q27 -6 55 -7q59 -2 119 29q25 18 43 43t18 55q3 28 -6 56q-6 18 -31 47q-16 20 -43 33q-20 10 -53 10q-39 0 -70 -15q-34 -15 -61 -36q-33 -29 -45 -48q-21 -28 -23 -61zM426 981q-6 -27 4 -55q10 -31 25 -47q16 -20 43 -33q20 -10 53 -10 q35 0 70 18q34 18 61 43q23 31 41 59q18 31 18 68q2 23 -4 49.5t-22 44.5q-18 23 -37 33t-47 10q-37 0 -74 -16q-33 -14 -59 -41q-23 -23 -45 -57q-21 -33 -27 -66z" />
<glyph unicode="9" horiz-adv-x="966" d="M119 846q6 68 31 135q27 72 59.5 127t89.5 108.5t115 83.5q51 29 90 39q49 12 94 13q51 0 84 -11q43 -12 74 -32q39 -25 63 -49q29 -31 51 -64q47 -66 66 -145q18 -84 16 -164q-6 -63 -18 -125t-31 -123q-8 -27 -41 -121l-47 -121q-16 -33 -49 -106.5t-51 -108.5 q-31 -59 -68 -98q-43 -47 -94 -70q-29 -2 -47.5 16.5t-11.5 49.5l2 26q2 4 2 13q0 10 2 14q16 57 28 84l37 82l41 80l41 80l55 119q25 59 39 122q-31 -43 -71 -77t-86 -56q-49 -22 -99 -37q-55 -16 -100 -14q-65 0 -123 25q-57 25 -92 75q-39 51 -47 109q-10 66 -4 121z M307 791q4 -27 12 -48q10 -25 29 -36q20 -12 47 -11q49 0 90 21q25 12 80 49q31 20 68 57t55 72q4 6 31 66q16 35 18 67q4 31 -8 47q-12 18 -31 31q-12 8 -45 16q-16 4 -47 4q-53 6 -112 -18q-49 -20 -93 -64q-41 -41 -65 -92q-23 -49 -27 -110q-4 -35 -2 -51z" />
<glyph unicode=":" horiz-adv-x="423" d="M92 182q0 23 14.5 45.5t32.5 32.5q16 8 45 16q25 6 45 7q25 4 45 -2q25 -6 39 -19q15 -12 25 -31q8 -18 2 -45q-6 -31 -16 -59q-10 -33 -29 -53l-7 -11q-7 -10 -12 -14q-8 -8 -24 -20q-10 -8 -26.5 -14.5t-28.5 -6.5q-33 4 -54 21q-20 18 -32 41q-14 27 -17 55 q-2 20 -2 57zM176 748q2 10 14 45q10 27 21 45q12 20 33 34q16 10 45 15q20 0 41 -10q18 -10 30 -27q10 -16 15 -39q3 -22 0 -43q0 -8 -1 -25.5t-1 -25.5q0 -27 -11 -53q-8 -27 -32 -41q-23 -14 -51 -15q-31 4 -50 15q-23 12 -30 34q-18 23 -21 41q-2 17 -2 50z" />
<glyph unicode=";" horiz-adv-x="450" d="M72 -45q6 47 30 94q16 31 54 88q6 8 32 45q25 33 37 45q20 20 43 35q20 14 54 21q10 2 26 -7q12 -6 19 -18q8 -16 10 -26.5t-2 -30.5l-2 -19v-12q-2 -14 -15 -53q-12 -37 -22 -54q-20 -33 -33 -49l-33 -47l-28 -33q-20 -25 -29 -32q-14 -14 -34.5 -24.5t-41.5 -10.5 l-18 6l-10 2q-25 10 -31 33q-6 24 -6 47zM213 682q0 33 2 51q0 23 10 53q6 18 27 48q14 20 39 32q27 12 51.5 10t48.5 -20q25 -16 35 -39q16 -33 20 -51q6 -25 3 -53q0 -29 -8.5 -47.5t-26.5 -40.5q-12 -16 -39 -27q-23 -10 -47 -6q-18 2 -56 10q-23 6 -45 31q-14 20 -14 49 z" />
<glyph unicode="&#x3c;" horiz-adv-x="747" d="M82 676q6 25 20 45q10 14 35 35q2 2 16.5 14t22.5 18q4 2 18.5 12.5l22.5 16.5l50.5 31.5l41.5 25.5l94 58q8 6 24.5 14t25.5 15l15 10t17.5 11t16.5 9l51 23q31 12 55 14q29 -6 49 -27q23 -23 23 -53q0 -12 -4 -28q-2 -12 -21 -23q-121 -76 -161 -104l-164 -109l153 -82 q68 -35 156 -76q16 -10 20 -34q4 -27 -2 -46q-6 -28 -24 -49q-20 -25 -47 -26q-16 -2 -41 2q-16 2 -39 10q-6 2 -18.5 9t-16.5 9q-25 12 -35 19l-80 43q-20 12 -38.5 24.5t-36.5 22.5l-31 16l-16.5 8.5t-16.5 10.5q-29 20 -45 28q-27 12 -43 33q-2 2 -5 6l-3 4q-6 6 -8 11 q-12 8 -21 20q-6 9 -10 29z" />
<glyph unicode="=" horiz-adv-x="921" d="M174 539q-2 12 4 24q2 4 17 19q4 4 24 14q8 4 25 8q29 6 82 10q47 4 67 2q8 0 22.5 -1t20.5 -1q14 0 43 -4q29 -2 88 -2q4 0 13.5 -1t13.5 -1q16 0 24 2q4 0 11.5 1t11.5 1q16 0 25 -2h55q33 -4 57 -12q25 -10 41 -29q14 -18 8 -53q-4 -23 -14 -33q-14 -14 -29 -22 q-16 -10 -32 -13q-2 0 -15.5 -3t-19.5 -3q-100 -8 -228 -8q-102 0 -225 10q-20 0 -35 9q-16 8 -28 22q-12 12 -19 31q-8 25 -8 35zM207 819q-4 18 2 35q16 35 39 49q25 16 59 27q31 8 66 12q10 0 30.5 1t30.5 3h41q25 0 39 -2q10 0 20.5 -1t20.5 -1h41q14 4 27 0q8 -2 26 -2 q14 4 27 0h24q29 0 56 -6q37 -8 53 -16q23 -12 41 -33q14 -18 18 -49q2 -18 -6 -33q-8 -12 -20 -23q-10 -8 -30.5 -12t-31.5 -2q-86 2 -254 2q-170 0 -256 -2q-16 0 -30 6q-12 4 -23 19q-6 8 -10 28z" />
<glyph unicode="&#x3e;" horiz-adv-x="747" d="M182 399q0 8 8 29q6 14 21 21l164 112l164 117l-154 90l-154 86q-8 6 -14 14q-2 2 -3 6.5t-2 8.5t-1 6q-2 6 -2 22q0 8 4 21q8 29 23 49q18 25 47 27q68 -10 116 -39l109 -58q61 -33 117 -71q78 -53 112 -84q0 -2 4 -5t4 -6q4 -8 9 -10q14 -14 20 -22q8 -10 8 -27 q-6 -25 -20 -45q-16 -23 -33 -39q-20 -20 -41 -35l-39 -30l-94 -64q-72 -49 -92 -59l-51 -31q-33 -20 -50 -29q-29 -14 -53 -22q-28 -9 -55 -13q-29 6 -49 27q-19 18 -23 53z" />
<glyph unicode="?" horiz-adv-x="966" d="M166 1030q6 43 24 80q16 35 48 68q25 27 63 55q41 29 72 45q70 37 155 57q76 18 160 15q61 -2 123 -19q59 -14 107 -55q47 -43 65 -102q18 -55 14 -121q-16 -61 -43 -101q-31 -45 -69 -82q-49 -45 -88 -69l-99 -60l-102 -53l-96 -49q14 -8 35 -12q2 0 14 -3t20 -3 q6 0 18.5 -1.5t18.5 -1.5q10 0 35 -4q53 -4 80 -4q35 0 80 -10q4 -8 4 -25q0 -4 1 -11t1 -11q-4 -31 -21 -53q-20 -27 -43 -41q-23 0 -35 -2t-34 -2q-12 -2 -35 -2h-35q-76 0 -115 6q-61 10 -112 26q-8 2 -47 23q-25 12 -43 31q-20 20 -29 43q-9 25 -6 55q4 29 18 53 q14 23 35 43q23 23 45 37l16.5 12t15.5 10.5l17 10.5l131 67l134 68l45 25q10 4 43 28q16 12 34 37q14 20 21 47q0 34 -19 55q-14 16 -45 31q-25 10 -59 15q-41 4 -57 4q-45 0 -103 -11q-39 -6 -98 -36q-37 -27 -53 -50l-41 -59q-12 -29 -39 -51q-27 -25 -55 -27 q-10 0 -31 8q-15 6 -25 19q-12 16 -14 26q-4 21 -2 31zM254 170q0 37 12 59q14 27 39 45q29 20 53 29q31 8 58 6q33 4 63 -6q37 -10 57.5 -26.5t34.5 -47.5q12 -27 7 -63q-2 -23 -15 -57q-10 -31 -28 -50q-14 -18 -46 -32q-25 -12 -53 -13q-34 0 -67 13q-37 12 -60 28 q-29 23 -43 51q-14 31 -12 64z" />
<glyph unicode="@" horiz-adv-x="1437" d="M147 649q4 106 35 193q35 94 90 174q59 84 131 145q82 70 164 113q78 43 183 65q88 20 192 11q66 0 111 -11q47 -10 102 -34q49 -22 92 -56q43 -33 76 -75q70 -92 92 -191q25 -109 17 -217q-4 -66 -11 -94q-10 -51 -26 -92q-23 -55 -41 -88q-20 -35 -60 -78 q-27 -35 -71 -70q-40 -31 -86 -49q-51 -20 -95 -29q-55 -10 -98 -10q-74 -2 -156 10q-68 10 -151 39q-45 16 -68 29q-45 25 -63 41q-20 18 -43 55q-20 33 -17 74q0 25 15 61q12 31 31 56q12 16 45 45q12 10 55 34q66 33 125 48q70 16 129 16q25 0 37 -2t37 -2q0 18 -9 51 q-6 25 -20 49q-12 20 -33 39q-18 16 -47 27q-6 0 -18.5 2t-18.5 2q-4 0 -18.5 3t-22.5 5q-23 4 -33 23q-10 23 -8 40q4 23 13 41q8 16 26.5 30.5t36.5 21t39 6.5q27 0 72 -8q33 -6 65 -23q35 -18 57 -37q18 -16 41 -53q39 -63 48 -131q10 -78 2 -141q-6 -84 -29 -150 q-25 -74 -70 -137q27 0 58 6q20 4 57 20q25 10 51 31q16 12 41 45q35 55 47.5 110.5t18.5 119.5q14 84 -6 166q-23 84 -68 145t-121 98q-70 35 -164 29q-74 10 -145 -6q-74 -16 -137 -49q-70 -37 -123 -84q-57 -51 -96 -111q-45 -68 -64 -131q-23 -74 -23 -145 q-2 -31 -2 -93q0 -45 10.5 -92t26.5 -86q18 -43 45 -76q27 -37 64 -63.5t78 -44.5q39 -16 88 -27q47 -10 94 -6q27 4 45 -14.5t14 -45t-12 -38.5q-12 -18 -27 -33q-8 -8 -36 -22q-16 -8 -39 -9q-61 0 -119 13q-51 10 -111 39q-49 23 -96 63q-43 37 -78 84q-72 92 -98 205 q-29 114 -19 231zM623 526q6 -12 14 -20q6 -6 22 -14q18 -8 23 -11q8 -2 25 -10q25 -12 53 -18q18 -4 55 -9q31 31 47 62q23 41 33 72q-6 0 -14.5 2t-14.5 4t-14 4t-14 2q-18 -2 -56 -2q-25 0 -53 -6l-20 -2q-25 -6 -27 -8.5t-6 -2.5t-6 -2q-23 -8 -35 -20q-10 -11 -12 -21z " />
<glyph unicode="A" horiz-adv-x="1130" d="M106 217q4 61 21 117q10 33 45 110l55 125q12 29 60 123q18 66 63 193l66 188l39 82q14 35 45 84q27 45 57 72q34 31 80 43h11q36 0 69 -17q35 -16 65 -45q29 -31 52 -63q27 -43 36 -74q14 -35 21 -80q2 -18 16 -82l22.5 -102.5l26 -119.5t19.5 -103q35 -182 53 -328 l12 -55l5.5 -28.5t5.5 -27.5l4 -59q1 -7 0 -14q0 -22 -6 -43v-4q-4 -27 -25 -46q-23 -20 -45 -22q-4 0 -14.5 -1t-14.5 -1q-20 0 -28 2q-16 4 -25 8q-12 6 -18 19q-12 20 -17 53q-4 37 -8 55q-2 18 -5 36.5t-5 37.5q-4 49 -8 74q-27 10 -47.5 16t-47.5 2l-104 -6 q-53 -4 -100 -14q-61 -12 -93 -23q-45 -14 -88 -45q-23 -27 -32 -66l-17 -69q0 -15 -6 -31q-6 -14 -16 -29q-8 -10 -27 -18q-8 -3 -17 -3q-6 0 -14 1q-33 6 -53 24q-25 20 -35 46q-33 47 -33 108zM455 567l2 -12h35h32q25 -4 35 -4h37q6 -1 13 -1q11 0 34 3q29 4 49 12 q23 10 39 29q18 20 21 45q0 53 -11 115q-12 74 -20 110.5t-29 110.5l-30 106q-49 -49 -78 -100t-56 -115q-6 -14 -43 -121q-23 -61 -24 -124l-2 -13l2 -12q-2 -6 -2 -14q0 -3 -4 -15z" />
<glyph unicode="B" horiz-adv-x="1146" d="M158 414q2 55 12 114q10 70 20 115l25 119q10 49 21 117q6 68 6 69v70l6 67q0 23 8 68q18 63 61 100q45 39 99 60q47 18 114 28q39 6 113 11q15 1 29 0q49 0 92 -9q61 -12 113 -36q41 -20 49 -27q16 -12 41 -41q20 -25 28 -47q8 -25 9 -59q0 -31 -7 -66q-6 -39 -20 -66 l-37 -55q-18 -27 -41 -53q63 -18 105 -57q45 -43 71.5 -94.5t42.5 -108.5q10 -35 10 -73q0 -23 -4 -46q-10 -68 -37 -111q-35 -55 -71 -92q-41 -41 -94 -75q-63 -41 -103 -60q-72 -35 -123 -55q-86 -33 -129 -47q-51 -16 -121 -33q-47 -12 -91 -12l-31 2q-63 16 -97 57 q-35 45 -49 96q-16 55 -18 115q-2 41 -2 115zM371 395q-3 -11 -3 -22.5t3 -22.5q4 -14 20 -39q12 -18 33 -26q25 -10 45 -11h14q60 0 119 23q68 27 123 63q31 20 53 43q41 39 47 50q25 31 35 57q14 33 17 65q1 9 0 17q0 31 -11 55q-16 37 -39 60q-2 2 -6 5t-7 5l-3 2 q0 2 -4 4l-4 2q-4 0 -78 -6q-37 -3 -74 -12q-49 -12 -73 -23q-29 -12 -68 -37q-41 -29 -59 -49q-25 -28 -43 -61t-27 -68q-10 -41 -10 -74zM438 879q0 -16 4 -45q57 4 101 22q49 22 92 49q14 8 43 28.5t39 31.5q20 20 31 39q16 29 18 47q2 25 -10.5 47t-30.5 32 q-16 12 -43 17q-8 0 -24.5 2t-24.5 2q-2 0 -24.5 -2t-33.5 -4q-31 -6 -51 -23q-27 -12 -45 -37q-16 -20 -22 -51l-8 -55l-9 -55q0 -6 -1 -22.5t-1 -22.5z" />
<glyph unicode="C" horiz-adv-x="1083" d="M137 649q8 117 53 230q43 113 111 213q25 41 74 96q43 49 86 84q47 39 102 59q53 20 117 21q84 0 153.5 -39t120.5 -96q49 -49 86 -130q31 -68 31 -138v-13q1 -5 1 -10q0 -15 -7 -27q-10 -16 -23 -25q-20 -12 -34 -14q-25 -4 -35 -2q-35 4 -60 25q-29 25 -39 51l-24 67 q-6 14 -12.5 31t-12.5 35q-12 33 -37 53q-27 23 -59 23q-45 0 -84 -19q-35 -16 -71.5 -49t-59.5 -67q-29 -43 -45 -76q-46 -80 -74 -166q-25 -78 -35 -174q-1 -16 0 -31q0 -52 9 -98q12 -66 51 -113q31 -53 90 -84q51 -27 110 -27q6 0 13 1q33 0 74 10q39 10 69 26 q8 6 25.5 17.5t25.5 17.5q33 25 47 39q6 4 14.5 12.5t14.5 12.5q14 12 35 14q16 2 31 -8q10 -8 18 -27q4 -10 4 -35q0 -23 -2 -32q-12 -59 -43 -101q-31 -43 -82 -80q-45 -41 -92 -63q-49 -25 -104 -27q-16 -2 -33 -1q-42 0 -86 10q-55 12 -107 41q-59 33 -94 63 q-43 37 -78 84q-72 92 -108 203q-28 85 -28 174q0 29 3 59z" />
<glyph unicode="D" horiz-adv-x="1124" d="M156 229q2 14 2 47q0 4 6 48l6 49q4 33 6 47l6 55l4 55l7 80q4 53 4 78q0 12 4 39t4 41t4 41t4 39q12 74 16 113q2 16 5.5 35.5l7.5 42t6 36.5q12 74 22 113q14 49 37 108q59 16 82 21l84 16q16 2 47 5t47 5q61 8 92 11q18 2 35 1q52 0 101 -14q55 -16 116 -53 q49 -31 97 -84q45 -51 71 -108q27 -53 39 -127q6 -35 7 -72q0 -30 -5 -61q-8 -96 -24 -154q-23 -76 -56 -145q-34 -71 -79 -136q-43 -61 -101 -120q-57 -66 -112 -109q-49 -39 -132 -84q-63 -35 -143 -51q-50 -11 -94 -11q-28 0 -55 5q-45 4 -70 18q-39 23 -55 45 q-23 29 -35 64q-9 25 -9 54q0 8 1 17zM389 483q-1 -16 0 -30q0 -81 14 -156q47 0 98.5 20.5t88.5 49.5q41 31 78 71q45 49 67 76l66 84q25 35 55 92q27 49 41 96q14 45 21 101q2 25 1.5 49.5t-1.5 48.5q-2 49 -29 90q-16 20 -35 31q-22 12 -43 18q-14 4 -47 8.5t-49 4.5 q-16 -2 -49 -2t-49.5 -2.5t-49.5 -2.5q-8 0 -24.5 -1t-24.5 -1q-35 -41 -59 -102q-23 -57 -31 -115q-12 -84 -14 -120q-2 -41 -15 -119q-8 -130 -10 -189z" />
<glyph unicode="E" horiz-adv-x="1083" d="M166 416q0 35 4 112l6 113l21 168q8 84 24 168q16 86 43 164q28 80 74 153q84 29 135 35q90 12 135 14q51 4 154 5q68 0 153 -11q31 0 50 -8q20 -8 36 -29q18 -20 23 -40q6 -27 4 -50q0 -18 -2 -28q-4 -20 -8 -31q-2 -6 -17 -21q-10 -10 -28 -6q-154 12 -236 15 q-51 1 -98 1q-75 0 -141 -3q-18 -41 -31 -82q-16 -57 -18 -84q3 -12 0 -25q-2 -10 4 -22q76 0 112 4q72 8 115 10q57 6 113 6h112q29 0 51 -8q20 -8 43 -27q18 -16 29 -39q8 -18 4 -51q-8 -33 -22 -45q-25 -20 -41.5 -26.5t-50.5 -10.5q-37 -4 -52 -6q-47 -6 -155 -14 q-72 -6 -156 -23q-41 -10 -70 -28q-37 -25 -59 -52q-25 -31 -39 -65.5t-14 -75.5q-1 -14 -1 -27q0 -39 7 -75q8 -47 24 -101q25 0 74 9q29 4 72 20q33 12 69 29l33 17t35 17q35 20 135 66q68 31 146 37q22 3 37 -6q12 -8 22 -25q6 -10 10 -35q2 -9 2 -18t-2 -19 q-4 -14 -16 -43q-8 -18 -25 -38q-59 -59 -149 -103q-63 -31 -168 -72q-100 -39 -164 -57q-77 -23 -153 -23q-9 0 -17 1q-31 4 -59 14q-27 10 -52 35q-20 25 -32 53q-16 41 -21 61q-8 55 -12 113q-2 37 -2 113z" />
<glyph unicode="F" horiz-adv-x="933" d="M166 512q0 106 4 160q14 137 37 225q31 123 61 223q2 4 8.5 22.5t10.5 28.5q4 12 10 24.5l12 25.5q8 14 31 36q12 12 41 25q51 20 94 29q37 6 96 14q57 14 107 16q70 4 102 5q35 -4 64 -13q33 -10 57.5 -28.5t38.5 -44.5q16 -31 14 -64q0 -29 -22 -51q-18 -18 -53 -27 q-55 -12 -99 -12q-55 0 -82 2q-20 0 -65 4q-23 2 -66 2q-4 0 -12 -1t-12 -1q-14 0 -23 -2q-33 -43 -45 -98q-12 -49 -18 -107v-18l2 -17v-8l94 6q66 4 94 9l94 8q43 3 66 3l27 -1q14 0 47 -8q20 -4 43 -21q20 -14 34 -31q16 -20 23 -43q2 -2 2 -4v-6q2 -4 2 -12 q-4 -23 -16 -39q-12 -14 -33 -29q-18 -12 -39 -18q-29 -8 -41 -10q-20 -2 -63 -8.5t-64 -8.5q-47 -6 -127 -14l-53 -6q-23 -2 -53 -11q-39 -10 -52 -14q-31 -10 -51 -24v-66q0 -23 -4 -68q1 -11 1 -25q0 -8 -0.5 -25.5t-0.5 -26.5q0 -25 -4 -78q-4 -57 -8 -84 q-8 -53 -19 -80q-12 -43 -39 -70q-23 -23 -51 -23q-4 0 -8 1q-27 10 -33 12q-12 8 -22 27q-12 34 -19 67q-8 43 -10 72q-4 49 -4 71.5t-4 71.5q0 39 -1 78t-1 78z" />
<glyph unicode="G" horiz-adv-x="1175" d="M147 725q12 113 57.5 211t114.5 190q27 39 72 86q39 41 84 72q53 35 98 51q53 18 109 19h15q84 0 165 -29q90 -33 160 -84q6 -4 12 -9t13 -9q8 -6 24 -23l21 -26q6 -10 10 -33q0 -2 -1 -4t-1 -4v-9l-10 -14l-15 -10q-12 -22 -37 -31q-35 4 -65 18l-62 29q-18 10 -59 27 q-33 12 -68 16q-11 1 -21 1l-65 -7q-45 -10 -84 -31q-47 -25 -75 -49q-39 -33 -64 -65q-57 -70 -86 -160q-29 -86 -37 -174q-5 -38 -4.5 -75.5t4.5 -76.5q8 -72 41 -143q12 -33 37 -64q23 -29 55.5 -51t65.5 -31q35 -9 64 -8h14q33 0 57 8q37 12 55 23q28 15 50 37 q8 8 38 49q39 47 60 104q20 55 26 117q6 25 3 53l-7 52q-12 -2 -36.5 -7.5t-36.5 -7.5q-31 -4 -72 -16q-57 -12 -78 -16q-53 -8 -78 -11q-18 -2 -41 13q-18 12 -28 32q-12 20 -15 41q-4 29 -2 45q3 18 13 31q52 34 110 49l119 33q27 6 57.5 14.5t63.5 16.5q51 12 121 16 q47 0 75 -22q33 -27 47 -60q15 -37 19 -80q1 -19 1 -34q0 -25 -3 -46l-6 -49q-4 -33 -8 -49q-23 -106 -66 -188q-43 -84 -113 -170q-27 -33 -69 -74q-39 -37 -80 -59q-45 -27 -90 -41q-43 -14 -99 -15h-13q-52 0 -105 21q-51 20 -99 57q-45 37 -82 82q-31 39 -63 96 q-57 98 -88 215q-22 81 -22 170q-1 35 3 70z" />
<glyph unicode="H" horiz-adv-x="1107" d="M164 283q0 45 2 69q0 51 8 146q8 100 14 145q8 66 19 148l18 149q4 18 8 55l7 56q2 14 3 28.5t3 28.5q0 10 4 28.5t4 26.5q8 27 10 47q4 27 12 47q10 25 25 41q14 18 39 27q11 2 22 2q23 0 44 -8q31 -12 51 -39q14 -18 30 -63q11 -30 11 -60v-12l-2 -12l-2 -21v-4 q-2 -12 -7.5 -36.5t-7.5 -37.5q-4 -25 -16 -73l-19 -74q-8 -35 -12 -76q-2 -6 -2 -18q0 -2 1 -10.5t1 -10.5q55 0 166 4q25 1 56 1q19 0 56.5 -0.5t55.5 -0.5q10 2 16 12q4 6 8.5 18.5t4.5 20.5q0 4 1 11.5t1 9.5q2 31 2 90q0 57 -2 88t-2 90q0 57 2 88q0 12 4 41 q2 14 10 43q4 16 23 35q12 12 38 12q35 -4 56 -20q29 -25 39 -41q12 -20 26 -55q12 -33 19 -58q14 -51 20 -121q3 -34 4 -72q0 -24 -2 -53q0 -20 -4 -53l-6 -55l-8 -113l-6 -119q-1 -16 -1 -34q0 -29 3 -84q2 -37 2 -113q0 -47 -10 -113l-13 -49q-8 -33 -14 -49 q-8 -20 -27 -43q-14 -18 -43 -29q-20 -6 -39 0q-12 4 -30 19q-16 14 -25 29q-8 16 -14 34.5t-10.5 55.5t-4.5 59v57v60q1 19 2 34q0 24 -4 48q-8 53 -16 82q-35 0 -53.5 2t-53.5 2l-69 -6q-12 0 -35 -2.5t-35 -2.5q-68 -6 -69 -6q-20 0 -66 -4q4 -106 8 -155q4 -51 4 -154 l-6 -57q-3 -28 -12 -56q-12 -34 -31 -55q-12 -14 -28 -14q-6 0 -13 2q-37 8 -57.5 22.5t-40.5 42.5q-20 27 -28.5 53.5t-12.5 61.5q-4 45 -4 70z" />
<glyph unicode="I" horiz-adv-x="1038" d="M184 166q2 14 15 22q10 8 22 11q16 4 27 4h24q20 2 64 2q37 0 63 8v23q0 14 2 22q4 63 17 170l20 168l25 174q8 63 20 174q6 47 6 90q0 59 -4 90l-51 -8q-12 -2 -24.5 -3t-24.5 -3q-6 0 -24.5 -1t-28.5 -1q-39 0 -58 4q-29 6 -45 21q-18 16 -16 49q12 33 37 53 q27 25 53 37q41 20 64 26l63 21q63 20 137 27q56 5 101 4h37q20 -2 65 -7q39 -4 68 -12q41 -12 59 -24q25 -16 41 -50q-10 -39 -31 -59q-23 -23 -59 -33q-20 -2 -72 -10l-74 -12q-8 -49 -10 -74q-4 -49 -8 -74q-2 -12 -5 -37.5t-5 -37.5q-8 -49 -10 -74q-4 -41 -5 -64 q0 -41 -2 -61.5t-2 -63.5q0 -2 -6 -63q0 -49 -6 -100q-4 -35 -8 -101q-2 -25 -2 -50.5t2 -49.5q4 -57 18 -94q6 0 14.5 -1t14.5 -1q20 0 31 2h16l19 2h12q10 0 26 4q8 2 25 2q16 2 51 2q27 0 49 -12q27 -29 29 -56q1 -12 1 -22q0 -17 -3 -29q-4 -12 -10 -27q-6 -12 -21 -18 q-119 -23 -262 -29q-61 -3 -119 -2l-145 4q-14 2 -57 11q-37 8 -56 16q-27 14 -47 31q-18 16 -28 47q-2 8 -7 20q-2 7 -2 23z" />
<glyph unicode="J" horiz-adv-x="1060" d="M102 680q0 12 7 25q6 10 20 18q18 8 25 10q10 2 26 2q33 0 51.5 -10t38.5 -31q16 -16 29 -41q16 -35 20 -47l35 -118.5l35 -118.5q6 -27 19 -47q14 -25 30 -41q14 -14 39 -29q22 -12 49 -12q31 9 49 30q16 18 31 52q16 37 21 57q8 37 14 55q37 150 45 275q8 90 8 202 q0 104 -20 199q-2 8 -15 39q-8 18 -30 22h-27q-23 -4 -47 0q-23 2 -49 15q-23 10 -35 28.5t-6 47.5q0 18 8 34q10 20 21 31q14 16 30 21q15 5 26 4h9q46 1 86 1q64 0 121 -3q86 -6 201 -23q33 -12 57.5 -36.5t36.5 -57.5q0 -4 2 -14.5t4 -14.5q2 -8 2 -15.5t-2 -14.5 q0 -16 -16 -23q-12 -6 -29 -2q-14 -2 -47 -2t-47 -2q-23 -4 -39 -17q-16 -14 -17 -36q2 -10 2 -26.5t3 -25.5q12 -96 12 -239q0 -123 -12 -246q-4 -39 -17 -117q-12 -82 -22 -119q-14 -55 -37 -112q-20 -55 -60 -109q-37 -43 -88 -63q-49 -20 -104 -21q-59 0 -100 21 q-43 22 -80 55q-33 31 -66 76q-20 29 -53 82q-55 104 -84 184q-39 111 -57 197q-6 12 -7 24v27z" />
<glyph unicode="K" horiz-adv-x="1058" d="M176 248q0 51 2 76v49v51q0 10 1 26.5t1 26.5q0 35 2 53q4 33 4 50q0 18 4 51q2 8 4.5 25.5t4.5 25.5q4 37 8 51q6 46 6 92q0 59 4 90q0 23 2 45.5l4 43.5q2 33 10 88q8 41 13 63q2 16 16 66q8 33 27 59q18 29 47 45q17 5 29 5q5 0 10 -1q20 -4 35 -12q16 -10 26 -27 q9 -15 13 -37q4 -57 4 -84q0 -14 -1 -41.5t-1 -42.5q-2 -14 -2 -41q0 -6 2 -18t2 -20l149 133l152 133q33 27 77 37q22 5 42 4.5t40 -4.5q41 -4 62 -33q21 -30 21 -60q0 -26 -11 -51q-4 -8 -22 -37q-8 -12 -29 -32q-12 -12 -33 -29l-90 -59q-25 -16 -47.5 -33t-40.5 -29 q-55 -45 -70 -59q-31 -31 -41 -78q4 -33 13 -59q10 -33 22 -54q10 -18 31 -51q6 -8 16.5 -24.5t16.5 -24.5l88 -129l88 -125l28 -51q16 -27 25 -51q12 -37 16.5 -55.5t-0.5 -59.5l-6 -25q0 -4 -12 -20q-6 -10 -16 -17q-12 -8 -25 -8q-14 -4 -41 0q-16 2 -37 13q-6 4 -31 22 q-4 4 -24 29l-45 74q-8 14 -43 71l-133 201l-133 201q-10 -90 -13 -177l-6 -178q-2 -14 -2 -45v-47q-4 -37 -8 -57q-4 -25 -21 -60q-27 -43 -65 -55q-23 -8 -46 -8q-15 0 -28 4q-14 6 -24 25q-10 16 -13 32q-4 25 -4 37q0 10 -4 35q-1 11 -1 25q0 9 0.5 26t0.5 25z" />
<glyph unicode="L" horiz-adv-x="1038" d="M162 498q6 119 20 219q20 147 35 221q12 45 27 109q16 74 26 108q14 47 41 98q25 46 68 80q9 1 17 2q12 0 20 -4q18 -8 26 -18q12 -16 15 -31q3 -18 0 -37q-4 -82 -8 -123q-8 -82 -15 -123q-2 -16 -5 -48.5t-5 -49.5l-7 -47t-7 -51q-8 -63 -11 -101l-8 -100q0 -29 -4 -94 q-2 -25 -1.5 -50t1.5 -48q2 -43 16 -91q12 -45 41 -81q70 4 127 14q33 6 127 29q12 2 46 10t53 12q55 14 100 16q45 0 80 -26q33 -25 49 -66q2 -2 2 -7t2 -7q2 -3 2 -6t-2 -6l-18 -21l-25 -12q-80 -41 -145 -64q-88 -29 -152 -47q-49 -12 -151 -28q-51 -8 -101 -9 q-25 0 -51 3q-41 4 -70 20q-31 18 -55 43q-20 20 -41 57q-16 31 -26 68q-27 82 -31 139q-4 51 -4 91q0 30 2 57z" />
<glyph unicode="M" horiz-adv-x="1507" d="M170 446q0 104 8 193q6 94 21 168q20 111 32 166q16 47 33 108q12 45 35 105q16 41 49 86q25 35 76 57q25 2 51 -4q23 -6 43 -22q25 -20 35 -35q12 -16 22 -45q12 -35 25 -109q10 -66 21 -108l12 -72q8 -49 16 -70q4 -14 10 -30q6 -20 15 -33q12 -20 18 -27 q12 -12 27 -18l102 172l55.5 94l45.5 80q37 45 49 67q12 20 49 72q20 29 57 62q33 29 74 40q23 0 59 -12q27 -8 54 -28q20 -14 41 -43q18 -25 28 -56q20 -55 27 -119q8 -82 10 -122q6 -10 2 -23q-3 -12 0 -25l-6 -61q0 -2 -2 -26.5t-4 -36.5q-2 -16 -5 -33t-5 -33 q-4 -18 -9 -63q-4 -29 -4 -41q0 -27 -2 -41q0 -70 8 -125l19 -123q6 -39 14 -117q3 -32 4 -69q0 -23 -2 -50q-16 -29 -43 -41q-31 -14 -57 -16q-8 0 -22.5 -1t-22.5 -1q-31 0 -45 6q-16 12 -23 37q-8 29 -14 43q-18 90 -23 203q0 31 -2 64.5t-5 74.5t-5 65q-1 12 -1 28 q0 9 0.5 28t0.5 28q0 29 4 86q2 20 2 61.5t2 61.5q-2 20 -2 64q0 31 -6 59q-49 -57 -96 -131q-29 -45 -78 -143q-25 -49 -65 -148l-60 -149q-6 -16 -18 -58q-14 -45 -21 -57l-12 -24l-12 -25q-4 -8 -16.5 -20.5t-24.5 -14.5h-11q-46 0 -81 25t-56 73q-29 66 -39 115 q-10 47 -20 121l-19 123q-10 63 -30 121q-25 -31 -33 -64q-12 -45 -14 -69q0 -2 -3.5 -30t-3.5 -42q0 -4 -6 -72q-2 -20 -2 -63q0 -10 -1 -32t-1 -32l4 -49q4 -33 6 -47l7 -45q4 -25 0 -47q2 -12 -2 -43q-2 -18 -15 -43q-8 -18 -28 -31q-12 -8 -26 -8q-7 0 -15 2 q-39 2 -70 24q-29 20 -45 58q-12 29 -21 69l-12 68q-6 94 -6 188z" />
<glyph unicode="N" horiz-adv-x="1148" d="M168 336q-1 27 -1 57q0 45 3 137q2 10 2 33t2 35q4 49 8 70q12 102 21 153q16 102 26 154q12 43 27 102q20 84 25 99q15 46 36 86q25 45 58 69q37 0 59 -14q31 -18 47 -41q25 -33 35 -53l31 -56q12 -29 71 -190l72 -193q6 -18 14.5 -38.5l16.5 -38.5q20 -53 31 -78 q15 -37 36 -74q14 -25 48 -70q12 29 18 68q8 45 10 68q6 129 6 131q0 84 -2 127q-1 19 -1 42q0 14 0.5 41.5t0.5 41.5q0 82 2 124q4 27 7 58q2 23 14 63q8 29 28.5 49.5t55.5 20.5q35 -6 61 -29q23 -18 39 -53q15 -31 19 -68q3 -35 3 -49q0 -11 -1 -20q0 -66 -2 -96l-7 -99 l-12 -198q-2 -37 -10 -111t-10 -111l-21 -223l-2 -22q-6 -25 -16 -58q-12 -37 -23 -55q-20 -33 -37 -49q-23 -23 -51 -29q-57 4 -94 29q-41 29 -70 65q-27 37 -53 84q-16 31 -49 84l-98 207l-97 209q-20 -16 -32 -43q-12 -25 -19 -51q-8 -39 -10 -53q-4 -37 -6 -54 q-4 -57 -4 -84q0 -14 1 -41.5t1 -42.5q-4 -57 -4 -84q0 -10 0.5 -28t0.5 -27q0 -15 -1 -29q-4 -29 -4 -45q0 -18 -9 -51q-6 -20 -18 -41q-10 -14 -41 -18q-25 4 -41 10q-23 10 -33 23q-8 18 -18 36q-8 18 -12 41q-23 89 -27 191z" />
<glyph unicode="O" horiz-adv-x="1091" d="M160 731q10 109 43 213q34 104 98 197q29 43 72 86q37 37 88 67.5t100 44.5q44 13 90 13h19q51 0 100 -12.5t90 -39.5q47 -31 78 -63q33 -35 55 -84q47 -82 64 -186q10 -65 10 -137q0 -31 -2 -64q-14 -137 -43 -240q-34 -120 -98 -227q-28 -52 -68 -104q-41 -55 -88 -93 q-55 -45 -104 -65q-54 -23 -106 -23h-13q-57 0 -113 23q-52 22 -92 61q-47 47 -72 86q-31 51 -49 101q-43 98 -59 219q-7 51 -7 107t7 120zM365 559q2 -59 16 -127q6 -29 14 -55q10 -37 23 -55q18 -29 37 -46q20 -16 55 -20q41 0 84 25q39 23 68 57q31 39 51 78l39 80 q41 119 57 178q23 80 29 182q2 25 1.5 50t-1.5 48q-4 49 -21 93q-4 18 -18 40q-10 18 -30.5 35t-39 25t-47.5 8q-9 1 -17 1q-30 0 -57 -11q-35 -14 -65.5 -39t-55.5 -55q-20 -27 -38 -66q-37 -71 -56 -147q-18 -78 -24 -152q-5 -51 -5 -93q0 -17 1 -34z" />
<glyph unicode="P" horiz-adv-x="952" d="M174 162q8 49 10 73.5t11 73.5q18 125 18 131q2 23 5 66t5 65q0 16 2 46t3 53.5t1 46.5v147q-2 34 -1.5 69t1.5 71q4 90 9 139q2 4 2 12q0 10 2 14q3 34 18 68q14 33 43 57q27 23 66 33q49 12 71 16l90 7q57 4 91 4q80 0 155 -29q78 -29 127 -84t78 -131q22 -58 22 -122 q0 -15 -2 -32q0 -43 -16 -92t-43 -88q-29 -43 -63 -74q-49 -45 -76 -61q-86 -55 -189 -88q-96 -31 -200 -49l-6 -37q-4 -25 -5 -37q0 -18 -1 -36.5t-1 -35.5q0 -45 2 -69q2 -23 2.5 -68t-2.5 -67q0 -29 -8 -54q-8 -27 -30 -45q-41 -20 -66 -20q-39 0 -55 4q-23 2 -35 16 q-10 10 -20.5 30.5t-12.5 37.5q-2 14 -2 39zM410 985q-3 -31 -4 -62q0 -91 26 -180q63 4 121 25q49 18 113 53q25 12 49 31q16 12 43 39q14 14 35 47q12 20 16 55q0 61 -29 119q-25 39 -35 49q-22 22 -55 25q-16 2 -32 2q-27 0 -60 -6q-51 -10 -90 -37q-43 -31 -70 -68 q-24 -37 -28 -92z" />
<glyph unicode="Q" horiz-adv-x="1048" d="M137 551q2 14 2 43q0 27 2 41q8 113 41 227q31 115 88 215q25 49 62 99q35 45 80 88q39 37 96 63q53 25 113 25h13q46 0 87 -19q51 -25 80 -55q37 -41 59 -82q27 -51 41 -92q33 -104 41 -201q6 -65 6 -122q0 -46 -4 -89q-8 -63 -14 -102q-12 -66 -23 -101 q-18 -55 -37 -100q-14 -33 -59 -90q16 -37 51 -86l58 -80q12 -22 18 -43q6 -25 4 -47q-6 -31 -27 -51q-25 -25 -53 -27q-4 -2 -12 -2q-2 0 -7 -1t-7 -1q-37 66 -60 96q-34 46 -80 80q-16 -31 -34 -51q-14 -16 -48 -41q-20 -14 -55 -27q-25 -8 -57 -8q-55 0 -90 17 q-43 20 -74 45q-35 29 -62 63q-12 16 -47 76q-43 78 -67 162q-25 86 -25 178zM324 457q0 -59 8 -103q8 -47 37 -84q27 -37 82 -45q20 0 36 8q18 10 33 21q14 12 25 29q8 14 12 34q-16 29 -33 52l-37 51q-16 23 -30 53q-12 27 -13 62q0 12 7 24q2 4 16 19q8 8 22 12 q16 4 25 2q57 -4 98 -33q45 -33 66 -76q28 49 37 105q6 41 14 108q6 68 6 138q0 94 -6 139l-8 61q-6 39 -16 60q-12 29 -33 49t-54 26q-43 -6 -77 -34q-33 -27 -58 -64q-20 -33 -41 -78q-4 -8 -30 -78q-33 -86 -56 -180q-20 -88 -30 -182q0 -14 -1 -46t-1 -50z" />
<glyph unicode="R" horiz-adv-x="1196" d="M178 193q-1 13 0 25q0 58 10 120q8 47 21 145q12 78 22 154q4 37 10.5 75t12.5 79q2 25 1.5 48t-1.5 48l-6 98q-4 61 -4 92q0 29 8 94q4 37 10 52q10 27 25 47q15 22 37 37q20 14 51 18q102 12 190 18q76 5 140 5h53h11q58 0 110 -29q57 -33 90 -82q35 -47 57 -111 q16 -45 16 -97q0 -16 -2 -32q0 -35 -12 -65q-16 -41 -29 -60q-29 -43 -41 -55q-6 -6 -15 -16l-17 -18.5t-17 -14.5q-49 -49 -116 -88q-65 -37 -136 -49q61 -43 136 -103q72 -57 127 -110q16 -16 53 -49q27 -25 51 -52q14 -14 43 -57q18 -27 33 -65q5 -49 5 -52q0 -13 -7 -28 q-2 -18 -17 -43q-12 -23 -34 -29q-17 -5 -34 -5t-32 5q-29 8 -53 27q-16 12 -43 43q-16 18 -37 51q-29 41 -41 61.5t-45 57.5q-76 76 -156 143q-90 78 -164 129q-16 -31 -18 -63q-2 -12 -4 -35t-4 -35q-2 -20 -2 -64v-63q-4 -57 -8 -84q-6 -43 -19 -82q-16 -43 -39 -70 q-19 -22 -47 -21q-7 0 -14 1q-27 2 -54 16q-23 10 -36 37q-6 16 -15 49q-5 20 -5 38q0 8 1 14zM453 848q0 -18 8 -60q57 0 119 23q49 18 108 53l51 31q27 16 47 37q27 27 37 43q18 29 21 53q1 6 1 13q0 12 -3 32q-4 23 -15 39q-12 16 -30 27q-17 9 -35 8h-8q-31 2 -60.5 1.5 t-60.5 -1.5l-121 -4q-14 -4 -25 -19q-12 -16 -14 -26q-2 -4 -2 -16.5t-2 -16.5q-4 -20 -6 -29q0 -16 -2 -32.5t-4 -30.5q-4 -41 -4 -62v-63z" />
<glyph unicode="S" horiz-adv-x="1089" d="M160 254l4 12l12 6q29 -4 49 -12q8 -4 24.5 -9t22.5 -7q20 -8 47 -15q31 -8 52 -10q29 -2 90 -2q33 0 98 12q55 10 96 26.5t82 47.5q35 27 62 70q23 35 28 96q0 18 2 28.5t2 30.5q0 6 -10 27q-4 8 -24 12q-12 0 -38 -1t-40 -1q-31 0 -80 -4q-25 -2 -76 -2q-29 0 -78 -4 q-20 0 -65 4q-18 2 -66 10q-23 4 -63 21q-29 12 -53 33q-29 25 -39 49q-14 31 -19 55q-8 41 -8 63.5t4 63.5q8 96 57 184q47 84 117 158q23 23 76 64q35 27 84 51q35 18 92 32q33 9 72 9h22q63 0 119 -15q66 -16 111 -41q43 -23 88 -71q35 -37 55 -103q2 -6 6 -14 q2 -4 2 -16.5t-6 -18.5q-6 -4 -14 -8q-12 -4 -17 -4q-12 0 -16 2q-41 4 -68 14q-51 20 -63 27l-34.5 11t-33.5 11q-35 12 -69 13q-12 1 -25 1q-42 0 -94 -16q-55 -16 -111 -55q-39 -25 -49 -35q-23 -23 -41 -47q-14 -18 -28 -51q-10 -25 -15 -59q-4 -16 2 -41q6 -23 17 -35 q8 -10 32 -23q18 -10 41 -6q33 0 64 6q14 2 30.5 5t32.5 5q45 8 66 13q31 6 63 6q70 0 137.5 -28.5t106.5 -86t47 -119.5q5 -32 5 -65.5t-5 -67.5q-6 -53 -26 -96q-22 -46 -56 -86t-73 -74q-45 -39 -82 -59q-88 -57 -185 -84q-91 -25 -167 -26q-15 0 -29 1q-70 10 -117 29 q-74 29 -109 47q-16 72 -18 78q-10 33 -10 84z" />
<glyph unicode="T" horiz-adv-x="1112" d="M186 1231q3 15 13 24q6 6 22 15q14 8 27 10q4 2 12 2t12 2q55 8 220 27q70 8 217 16q82 6 161.5 6t159.5 -6q27 -4 43 -14q25 -16 35 -29q14 -14 27 -33q10 -16 14 -41q0 -27 -14 -43q-18 -20 -35 -28q-29 -12 -45 -15q-4 0 -20.5 -3t-24.5 -3q-29 -3 -63 -3q-21 0 -44 1 q-18 2 -53 2t-53 2l-33 -217l-33 -217q-14 -109 -31 -217q-12 -84 -34 -217q-12 -39 -17 -68q-6 -39 -18 -71q-12 -37 -33 -62q-18 -25 -57 -37q-10 -1 -19 -1q-18 0 -33 5q-25 9 -43 25t-28 39q-10 25 -4 51q2 39 10 92q8 57 16 88q25 123 39 185q22 92 31 184q6 72 10 223 q1 26 1 50q0 93 -11 169l-145 -6q-53 -2 -146 -10q-15 6 -18 18q-2 4 -5 12.5t-3 10.5t-2.5 6t-2.5 6q0 8 -1 16.5t-1 18.5v35z" />
<glyph unicode="U" horiz-adv-x="1026" d="M178 506q2 45 10 121l13 121l18 122q4 31 9 61l10 60l2 19l2 16v10q4 23 0 45l-4 47q0 6 -1 22.5t-1 23.5q0 33 2 47q8 31 18 43q12 16 37 32q37 29 90 39q43 -20 59 -49q18 -34 25 -74q5 -32 5 -61q0 -12 -1 -23v-41.5t-2 -39.5q-4 -35 -9 -69t-9 -65l-19 -131 q-2 -23 -8 -67.5t-8 -67.5q-12 -90 -17 -135q-1 -13 -1 -29q0 -10 0.5 -28.5t0.5 -28.5q0 -47 9 -86q2 -16 10 -39q4 -10 18 -35q8 -14 25 -26q14 -12 39 -13q53 6 84 37q29 29 51 74q20 41 33 90q12 47 20 86q10 61 39 270q14 96 33 271q0 4 4 32.5t8 45.5q10 49 23 75 q2 2 8 19.5t10 25.5q12 22 25 37q10 12 30 23q18 8 39 6q45 -12 74 -47q8 -8 25 -33q12 -20 10 -41q-2 -6 -17 -35q-4 -6 -10 -17t-8 -18q-14 -37 -16 -71l-9 -72q-2 -25 -2 -72q0 -45 -2 -69.5t-2 -71.5q0 -35 -6 -72q-12 -131 -26 -200q-23 -111 -60 -199 q-25 -57 -57 -108q-37 -57 -74 -95q-39 -39 -88 -63q-42 -21 -92 -21h-15q-11 -1 -21 0q-34 0 -65 9q-35 10 -77 34q-39 23 -68 52q-23 23 -49 67q-45 74 -64 158q-13 59 -13 117q0 28 3 55z" />
<glyph unicode="V" horiz-adv-x="1032" d="M201 1225q2 16 18 32l31 25q14 12 33 14q14 2 39 11q37 -4 57 -27t29 -55q10 -35 12 -68q4 -45 8 -65q0 -147 2 -222q4 -147 8 -221q4 -41 4 -59q0 -33 9 -58l8 -45q2 -18 10 -36q4 -10 16 -27q10 -14 27 -16q23 20 43 53q12 20 29 61q14 37 22 66q2 6 25 63l27.5 84 t21.5 70q33 102 47 153l43 111l47 109q2 4 7 12l9.5 15t8.5 16q20 43 24 47q14 23 33 39q14 14 41 24q29 -10 45 -28q4 -4 17.5 -18.5t19.5 -22.5q8 -12 22 -52q12 -33 15 -55q-2 -51 -35 -104q-14 -27 -30.5 -51.5t-30.5 -51.5l-43 -98l-39 -98q-4 -16 -50 -144 q-14 -37 -26 -72.5t-25 -68.5l-59 -139q-45 -100 -66 -135q-14 -29 -39 -64q-25 -37 -49 -57q-35 -31 -61 -43q-31 -14 -74 -15q-23 4 -41 18.5t-26 35.5q-2 6 -5.5 20t-5.5 23q-8 27 -10 45q-8 41 -20 118q-10 59 -13 119l-12 125q-4 45 -8 123q-14 141 -37 287 q-8 47 -53 282v15z" />
<glyph unicode="W" horiz-adv-x="1308" d="M174 528q2 23 2 68q0 23 4 68q12 111 23 167q23 119 35 168l34 109q18 51 39 98q22 46 56 80q35 35 82 49q5 1 9 1q24 0 38 -13q16 -16 22 -41t6 -49q0 -20 -4 -49q-4 -14 -8 -43t-8 -43q-2 -12 -23 -82l-12 -35q-8 -20 -12 -33q-27 -92 -49 -182q-23 -86 -33 -186 q-2 -18 -2 -38q0 -27 4 -61q8 -57 22 -96q49 59 80 125q33 72 53 139q6 18 37 144q25 98 39 143q3 31 13 61l9 30.5t9 31.5q2 12 12 28q12 20 21 29q12 12 28 19q20 8 31 6q45 0 71.5 -27t35.5 -61q12 -49 14 -78v-40t2 -36q2 -33 2 -100q0 -16 -1 -49t-1 -50 q4 -102 14 -178q12 -92 39 -170q25 43 37 74q10 27 23 80q6 23 14 82q2 14 7 40.5t7 41.5l20.5 176l20.5 176l8 86q2 27 15 84q6 18 10 47q4 27 10 37l6 14l9 17q4 4 11 10t9 8q6 6 12 4q41 -2 70 -29q33 -29 45 -57q16 -37 23 -74q4 -27 4 -75q-2 -8 -2 -29t-2 -29 q-4 -41 -9 -57q-2 -16 -5 -48t-5 -48q-4 -33 -8 -99q0 -29 -2 -43t-2 -45q0 -8 -2 -22.5t-2 -22.5q0 -14 -4 -43q-8 -76 -29 -168q-16 -76 -57 -164l-11.5 -23l-14.5 -28.5l-13 -25.5q-14 -27 -51 -72q-33 -39 -64 -57q-41 -23 -80 -29q-9 -1 -18 -1q-41 0 -78 23 q-45 29 -70 70q-35 57 -49 96l-37 101q-15 -46 -37 -99q-23 -55 -51 -98q-31 -47 -71 -76q-43 -31 -101 -30q-41 4 -65 16q-35 18 -58 37q-25 22 -43 49q-16 25 -26 59q-12 39 -19 84q-6 43 -6 84q0 14 -1 44t-1 44v84z" />
<glyph unicode="X" horiz-adv-x="1073" d="M162 145q0 2 1 8.5t1 8.5v16q8 53 31 107q10 27 51 98q18 33 59 94l62 94q23 37 47 72l45 74q-23 80 -56 151l-61 150l-25 59q-4 10 -11 29.5l-11 30.5q-12 31 -19 61q-8 41 -8 66q4 18 11 26q10 12 20 19q23 12 27 12q6 2 14 4t12 2l33 4q16 4 30.5 -4t20.5 -16 q4 -4 7 -10.5t8 -12.5q23 -35 36 -69l33 -72q39 -90 43 -100.5t43 -100.5q20 47 58 115l63 110l31 46q20 33 30 47q20 29 33 41q18 18 43 30q31 -4 45 -12q20 -12 35 -29q10 -12 23 -41q10 -25 10 -45q-12 -70 -43 -139q-33 -74 -70 -129q-41 -63 -88 -123l-88 -119 q35 -92 76 -168l86 -165l63 -123q29 -59 52 -127q-6 -14 -19 -27q-12 -10 -26 -20q-12 -12 -27 -19q-4 -2 -16.5 -5t-16.5 -5q-39 4 -61 20q-25 18 -45 45q-10 14 -37 58q-27 45 -35 55q-25 47 -70 141l-22 50.5l-18.5 42l-24.5 51.5l-68 -140l-65 -139q-15 -25 -31 -55 q-10 -20 -35 -57q-20 -29 -43 -48q-27 -20 -55 -22q-23 4 -37 12q-16 10 -27 23q-14 18 -18 30q-6 19 -6 39z" />
<glyph unicode="Y" horiz-adv-x="958" d="M193 995q0 86 12 174q4 25 12 45q10 25 23 39q14 16 34.5 30.5t42.5 16.5q27 0 39.5 -10t22.5 -30q6 -14 10 -37q4 -20 6 -39q0 -41 4 -123q2 -20 2 -61.5t2 -61.5q4 -33 9 -47q6 -25 18 -43.5t30.5 -30.5t45.5 -12q35 16 59 43q29 31 47 61q14 23 37 68q29 57 35 67 q25 45 35 70q6 12 11 24.5t9 20.5l13 25l36 67q12 23 46 64q10 10 28 14q14 3 24 3q5 0 9 -1q18 -2 43 -16.5t37 -28.5t22.5 -38.5t10.5 -47.5q-4 -37 -15 -67q-14 -37 -26 -64q-6 -12 -37 -63l-37 -62l-92 -137q-43 -63 -88 -143l-82 -183l-78 -184l-13.5 -37.5 t-17.5 -44.5l-30 -80q-6 -10 -19 -35l-18 -37q-10 -16 -27 -28q-20 -16 -35 -19q-31 0 -55 13q-23 12 -41 37q-18 27 -24.5 51t-2.5 57q6 55 25 111q23 68 41 106q23 47 53 103l55 100q-51 0 -86 18q-43 23 -67 54q-31 37 -47 75q-23 51 -29 82q-22 86 -22 172z" />
<glyph unicode="Z" horiz-adv-x="1058" d="M184 150q0 2 3 15t3 19q0 8 9 33q33 88 73 162q16 29 93 151l206 308l217 301q-8 2 -73 12q-32 5 -58 5q-11 0 -20 -1h-43q-12 0 -41 -4h-41h-39q-49 -4 -70 -4q-10 0 -33.5 2t-35.5 2q-29 4 -41 6q-20 4 -35 12q-12 8 -22 21q-8 12 -7 29q20 41 57.5 65.5t80.5 36.5 q47 14 88 16q31 2 84 11l82 4h41h40q66 -4 97 -11q43 -8 92 -32q41 -20 70 -60q27 -35 26 -90q-4 -80 -37 -149q-31 -66 -73 -138l-117 -176q-8 -12 -125 -170l-107 -149q-49 -72 -96 -160q104 6 205 25q94 16 201 47q4 2 12 2q4 0 12 4q18 4 41 0q20 -2 39 -12 q16 -8 26.5 -24.5t4.5 -41.5q-4 -23 -21 -49q-14 -25 -39 -37q-86 -37 -192 -59q-70 -14 -199 -35q-4 0 -45 -5t-63 -7q-14 -1 -30 -1q-36 0 -77 5q-20 2 -43 18q-2 2 -35 29l-15 15t-15 18q-11 16 -15 41z" />
<glyph unicode="[" horiz-adv-x="776" d="M170 217l6 152l6 149l6 156q4 88 15 155q2 20 7 60.5t7 60.5q2 25 9 68t10 51q10 63 24 121q15 58 37 117q2 2 4 6t4 6q2 6 8 8q102 25 185 27q92 4 182 -19q39 -10 57 -37q25 -37 23 -67q0 -16 -12 -29q-4 -4 -10.5 -10l-12.5 -12q-14 -10 -29 -17q-18 -6 -34 -4 q-98 16 -197 10v-4l-12 -37q-4 -12 -9 -36l-12 -144l-16 -141q-6 -45 -15 -145q-8 -92 -10 -146l-6 -49l-6 -51q-2 -8 -2 -24.5t-2 -24.5l-4 -52q-4 -33 -4 -49q0 -33 -2 -49q57 -8 81 -8q53 0 82 2q12 2 33 2q8 0 33 4q10 0 31 -4q16 -4 30 -14q14 -12 21 -25q4 -12 2 -31 q-2 -12 -10 -37q-6 -16 -19 -32q-14 -18 -31 -27q-20 -10 -36 -12q-78 -18 -156 -19q-92 0 -156 11q-12 2 -24.5 10t-20.5 12q-33 29 -45 78t-10 90z" />
<glyph unicode="\" horiz-adv-x="765" d="M158 1346q6 14 20 24q16 10 33 12q10 2 31 -2q16 -4 28 -12q12 -10 23 -22l18 -25l29 -64q8 -16 14 -32.5t13 -30.5l88 -199q49 -115 77 -204l43 -142l46 -141l41 -115l38 -112l13 -54l12 -53q6 -27 6 -53q0 -35 -2 -53q0 -23 -14 -37q-18 -18 -35 -23q-33 4 -53 21 q-22 18 -37 43q-12 20 -27 55q-8 20 -24 53q-88 209 -174 449q-90 252 -148 461q-14 37 -22 65q-6 16 -10.5 32.5t-8.5 33.5l-16 61q-6 29 -2 64z" />
<glyph unicode="]" horiz-adv-x="776" d="M135 137q-2 6 2 15q6 12 8 14t6.5 4t6.5 6l12 12q25 14 29 17q16 6 30 4q31 -4 101 -8q33 -2 100 -2v2q2 14 10 39q4 12 9 36q2 23 7 70t7 72q4 35 7 69.5t7 69.5q6 45 15 145l12 146l6 51q2 8 2 25.5t2 25.5l6 51q0 8 1 16.5t2 14.5t1 19q4 33 4 51v49q-80 12 -163 6 q-12 -2 -33 -2q-8 0 -33 -4q-10 0 -31 4q-16 4 -28 12q-12 9 -19 25q-6 16 -4 33q4 20 10 35q10 18 21 32q12 14 28 25q14 8 35 12q72 16 158 21q72 2 154 -11q10 -4 24 -8q16 -8 23 -14q12 -10 28 -35q12 -18 19 -41q6 -20 6 -45q0 -8 1 -23.5t1 -21.5l-6 -152l-6 -151 q0 -25 -4 -78t-4 -78q-3 -77 -13 -153q-18 -152 -33 -244q-16 -113 -63 -240q-2 -2 -4 -5t-2 -5q-2 -4 -10 -8q-96 -23 -185 -23q-98 0 -178 17q-39 10 -59 39q-23 32 -23 67z" />
<glyph unicode="^" horiz-adv-x="735" d="M147 770q4 25 21 74q12 35 31 69l11 21.5l13 25t13 21.5q12 18 21 36.5l15 31.5q22 28 43 61l41 64q25 35 50 59q28 28 61 43q31 -10 63 -39q25 -23 47.5 -57.5t36.5 -69.5q18 -43 33 -68q12 -35 27 -69q14 -33 24 -72q12 -49 15 -72q4 -51 0 -77q-2 -27 -31 -47 q-23 -16 -51 -21q-4 0 -12.5 -1t-12.5 -1q-8 0 -20 4q-6 2 -19 10q-10 6 -12 17q-25 88 -49 153l-55 150l-70 -152l-72 -153q-4 -10 -10 -15l-12 -6q-6 -2 -19 -2h-14q-25 4 -37 8q-15 6 -31 19q-33 20 -39 55z" />
<glyph unicode="_" horiz-adv-x="1157" d="M129 90q25 39 68 60q47 23 84 26q61 8 92 8q61 0 88 4q28 3 55 0q18 -2 55 -2q74 -4 113 -4h64q41 -4 61 -4q20 -2 61 -2h62q4 -2 18.5 -8t22.5 -10q29 -16 39 -27q20 -20 24 -37q6 -25 -4 -47q-16 -23 -35 -31q-22 -9 -43 -12q-375 -9 -749 0l-29 10q-18 8 -26 19 q-12 16 -17 26q-6 17 -4 31z" />
<glyph unicode="`" horiz-adv-x="346" d="M215 1690q0 14 2 22q0 20 21 41q16 16 43 21q33 -6 57 -33q23 -27 35 -60q8 -25 16 -69q2 -14 6 -33.5t6 -36.5v-26l-6 -25q0 -14 -10 -21q-16 -12 -20 -12q-37 0 -64 23q-29 25 -43 53q-16 33 -25 65q-14 57 -16 68q0 4 -1 12.5t-1 10.5z" />
<glyph unicode="a" horiz-adv-x="1064" d="M123 197q6 117 33 223q28 111 61 221l68 213q34 104 80 209q8 18 20 41.5l27 50.5q20 41 59 90q31 41 76 72q43 31 98 37q43 0 82 -22.5t61 -53.5q29 -41 43 -76q15 -40 25 -80q25 -104 33 -180l16 -182q4 -66 17 -180q9 -89 30 -179q4 -14 9.5 -28.5t9.5 -28.5t14 -57 q8 -37 8 -58q0 -29 -6 -59q-4 -29 -10 -43q-4 -8 -23 -37q-12 -18 -30 -31q-16 -10 -39 -14q-25 -6 -47.5 0t-36.5 21q-20 20 -29 34q-10 18 -10 43q1 14 1 28q0 35 -5 75q-4 31 -8 100q-25 -2 -50 -1l-49 1q-33 0 -49 2q-33 4 -51 2q-27 0 -84 -4q-61 -4 -88 -10 q-10 -39 -29 -90q-20 -57 -28 -88q-2 -8 -7.5 -17.5t-9.5 -19.5q-6 -14 -18 -39q-9 -18 -24.5 -30.5t-37.5 -12.5q-25 2 -51 16q-25 12 -37 37q-8 23 -12 51q-2 17 -2 54zM424 539q53 -2 160 -2h164q-2 25 -5.5 78t-5.5 77.5t-5 77.5t-5 78q-2 18 -5 36.5t-5 37.5 q-12 68 -12 71q-10 45 -23 70q-12 29 -37 59q-61 -61 -92 -129q-41 -88 -59 -145q-27 -98 -39 -156l-15.5 -77.5t-15.5 -75.5z" />
<glyph unicode="b" horiz-adv-x="1144" d="M170 295q6 66 8 80l19 80l18 110q8 43 14 111q9 129 13 258q6 258 6 260q43 55 94 84q47 27 117 47q70 18 121 23q61 6 122 6q41 0 127 -13q61 -8 115 -43q28 -15 49 -36q18 -18 33 -52q16 -35 21 -59q6 -35 4 -61q-2 -33 -13 -72q-8 -31 -28 -70q-16 -33 -41 -65 q-29 -41 -45 -60q52 -25 86 -67q33 -41 55 -97q18 -41 29 -104q4 -23 4 -49q0 -25 -4 -62q-10 -70 -37 -114q-35 -59 -72 -97q-49 -49 -96 -79q-61 -39 -107 -58q-113 -51 -231 -65q-58 -7 -114 -8q-63 0 -122 10q-47 6 -71 33q-25 29 -45 67q-14 33 -25 80q-5 23 -5 51 q0 14 1 31zM375 299q0 -20 4 -61q27 -2 54 -3q46 0 97 7q70 8 148 39q34 15 67 36q31 18 58 54q25 31 39 65q16 39 16 74q3 15 3 30.5t-3 30.5q-6 29 -22 56q-15 25 -43 37q-29 12 -60 10q-52 -3 -98 -19q-31 -10 -92 -39l-84 -53q-43 -27 -70 -69q-2 -10 -3 -21.5t-2 -25 t-1 -19.5l-6 -63q-2 -21 -2 -66zM422 793q74 25 117 36q66 18 120 45q61 29 103 70q47 47 61 109q2 9 2 18t-2 19q-2 18 -16 34q-10 12 -27 23q-10 6 -39 6q-63 0 -94 -2q-55 -4 -92 -18q-43 -14 -80 -56q-35 -39 -41 -86q-2 -6 -2 -16t-2 -17q0 -8 -2 -20t-2 -20 q-2 -14 -2 -41q0 -8 -1 -22.5t-1 -20.5v-41z" />
<glyph unicode="c" horiz-adv-x="1058" d="M147 614q8 121 50 242q37 113 108 225q33 55 74 103q39 45 92 88q49 41 107 61q51 19 104 19h16q76 -2 140 -41q57 -35 106 -97q51 -57 80 -120.5t29 -130.5v-13q0 -23 -4 -35q-8 -25 -14.5 -35t-26.5 -22q-15 -9 -37 -6q-35 0 -64 22q-23 16 -41 52q-6 10 -24 63 q-4 12 -14.5 37t-12.5 29q-20 37 -47 55.5t-64 18.5q-5 0 -10 -1q-47 0 -82 -20q-39 -23 -63 -53q-31 -37 -49 -72q-23 -43 -37 -76q-39 -94 -57 -170q-23 -92 -29 -174q-6 -43 -6 -84q0 -29 4 -82q2 -16 10 -59q6 -27 21 -53q10 -18 32 -37q20 -16 47 -17q9 -1 20 0l85 7 q45 6 100 32q29 14 45 29l43 37q16 14 49 29q28 12 56 12q18 2 30 -6q12 -9 19 -25q6 -14 6 -33q0 -12 -4 -32q0 -18 -6 -33q-14 -31 -31 -53q-23 -29 -43 -45q-39 -29 -49 -35l-51 -31q-49 -27 -109 -49q-53 -20 -117 -21h-13q-43 0 -87 15q-49 16 -86 45q-45 35 -72 69 q-35 47 -53 84q-47 90 -61 187q-10 65 -11 136q0 31 2 64z" />
<glyph unicode="d" horiz-adv-x="1042" d="M162 307q0 4 12 144q8 72 14 143q16 80 25 151l20 152q6 31 7 64q0 20 4 61l6 63l8 64q10 49 14 65q10 37 29 62q20 27 53 43q31 14 66 18q82 8 125 9q70 0 125 -8.5t118 -32.5q53 -20 103 -64q45 -39 74 -94q29 -53 43 -113q16 -61 18 -125q1 -28 1 -53q0 -40 -3 -74 q-6 -135 -63 -272q-53 -129 -146 -246q-37 -49 -98 -102q-53 -47 -117 -82q-59 -33 -131 -49q-40 -9 -79 -9q-29 0 -58 5q-46 6 -80 36q-31 29 -55 70q-16 41 -27 84q-9 41 -9 74q0 8 1 16zM377 422q4 -63 14 -113q11 -1 22 0q35 0 68 8q49 12 86 33t78 58q33 29 60 73 q57 76 86 170q25 82 34 185q2 12 2 34q0 6 -1 17.5t-1 17.5q0 12 -1 24.5t-1 26.5q0 18 -4 52q-2 18 -14 47q-8 18 -29 39q-43 33 -90 41t-102 8q-10 -2 -27 -2h-29q-8 -2 -24 -2q-4 0 -13.5 -1t-13.5 -1q-23 -41 -35 -86q-14 -53 -22 -90q0 -4 -12 -91l-13 -90 q-2 -31 -5 -61.5t-5 -59.5q-4 -39 -8 -120q-2 -29 -2 -58.5t2 -58.5z" />
<glyph unicode="e" horiz-adv-x="1083" d="M162 467q10 133 33 248q16 82 53 246q31 131 61 241q20 37 37 49q33 25 51 33q33 14 60 23l57 16q104 23 195 25q37 1 66 1q62 0 116 -6q16 0 41 -8q8 -2 33 -22q16 -14 22 -31q6 -20 4 -41q0 -16 -8 -31q-10 -16 -20.5 -24t-26.5 -15q-10 -4 -31 -4h-67q-45 0 -68 2 q-12 1 -23 1l-69 -7q-61 -12 -90 -24q-41 -18 -78 -52q-35 -33 -47 -77q-4 -12 -8 -37q0 -6 -2 -17.5t-4 -17.5v-23v-22q66 4 114 14q37 8 115 21q74 16 113 22q44 7 85 7q14 0 29 -1q27 0 39 -4q20 -6 35 -18q16 -14 22.5 -30.5t2.5 -41.5q-4 -31 -19 -49q-16 -18 -39 -31 q-25 -12 -51 -18q-14 -4 -49 -8q-37 -4 -74 -7.5t-74 -7.5q-66 -6 -147 -22q-45 -14 -70 -35q-37 -31 -55 -55q-23 -33 -35 -68q-14 -43 -14 -76q-2 -21 -2 -43q0 -30 4 -69q6 -59 18 -113q68 14 140 47q31 14 133 68l65 33q45 20 68 28q39 14 69 23q33 8 72 12q7 1 13 1 q34 0 61 -15q35 -18 49 -54v-6q-27 -41 -68 -75q-18 -16 -88 -58q-61 -37 -94 -51l-92 -47l-96 -45q-10 -4 -30.5 -13.5l-37 -16.5l-31.5 -13q-61 -23 -102 -33q-61 -14 -102 -14q-33 4 -57.5 14t-45.5 35q-12 20 -24 55q-4 14 -15 58q-16 63 -20 135q-3 64 -3 99q0 21 1 40 z" />
<glyph unicode="f" horiz-adv-x="882" d="M158 233l6 48l6 49l12 100q4 33 8 102q4 41 5 60q0 20 4 57q2 10 2 30.5t2 31.5l6 61q2 16 4 48t2 34t2 34t4 48q4 53 8 78q2 18 5.5 37.5t5.5 40.5q2 14 4 30l4 29q12 47 47 72q39 29 76 43q57 16 83.5 22l84.5 19q25 6 74 14t71 14q49 4 70 4q47 0 69 -4 q31 -6 49.5 -20.5t38.5 -36.5l29 -43q14 -25 12 -51q-6 -20 -16 -25q-14 -8 -29 -10q-20 -4 -30 -4q-20 0 -29 -2q-37 -2 -111 -2q-45 0 -106 -11q-23 -6 -51 -16q-27 -10 -48 -24q-20 -16 -40 -35q-16 -16 -27 -45q-14 -35 -25 -78q-9 -40 -12 -80q0 -4 -1 -8t-1 -6v-15 q39 0 59 2l62 6q10 0 29.5 2.5t29.5 2.5q31 3 62 0q25 0 69 -5q33 -2 68 -20q29 -23 37 -53q8 -29 8 -51q0 -10 -2 -19q-4 -18 -14.5 -32.5t-26.5 -16.5q-29 -8 -39 -8h-37q-27 -2 -84 -2q-29 0 -86 -4q-49 -4 -84 -15q-39 -12 -76 -37q-12 -37 -16 -94q-2 -27 -10 -94 q-4 -35 -8 -104l-7 -105q0 -6 -3 -21.5t-5 -23.5q-2 -18 -14 -47q-10 -23 -27 -37q-15 -13 -34 -13q-4 0 -9 1q-37 6 -57.5 26.5t-32.5 47.5q-16 37 -18 61q-2 22 -2 63z" />
<glyph unicode="g" horiz-adv-x="1085" d="M147 655q8 123 58 256q43 121 137 230q45 53 96 94q49 39 115 68q57 25 127 38q43 8 86 9l43 -2q23 0 51 -7q25 -6 47 -18q25 -14 35 -33q12 -22 12 -49q0 -2 -1 -10t-1 -12.5t-3 -12.5t-3 -10q-2 -10 -10 -18.5t-21 -8.5q-12 4 -18 5h-16q-24 3 -47 2q-30 0 -60 -5 q-53 -8 -106 -30q-47 -20 -97 -56q-43 -31 -79 -81q-70 -92 -105 -201q-31 -98 -41 -221q-4 -49 -4 -80q0 -41 6 -84q6 -47 21 -80q18 -45 39 -68q25 -27 57 -45q35 -18 84 -18h10q44 0 86 22q45 25 80 66q31 41 53 88q18 41 29 96q4 16 8 53t8 54q2 14 2 45q0 33 -2 47 q-33 -4 -51 -6q-29 -4 -53 -13q-8 -2 -26.5 -5t-26.5 -5q-31 -6 -54 -4q-20 -2 -37 4q-14 6 -26 19q-8 8 -17 30q-4 12 0 35l3 19l4 16l2 2q12 20 30 33q16 10 39 20q39 14 78 31q6 2 34 14.5t44 16.5q59 18 78 22q35 8 80 8q49 -6 86 -38q37 -35 49 -82l6 -43q1 -6 1 -13 q0 -10 -3 -30q-6 -57 -19 -109q-6 -27 -11 -53.5t-11 -52.5q-18 -90 -57 -166q-45 -90 -97 -150q-37 -45 -59 -65q-35 -33 -72 -54q-41 -23 -80 -34q-38 -11 -71 -11h-15h-15q-46 0 -95 15q-51 14 -96 47q-47 35 -80 71q-35 41 -60 91q-49 96 -67 200q-13 76 -13 150 q-1 34 2 67z" />
<glyph unicode="h" horiz-adv-x="1095" d="M164 299q0 55 8 98q12 66 14 101q20 88 35 209q8 66 8 98v98q0 2 7 94q2 27 10 95l12 63q8 45 16 66q16 39 31 59q18 25 51 39q11 2 21 1q30 0 51 -15q27 -20 39 -56q12 -33 12 -75q0 -39 -6 -72q-6 -70 -22 -187l-25 -186q29 -4 82 -8q12 -1 27 -1q9 0 27 0.5t28 0.5 q63 0 96 2t98 10q2 16 4.5 49t4.5 49.5t4 49t4 49.5q2 23 2 69v68q-2 23 -2 68q0 23 4 67q0 12 4 45q2 23 12 45q8 20 27 35q15 13 38 13q4 0 9 -1q33 -2 59 -22q23 -16 39 -47q10 -18 19 -62q3 -19 3 -38q0 -12 -1 -25q-2 -14 -2 -41t-2 -39l-6 -80q0 -29 -5 -82l-6 -80 l-6 -112q-4 -74 -4 -113q0 -37 -1 -112.5t-3 -112.5q-4 -147 -4 -226l-2 -24q-10 -33 -35 -49q-27 -18 -57 -25q-25 -6 -45 4q-14 8 -29 29q-12 18 -19 41q-4 14 -8 43q-4 61 -4 92q0 29 4 94l4 99q1 13 1 26q0 34 -5 74q-43 -6 -116 -10q-39 -2 -117 -2q-53 0 -78 2l-76 4 q-4 -16 -8 -51t-8 -54q-9 -52 -12 -104q-2 -20 -3 -62q0 -10 1.5 -30.5t1.5 -30.5v-61v-60q0 -16 -7 -29q-6 -14 -20 -20q-8 -4 -29 -8q-4 -1 -8 -1q-7 0 -18 3q-43 9 -68 37q-20 23 -35 65q-10 33 -14 80q-2 29 -2 80z" />
<glyph unicode="i" horiz-adv-x="466" d="M156 274q-1 14 -1 30q0 35 5 81q4 66 16 193l19 192l20 191l12 95t11 95q3 25 6 55q2 27 12 56q8 27 27 51q15 22 43 37q9 2 18 1.5t16 -1.5q16 -4 31 -14.5t23 -25t14 -28.5q8 -41 8 -83q0 -21 -2 -44q-4 -70 -8 -108q-12 -104 -12 -109l-13 -115l-12 -114 q-6 -61 -6 -121q0 -20 -1 -60.5t-1 -60.5q0 -18 -1 -56t-3 -57q-4 -74 -8 -112l-12.5 -66t-18.5 -69.5t-33 -57.5q-23 -27 -57 -35h-6q-23 0 -37 17q-25 29 -29 37q-2 12 -3 24t-3 25q-2 14 -10 47z" />
<glyph unicode="j" horiz-adv-x="1058" d="M125 727q4 18 16 29q10 8 27 14q15 6 31 6q6 0 16 1t14 1l15 -8l4 -4q31 -40 43 -86q8 -31 20 -96l31 -119q12 -51 41 -113q12 -27 27 -45q12 -18 39 -37q20 -14 47 -24q23 -8 55 -8q23 12 31 32q12 29 16 45q6 25 6 50q0 29 6 49q4 33 4 49q0 8 1 25.5t1 25.5q4 33 5 51 q0 35 2 51q10 123 14 275q1 23 0 46q0 106 -10 224q-45 8 -68 8q-31 0 -67 11q-27 8 -50 30q-14 14 -30 52q-6 12 -6 24q0 4 -1.5 12.5t-1.5 12.5q0 12 13 22q10 8 26 13q98 8 193 8q47 0 94 -2q117 -4 285 -31q27 -12 37 -37q17 -39 17 -62q0 -9 -5 -22q-6 -15 -19 -24 q-20 -14 -28 -19q-15 -6 -31 -6q-34 -6 -67 -6q-12 0 -35 -1t-35 -1q-6 -102 -6 -201q0 -33 -1 -99.5t-1 -101.5l-6 -204q-4 -109 -15 -203q-6 -63 -20 -109q-15 -52 -43 -104t-80 -80q-51 -27 -99 -27h-10q-59 0 -114 23q-47 20 -95 59q-45 39 -77 86q-37 55 -60 99 q-53 102 -80 213q-20 82 -20 164q0 34 4 69z" />
<glyph unicode="k" horiz-adv-x="1110" d="M172 246q-2 28 -2 54.5t2 53.5q0 33 4 94.5t8 92.5q2 37 11 96q8 61 10 94q2 8 3 23.5t1 23.5q4 33 4 47q4 29 4 45q0 23 6 45q12 51 19 109q6 55 18 111q10 51 35 104q20 45 65 88q14 3 25 3q20 0 33 -9q18 -14 33 -41q12 -25 12 -55q0 -41 -4 -58q-4 -25 -8 -41 q-10 -33 -11 -39q-8 -31 -10 -40l-6 -41q0 -6 -2 -17.5t-3 -21t-1 -17.5t-1 -26.5t-1 -28.5q37 20 76 49q12 8 69 62l68 65l65 66q37 33 55.5 51t55.5 51q20 18 61 43q31 18 68 25q20 -2 45 -17q18 -10 35 -30q12 -16 20 -46q8 -33 8 -47l-6 -16q-4 -4 -12 -16 q-23 -12 -35 -22.5t-37 -20.5l-20 -12.5t-21 -10.5l-39 -20q-92 -66 -155 -131q-80 -84 -137 -152q31 -47 61 -84l66 -78q27 -37 88 -110.5t90 -112.5q45 -61 73 -121q29 -61 39 -137q-4 -23 -10 -33t-22 -27q-12 -12 -29 -18q-8 -4 -33 -8q-29 4 -45 14t-35 33 q-20 25 -28 39q-4 8 -29 37l-82 135l-86 133l-37 49q-12 16 -41 45q-20 20 -47 37q-20 12 -57 21h-15q-10 0 -14 -2q0 -6 -1 -19.5t-2 -24t-3 -18.5q-2 -16 -5 -30.5t-5 -30.5q-4 -18 -9 -60q0 -2 -3 -25.5t-3 -33.5q-2 -20 -2 -60v-59q4 -74 4 -108q-4 -31 -16 -62 q-10 -12 -23 -12q-18 0 -26 2q-41 2 -72 32.5t-39 67.5q-6 39 -10 109z" />
<glyph unicode="l" horiz-adv-x="892" d="M166 342q2 35 10 111q8 74 17 112q10 45 20 115q4 20 8 59t8 58q6 51 7 100q0 31 4 100l6 97q2 31 10 96q4 33 8 45q4 14 21 43q10 18 30 35q12 10 43 18q11 2 20 2q30 0 48 -16q27 -23 35 -55q8 -31 8 -74q0 -29 -4 -70q-6 -57 -27 -168l-32 -168q-12 -66 -27 -170 q-16 -121 -23 -170q0 -16 -2 -53t-2 -53q-1 -9 0 -18q0 -44 13 -85h14q40 0 90 15q63 18 102 35q10 4 31 14t31 14q12 6 27.5 14.5l31.5 16.5q47 20 58 27q23 12 57 20q14 4 41 0q18 -2 35 -16q14 -10 20 -31q3 -9 3 -18q0 -12 -5 -23q-12 -37 -38.5 -71.5t-59.5 -57.5 q-31 -23 -72 -43q-55 -29 -72 -37q-77 -34 -159 -55q-58 -15 -115 -15q-24 0 -49 3q-37 2 -80 22q-37 16 -59 55q-18 43 -23 74q-4 27 -4 80q-4 29 -4 41v45z" />
<glyph unicode="m" horiz-adv-x="1320" d="M172 297q-2 41 -2 83.5t2 84.5q8 162 25 270q18 113 53 269q4 14 14 57t15 57q6 12 20 58q9 28 25 55q12 20 18 32.5t23 32.5q10 12 30.5 24.5t36.5 14.5q6 1 11 1q13 0 28 -5q16 -6 29 -20q10 -14 20 -33q6 -12 15 -37q49 -176 79 -338q33 -164 52 -348q27 47 49 102 l45 103l67 166q45 111 70 166l33 65l35 68l22 35q16 25 25 34q14 18 24 25q14 8 31 8q49 -12 76 -35q35 -27 51 -61q20 -43 29 -78q12 -57 14 -86t2 -88v-82q0 -37 -6 -70q-4 -20 -8 -69q-4 -20 -8 -70q0 -12 -4.5 -34.5t-4.5 -32.5v-80q0 -27 4 -80q0 -94 -2 -142 q-2 -63 -16 -141q-2 -6 -4 -18.5t-4 -18.5q-6 -25 -15 -39q-12 -25 -20 -34q-12 -16 -33 -25q-6 -1 -11 -1q-15 0 -30 5q-20 6 -35 19q-16 12 -26 28q-14 20 -17 37q-6 25 -2 55q2 10 2 28.5t2 29.5l13 162q8 106 8 159q0 55 -4 162q-4 84 -25 160q-45 -143 -71 -215 q-16 -43 -84 -213q-18 -37 -39 -88q-29 -72 -37 -88q-20 -39 -47 -84q-27 -43 -62 -72q-18 0 -34.5 10t-28.5 25q-8 10 -19 31q-8 16 -14 34q-8 31 -33 150l-28 151l-33 154q-15 77 -43 147q-25 -95 -37 -190q-8 -66 -16 -193q-1 -10 -1 -22q0 -8 0.5 -23t0.5 -22 q0 -23 4 -68t4 -67v-68q0 -12 -4 -33q-2 -6 -3 -17t-1 -17l-2 -19l-7 -14l-8 -15q-20 -14 -39 -14h-28q-4 2 -14.5 6t-16.5 4q-14 2 -27 19q-16 23 -26 61q-23 74 -27 160z" />
<glyph unicode="n" horiz-adv-x="1071" d="M160 158q0 39 6 78l12 75l17 84q9 40 12 80q4 94 4 141q0 23 1 70t1 72q0 23 3 68.5t5 70.5q4 80 15 139q6 25 14 74q8 59 14 80q8 35 29 72q20 39 51 57q18 4 37 -4q16 -6 29 -19q16 -16 22 -26q2 -4 8 -14.5t11 -14.5q20 -45 28 -70q4 -12 12.5 -31.5t14.5 -41.5 q14 -39 26.5 -79l24.5 -79q18 -61 57 -154q25 -61 68 -147q37 -74 88 -137q0 8 2 16t4 17q4 20 6 32q0 18 -1 53t-1 52q0 70 2 104q-2 55 -2 168q0 111 4 166q2 20 7 66q2 25 14 65q10 33 12 39q12 25 19 31q16 16 24 20q10 5 21 5q5 0 10 -1q18 -3 31 -12q20 -14 24 -23 q6 -10 15 -30q2 -4 6 -16.5t6 -16.5q15 -54 15 -118q0 -12 -1 -23l-4 -47q-2 -8 -3 -24.5t-1 -25.5q0 -14 -4 -47l-6 -49q-4 -143 -4 -217q0 -35 1 -108.5t1 -108.5q1 -19 1 -40q0 -33 -3 -99q-2 -47 -11 -142q-4 -23 -12 -47q-12 -33 -20 -47q-14 -25 -31 -39 q-16 -12 -45 -20q-37 4 -58 18q-33 25 -45 41q-20 27 -34 53q-6 10 -18.5 29t-14.5 23q-41 74 -90 174q-27 55 -72 166l-53 125l-53 122q-4 -39 -9 -112l-6 -113q-6 -55 -6 -108q0 -70 -4 -107q-2 -16 -5 -46t-3 -44q-4 -47 -15 -86q-2 -8 -7 -24.5t-7 -24.5q-2 -12 -18 -43 q-9 -18 -25 -31q-14 -12 -39 -8q-47 10 -71 41q-27 33 -33 78z" />
<glyph unicode="o" horiz-adv-x="1126" d="M156 674q10 129 49 229q45 119 112 211q41 59 76 94t94 76q49 35 107 53q45 15 96 15h19q57 0 104 -21q37 -16 86 -57q37 -33 70 -80q31 -45 51 -90q37 -86 61 -203q14 -70 15 -139q0 -37 -4 -74q-10 -121 -52 -227q-45 -115 -112 -209q-41 -59 -76 -94t-94 -76 q-49 -35 -107 -53q-45 -15 -95 -15h-19q-57 0 -104.5 20.5t-88.5 55.5q-33 27 -70 80q-20 29 -49 90q-45 92 -63 201q-10 58 -10 124q0 42 4 89zM350 592q0 -66 2 -98q2 -45 17 -97q12 -49 34.5 -81.5t61.5 -59.5q35 -25 90 -27q66 4 113 29q46 25 80 68q35 45 55 94 q18 45 37 110q14 49 20 111q2 10 6 48l6 56q4 49 5 82q0 57 -5 86q-6 45 -18 84t-35 72q-20 29 -57 49q-35 20 -84 23h-10q-25 0 -64 -13q-35 -12 -67 -34q-29 -20 -56 -54q-33 -41 -45 -63q-35 -63 -55 -146q-20 -86 -27 -149q-4 -57 -4 -90z" />
<glyph unicode="p" horiz-adv-x="911" d="M170 203q4 123 14 225q12 114 31 227q2 6 2 17.5t2 17.5t2 17.5t2 17.5l6 115q2 29 2 58t-2 58l7 111q4 74 8 111q12 47 43 82q29 31 75 51q49 20 89 28q45 8 90 13q55 0 84 -2q53 -4 82 -9q37 -6 77 -22q37 -16 70 -39q35 -25 55 -57q25 -39 35 -72q12 -40 19 -80 q4 -27 4 -82q-2 -47 -23 -92q-18 -45 -49 -84q-35 -47 -66 -74q-49 -45 -73 -65q-88 -70 -181 -117q-102 -53 -194 -78q0 -29 -1 -84t-1 -82q0 -55 -4 -166l-6 -43q-4 -25 -15 -43q-8 -20 -28 -26q-17 -5 -29 -5q-5 0 -10 1q-31 4 -56 20q-23 16 -36 39q-16 27 -23 55 q-3 17 -3 35q0 11 1 23zM399 725q29 0 64 10q41 12 61 23q41 20 60 33q45 29 55 34q25 16 51 37q25 18 49 43q20 20 37 47q12 20 21 58q0 20 -6.5 38.5t-16.5 30.5l-26 25q-16 12 -29 20q-29 14 -74 27q-41 10 -78 10q-25 -4 -37 -4q-14 0 -34 -10q-23 -14 -39 -37 q-12 -18 -25 -49q-12 -33 -14 -53l-6 -52q-4 -41 -9 -118z" />
<glyph unicode="q" horiz-adv-x="1064" d="M152 639q12 125 38 233q25 104 89 222q31 57 65 100q39 47 90 86q41 31 105 55q43 17 97 17h19q53 0 101 -19q45 -18 84 -53q41 -37 65 -76q18 -29 43 -90q41 -104 51 -194q9 -75 10 -136q0 -35 -3 -69q-8 -98 -43 -223q-31 -109 -97 -209q4 -29 17 -56q16 -33 28 -47 q14 -20 24.5 -47t4.5 -53q-10 -31 -33 -47q-25 -18 -53 -25q-2 -2 -8 -2t-8 -2h-15v2q-14 27 -35 53q-16 23 -32 52q-33 -41 -86 -72q-51 -29 -105 -29q-10 -1 -19 0q-48 0 -91 13q-51 14 -97 47q-53 37 -79 69q-37 43 -58 90q-49 90 -63 197q-10 67 -10 133q1 40 4 80z M344 506q4 -68 23 -119q4 -14 20 -53q10 -23 33 -49q16 -20 43 -33q25 -12 59 -12q5 -1 10 -1q26 0 50 13q31 16 51 41q-8 8 -15.5 18.5t-17.5 20.5l-33 41q-14 20 -24 47q-10 25 -6 53q2 25 22 51q16 23 49 27q22 -6 37 -25q6 -8 14.5 -17t14.5 -17q6 -6 16 -17.5l15 -17.5 q14 -16 36 -27q23 33 37 64q12 25 23 69q2 4 12 72q8 49 10 72q3 36 4 74q0 24 -2 53q-2 61 -18 122q-2 10 -16 58q-9 31 -25 55q-14 25 -39 41q-23 16 -55 16q-7 1 -15 1q-32 0 -67 -11q-40 -12 -74 -37q-37 -27 -59 -57q-27 -35 -41 -72q-20 -45 -31 -78q-16 -51 -20 -81 q-8 -53 -11 -82q-2 -20 -5 -40t-5 -40q-2 -24 -2 -52q0 -24 2 -71z" />
<glyph unicode="r" horiz-adv-x="1169" d="M174 313q4 102 21 193q2 18 7 51l7 47q8 66 10 101q8 78 8 116q0 35 4 117q8 80 11 115q4 61 14 114q2 18 10 45q4 16 19 41q23 25 47 41q20 12 55 25q2 0 59 12q41 8 62 10q16 2 31.5 4.5t31.5 2.5q10 0 33 1t33 3q12 0 37.5 -1t38.5 -1q37 0 73 -7q49 -8 72 -16 q43 -16 68 -33q33 -23 51 -49q14 -20 31 -65q14 -37 16 -74q2 -20 2 -38.5t-2 -37.5q0 -31 -14 -69q-12 -31 -31 -64q-16 -27 -45 -59q-16 -18 -51 -54q-57 -57 -125 -100t-144 -61q33 -37 72 -88l22.5 -29l25.5 -34t20 -30q37 -55 69 -88q45 -45 88 -69q45 -20 66 -33 q31 -18 61 -39q20 -14 35 -35q10 -14 10 -32q0 -8 -2 -17q-10 -35 -37 -51q-25 -16 -61 -23q-13 -2 -28 -2q-20 0 -44 4q-39 6 -65 21q-41 20 -60 35q-37 29 -53 45l-94 114l-90 117l-37 41q-31 35 -37 41q-22 18 -43 31q-20 12 -51 18l-12 -63q-2 -12 -4.5 -37t-2.5 -27 q-2 -20 -2 -63q0 -10 1 -33t1 -33v-61q0 -43 -2 -64q0 -6 -4 -30q-6 -33 -6 -35q-6 -16 -16 -26.5t-33 -10.5q-45 8 -70 39q-29 35 -38 69q-14 45 -17 84q-2 31 -2 84zM399 895q0 -58 13 -117q70 0 137 18.5t129 55.5q31 20 53 43q27 27 43 51q16 23 31 62q12 31 12 65 q2 25 -10 41q-14 18 -33 27q-16 6 -43 10q-16 2 -45 2q-18 -2 -53 -2q-20 0 -53 -4q-16 -2 -53.5 -6t-53.5 -4q-16 -4 -31 -19q-12 -12 -18 -31q-8 -25 -10 -38q-3 -22 -6 -37q-9 -78 -9 -117z" />
<glyph unicode="s" horiz-adv-x="1085" d="M162 266q0 14 2 23q0 4 12 20q4 6 17 15q8 6 22 2q20 -2 47 -11q14 -4 43 -20t43 -27q6 -4 45 -26q27 -10 80 -23q39 -8 86 -8q13 -2 27 -2q39 0 80 12q53 16 96 49t69 82q27 47 27 107q3 28 3 54.5t-3 53.5q-2 23 -22.5 43.5t-44.5 16.5q-45 0 -89 -13q-4 -2 -37.5 -10 t-50.5 -14l-88 -25q-38 -11 -72 -11q-8 0 -16 1q-10 -1 -18 -1q-30 0 -58 9q-27 8 -63 35q-27 18 -51 53q-22 31 -31 68q-27 74 -27 141q0 84 9 150q6 37 22 77q10 27 41 68q20 29 55 59q29 25 66 50q68 45 145 67q74 20 158 21q68 -4 100 -11q47 -8 93 -34q45 -23 75.5 -60 t30.5 -82q0 -25 -10 -39q-6 -10 -25 -16q-20 -8 -32 -8q-23 0 -31 2q-35 4 -62 12l-59 21q-8 2 -28.5 10t-28.5 10q-31 10 -62 10q-53 0 -94 -16q-53 -20 -84 -47q-41 -27 -72 -74q-27 -41 -32 -90q-2 -18 6 -55q6 -27 18 -51q0 -2 17 -23q6 -8 18 -20q6 -6 22 -15 q12 -6 27 -6q41 4 74 18q14 6 69 27q27 14 80 29q29 8 82 12q68 0 121 -33q55 -33 86 -90q33 -51 45 -112q8 -41 8 -81q0 -20 -2 -42q-12 -94 -49 -176q-37 -83 -98 -154q-37 -41 -68 -64q-37 -28 -80 -49q-51 -27 -86 -32q-41 -8 -90 -9q-66 0 -131 19q-59 16 -121 49 q-25 14 -53 33q-31 20 -49 39q-23 23 -35 51q-14 32 -14 61z" />
<glyph unicode="t" horiz-adv-x="1056" d="M160 1169q4 12 8 21q8 12 14 18q16 12 58 29q31 12 61 18q45 8 68 15l67 12q74 18 152 31l77 11t74 11q14 0 41 1t41 3l33 2q25 0 49 -4q14 -2 58 -10q31 -6 55 -18.5t45 -32.5q18 -18 29 -51q-2 -25 -27 -45q-23 -20 -47 -23q-29 -4 -58 0q-37 4 -57 4h-72 q-37 0 -71 -22q-8 -37 -10 -66q-4 -45 -9 -63q-2 -10 -30 -238q-16 -129 -27 -237l-16 -179q-4 -27 -8.5 -88t-8.5 -88q0 -6 -3 -21.5l-5 -25.5q-2 -27 -12 -51q-9 -25 -24.5 -43.5t-43.5 -24.5q-41 0 -63 21q-23 18 -35 51q-14 35 -17 66q-2 25 -2 65q0 12 1 39t1 41 q0 53 3 78l12 71q10 61 12 70l35 150q4 16 8 57q2 18 6 59q6 56 6 107q0 30 -2 57q-8 113 -18 164q-33 -4 -53 -4q-25 0 -52 -10q-25 -2 -53 -11q-25 -6 -51 -6q-14 -2 -49 -2q-23 0 -51 13q-23 10 -35 28q-8 12 -8 28q0 11 4 23z" />
<glyph unicode="u" horiz-adv-x="1081" d="M174 502q-1 29 -1 56q0 96 9 183l17 133l18 136q6 49 27 133q12 49 39 131q12 27 39 41q28 15 55 18q10 3 19 4q6 0 12 -2q10 -2 22 -14q10 -10 16 -23q4 -10 9 -26q7 -30 7 -64q0 -11 -1 -22q-2 -14 -2 -42t-2 -42q-6 -41 -12.5 -80t-10.5 -76l-24 -151 q-6 -31 -15.5 -90.5t-9.5 -65.5q-12 -74 -18 -156q-2 -22 -2 -42t2 -40q4 -43 20 -77q20 -35 64 -52q37 -14 84 -14h12q68 0 115 33q57 41 88 94q35 59 49 125q18 80 20 127q12 104 12 205q0 117 -10 200l-4 41t-2 39q-3 38 -3 55q0 12 1 23q0 8 4 37q4 23 12 41q8 14 25 29 q14 12 39 12q25 -4 41 -14.5t30.5 -29t22.5 -36.5q6 -14 19 -39q12 -45 24 -127q6 -41 10 -131q2 -32 2 -64.5t-2 -66.5q-4 -90 -8 -133q-14 -117 -43 -209q-35 -106 -88 -199q-23 -41 -59 -92q-33 -45 -76 -82q-45 -39 -92 -59q-51 -23 -107 -23q-11 -1 -20 0q-54 0 -98 15 q-49 16 -103 55q-51 37 -82 82q-33 47 -51 104q-37 119 -39 232z" />
<glyph unicode="v" horiz-adv-x="919" d="M195 1130q0 25 4 74q4 25 8 33l12 31q6 14 18.5 26.5t28.5 14.5q20 6 39 -2.5t29 -20.5q12 -16 18 -33q4 -12 8 -36q4 -45 4.5 -66t4.5 -66q8 -117 14 -182q12 -115 20 -182q8 -61 29 -184q12 -76 45 -181q20 33 41 80q18 40 31 80l24 84l25 84l59 223l60 223 q10 20 20 56q12 41 21 59q14 33 30 51q20 25 50 33q27 -4 43 -16q20 -16 30 -35q12 -20 15 -43q4 -33 4 -47q-2 -51 -12 -101q-12 -72 -23 -100l-37 -102q-18 -49 -35 -103l-63 -219q-39 -127 -70 -219q-6 -16 -31 -92q-16 -53 -36 -96q-20 -45 -54 -84q-29 -35 -77 -58 q-33 0 -66 6.5t-55 28.5q-8 8 -21 25q-2 2 -12 28l-5 10.5t-5 11.5t-2 9q-2 10 -11 31q-12 45 -34 155q-10 53 -23 156q-6 53 -14 160q-2 18 -5 50l-5.5 58.5t-2.5 51.5q-6 41 -14 133q-4 43 -16 133q0 4 -3 29.5t-3 39.5z" />
<glyph unicode="w" horiz-adv-x="1368" d="M201 459l6 73q4 35 8 74q8 49 12 76q4 25 9 78q6 59 6 114v113q-1 19 -1 37q0 99 15 188q4 20 8 31l4 12q4 12 8 19q10 16 21 24q16 12 29 15h8q39 0 69 -25q31 -27 41 -69q6 -31 5 -58l-5 -57l-16 -172l-12 -172q-4 -119 -8 -178l-13 -179q29 43 51 95l39 98l68 166 q35 82 74 164l18 37.5t17 33.5l34 72q8 14 41 68q25 39 47 63l19 6l8 4t8 2q12 0 37 -8q20 -6 31 -20q6 -10 10 -33q4 -25 8 -37q22 -77 37 -153q10 -51 27 -158l12 -90l12 -90l19 -86q8 -41 26 -80q35 203 54 366q18 152 28 367q0 25 8 70q0 20 11 47q25 20 41 20 q23 0 32 -2q18 -2 31 -8q16 -6 29 -19q27 -49 35 -96q12 -72 14 -102q1 -15 1 -36q0 -12 -0.5 -36t-0.5 -37v-106q-2 -94 -23 -199q-20 -109 -45 -197q-18 -72 -57 -188q-31 -92 -84 -180l-22 -31q-16 -20 -25 -29q-18 -18 -28.5 -24t-39.5 -10q-18 0 -32 8q-16 10 -25 20 q-12 18 -18 31q-2 4 -6.5 16.5t-6.5 16.5q-55 156 -92 295q-35 129 -55 307q-45 -115 -72 -176l-78 -170q-41 -92 -57 -125q-2 -6 -55 -98q-6 -10 -14.5 -21.5t-14.5 -21.5q-12 -23 -27 -39q-12 -14 -30 -27q-16 -10 -39 -14q-61 18 -100 65t-53.5 108.5t-18.5 131.5 q-2 45 -2 125z" />
<glyph unicode="x" horiz-adv-x="1107" d="M154 190q4 27 12 52q8 23 22 47q23 39 27 45l29 43l75 96q14 18 25.5 34.5t22 29t26.5 34.5l51 82q33 53 48 82l-22.5 49.5l-19 41t-24.5 48.5q-41 84 -64 144q-6 14 -13 28.5t-13 30.5q-16 41 -23 62q-12 37 -16 65q-3 19 -3 39q0 12 1 27q4 18 10 26q10 12 21 19l24 12 q6 0 14.5 2t14.5 4q23 2 51 -4q27 -6 41 -26q18 -33 23 -43q2 -6 7 -22.5t9 -25.5q18 -47 51 -145l49 -145q47 45 88 108.5t72 120.5q12 27 26.5 53.5t26.5 52.5q8 8 15 21q2 4 7 11t7 11q6 12 16 23q4 4 21 12q25 -4 45 -14q22 -12 37 -31q16 -20 24.5 -38.5t8.5 -49.5 q-16 -74 -48 -129q-31 -57 -77 -117l-88 -108q-86 -102 -91 -109q49 -82 70 -125l66 -129l26.5 -57.5l28.5 -60.5l57 -113q16 -29 31 -70q12 -34 12 -73q-10 -37 -37 -54q-33 -18 -63 -22q-5 -1 -9 -1q-25 0 -42 15q-29 25 -39 39q-14 14 -35 51q-15 28 -25 56 q-41 100 -75 174q-37 82 -74 176q-59 -66 -100 -133q-57 -94 -84 -144l-33 -69q-25 -45 -33 -68q-2 -2 -16 -27q-2 -4 -7.5 -14t-9.5 -14q-12 -16 -20 -23q-16 -12 -27 -14q-31 4 -49 16q-16 12 -35 37q-14 18 -20 47q-5 20 -5 38q0 7 1 13z" />
<glyph unicode="y" horiz-adv-x="960" d="M211 1051q-4 43 -4 82q0 55 8 108l8 27l13 24l18 19q8 8 25 8q18 6 38 2q12 -2 31 -16q14 -10 23 -29q10 -18 12 -35q4 -57 8 -86q4 -27 8 -88q4 -27 17 -92q6 -31 22 -92q8 -43 29 -95q12 -31 41 -88q66 137 113 213l124 205q27 49 52 88l55 86q10 18 31 29q12 6 39 6 q27 -4 41 -14q16 -14 26 -33q12 -25 15 -39q6 -37 4 -45q-6 -37 -29 -68q-6 -8 -39 -63q-27 -33 -51 -68l-49 -69q-49 -68 -115 -178q-47 -80 -100 -189q-45 -92 -80 -194q-39 -113 -58 -201q-2 -8 -5 -25.5t-5 -25.5q-6 -25 -18 -49q-16 -27 -35 -37q-22 -11 -41 -11h-8 q-16 0 -33 11q-14 8 -23 22q-12 20 -14 35q-4 25 -2 35q3 49 12 98q10 57 21 96q2 10 7 31l9 37l8 31q12 39 39 96q-41 37 -61 74q-27 45 -43 88q-18 45 -31 96l-24 96q-19 78 -29 187z" />
<glyph unicode="z" horiz-adv-x="1105" d="M211 170q14 61 43 124.5t63 119.5q49 78 76 114l76 111l90 131l92 129l90 131q63 90 88 131q-12 4 -18 4q-4 0 -8 1t-8 1q-47 0 -72 -2q-20 -2 -72 -10q-106 -16 -159 -27q-86 -16 -156 -24q-12 -2 -41 -2t-41 4q-20 8 -33 18q-12 12 -8 37q18 37 61 70q31 23 82 45 q37 14 93 27q61 12 90 20q104 20 194 23q17 1 34 0l163 -11q61 -10 106 -41q23 -14 45 -37q18 -18 23 -53q-37 -74 -66 -117q-49 -74 -75 -110l-80 -109q-35 -45 -76 -108q-53 -80 -90 -129l-92 -125q-49 -70 -86 -131q-39 -66 -68 -139l2 -9q23 0 45 6l43 13q35 10 45 14 q29 12 43 16l44 17.5l50 19.5l95 39q25 8 36 10q25 4 39 7q10 0 39 -4q20 -2 39 -15q16 -10 25 -26q10 -18 6 -41q0 -10 -8 -27q-2 -2 -17 -23q-8 -12 -20 -20l-21 -16l-41 -19l-43 -18q-121 -47 -141 -54q-74 -25 -143 -43q-84 -20 -146 -28q-50 -6 -93 -6q-26 0 -52 2 q-23 2 -39 22q-6 8 -13 16.5l-14 16.5q-8 18 -14 41z" />
<glyph unicode="{" horiz-adv-x="706" d="M109 649q3 34 24 56q18 20 47 28q37 12 60 15q41 4 57 4h4h16q10 0 17 -2h31h10q2 0 5 1t5 1q-39 23 -74 63q-31 37 -55 80q-18 33 -35 84q-14 45 -6 92q4 68 33 127q31 59 76 109q47 51 108 73q63 25 127 13q27 -2 53 -17q20 -10 41 -30q23 -23 33 -41q14 -23 10 -52 q2 -14 -6 -30q-8 -14 -18 -21q-16 -8 -29 -8q-18 0 -29 4q-12 4 -32 8q-6 2 -16.5 4t-16.5 2q-29 6 -59.5 0t-51.5 -24q-23 -18 -37 -45q-12 -23 -12 -58q4 -35 12 -49q16 -29 27 -43q14 -23 35 -41q12 -12 33 -37l32 -36l33 -39q10 -14 27 -43q10 -18 14 -47 q-4 -35 -22 -54q-23 -23 -45 -37q10 -4 22 -14q16 -12 23 -18q12 -12 16 -20.5t4 -26.5l-4 -19q-29 -49 -64 -88l-75 -80l-17.5 -17t-17.5 -20l-33 -41q-14 -18 -27 -45q-12 -25 -18 -49q14 -10 43 -26q4 -2 13.5 -8.5t16.5 -10.5t13 -6q27 -12 49 -14q25 -3 49 0q12 4 33 0 q15 -3 25 -13q12 -12 14 -24q4 -16 0 -33q-6 -35 -30.5 -65.5t-59.5 -43.5q-55 -10 -119 3q-49 10 -104 45q-23 14 -45 36q-29 29 -39 45q-12 20 -25 56q-10 33 -8 59q4 53 23 94q20 43 49 88q57 90 147 156q-23 2 -70 2t-69 2q-14 0 -47 4q-23 2 -45 13q-20 8 -35 26 q-14 16 -14 43z" />
<glyph unicode="|" horiz-adv-x="425" d="M150 104v80q2 143 12 285q16 238 20 285l19 192l24 197q0 16 2 32.5l4 34.5q4 49 9 70q4 49 10 74l18 73q2 2 4 8.5t4 10.5q2 8 11 16q27 12 45 6q16 -6 30 -26q12 -18 19 -41q8 -29 10 -41q-2 -29 2 -90q2 -45 0 -90q4 -111 0 -219q-4 -121 -14 -220l-8 -71 q-2 -18 -3 -36t-3 -36q-8 -43 -11 -72l-6 -71q-2 -10 -2 -31q0 -10 -4 -31v-33q0 -12 -4 -32q-12 -70 -14 -109q-3 -55 -13 -110q-10 -59 -26 -107q-18 -53 -56 -96q-23 0 -34 12q-14 14 -23 31q-6 12 -10 39q-4 20 -6 39q-6 73 -6 77z" />
<glyph unicode="}" horiz-adv-x="704" d="M127 111q2 8 2 22q0 8 10 19q20 14 39 14t29 -2q14 -4 35 -8q6 0 17 -4.5t17 -4.5q33 -6 60 3q33 10 51 26q25 20 35 45q12 29 12 58q-4 33 -12 47t-29 43q-16 20 -33 39q-18 18 -34 36l-33 37q-18 18 -33 39q-15 22 -24 43q-14 35 -17 47q4 33 24.5 53.5t47.5 36.5 q-16 8 -25 15q-16 12 -20 16q-10 10 -16.5 22.5t-6.5 28.5l6 15q20 37 64 88q14 14 25.5 28.5t21.5 24.5t27 29q2 2 34 39l33 41q4 6 27 45q8 12 16 49l-20.5 12t-20.5 14q-29 16 -43 22.5t-47 14.5q-23 6 -51 2q-12 -4 -31 0q-14 2 -26.5 14.5t-14.5 24.5q-4 20 -2 31 q6 31 33 65q25 33 61 41q51 14 117 0q57 -12 107 -45q23 -14 45 -36.5t37 -45.5q12 -20 24 -55q10 -29 6 -59q-4 -53 -20 -97q-12 -31 -49 -88q-23 -37 -66 -84q-35 -39 -82 -71q23 -2 70 -2t69 -2q12 0 45 -4.5t48 -10.5q20 -8 34 -26q12 -15 13 -43q-4 -33 -23 -54 q-20 -20 -49 -32q-25 -10 -59 -15q-41 -4 -56 -4h-6h-31q-6 2 -16 2h-16h-11q-2 0 -5 -1t-5 -1q45 -29 74 -63q41 -49 57 -78q14 -27 35 -84q12 -37 6 -92q-10 -72 -35 -127q-27 -59 -75 -109q-47 -53 -109 -73q-68 -23 -127 -15q-25 6 -49 19q-29 14 -43 30q-23 18 -33 41 q-10 21 -10 54z" />
<glyph unicode="~" horiz-adv-x="1069" d="M176 737q0 23 14.5 47.5t28.5 36.5q20 16 41 29l41 24q41 20 92 41t94 21q35 0 58 -14q41 -25 49 -33q22 -18 49 -31q25 -10 57 -14q41 4 68 14q41 16 59 29q25 12 58 26q37 14 59 13q25 -4 37 -8q16 -6 35 -17q16 -10 26 -27q12 -20 15 -34q0 -12 -13 -33q-4 -4 -22 -25 q-20 -16 -31 -22q-20 -12 -37 -12q-57 -33 -127 -62q-63 -27 -135 -31q-35 4 -59 15q-23 10 -53 32q-18 16 -50 33q-29 16 -57 19q-55 -2 -111 -35q-52 -31 -86 -80h-2q-23 4 -32 10q-2 2 -29 23q-20 20 -25 28q-9 19 -12 37z" />
<glyph unicode="&#x85;" horiz-adv-x="1173" d="M133 150q2 27 21 47q10 10 18 21t16 20q8 4 22.5 14t22.5 14q23 16 50 17q35 4 49 -15q16 -20 22 -45q4 -18 4 -55q0 -10 -1 -28.5t-1 -24.5q2 -18 -4 -41q-6 -22 -18 -37q-10 -12 -31 -23q-18 -10 -41 -6q-20 2 -49 17q-25 12 -41 30q-18 18 -31 43q-12 23 -8 52z M473 149.5q2 20.5 19 53.5q14 29 32 47q14 16 37 33q20 14 47 14q39 0 58 -16q23 -18 33 -43t14 -58q2 -23 -2 -59q0 -18 -11 -43q-6 -14 -26 -35q-14 -14 -39 -25q-18 -8 -43 -4q-27 0 -49 13q-22 12 -37.5 30.5t-24.5 42.5q-10 29 -8 49.5zM836 147q0 25 10 50q9 22 24 43 q12 18 31 30.5t39 12.5q31 -3 55 -19q25 -14 39 -39q16 -27 23 -53q4 -23 -2 -57q-6 -29 -19 -45q-8 -12 -32 -33q-12 -10 -41 -23q-18 -8 -48 -8q-23 4 -38 14q-18 12 -25 33q-14 25 -16 45q-3 24 0 49z" />
<glyph unicode="&#x2026;" horiz-adv-x="1173" d="M133 150q2 27 21 47q10 10 18 21t16 20q8 4 22.5 14t22.5 14q23 16 50 17q35 4 49 -15q16 -20 22 -45q4 -18 4 -55q0 -10 -1 -28.5t-1 -24.5q2 -18 -4 -41q-6 -22 -18 -37q-10 -12 -31 -23q-18 -10 -41 -6q-20 2 -49 17q-25 12 -41 30q-18 18 -31 43q-12 23 -8 52z M473 149.5q2 20.5 19 53.5q14 29 32 47q14 16 37 33q20 14 47 14q39 0 58 -16q23 -18 33 -43t14 -58q2 -23 -2 -59q0 -18 -11 -43q-6 -14 -26 -35q-14 -14 -39 -25q-18 -8 -43 -4q-27 0 -49 13q-22 12 -37.5 30.5t-24.5 42.5q-10 29 -8 49.5zM836 147q0 25 10 50q9 22 24 43 q12 18 31 30.5t39 12.5q31 -3 55 -19q25 -14 39 -39q16 -27 23 -53q4 -23 -2 -57q-6 -29 -19 -45q-8 -12 -32 -33q-12 -10 -41 -23q-18 -8 -48 -8q-23 4 -38 14q-18 12 -25 33q-14 25 -16 45q-3 24 0 49z" />
<glyph horiz-adv-x="409" d="M168 1311q2 12 12 22q6 6 23 15q8 4 28 8q4 0 13.5 1t13.5 3q27 -10 43 -29q20 -23 31 -45q16 -33 22 -51q10 -31 21 -51q37 -111 55 -228q2 -4 2 -14v-10q-6 -31 -26.5 -47.5t-53.5 -20.5q-27 6 -45 25q-23 23 -33 43q-16 33 -22 51t-23 51q-23 63 -36 115 q-10 41 -23 119q2 8 -2 20q-4 11 0 23z" />
<glyph unicode="&#x2018;" horiz-adv-x="409" d="M168 1311q2 12 12 22q6 6 23 15q8 4 28 8q4 0 13.5 1t13.5 3q27 -10 43 -29q20 -23 31 -45q16 -33 22 -51q10 -31 21 -51q37 -111 55 -228q2 -4 2 -14v-10q-6 -31 -26.5 -47.5t-53.5 -20.5q-27 6 -45 25q-23 23 -33 43q-16 33 -22 51t-23 51q-23 63 -36 115 q-10 41 -23 119q2 8 -2 20q-4 11 0 23z" />
<glyph horiz-adv-x="399" d="M152 956q6 66 26 117q22 55 49 111l25 51q12 25 29 53q18 29 36 45q25 20 52 27q20 -4 32 -17q16 -16 22.5 -26t10.5 -33q3 -18 0 -37q0 -41 -8 -73q-6 -25 -23 -74q-12 -35 -30 -70l-37 -69l-12.5 -18.5t-10.5 -16.5q-16 -25 -26 -35q-20 -20 -31 -29q-12 -10 -39 -10 q-14 0 -31 12q-14 12 -20 25q-8 20 -10 33q-4 24 -4 34z" />
<glyph unicode="&#x2019;" horiz-adv-x="399" d="M152 956q6 66 26 117q22 55 49 111l25 51q12 25 29 53q18 29 36 45q25 20 52 27q20 -4 32 -17q16 -16 22.5 -26t10.5 -33q3 -18 0 -37q0 -41 -8 -73q-6 -25 -23 -74q-12 -35 -30 -70l-37 -69l-12.5 -18.5t-10.5 -16.5q-16 -25 -26 -35q-20 -20 -31 -29q-12 -10 -39 -10 q-14 0 -31 12q-14 12 -20 25q-8 20 -10 33q-4 24 -4 34z" />
<glyph horiz-adv-x="757" d="M203 1231v43q4 10 16 22q8 8 23 13q25 6 28 6q10 0 27 4q27 -12 41 -31q18 -20 27 -45q12 -33 18 -51q9 -28 18 -49q20 -53 37 -119q20 -78 27 -119q2 -4 2 -12t-2 -12q0 -14 -6 -26.5t-19 -18.5q-2 -2 -10 -6.5t-12 -6.5q-8 -2 -27 -2q-27 10 -47 29q-20 20 -35 43 q-6 10 -24 51q-8 18 -25 51q-23 63 -37 115q-18 68 -20 121zM481 1323q2 14 15 23q10 6 24 10q16 4 27 4h26q29 -14 45 -33q23 -27 31 -43q23 -45 25 -51q8 -25 20 -49q23 -66 35 -115q14 -53 21 -117v-12q0 -8 -2 -12q-6 -29 -29 -43q-29 -18 -49 -21q-27 8 -45 27 q-14 14 -29 43q-16 33 -23 51q-9 28 -18 49q-18 53 -39 121q-18 61 -31 123q-4 16 -4 22v23z" />
<glyph unicode="&#x201c;" horiz-adv-x="757" d="M203 1231v43q4 10 16 22q8 8 23 13q25 6 28 6q10 0 27 4q27 -12 41 -31q18 -20 27 -45q12 -33 18 -51q9 -28 18 -49q20 -53 37 -119q20 -78 27 -119q2 -4 2 -12t-2 -12q0 -14 -6 -26.5t-19 -18.5q-2 -2 -10 -6.5t-12 -6.5q-8 -2 -27 -2q-27 10 -47 29q-20 20 -35 43 q-6 10 -24 51q-8 18 -25 51q-23 63 -37 115q-18 68 -20 121zM481 1323q2 14 15 23q10 6 24 10q16 4 27 4h26q29 -14 45 -33q23 -27 31 -43q23 -45 25 -51q8 -25 20 -49q23 -66 35 -115q14 -53 21 -117v-12q0 -8 -2 -12q-6 -29 -29 -43q-29 -18 -49 -21q-27 8 -45 27 q-14 14 -29 43q-16 33 -23 51q-9 28 -18 49q-18 53 -39 121q-18 61 -31 123q-4 16 -4 22v23z" />
<glyph horiz-adv-x="724" d="M166 952q2 51 27 117q23 61 49 115q6 8 10 16t8 14.5t10 18.5q10 18 31 51q18 29 37 45q27 23 49 31q18 0 35 -10q14 -8 22 -23q6 -10 11 -33q2 -12 -2 -37q-8 -70 -39 -151.5t-68 -147.5q-16 -20 -22 -32q-8 -18 -23 -35q-12 -16 -29 -29q-12 -10 -36 -10q-18 0 -33 10 q-16 12 -23 23q-10 16 -12 33q-2 11 -2 34zM444 831q-2 8 2 17q10 14 11 16q31 57 57 125l49 131q6 8 19 43q12 33 20 47q12 23 27 39q14 18 41 25q14 0 35 -12q15 -9 24 -25q10 -16 12 -33q2 -12 2 -35q-4 -80 -32 -147q-37 -86 -72 -137l-25 -37q-16 -25 -26 -35 q-25 -25 -31 -29q-20 -14 -39 -16q-10 -2 -28.5 2t-26.5 10q-10 8 -17 21q-6 10 -2 30z" />
<glyph unicode="&#x201d;" horiz-adv-x="724" d="M166 952q2 51 27 117q23 61 49 115q6 8 10 16t8 14.5t10 18.5q10 18 31 51q18 29 37 45q27 23 49 31q18 0 35 -10q14 -8 22 -23q6 -10 11 -33q2 -12 -2 -37q-8 -70 -39 -151.5t-68 -147.5q-16 -20 -22 -32q-8 -18 -23 -35q-12 -16 -29 -29q-12 -10 -36 -10q-18 0 -33 10 q-16 12 -23 23q-10 16 -12 33q-2 11 -2 34zM444 831q-2 8 2 17q10 14 11 16q31 57 57 125l49 131q6 8 19 43q12 33 20 47q12 23 27 39q14 18 41 25q14 0 35 -12q15 -9 24 -25q10 -16 12 -33q2 -12 2 -35q-4 -80 -32 -147q-37 -86 -72 -137l-25 -37q-16 -25 -26 -35 q-25 -25 -31 -29q-20 -14 -39 -16q-10 -2 -28.5 2t-26.5 10q-10 8 -17 21q-6 10 -2 30z" />
<glyph horiz-adv-x="641" d="M168 639q-4 51 2 88q0 53 20 100q23 53 58 91q33 35 84 59q47 23 100 16q43 0 76 -18q39 -20 57 -47q27 -27 41 -62q15 -37 12 -73q-2 -59 -24 -119q-20 -55 -59 -111q-20 -27 -43 -47t-53.5 -36.5t-59.5 -22.5q-41 -8 -62 -6q-49 2 -81 32q-33 29 -48 68q-18 45 -20 88z " />
<glyph unicode="&#x2022;" horiz-adv-x="641" d="M168 639q-4 51 2 88q0 53 20 100q23 53 58 91q33 35 84 59q47 23 100 16q43 0 76 -18q39 -20 57 -47q27 -27 41 -62q15 -37 12 -73q-2 -59 -24 -119q-20 -55 -59 -111q-20 -27 -43 -47t-53.5 -36.5t-59.5 -22.5q-41 -8 -62 -6q-49 2 -81 32q-33 29 -48 68q-18 45 -20 88z " />
<glyph horiz-adv-x="747" d="M178 707q14 27 41 43q14 10 55 18q37 8 60 8q25 0 57 4q74 -4 113 -4q10 -2 29.5 -3t29.5 -1q31 -2 60 -12q33 -10 49 -26.5t20 -51.5q-4 -20 -10 -29q-12 -16 -20 -22q-10 -8 -27 -15q-20 -8 -29 -8q-86 -6 -170 -6q-29 0 -85 -1t-85 -1q-14 2 -35 14q-14 8 -26 21 q-16 20 -21 33q-8 25 -6 39z" />
<glyph unicode="&#x2013;" horiz-adv-x="747" d="M178 707q14 27 41 43q14 10 55 18q37 8 60 8q25 0 57 4q74 -4 113 -4q10 -2 29.5 -3t29.5 -1q31 -2 60 -12q33 -10 49 -26.5t20 -51.5q-4 -20 -10 -29q-12 -16 -20 -22q-10 -8 -27 -15q-20 -8 -29 -8q-86 -6 -170 -6q-29 0 -85 -1t-85 -1q-14 2 -35 14q-14 8 -26 21 q-16 20 -21 33q-8 25 -6 39z" />
<glyph horiz-adv-x="1153" d="M188 707q16 23 48 41q25 14 57 20q31 6 63 6q23 0 60 4q117 4 235 0h117q18 0 58 -1t61 -1q10 -2 29.5 -3t29.5 -1q33 -2 63.5 -12t51.5 -27q23 -20 29 -51q-2 -12 -15 -29q-8 -10 -24 -20q-10 -6 -31 -14.5t-31 -8.5q-328 -12 -700 -8q-27 0 -41.5 10.5l-30.5 22.5 q-15 12 -24 31q-11 21 -5 41z" />
<glyph unicode="&#x2014;" horiz-adv-x="1153" d="M188 707q16 23 48 41q25 14 57 20q31 6 63 6q23 0 60 4q117 4 235 0h117q18 0 58 -1t61 -1q10 -2 29.5 -3t29.5 -1q33 -2 63.5 -12t51.5 -27q23 -20 29 -51q-2 -12 -15 -29q-8 -10 -24 -20q-10 -6 -31 -14.5t-31 -8.5q-328 -12 -700 -8q-27 0 -41.5 10.5l-30.5 22.5 q-15 12 -24 31q-11 21 -5 41z" />
<glyph horiz-adv-x="1261" d="M231 1278v18q12 16 23 19q4 0 13 2t14 4q35 2 104 10l104 12q25 4 82 9q53 4 82 8q18 -2 39 -17q16 -10 21 -36q-2 -25 -29 -39q-18 -10 -45 -15q-33 -8 -64 -8q-18 0 -51 -4q-16 -72 -41 -215q-16 -96 -26 -215q-2 -6 -3 -16.5t-1 -16.5q-2 -12 -7 -33q-4 -16 -14 -30 q-12 -14 -24 -21q-25 0 -48 17q-18 12 -18 45q0 43 2 63q4 49 8 68l13 67q4 20 8 70q4 39 8 109q4 72 2 108q-45 -4 -72 -4q-47 0 -69 -2q-4 2 -8.5 10t-2.5 15v18zM672 766v76q0 23 4 63q8 66 10 101q0 8 12 102q8 70 17 100q16 66 28 99q4 12 21 32q10 12 31 17 q12 0 20 -6q12 -8 16.5 -12.5t12.5 -16.5q6 -10 10 -18q35 -106 49 -170q18 -86 25 -177q25 47 49 113l45 111q6 14 14 43q4 14 17 43q8 20 22 41q12 18 33 30q31 -6 53 -28q20 -20 31 -54q12 -41 14 -65q4 -45 4 -64q2 -16 0 -34q-2 -6 -4 -16.5t-2 -16.5q0 -8 -2 -17.5 t-4 -17.5q-4 -20 -4 -35v-39v-41q-2 -12 -2 -34.5t-2 -34.5q-4 -41 -14 -70q-2 -14 -15 -39q-10 -23 -28 -26h-17q-2 0 -14 4l-17 22l-6 19v26q0 10 4 31l15 76q6 40 6 80q2 39 0 77q-4 45 -14 78q-25 -98 -78 -207q-8 -14 -21 -43q-10 -23 -22 -45q-16 -29 -27 -41 q-27 -31 -33 -37q-18 4 -26 17q-10 16 -13 33q-2 12 -7 36.5t-7 37t-5 38t-5 37.5q-2 18 -6 39t-9 39q-6 35 -24 74q-4 -16 -8 -49t-8 -50q-9 -49 -13 -98q-2 -12 -2 -35q0 -6 1 -17t1 -18q0 -23 -4 -67q-4 -33 -12 -51q-6 -14 -19 -17l-24 -6q-12 0 -25 8q-4 4 -12 19 q-4 8 -8 24q-2 9 -2 27z" />
<glyph unicode="&#x2122;" horiz-adv-x="1261" d="M231 1278v18q12 16 23 19q4 0 13 2t14 4q35 2 104 10l104 12q25 4 82 9q53 4 82 8q18 -2 39 -17q16 -10 21 -36q-2 -25 -29 -39q-18 -10 -45 -15q-33 -8 -64 -8q-18 0 -51 -4q-16 -72 -41 -215q-16 -96 -26 -215q-2 -6 -3 -16.5t-1 -16.5q-2 -12 -7 -33q-4 -16 -14 -30 q-12 -14 -24 -21q-25 0 -48 17q-18 12 -18 45q0 43 2 63q4 49 8 68l13 67q4 20 8 70q4 39 8 109q4 72 2 108q-45 -4 -72 -4q-47 0 -69 -2q-4 2 -8.5 10t-2.5 15v18zM672 766v76q0 23 4 63q8 66 10 101q0 8 12 102q8 70 17 100q16 66 28 99q4 12 21 32q10 12 31 17 q12 0 20 -6q12 -8 16.5 -12.5t12.5 -16.5q6 -10 10 -18q35 -106 49 -170q18 -86 25 -177q25 47 49 113l45 111q6 14 14 43q4 14 17 43q8 20 22 41q12 18 33 30q31 -6 53 -28q20 -20 31 -54q12 -41 14 -65q4 -45 4 -64q2 -16 0 -34q-2 -6 -4 -16.5t-2 -16.5q0 -8 -2 -17.5 t-4 -17.5q-4 -20 -4 -35v-39v-41q-2 -12 -2 -34.5t-2 -34.5q-4 -41 -14 -70q-2 -14 -15 -39q-10 -23 -28 -26h-17q-2 0 -14 4l-17 22l-6 19v26q0 10 4 31l15 76q6 40 6 80q2 39 0 77q-4 45 -14 78q-25 -98 -78 -207q-8 -14 -21 -43q-10 -23 -22 -45q-16 -29 -27 -41 q-27 -31 -33 -37q-18 4 -26 17q-10 16 -13 33q-2 12 -7 36.5t-7 37t-5 38t-5 37.5q-2 18 -6 39t-9 39q-6 35 -24 74q-4 -16 -8 -49t-8 -50q-9 -49 -13 -98q-2 -12 -2 -35q0 -6 1 -17t1 -18q0 -23 -4 -67q-4 -33 -12 -51q-6 -14 -19 -17l-24 -6q-12 0 -25 8q-4 4 -12 19 q-4 8 -8 24q-2 9 -2 27z" />
<glyph unicode="&#xa2;" horiz-adv-x="851" d="M102 709q6 82 37 145q33 68 78 131q8 10 53 62q31 33 62 53q35 23 69.5 37t73.5 14q0 10 4 29.5t4 30t2 30t2 29.5q4 20 5 33l6 36l12 31q6 15 25 25q8 0 32 -4q14 -2 30.5 -12.5t25.5 -20.5q8 -12 12 -33q2 -20 2 -65v-66v-29q57 -14 96 -41q49 -35 76 -71 q33 -39 53 -86q20 -45 17 -103q0 -6 -5 -26q-2 -14 -12 -26.5t-20 -18.5q-14 -6 -29 -5q-35 2 -57 31q-22 28 -31 62q-4 8 -8 17t-8 17q-2 8 -17 31q-6 10 -24 29q-12 12 -31 18l-6 -123q-4 -86 -8 -125q0 -12 -2.5 -34.5t-2.5 -32.5q-2 -27 -10 -70l-6 -67q-4 -23 -8 -68 q25 10 41 25l39 28q14 10 43 27q20 12 47 12q12 -4 20.5 -8t14.5 -18l6 -17v-14v-19v-8q-8 -37 -35 -65q-25 -28 -55 -49q-23 -16 -68 -35l-67 -25q-8 -51 -11 -82q-4 -20 -8 -65q-3 -34 -12 -68q-10 -37 -27 -61q-16 -27 -49 -45q-27 -2 -47 18q-14 14 -23 45v111 q2 23 3 69v68q-72 18 -127 59q-61 45 -101 99q-41 55 -61 118q-23 70 -15 136zM274 674q-4 -35 13 -64l30 -55q33 -43 43 -51q20 -18 56 -39l10 125q4 31 8 100q2 37 10 101l21 194q-37 -31 -68 -67q-29 -35 -55 -78q-33 -53 -45 -80q-17 -33 -23 -86z" />
<glyph unicode="&#xa3;" horiz-adv-x="1236" d="M129 809q14 29 45 47q31 16 62 23q34 6 67 6q45 0 66 2q0 6 10 39q8 29 10 43q14 78 27 125l30 125q16 29 41 47t56 30q41 16 61 21l60 12q86 12 192 17q74 2 174 -9q23 0 41 -6q23 -8 33 -20q16 -20 20 -33q8 -25 6 -41q0 -18 -6 -31q-6 -14 -18 -22q-8 -6 -28.5 -14.5 t-28.5 -8.5q-23 2 -68 2q-43 0 -66 2q-49 4 -90 -2q-53 -8 -92 -22q-35 -14 -76 -49q-37 -31 -49 -78q-4 -10 -9 -33t-7 -33q-8 -27 -14 -65q12 0 35.5 -1t35.5 -1q35 0 72 -7l29 -10q16 -6 28.5 -18t18.5 -27q6 -18 4 -35q0 -8 -8 -28q-6 -15 -19 -25q-18 -14 -24 -16 q-16 -6 -29 -6q-29 2 -86 -2q-43 -3 -86 0q-6 -43 -14 -111q-2 -27 -5.5 -55.5t-5.5 -57.5q-4 -63 2 -114q8 -74 17 -113q78 20 139 51l133 68l68 33l67 30q31 14 70 25q23 6 72 10q12 2 36 -2q20 -4 35 -12q20 -12 31 -25q14 -18 18 -31v-6q-29 -41 -71 -73 q-41 -31 -84 -58q-14 -8 -94 -51q-10 -6 -42 -21.5t-49 -25.5l-98 -49l-100 -45q-35 -14 -105 -35q-59 -18 -104 -23q-35 4 -59 13q-20 6 -46 34q-18 25 -24 54l-12 57q-18 78 -21 139q-4 96 -2 144q8 80 14 125q12 82 21 125h-35q-4 0 -15.5 -1t-17.5 -1h-32q-20 0 -31 2 q-16 -2 -33 10q-14 12 -22 24q-12 20 -15 31q0 4 -2 11.5t-3 13.5t-1 12z" />
<glyph unicode="&#xa5;" horiz-adv-x="1005" d="M156 279q14 35 34 45q33 16 56 18q31 3 61 0q33 -4 58 0l18 74q14 43 29 69q-53 4 -80 4q-51 0 -78 3q-18 0 -35 10q-14 8 -24 22q-8 10 -15 31q-6 18 -6 35q6 23 21 37q10 10 38 22q22 9 43 13q8 2 23.5 5t19.5 3q-33 94 -45 141q-20 78 -28 147q-10 59 -15 142 q-3 71 7 141q4 20 8 27l12 24l18 19q8 8 23 8q20 6 41 2q12 -2 31 -16q14 -10 22 -29q6 -14 10 -35q2 -29 11 -86q4 -27 8 -88l18 -94q10 -59 21 -94q10 -39 28 -91q12 -35 39 -88q51 109 115 213l125 205q27 49 51 88l55 86q12 20 29 29q12 6 41 6q27 -4 41 -14 q16 -14 27 -33q12 -25 14 -39q4 -29 2 -45q-8 -41 -24 -68q-10 -14 -20.5 -30.5l-20.5 -32.5l-52 -68l-49 -69q-55 -78 -86 -127q-47 -78 -76 -133q14 0 56 -4q33 -4 55 -15q25 -12 39 -32.5t12 -53.5q0 -16 -10 -33q-12 -20 -23 -26q-14 -8 -30 -15q-20 -6 -33 -4 q-27 -2 -78 -2q-12 0 -37.5 1t-38.5 1q-8 -18 -15 -37.5t-15 -39.5q-12 -31 -27 -76q10 -2 23 0q8 2 20 2q8 -2 25 -2q4 0 11 1t11 1q37 0 57 -2q29 -2 58 -13q23 -8 43 -28q18 -18 14 -53q-4 -25 -12 -35q-12 -16 -27 -25q-10 -6 -35 -14q-12 -4 -34 -4q-66 -4 -101 -4h-98 q-4 -23 -12 -47q-10 -27 -20.5 -45.5t-33 -33t-47.5 -12.5q-23 0 -43 16.5t-22 39.5q-6 20 -6 45q0 16 4 45l-43 6l-45 4q-20 4 -35 12q-16 10 -27 23q-12 16 -18 33q-6 19 -6 37z" />
<glyph unicode="&#xa9;" horiz-adv-x="1409" d="M135 494q4 70 21 133q20 74 45 129q23 49 69 118q45 66 88 109q51 57 101 96q51 41 119 74q63 33 127 47q72 16 133 14q72 0 127 -16q66 -20 114 -51q59 -39 97 -78q49 -53 75 -100q68 -104 92.5 -229.5t6.5 -254.5q-6 -53 -25 -102q-18 -47 -49 -94q-33 -49 -68 -84 q-33 -33 -84 -70q-94 -66 -190 -94q-102 -31 -205 -31q-104 -2 -211 33q-102 35 -186 94q-43 31 -82 70q-37 35 -64 82q-25 41 -41 96q-14 48 -10 109zM301 487q-4 -41 8.5 -75.5t32.5 -65.5q22 -31 49 -55q18 -16 60 -41q68 -39 141 -57q82 -20 153 -21q74 0 144 18 q74 18 137 56q35 20 59 43q25 20 50 57q25 35 34 64q10 31 15 69q12 98 0 197q-12 92 -58 184q-23 45 -51 80q-31 37 -69 64q-37 25 -84 40q-46 15 -99 13q-49 0 -102 -13q-52 -12 -98 -36q-49 -27 -88 -60q-43 -35 -74 -76q-68 -80 -113 -182q-41 -92 -47 -203zM424 553 q2 35 16.5 72t32.5 67q25 37 45 62q33 39 53 55l62 47q33 25 65 41q31 16 70 27q41 10 74 10q33 -4 47 -8q25 -6 43 -17q20 -14 35 -30q15 -18 12 -43q0 -16 -10.5 -33t-20.5 -27q-14 -14 -28 -20q-20 -8 -33 -8t-33 8q-23 8 -31 10q-37 -6 -75 -29q-35 -20 -66 -51 q-25 -23 -53 -61q-20 -27 -31 -74q-4 -31 2 -43q9 -18 24.5 -30.5t37.5 -18.5q18 -6 40 -2q6 0 20.5 1t20.5 3q25 4 37 10q25 8 37 10q25 4 37 4q18 0 33 -6t24 -18q12 -16 15 -27q4 -20 2 -33q-4 -31 -25 -51q-18 -18 -49 -28q-23 -8 -82 -23q-27 -6 -82 -10q-59 0 -106 16 q-51 18 -90 57q-37 34 -56 87q-16 49 -14 104z" />
<glyph unicode="&#xad;" d="M176 707q16 29 43 41q37 16 57 20q41 8 62 8q23 0 59 4q14 -2 45 -2q8 0 22.5 -1t22.5 -1q33 0 47.5 -2t45.5 -2q6 0 18 1t18 1q10 0 35 -4q39 0 60 -2q41 -4 59 -10q29 -10 51.5 -28.5t24.5 -51.5q-2 -12 -15 -29q-10 -12 -22 -22q-8 -6 -29 -15q-15 -6 -30 -6 q-120 -6 -240 -6q-160 0 -240 2q-25 0 -37 10q-4 2 -15 10.5t-15 12.5q-16 20 -23 33q-10 19 -4 39z" />
<glyph unicode="&#xae;" horiz-adv-x="1482" d="M147 608q3 68 25 135.5t55 128.5q35 63 78 119q41 51 96 105q49 51 109 90q70 47 121 69q68 29 129 43q68 16 137 13q72 0 127 -17q66 -20 119 -49q47 -27 100 -76q43 -41 80 -100q72 -111 96 -231q27 -135 13 -258q-6 -66 -31 -127q-27 -66 -64 -117q-39 -55 -88 -100 q-47 -45 -106 -82q20 -14 31 -29q12 -20 10 -41q-4 -27 -29 -39t-47 -12q-41 -4 -69.5 4t-59.5 29q-76 -29 -131 -39q-68 -12 -135 -13q-84 -4 -158 14.5t-141 59.5q-82 51 -121 92q-49 53 -88 123q-35 63 -51 146q-16 76 -7 159zM315 606q-6 -61 2.5 -116.5t30.5 -108.5 q20 -47 60 -94q33 -39 90 -66q2 12 4 37t4 37q4 45 8 72l12 75l11 76q2 33 2 94v95q0 61 2 92q0 16 4 47t4 45l6 37q4 20 12 35q20 20 39 28q29 12 45 15q2 0 19.5 3t27.5 3q18 0 47 4h54q37 4 53 2q37 -4 57 -4q23 0 60 -4q23 -2 57 -11q23 -6 51 -22q25 -14 39 -39 q16 -27 25 -51q6 -20 10 -56q4 -31 0 -59.5t-12 -52.5q-9 -25 -25 -49q-14 -25 -35 -47q-12 -14 -39 -41q-43 -40 -92 -74q-51 -35 -106 -47l23.5 -29.5t17.5 -23.5l37 -56l41 -57q25 -31 47 -51q39 16 94 57q45 33 80 78q37 47 57 94q20 45 27 107q10 104 -2 194 q-12 96 -56 182q-23 47 -51 80q-31 37 -70 64q-35 25 -86 41q-37 12 -96 12q-108 3 -209 -43q-98 -45 -182 -125q-41 -39 -76 -82q-43 -53 -61 -92q-29 -59 -41 -98q-19 -62 -21 -107zM641 182q14 -4 43 -4q8 0 22.5 -1t20.5 -1q23 0 64 4q45 4 65 8l-41 58q-20 29 -43 57 l-15 15.5t-17.5 17.5l-16.5 16q-25 23 -64 29q-4 -16 -8 -49q0 -8 -2 -23.5t-2 -23.5q-4 -33 -4 -52q0 -8 -1 -25.5t-1 -25.5zM670 666q0 -43 12 -91q52 0 104 13q43 10 99 43q47 29 76 71q27 41 30 99q0 23 -8 33q-9 12 -25 18q-10 4 -34 8q-12 2 -33 2q-14 2 -41 -2 q-29 -4 -41 -4h-41q-6 0 -20.5 -1t-20.5 -1q-20 -4 -27 -12q-8 -10 -14 -27q-4 -12 -8 -29q-2 -16 -4 -28q-4 -61 -4 -92z" />
<glyph unicode="&#xb4;" horiz-adv-x="346" d="M209 1491v25q2 14 4 26l23 70q12 35 30 69q20 37 43 59.5t66 33.5q20 0 36.5 -20.5t16.5 -41.5q0 -10 -4 -22q-6 -18 -8 -23q-2 -6 -11.5 -29.5l-15.5 -38.5q-18 -45 -35 -67q-18 -25 -51 -51q-29 -23 -67 -23l-19 12q-8 7 -8 21z" />
<glyph unicode="&#x2000;" horiz-adv-x="884" />
<glyph unicode="&#x2001;" horiz-adv-x="1771" />
<glyph unicode="&#x2002;" horiz-adv-x="884" />
<glyph unicode="&#x2003;" horiz-adv-x="1771" />
<glyph unicode="&#x2004;" horiz-adv-x="589" />
<glyph unicode="&#x2005;" horiz-adv-x="442" />
<glyph unicode="&#x2006;" horiz-adv-x="294" />
<glyph unicode="&#x2007;" horiz-adv-x="294" />
<glyph unicode="&#x2008;" horiz-adv-x="219" />
<glyph unicode="&#x2009;" horiz-adv-x="352" />
<glyph unicode="&#x200a;" horiz-adv-x="96" />
<glyph unicode="&#x2010;" d="M176 707q16 29 43 41q37 16 57 20q41 8 62 8q23 0 59 4q14 -2 45 -2q8 0 22.5 -1t22.5 -1q33 0 47.5 -2t45.5 -2q6 0 18 1t18 1q10 0 35 -4q39 0 60 -2q41 -4 59 -10q29 -10 51.5 -28.5t24.5 -51.5q-2 -12 -15 -29q-10 -12 -22 -22q-8 -6 -29 -15q-15 -6 -30 -6 q-120 -6 -240 -6q-160 0 -240 2q-25 0 -37 10q-4 2 -15 10.5t-15 12.5q-16 20 -23 33q-10 19 -4 39z" />
<glyph unicode="&#x2011;" d="M176 707q16 29 43 41q37 16 57 20q41 8 62 8q23 0 59 4q14 -2 45 -2q8 0 22.5 -1t22.5 -1q33 0 47.5 -2t45.5 -2q6 0 18 1t18 1q10 0 35 -4q39 0 60 -2q41 -4 59 -10q29 -10 51.5 -28.5t24.5 -51.5q-2 -12 -15 -29q-10 -12 -22 -22q-8 -6 -29 -15q-15 -6 -30 -6 q-120 -6 -240 -6q-160 0 -240 2q-25 0 -37 10q-4 2 -15 10.5t-15 12.5q-16 20 -23 33q-10 19 -4 39z" />
<glyph unicode="&#x2012;" d="M176 707q16 29 43 41q37 16 57 20q41 8 62 8q23 0 59 4q14 -2 45 -2q8 0 22.5 -1t22.5 -1q33 0 47.5 -2t45.5 -2q6 0 18 1t18 1q10 0 35 -4q39 0 60 -2q41 -4 59 -10q29 -10 51.5 -28.5t24.5 -51.5q-2 -12 -15 -29q-10 -12 -22 -22q-8 -6 -29 -15q-15 -6 -30 -6 q-120 -6 -240 -6q-160 0 -240 2q-25 0 -37 10q-4 2 -15 10.5t-15 12.5q-16 20 -23 33q-10 19 -4 39z" />
<glyph unicode="&#x202f;" horiz-adv-x="352" />
<glyph unicode="&#x205f;" horiz-adv-x="442" />
<glyph unicode="&#x20ac;" horiz-adv-x="1208" d="M102 510q6 31 27 45q25 18 47 23q37 8 55 10q8 0 25.5 1t26.5 3l2 26l6 52q4 41 8 53h-39h-41q-23 0 -33 6q-14 8 -24 23q-10 12 -12 28q-4 23 -3 35q10 31 33 49q25 18 53 27q20 6 62 10l57 6q27 72 76 160q45 82 107 145q18 20 63 58q31 25 74 45q47 23 80 28 q35 8 84 5q40 0 73 -13q51 -18 68 -28q27 -16 57 -43q37 -33 51 -52q29 -37 43 -57q16 -25 35 -63q16 -37 25 -68q6 -25 6 -74q0 -23 -4 -35q-6 -16 -16 -34q-8 -14 -27 -25q-15 -9 -37 -6q-37 4 -61.5 22.5t-38.5 51.5l-27 63q-16 45 -27 66q-16 37 -49 55q-35 18 -71 18 q-47 0 -82 -20q-37 -23 -66 -53q-27 -29 -49 -72q-33 -59 -39 -76q20 0 31 2q14 2 28 0q41 0 64 -2q31 -2 61 -16q29 -12 47.5 -35t16.5 -59q0 -20 -12.5 -35t-26.5 -23q-18 -10 -39 -12q-14 -2 -37 -2h-94h-96q-4 -18 -15 -72q-4 -23 -8 -71q27 0 39 2q18 2 39 0 q39 0 61 -2q37 -4 62 -15q27 -12 45 -33q18 -23 16 -57q0 -20 -12 -35q-14 -16 -29 -24q-20 -10 -36 -13q-14 -2 -35 -2q-12 0 -38 -1t-38 -1q-53 0 -78 2q6 -43 8 -55q6 -29 19 -53q14 -29 30 -43q20 -18 54 -19q70 4 104 9q55 6 103 32l43 31l43 35q16 14 48.5 26.5 t53.5 14.5q23 0 33 -8q12 -9 18 -25q4 -10 4 -33q0 -14 -6 -30q0 -20 -4 -33q-14 -31 -31 -53q-18 -25 -43 -43q-37 -29 -53 -37l-51 -31q-35 -18 -109 -47q-55 -23 -112 -25q-84 -6 -152 29q-66 35 -110 88q-47 57 -76 129q-25 63 -35 146q-33 4 -53.5 4t-53.5 4 q-20 0 -34.5 8t-28.5 22q-12 12 -19 31q-4 12 -4 35z" />
<glyph unicode="&#xe000;" horiz-adv-x="1335" d="M0 1335h1335v-1335h-1335v1335z" />
<glyph unicode="&#xfb01;" horiz-adv-x="1351" d="M1041 274q-1 14 -1 30q0 35 5 81q4 66 16 193l19 192l20 191l12 95t11 95q3 25 6 55q2 27 12 56q8 27 27 51q15 22 43 37q9 2 18 1.5t16 -1.5q16 -4 31 -14.5t23 -25t14 -28.5q8 -41 8 -83q0 -21 -2 -44q-4 -70 -8 -108q-12 -104 -12 -109l-13 -115l-12 -114 q-6 -61 -6 -121q0 -20 -1 -60.5t-1 -60.5q0 -18 -1 -56t-3 -57q-4 -74 -8 -112l-12.5 -66t-18.5 -69.5t-33 -57.5q-23 -27 -57 -35h-6q-23 0 -37 17q-25 29 -29 37q-2 12 -3 24t-3 25q-2 14 -10 47zM158 233l6 48l6 49l12 100q4 33 8 102q4 41 5 60q0 20 4 57q2 10 2 30.5 t2 31.5l6 61q2 16 4 48t2 34t2 34t4 48q4 53 8 78q2 18 5.5 37.5t5.5 40.5q2 14 4 30l4 29q12 47 47 72q39 29 76 43q57 16 83.5 22l84.5 19q25 6 74 14t71 14q49 4 70 4q47 0 69 -4q31 -6 49.5 -20.5t38.5 -36.5l29 -43q14 -25 12 -51q-6 -20 -16 -25q-14 -8 -29 -10 q-20 -4 -30 -4q-20 0 -29 -2q-37 -2 -111 -2q-45 0 -106 -11q-23 -6 -51 -16q-27 -10 -48 -24q-20 -16 -40 -35q-16 -16 -27 -45q-14 -35 -25 -78q-9 -40 -12 -80q0 -4 -1 -8t-1 -6v-15q39 0 59 2l62 6q10 0 29.5 2.5t29.5 2.5q31 3 62 0q25 0 69 -5q33 -2 68 -20 q29 -23 37 -53q8 -29 8 -51q0 -10 -2 -19q-4 -18 -14.5 -32.5t-26.5 -16.5q-29 -8 -39 -8h-37q-27 -2 -84 -2q-29 0 -86 -4q-49 -4 -84 -15q-39 -12 -76 -37q-12 -37 -16 -94q-2 -27 -10 -94q-4 -35 -8 -104l-7 -105q0 -6 -3 -21.5t-5 -23.5q-2 -18 -14 -47q-10 -23 -27 -37 q-15 -13 -34 -13q-4 0 -9 1q-37 6 -57.5 26.5t-32.5 47.5q-16 37 -18 61q-2 22 -2 63z" />
<glyph unicode="&#xfb02;" horiz-adv-x="1775" d="M1051 342q2 35 10 111q8 74 17 112q10 45 20 115q4 20 8 59t8 58q6 51 7 100q0 31 4 100l6 97q2 31 10 96q4 33 8 45q4 14 21 43q10 18 30 35q12 10 43 18q11 2 20 2q30 0 48 -16q27 -23 35 -55q8 -31 8 -74q0 -29 -4 -70q-6 -57 -27 -168l-32 -168q-12 -66 -27 -170 q-16 -121 -23 -170q0 -16 -2 -53t-2 -53q-1 -9 0 -18q0 -44 13 -85h14q40 0 90 15q63 18 102 35q10 4 31 14t31 14q12 6 27.5 14.5l31.5 16.5q47 20 58 27q23 12 57 20q14 4 41 0q18 -2 35 -16q14 -10 20 -31q3 -9 3 -18q0 -12 -5 -23q-12 -37 -38.5 -71.5t-59.5 -57.5 q-31 -23 -72 -43q-55 -29 -72 -37q-77 -34 -159 -55q-58 -15 -115 -15q-24 0 -49 3q-37 2 -80 22q-37 16 -59 55q-18 43 -23 74q-4 27 -4 80q-4 29 -4 41v45zM158 233l6 48l6 49l12 100q4 33 8 102q4 41 5 60q0 20 4 57q2 10 2 30.5t2 31.5l6 61q2 16 4 48t2 34t2 34t4 48 q4 53 8 78q2 18 5.5 37.5t5.5 40.5q2 14 4 30l4 29q12 47 47 72q39 29 76 43q57 16 83.5 22l84.5 19q25 6 74 14t71 14q49 4 70 4q47 0 69 -4q31 -6 49.5 -20.5t38.5 -36.5l29 -43q14 -25 12 -51q-6 -20 -16 -25q-14 -8 -29 -10q-20 -4 -30 -4q-20 0 -29 -2q-37 -2 -111 -2 q-45 0 -106 -11q-23 -6 -51 -16q-27 -10 -48 -24q-20 -16 -40 -35q-16 -16 -27 -45q-14 -35 -25 -78q-9 -40 -12 -80q0 -4 -1 -8t-1 -6v-15q39 0 59 2l62 6q10 0 29.5 2.5t29.5 2.5q31 3 62 0q25 0 69 -5q33 -2 68 -20q29 -23 37 -53q8 -29 8 -51q0 -10 -2 -19 q-4 -18 -14.5 -32.5t-26.5 -16.5q-29 -8 -39 -8h-37q-27 -2 -84 -2q-29 0 -86 -4q-49 -4 -84 -15q-39 -12 -76 -37q-12 -37 -16 -94q-2 -27 -10 -94q-4 -35 -8 -104l-7 -105q0 -6 -3 -21.5t-5 -23.5q-2 -18 -14 -47q-10 -23 -27 -37q-15 -13 -34 -13q-4 0 -9 1 q-37 6 -57.5 26.5t-32.5 47.5q-16 37 -18 61q-2 22 -2 63z" />
<glyph unicode="&#xfb03;" horiz-adv-x="2234" d="M1923 274q-1 14 -1 30q0 35 5 81q4 66 16 193l19 192l20 191l12 95t11 95q3 25 6 55q2 27 12 56q8 27 27 51q15 22 43 37q9 2 18 1.5t16 -1.5q16 -4 31 -14.5t23 -25t14 -28.5q8 -41 8 -83q0 -21 -2 -44q-4 -70 -8 -108q-12 -104 -12 -109l-13 -115l-12 -114 q-6 -61 -6 -121q0 -20 -1 -60.5t-1 -60.5q0 -18 -1 -56t-3 -57q-4 -74 -8 -112l-12.5 -66t-18.5 -69.5t-33 -57.5q-23 -27 -57 -35h-6q-23 0 -37 17q-25 29 -29 37q-2 12 -3 24t-3 25q-2 14 -10 47zM1043 233l6 48l6 49l12 100q4 33 8 102q4 41 5 60q0 20 4 57q2 10 2 30.5 t2 31.5l6 61q2 16 4 48t2 34t2 34t4 48q4 53 8 78q2 18 5.5 37.5t5.5 40.5q2 14 4 30l4 29q12 47 47 72q39 29 76 43q57 16 83.5 22l84.5 19q25 6 74 14t71 14q49 4 70 4q47 0 69 -4q31 -6 49.5 -20.5t38.5 -36.5l29 -43q14 -25 12 -51q-6 -20 -16 -25q-14 -8 -29 -10 q-20 -4 -30 -4q-20 0 -29 -2q-37 -2 -111 -2q-45 0 -106 -11q-23 -6 -51 -16q-27 -10 -48 -24q-20 -16 -40 -35q-16 -16 -27 -45q-14 -35 -25 -78q-9 -40 -12 -80q0 -4 -1 -8t-1 -6v-15q39 0 59 2l62 6q10 0 29.5 2.5t29.5 2.5q31 3 62 0q25 0 69 -5q33 -2 68 -20 q29 -23 37 -53q8 -29 8 -51q0 -10 -2 -19q-4 -18 -14.5 -32.5t-26.5 -16.5q-29 -8 -39 -8h-37q-27 -2 -84 -2q-29 0 -86 -4q-49 -4 -84 -15q-39 -12 -76 -37q-12 -37 -16 -94q-2 -27 -10 -94q-4 -35 -8 -104l-7 -105q0 -6 -3 -21.5t-5 -23.5q-2 -18 -14 -47q-10 -23 -27 -37 q-15 -13 -34 -13q-4 0 -9 1q-37 6 -57.5 26.5t-32.5 47.5q-16 37 -18 61q-2 22 -2 63zM158 233l6 48l6 49l12 100q4 33 8 102q4 41 5 60q0 20 4 57q2 10 2 30.5t2 31.5l6 61q2 16 4 48t2 34t2 34t4 48q4 53 8 78q2 18 5.5 37.5t5.5 40.5q2 14 4 30l4 29q12 47 47 72 q39 29 76 43q57 16 83.5 22l84.5 19q25 6 74 14t71 14q49 4 70 4q47 0 69 -4q31 -6 49.5 -20.5t38.5 -36.5l29 -43q14 -25 12 -51q-6 -20 -16 -25q-14 -8 -29 -10q-20 -4 -30 -4q-20 0 -29 -2q-37 -2 -111 -2q-45 0 -106 -11q-23 -6 -51 -16q-27 -10 -48 -24 q-20 -16 -40 -35q-16 -16 -27 -45q-14 -35 -25 -78q-9 -40 -12 -80q0 -4 -1 -8t-1 -6v-15q39 0 59 2l62 6q10 0 29.5 2.5t29.5 2.5q31 3 62 0q25 0 69 -5q33 -2 68 -20q29 -23 37 -53q8 -29 8 -51q0 -10 -2 -19q-4 -18 -14.5 -32.5t-26.5 -16.5q-29 -8 -39 -8h-37 q-27 -2 -84 -2q-29 0 -86 -4q-49 -4 -84 -15q-39 -12 -76 -37q-12 -37 -16 -94q-2 -27 -10 -94q-4 -35 -8 -104l-7 -105q0 -6 -3 -21.5t-5 -23.5q-2 -18 -14 -47q-10 -23 -27 -37q-15 -13 -34 -13q-4 0 -9 1q-37 6 -57.5 26.5t-32.5 47.5q-16 37 -18 61q-2 22 -2 63z" />
<glyph unicode="&#xfb04;" horiz-adv-x="2660" d="M1933 342q2 35 10 111q8 74 17 112q10 45 20 115q4 20 8 59t8 58q6 51 7 100q0 31 4 100l6 97q2 31 10 96q4 33 8 45q4 14 21 43q10 18 30 35q12 10 43 18q11 2 20 2q30 0 48 -16q27 -23 35 -55q8 -31 8 -74q0 -29 -4 -70q-6 -57 -27 -168l-32 -168q-12 -66 -27 -170 q-16 -121 -23 -170q0 -16 -2 -53t-2 -53q-1 -9 0 -18q0 -44 13 -85h14q40 0 90 15q63 18 102 35q10 4 31 14t31 14q12 6 27.5 14.5l31.5 16.5q47 20 58 27q23 12 57 20q14 4 41 0q18 -2 35 -16q14 -10 20 -31q3 -9 3 -18q0 -12 -5 -23q-12 -37 -38.5 -71.5t-59.5 -57.5 q-31 -23 -72 -43q-55 -29 -72 -37q-77 -34 -159 -55q-58 -15 -115 -15q-24 0 -49 3q-37 2 -80 22q-37 16 -59 55q-18 43 -23 74q-4 27 -4 80q-4 29 -4 41v45zM1043 233l6 48l6 49l12 100q4 33 8 102q4 41 5 60q0 20 4 57q2 10 2 30.5t2 31.5l6 61q2 16 4 48t2 34t2 34t4 48 q4 53 8 78q2 18 5.5 37.5t5.5 40.5q2 14 4 30l4 29q12 47 47 72q39 29 76 43q57 16 83.5 22l84.5 19q25 6 74 14t71 14q49 4 70 4q47 0 69 -4q31 -6 49.5 -20.5t38.5 -36.5l29 -43q14 -25 12 -51q-6 -20 -16 -25q-14 -8 -29 -10q-20 -4 -30 -4q-20 0 -29 -2q-37 -2 -111 -2 q-45 0 -106 -11q-23 -6 -51 -16q-27 -10 -48 -24q-20 -16 -40 -35q-16 -16 -27 -45q-14 -35 -25 -78q-9 -40 -12 -80q0 -4 -1 -8t-1 -6v-15q39 0 59 2l62 6q10 0 29.5 2.5t29.5 2.5q31 3 62 0q25 0 69 -5q33 -2 68 -20q29 -23 37 -53q8 -29 8 -51q0 -10 -2 -19 q-4 -18 -14.5 -32.5t-26.5 -16.5q-29 -8 -39 -8h-37q-27 -2 -84 -2q-29 0 -86 -4q-49 -4 -84 -15q-39 -12 -76 -37q-12 -37 -16 -94q-2 -27 -10 -94q-4 -35 -8 -104l-7 -105q0 -6 -3 -21.5t-5 -23.5q-2 -18 -14 -47q-10 -23 -27 -37q-15 -13 -34 -13q-4 0 -9 1 q-37 6 -57.5 26.5t-32.5 47.5q-16 37 -18 61q-2 22 -2 63zM158 233l6 48l6 49l12 100q4 33 8 102q4 41 5 60q0 20 4 57q2 10 2 30.5t2 31.5l6 61q2 16 4 48t2 34t2 34t4 48q4 53 8 78q2 18 5.5 37.5t5.5 40.5q2 14 4 30l4 29q12 47 47 72q39 29 76 43q57 16 83.5 22l84.5 19 q25 6 74 14t71 14q49 4 70 4q47 0 69 -4q31 -6 49.5 -20.5t38.5 -36.5l29 -43q14 -25 12 -51q-6 -20 -16 -25q-14 -8 -29 -10q-20 -4 -30 -4q-20 0 -29 -2q-37 -2 -111 -2q-45 0 -106 -11q-23 -6 -51 -16q-27 -10 -48 -24q-20 -16 -40 -35q-16 -16 -27 -45q-14 -35 -25 -78 q-9 -40 -12 -80q0 -4 -1 -8t-1 -6v-15q39 0 59 2l62 6q10 0 29.5 2.5t29.5 2.5q31 3 62 0q25 0 69 -5q33 -2 68 -20q29 -23 37 -53q8 -29 8 -51q0 -10 -2 -19q-4 -18 -14.5 -32.5t-26.5 -16.5q-29 -8 -39 -8h-37q-27 -2 -84 -2q-29 0 -86 -4q-49 -4 -84 -15q-39 -12 -76 -37 q-12 -37 -16 -94q-2 -27 -10 -94q-4 -35 -8 -104l-7 -105q0 -6 -3 -21.5t-5 -23.5q-2 -18 -14 -47q-10 -23 -27 -37q-15 -13 -34 -13q-4 0 -9 1q-37 6 -57.5 26.5t-32.5 47.5q-16 37 -18 61q-2 22 -2 63z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,23 @@
By downloading this font package you agree to the following terms
of use:
- This FONT PACKAGE is FREEWARE and may be distributed ONLY via the
Internet for FREE. Under NO circumstances may this FONT PACKAGE
be sold for a profit nor be included as part of another product or
CD-ROM compilation. If you wish to include this FONT PACKAGE for
FREE distribution on your Web Site, please include all of the fonts
and original documentation supplied with this FONT PACKAGE.
- You may install and use this FONT PACKAGE on an unlimited
amount of machines.
- You may NOT rename, edit, or create any alternate variations of
the fonts included in this FONT PACKAGE.
- This FONT PACKAGE comes "as is" with NO warranty whatsoever.
SHYFONTS accepts NO responsibility for any damages or loss of
any kind due to the use of this FONT PACKAGE. The use of this
FONT PACKAGE is solely your responsibility -- you use this FONT
PACKAGE at your own risk.
Thank you for downloading this font package and enjoy!

View File

@ -0,0 +1,94 @@
Copyright (c) 2011, TypeTogether (www.type-together.com),
with Reserved Font Names "Crete" and "Crete Round"
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

View File

@ -0,0 +1,189 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : Copyright c 2011 TypeTogether wwwtypetogethercom with Reserved Font Names Crete and Crete Round
Designer : Veronika Burian
Foundry : TypeTogether
Foundry URL : wwwtypetogethercomCrete
</metadata>
<defs>
<font id="CreteRoundItalic" horiz-adv-x="1024" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="409" />
<glyph unicode=" " horiz-adv-x="409" />
<glyph unicode="&#x09;" horiz-adv-x="409" />
<glyph unicode="&#xa0;" horiz-adv-x="409" />
<glyph unicode="!" horiz-adv-x="518" d="M37 72q0 68 45 108.5t115 40.5q57 0 92 -31.5t35 -78.5q0 -68 -46 -109t-118 -41q-57 0 -90 32t-33 79zM160 352l76 692l55 314q4 31 39 31h155q20 0 25.5 -6.5t1.5 -24.5l-55 -318l-166 -690q-8 -31 -41 -31h-62q-20 0 -25 6.5t-3 26.5z" />
<glyph unicode="&#x22;" horiz-adv-x="765" d="M221 969l6 182q0 37 6 63l25 146q4 31 39 31h143q20 0 25.5 -6.5t1.5 -24.5l-25 -150q-8 -37 -16 -61l-59 -182q-10 -31 -43 -31h-70q-20 0 -26.5 6t-6.5 27zM532 969l7 182q0 37 6 63l24 146q4 31 39 31h144q20 0 25 -6.5t1 -24.5l-24 -150q-8 -37 -17 -61l-59 -182 q-10 -31 -43 -31h-70q-20 0 -26.5 6t-6.5 27z" />
<glyph unicode="#" horiz-adv-x="1153" d="M47 381v12q4 18 11.5 24.5t27.5 6.5h213l92 252h-213q-20 0 -25.5 6t-0.5 25v12q4 18 11 24.5t27 6.5h228l112 307q10 31 43 30h11q18 0 23 -6t-1 -24l-112 -307h270l108 307q10 31 43 30h11q18 0 23 -6t-1 -24l-108 -307h227q20 0 25.5 -6.5t1.5 -24.5v-12 q-4 -18 -11.5 -24.5t-27.5 -6.5h-242l-88 -252h238q20 0 25 -6t1 -25v-12q-4 -18 -11 -24.5t-28 -6.5h-252l-125 -354q-10 -31 -43 -31h-10q-18 0 -23 6t1 25l125 354h-273l-129 -354q-10 -31 -43 -31h-10q-18 0 -23.5 6t0.5 25l129 354h-200q-20 0 -25.5 6t-1.5 25z M375 424h274l88 252h-270z" />
<glyph unicode="$" horiz-adv-x="882" d="M0 45l37 229q4 18 11 24.5t28 6.5h110q20 0 25.5 -6t1.5 -25l-27 -116q31 -27 80 -35l96 330q-143 72 -200.5 130t-57.5 165q0 164 124 254t321 88l31 100q8 31 41 31h20q18 0 23.5 -6.5t1.5 -24.5l-31 -105q88 -6 180 -34q31 -10 27 -41l-35 -215q-4 -18 -11.5 -24.5 t-27.5 -6.5h-111q-20 0 -24 6t0 25l24 110q-37 18 -67 25l-86 -287q63 -35 91 -53.5t76 -58t68.5 -90t20.5 -115.5q0 -178 -134 -269.5t-321 -91.5l-39 -135q-8 -31 -41 -31h-20q-20 0 -24.5 6.5t-0.5 24.5l39 139q-100 6 -192 35q-31 10 -27 41zM315 805q0 -80 113 -131 l78 260q-78 4 -134.5 -31t-56.5 -98zM352 117q80 2 141.5 36.5t61.5 110.5q0 53 -28 85t-89 67z" />
<glyph unicode="%" horiz-adv-x="1705" d="M82 895q0 178 108.5 314.5t286.5 136.5q129 0 208 -77t79 -222q0 -176 -105.5 -319.5t-287.5 -143.5q-133 0 -211 83t-78 228zM258 889q0 -166 127 -166q76 0 124 57.5t63.5 125t15.5 141.5q0 78 -33 120.5t-92 42.5q-76 0 -125 -59t-64.5 -125.5t-15.5 -136.5zM315 -8 l869 1323q16 27 51 26h92q34 1 14 -26l-870 -1323q-16 -27 -51 -27h-90q-35 0 -15 27zM891 276q0 178 108.5 314.5t286.5 136.5q129 0 208 -77t79 -222q0 -176 -105.5 -319.5t-287.5 -143.5q-133 0 -211 83t-78 228zM1067 270q0 -166 127 -166q76 0 124 57.5t63.5 125 t15.5 141.5q0 78 -32 121t-91 43q-57 0 -100.5 -33t-65 -86t-31.5 -103.5t-10 -99.5z" />
<glyph unicode="&#x26;" horiz-adv-x="1708" d="M86 502q0 252 167 434t464 182q166 0 261 -73.5t95 -198.5q0 -66 -27.5 -121t-68.5 -90t-90 -58.5t-93 -32.5t-79 -9q70 -14 119 -44t86.5 -87.5t58 -102.5t55.5 -135q160 47 260.5 181t100.5 337q0 143 -72 293h-152q-20 -2 -25 4t-1 25l18 106q4 31 39 31h459 q20 0 25.5 -6.5t1.5 -24.5l-23 -108q-4 -18 -11.5 -24.5t-27.5 -4.5h-115q55 -152 56 -289q0 -244 -135.5 -427t-337.5 -245l108 -237q18 -41 38 -58.5t54.5 -17.5t71.5 14q29 12 45 -16l12 -27q14 -27 -10 -45q-94 -66 -209 -65q-82 0 -129 36.5t-84 116.5l-117 258 q-66 -8 -151 -8q-305 0 -471 141.5t-166 395.5zM326 520q0 -184 99 -290.5t300 -106.5q53 0 80 2q-33 76 -44 102.5t-38 83t-41 77t-37.5 51t-45 45t-48.5 20.5q-20 4 -25.5 11t-3.5 28l8 47q4 33 37 37q113 16 187.5 66t74.5 128q0 61 -40.5 94t-108.5 33q-92 0 -164 -41 t-111.5 -107.5t-59 -137t-19.5 -142.5z" />
<glyph unicode="'" horiz-adv-x="454" d="M221 969l6 182q0 37 6 63l25 146q4 31 39 31h143q20 0 25.5 -6.5t1.5 -24.5l-25 -150q-8 -37 -16 -61l-59 -182q-10 -31 -43 -31h-70q-20 0 -26.5 6t-6.5 27z" />
<glyph unicode="(" horiz-adv-x="688" d="M186 -274l4 870q0 29 11 63l276 838q10 31 43 31h228q20 0 25 -6t1 -25l-18 -117q-4 -18 -11.5 -24t-27.5 -4l-92 6l-238 -729l-10 -772l98 6q20 2 25.5 -4.5t1.5 -24.5l-17 -110q-4 -18 -11 -24.5t-28 -6.5h-227q-20 0 -26.5 6t-6.5 27z" />
<glyph unicode=")" horiz-adv-x="688" d="M-66 -276l19 116q4 18 11 24.5t28 4.5l92 -6l238 729l10 772l-99 -6q-20 -2 -25 4t-1 24l16 111q4 18 11.5 24.5t27.5 6.5h227q20 0 26.5 -6t6.5 -27l-4 -870q0 -29 -10 -64l-277 -837q-10 -31 -43 -31h-227q-20 0 -25.5 6t-1.5 25z" />
<glyph unicode="*" horiz-adv-x="995" d="M221 938q-10 33 17 47l233 145l-176 148q-25 20 -4 45l14 20q20 27 49 11l197 -105l74 248q8 31 41 31h22q20 0 26.5 -6t4.5 -27l-21 -246l252 105q29 12 41 -19l2 -8q14 -33 -14 -47l-236 -145l181 -150q25 -20 4 -45l-17 -18q-20 -27 -49 -11l-200 103l-72 -244 q-8 -31 -41 -31h-21q-20 0 -26 6.5t-4 26.5l16 242l-248 -105q-29 -12 -39 19z" />
<glyph unicode="+" horiz-adv-x="1085" d="M63 573l13 72q2 18 10.5 24.5t28.5 6.5h360l64 362q2 18 10 24.5t29 6.5h84q20 0 25 -6t1 -25l-63 -362h366q20 0 25.5 -6t1.5 -25l-12 -72q-2 -18 -10.5 -24t-28.5 -6h-367l-68 -393q-4 -18 -11 -24.5t-27 -6.5h-84q-20 0 -25.5 6t-1.5 25l68 393h-361q-20 0 -25.5 6 t-1.5 24z" />
<glyph unicode="," horiz-adv-x="598" d="M2 -258l117 219q-53 86 -53 141q0 66 45 110t120 44q61 0 98.5 -38t37.5 -93q0 -45 -21.5 -91t-38 -68t-67.5 -83l-156 -188q-20 -27 -49 -8l-19 10q-31 16 -14 45z" />
<glyph unicode="-" horiz-adv-x="577" d="M61 477l23 137q2 18 10 24.5t29 6.5h389q20 0 25.5 -6t1.5 -25l-25 -137q-2 -18 -10.5 -24.5t-28.5 -6.5h-387q-20 0 -25.5 6.5t-1.5 24.5z" />
<glyph unicode="." horiz-adv-x="571" d="M59 82q0 72 49.5 117t124.5 45q61 0 99.5 -35t38.5 -86q0 -72 -50 -117t-128 -45q-61 0 -97.5 35t-36.5 86z" />
<glyph unicode="/" horiz-adv-x="919" d="M-37 -178l907 1675q16 29 48 29h94q32 0 18 -29l-909 -1675q-16 -29 -47 -29h-92q-33 0 -19 29z" />
<glyph unicode="0" horiz-adv-x="1179" d="M39 426q0 274 164 467.5t459 193.5q193 0 318.5 -109.5t125.5 -326.5q0 -281 -166 -478.5t-463 -197.5q-209 0 -323.5 118t-114.5 333zM266 426q0 -131 59.5 -207t178.5 -76q106 0 183 47.5t116 124t56.5 156.5t17.5 164q0 281 -250 280q-104 0 -179 -45t-113 -122.5 t-53.5 -155.5t-15.5 -166z" />
<glyph unicode="1" horiz-adv-x="694" d="M-33 31l17 102q4 18 11 24.5t28 4.5h149l125 721l-162 -6q-20 -2 -25.5 4t-0.5 24l18 111q4 31 39 31h356q20 0 25.5 -6.5t1.5 -24.5l-150 -854h148q20 2 25.5 -4t0.5 -25l-18 -102q-2 -18 -10 -24.5t-29 -6.5h-522q-20 0 -25.5 6t-1.5 25z" />
<glyph unicode="2" horiz-adv-x="1077" d="M-14 31l14 86q4 31 37 45q109 45 212 99t217 132t183.5 172t69.5 189q0 161 -174 161q-186 0 -228 -180q-8 -31 -38 -30h-129q-18 0 -23.5 6t-3.5 26q27 172 147.5 261t305 89t283.5 -83.5t99 -225.5q0 -346 -602 -610h396l12 115q4 20 10 26t27 6h104q20 0 25.5 -6 t1.5 -24l-64 -363q-4 -31 -39 -31h-104q-20 0 -24.5 6.5t-0.5 24.5l19 78h-707q-20 0 -25 6t-1 25z" />
<glyph unicode="3" horiz-adv-x="989" d="M-45 10q0 16 4 53q4 31 37 31h127q14 0 19 -5t3 -19q-2 -10 -2 -29q0 -86 49.5 -123t151.5 -37q127 0 196.5 73t69.5 206q0 86 -52 134t-138 54q-68 6 -123 6q-20 0 -25.5 6.5t-1.5 26.5l17 100q4 31 39 31q100 0 137 6q100 10 164.5 75t64.5 165q0 72 -41 113t-125 41 q-180 0 -227 -183q-4 -18 -11 -24t-28 -6h-123q-18 0 -23 6t-3 24q31 174 155.5 263t298.5 89q170 0 262.5 -77.5t92.5 -204.5q0 -274 -318 -367q96 -12 164 -85.5t68 -188.5q0 -209 -142.5 -331t-369.5 -122q-176 0 -271.5 77t-95.5 222z" />
<glyph unicode="4" horiz-adv-x="1073" d="M-16 61l16 107q4 27 27 55l626 799q20 25 54 25h172q20 0 25 -6.5t1 -24.5l-143 -813h205q20 0 25 -6.5t1 -24.5l-16 -111q-4 -18 -11.5 -24t-27.5 -6h-207l-47 -273q-4 -31 -39 -30h-149q-20 0 -25.5 6t-1.5 24l47 273h-506q-20 0 -25 6t-1 24zM188 203h359l100 583z " />
<glyph unicode="5" horiz-adv-x="972" d="M-55 12q0 35 4 56q2 18 8 24t27 6h122q18 0 23.5 -6t3.5 -22q-2 -12 -2 -33q0 -156 182 -156q147 0 229.5 86t82.5 232q0 225 -193 225q-117 0 -225 -76q-27 -16 -57 -4l-29 12q-29 14 -21 45l179 615q8 31 40 31h599q20 0 25 -6.5t1 -24.5l-22 -135q-4 -18 -11.5 -24.5 t-27.5 -6.5h-484l-96 -305q104 55 229 55q141 0 230.5 -96t89.5 -254q0 -240 -142.5 -389.5t-400.5 -149.5q-172 0 -268 79t-96 222z" />
<glyph unicode="6" horiz-adv-x="1118" d="M76 426q0 160 37 313.5t112.5 292.5t212.5 225t316 86q143 0 229 -66.5t86 -201.5v-43q0 -33 -37 -33h-129q-16 0 -19 8.5t-3 30.5q0 68 -33 102t-113 34q-135 0 -245.5 -113t-165.5 -344q59 68 154 110.5t200 42.5q162 0 250 -100t88 -250q0 -252 -148.5 -398.5 t-396.5 -146.5q-193 0 -294 122t-101 329zM291 383q0 -240 215 -240q141 0 215 95.5t74 250.5q0 96 -56.5 152.5t-158.5 56.5q-139 0 -214 -83t-75 -232z" />
<glyph unicode="7" horiz-adv-x="944" d="M-6 -246l713 1096h-629q-20 0 -25.5 6t-1.5 25l23 135q4 31 39 31h837q20 0 25.5 -6.5t1.5 -24.5l-16 -107q-6 -33 -23 -57l-721 -1098q-14 -27 -49 -26h-158q-35 0 -16 26z" />
<glyph unicode="8" horiz-adv-x="1093" d="M35 272q0 143 89 246t247 187q-154 113 -154 272q0 168 131 267t328 99q180 0 266 -74.5t86 -187.5q0 -219 -293 -362q246 -154 246 -350q0 -190 -155.5 -292t-387.5 -102q-201 0 -302 82t-101 215zM258 317q0 -184 211 -184q119 0 197.5 48.5t78.5 146.5q0 25 -6 48 t-14 40.5t-26.5 38t-30 33t-39 32t-39.5 27.5t-45 29.5t-43 27.5q-53 -29 -89 -53.5t-76 -60t-59.5 -78.5t-19.5 -95zM451 1030q0 -63 34.5 -112.5t106.5 -104.5q100 51 158.5 107.5t58.5 136.5q0 61 -42 95t-112 34q-205 0 -204 -156z" />
<glyph unicode="9" horiz-adv-x="1118" d="M18 -23q0 29 2 43q2 33 35 33h131q18 0 19 -20v-23q0 -137 153 -137q145 0 254 114.5t160 356.5q-127 -164 -356 -164q-162 0 -253 101.5t-91 248.5q0 254 148.5 405.5t395.5 151.5q195 0 296.5 -126.5t101.5 -354.5q0 -133 -21.5 -258t-73 -242.5t-127 -204.5 t-190.5 -139.5t-258 -52.5q-150 0 -238 65.5t-88 202.5zM293 571q0 -100 50.5 -159.5t154.5 -59.5q154 0 227.5 91.5t73.5 242.5q0 104 -52.5 170t-164.5 66q-141 0 -215 -96.5t-74 -254.5z" />
<glyph unicode=":" horiz-adv-x="571" d="M61 82q0 72 49.5 117t125.5 45q61 0 99 -35t38 -86q0 -72 -50 -117t-128 -45q-61 0 -97.5 35t-36.5 86zM205 895q0 72 49 117t125 45q61 0 99 -35t38 -86q0 -72 -50 -117t-128 -45q-61 0 -97 35t-36 86z" />
<glyph unicode=";" horiz-adv-x="598" d="M2 -258l117 219q-53 86 -53 141q0 66 45 110t120 44q61 0 98.5 -38t37.5 -93q0 -45 -21.5 -91t-38 -68t-67.5 -83l-156 -188q-20 -27 -49 -8l-19 10q-31 16 -14 45zM217 895q0 72 49.5 117t124.5 45q61 0 99.5 -35t38.5 -86q0 -72 -50 -117t-128 -45q-61 0 -97.5 35 t-36.5 86z" />
<glyph unicode="&#x3c;" horiz-adv-x="1085" d="M115 506l12 78q4 31 37 43l874 352q16 6 21.5 2t3.5 -20l-16 -107q-4 -31 -37 -43l-711 -270l610 -287q31 -16 23 -45l-17 -94q-4 -31 -34 -17l-744 363q-31 16 -22 45z" />
<glyph unicode="=" horiz-adv-x="1085" d="M27 319l12 72q2 18 10 24.5t29 6.5h876q20 0 25.5 -6t1.5 -25l-12 -72q-2 -18 -10.5 -24t-28.5 -6h-877q-20 0 -25 6t-1 24zM88 686l12 72q2 18 10.5 24t28.5 6h877q20 0 25.5 -6t0.5 -24l-12 -72q-2 -18 -10 -24.5t-29 -6.5h-876q-20 0 -25.5 6.5t-1.5 24.5z" />
<glyph unicode="&#x3e;" horiz-adv-x="1085" d="M33 115l18 102q6 33 37 43l703 293l-605 266q-27 10 -22 43l18 99q6 29 31 18l750 -352q27 -12 20 -43l-12 -78q-6 -33 -37 -43l-875 -367q-16 -6 -23 -2t-3 21z" />
<glyph unicode="?" horiz-adv-x="952" d="M166 1085q23 168 140.5 254t299.5 86q180 0 276.5 -82.5t96.5 -242.5q0 -348 -465 -471l-47 -275q-4 -30 -39 -30h-111q-20 0 -25 6t-1 24l63 375q4 31 37 39q166 33 263.5 103.5t97.5 215.5q0 80 -44 129.5t-135 49.5q-94 0 -148 -43t-73 -140q-4 -18 -11 -24t-28 -6 h-120q-18 0 -23.5 6t-3.5 26zM197 72q0 68 45 108.5t114 40.5q57 0 92 -31.5t35 -78.5q0 -68 -46 -109t-118 -41q-57 0 -89.5 32t-32.5 79z" />
<glyph unicode="@" horiz-adv-x="1796" d="M96 432q0 369 224.5 608.5t588.5 239.5q362 0 563 -179t201 -530q0 -78 -12 -152.5t-46 -152.5t-85 -135t-136 -94t-192 -37q-168 0 -188 119q-94 -119 -277 -119q-135 0 -209.5 82t-74.5 246q0 102 25.5 201.5t77.5 187.5t143.5 141t207.5 53q78 0 136 -27.5t83 -62.5 l7 33q2 18 10 24.5t28 6.5h129q20 0 25.5 -6.5t1.5 -24.5l-108 -635q-8 -51 7 -84t54 -33q143 0 224 133.5t81 335.5q0 305 -175 468t-515 163q-315 0 -507.5 -221t-192.5 -545q0 -334 194.5 -497.5t511.5 -163.5q66 0 131 6q20 2 26.5 -3t10.5 -26v-12q6 -33 -29 -35 q-74 -6 -147 -6q-358 0 -577.5 184.5t-219.5 548.5zM647 350q0 -198 172 -198q76 0 143.5 48t79.5 136l64 344q0 4 -16.5 24.5t-61.5 43t-100 22.5q-100 0 -168 -74.5t-90.5 -164t-22.5 -181.5z" />
<glyph unicode="A" horiz-adv-x="1425" d="M-70 31l19 102q4 18 11 24.5t28 4.5h125l618 1200q16 29 47 29h176q33 0 37 -31l183 -1163q6 -41 16 -57.5t35 -16.5q27 0 63 14q31 12 45 -16l15 -31q4 -9 4 -17q0 -17 -19 -28q-104 -70 -213 -70q-86 0 -118.5 41t-49.5 134l-53 288h-457l-141 -276h127q20 2 25.5 -4 t1.5 -25l-21 -102q-4 -31 -39 -31h-438q-19 0 -25 6q-3 3 -4 11q0 6 2 14zM514 592h367l-82 563z" />
<glyph unicode="B" horiz-adv-x="1222" d="M125 31l205 1194h-105q-20 -2 -25 4t-1 24l18 107q4 31 39 33q379 10 428 10q246 0 361.5 -82t115.5 -219q0 -252 -301 -350q133 -23 203 -108t70 -200q0 -203 -153 -312t-384 -124q-117 -8 -297 -8h-147q-20 0 -26 6q-3 3 -3 11q0 6 2 14zM377 162h100q92 0 154.5 8 t130 33.5t101.5 84t34 148.5q0 100 -72 154.5t-213 54.5h-147zM494 815h77q150 0 249.5 59.5t99.5 192.5q0 96 -74 131t-205 35h-74z" />
<glyph unicode="C" horiz-adv-x="1294" d="M102 557q0 156 49.5 306.5t141.5 277.5t246.5 205.5t347.5 78.5q223 0 411 -106q23 -11 23 -34q0 -6 -2 -13l-45 -256q-4 -31 -39 -31h-111q-20 0 -25 6t-1 25l32 145q-106 84 -270 84q-137 0 -239.5 -58.5t-158.5 -158.5t-82 -211.5t-26 -238.5q0 -195 90.5 -308.5 t282.5 -113.5q168 0 238 59l18 133q4 20 10 26.5t27 6.5h113q20 0 25 -6t1 -25l-45 -256q-8 -33 -35 -45q-166 -74 -385 -74q-299 0 -445.5 154t-146.5 428z" />
<glyph unicode="D" horiz-adv-x="1404" d="M125 31l205 1194h-105q-20 -2 -25 4t-1 24l18 107q4 31 39 33q389 10 453 10q113 0 214 -24.5t201.5 -81t161 -170t60.5 -271.5q0 -391 -236 -623.5t-674 -232.5h-284q-20 0 -26 6q-3 3 -3 11q0 6 2 14zM377 162h135q152 0 267.5 55t182 149.5t99.5 208t33 242.5 q0 217 -100.5 316.5t-299.5 99.5h-131z" />
<glyph unicode="E" horiz-adv-x="1155" d="M-14 31l16 102q4 18 11 24.5t28 4.5h106l185 1063h-107q-20 -2 -25 4t-1 24l18 107q4 31 39 31h897q19 -1 25 -7q3 -4 4 -11q0 -6 -2 -13l-47 -275q-2 -18 -10.5 -24t-28.5 -6h-111q-20 0 -25.5 6t-1.5 24l33 142h-424l-78 -436h396q20 0 25 -6.5t1 -24.5l-16 -98 q-4 -31 -39 -31h-393l-84 -469h469l18 141q4 20 10.5 26.5t26.5 6.5h111q20 0 25 -6t1 -25l-49 -274q-2 -18 -10 -24.5t-29 -6.5h-938q-20 0 -25 6q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="F" horiz-adv-x="1105" d="M-14 31l16 102q4 18 11 24.5t28 4.5h104l187 1063h-107q-20 -2 -25 4t-1 24l18 107q4 31 39 31h918q20 -1 25 -7q3 -4 3 -10t-2 -14l-47 -275q-2 -18 -10 -24t-29 -6h-110q-20 0 -25.5 6t-1.5 24l33 142h-445l-78 -426h396q20 0 25 -6.5t1 -24.5l-16 -98q-4 -31 -39 -31 h-393l-86 -479h190q20 2 25.5 -4t1.5 -25l-17 -102q-4 -18 -11 -24.5t-27 -6.5h-525q-20 0 -25 6q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="G" horiz-adv-x="1427" d="M102 559q0 354 216.5 610t572.5 256q233 0 407 -104q29 -18 21 -49l-45 -256q-4 -31 -39 -31h-111q-20 0 -25 6t-1 25l32 147q-131 84 -272 84q-170 0 -287.5 -98t-168 -244.5t-50.5 -326.5q0 -184 95.5 -301t302.5 -117q137 0 231 47l51 272h-131q-20 -2 -25.5 4 t-1.5 25l19 104q4 31 39 31h422q20 0 25 -6q3 -3 3 -11q0 -6 -2 -14l-18 -104q-4 -18 -11.5 -24.5t-27.5 -4.5h-84l-68 -385q-8 -31 -34 -43q-176 -76 -414 -76q-147 0 -259 32t-179.5 84t-109.5 130t-57.5 159t-15.5 179z" />
<glyph unicode="H" horiz-adv-x="1521" d="M-14 31l16 102q4 29 39 29h104l189 1063h-109q-20 -2 -25 4t-1 24l18 107q4 31 39 31h442q20 0 25.5 -6.5t1.5 -24.5l-18 -107q-4 -18 -11.5 -24t-27.5 -4h-105l-76 -422h621l76 422h-109q-20 -2 -25.5 4t-0.5 24l18 107q2 18 10 24.5t29 6.5h442q20 -1 26 -7q3 -4 3 -11 q0 -6 -2 -13l-19 -107q-4 -18 -11 -24t-27 -4h-105l-182 -1020q-3 -13 -3 -24q0 -39 36 -40q25 0 61 17q31 12 43 -15l16 -32q14 -27 -10 -48q-111 -88 -223 -88q-159 0 -159 142q0 24 5 53l82 457h-620l-84 -465h106q20 0 25.5 -5t3.5 -24l-18 -102q-4 -31 -37 -31h-443 q-20 0 -25 6q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="I" horiz-adv-x="669" d="M-12 31l16 102q4 18 11.5 24.5t27.5 4.5h104l185 1063h-105q-20 -2 -25 4t-1 24l16 107q4 18 11.5 24.5t27.5 6.5h442q20 -1 26 -7q3 -4 3 -11q0 -6 -2 -13l-16 -107q-4 -18 -11.5 -24t-27.5 -4h-107l-186 -1063h106q20 2 25.5 -4t1.5 -25l-16 -102q-4 -18 -11.5 -24.5 t-27.5 -6.5h-441q-20 0 -25 6q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="J" horiz-adv-x="966" d="M-72 -395l33 84q12 29 43 18q96 -35 201 -35q92 0 145 70t80 221l221 1264h-268l-21 -140q-4 -18 -10 -24t-26 -6h-121q-20 0 -25.5 6t-1.5 24l47 273q4 31 39 31h613q20 0 25 -7q3 -3 3 -10q0 -6 -2 -14l-254 -1446q-37 -201 -134 -303.5t-294 -102.5q-147 0 -274 54 q-22 9 -22 28q0 7 3 15z" />
<glyph unicode="K" horiz-adv-x="1378" d="M-14 31l16 102q4 18 11 24.5t28 4.5h104l187 1063h-107q-20 -2 -25 4t-1 24l16 107q4 18 11 24.5t28 6.5h442q20 0 25.5 -6.5t1.5 -24.5l-16 -107q-4 -18 -11.5 -24t-27.5 -4h-107l-78 -439h105l409 439h-92q-20 -2 -25.5 4t-2.5 24l18 107q4 18 10 24.5t27 6.5h407 q19 -1 25 -7q3 -4 4 -11q0 -6 -2 -13l-20 -107q-4 -18 -11.5 -24t-27.5 -4h-107l-455 -482l299 -550q39 -70 84 -70q31 0 62 14q31 12 45 -16l20 -33q10 -16 7.5 -25.5t-19.5 -19.5q-100 -68 -199 -68q-90 0 -138 35t-99 131l-254 477h-98l-80 -456h106q20 2 25.5 -4 t1.5 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5h-441q-20 0 -25 6q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="L" horiz-adv-x="1075" d="M-14 31l16 102q4 18 11 24.5t28 4.5h106l185 1063h-107q-20 -2 -25 4t-1 24l18 107q4 31 39 31h442q20 0 25.5 -6.5t1.5 -24.5l-18 -107q-4 -18 -11.5 -24t-27.5 -4h-105l-186 -1061h424l20 141q4 18 10.5 24.5t26.5 6.5h111q20 0 25 -6q3 -3 3 -11q0 -6 -2 -14l-67 -383 q-2 -18 -10.5 -24.5t-28.5 -6.5h-111q-20 0 -24 6.5t0 24.5l20 78h-762q-20 0 -25 6q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="M" horiz-adv-x="1867" d="M-16 31l18 102q4 18 10 24.5t27 4.5h106l187 1063h-105q-20 -2 -25 4t-1 24l16 107q4 18 11.5 24.5t27.5 6.5h348q35 0 39 -31l238 -1114l606 1116q16 29 47 29h354q20 -1 26 -7q3 -4 3 -11q0 -6 -2 -13l-19 -107q-4 -18 -11 -24t-27 -4h-105l-170 -1020q-3 -14 -3 -25 q0 -39 34 -39q25 0 61 17q31 12 43 -15l17 -32q14 -27 -11 -48q-110 -88 -223 -88q-158 0 -158 141q0 25 5 54l151 868l-559 -1009q-18 -29 -49 -29h-152q-35 0 -39 31l-225 1009l-158 -878h134q20 2 25 -4t3 -25l-18 -102q-4 -18 -10.5 -24.5t-26.5 -6.5h-412q-20 0 -25 6 q-4 4 -4 15q0 5 1 10z" />
<glyph unicode="N" horiz-adv-x="1521" d="M-14 31l18 102q4 18 11.5 24.5t27.5 4.5h107l182 1063h-107q-20 -2 -25 4t-1 24l18 107q4 31 39 31h291q31 0 47 -29l500 -1032l163 895h-102q-20 -2 -25.5 4t-1.5 24l17 107q4 18 11 24.5t28 6.5h385q20 -1 25 -7q3 -4 3 -10t-2 -14l-16 -107q-4 -18 -11.5 -24t-27.5 -4 h-104l-211 -1194q-4 -31 -39 -31h-146q-31 0 -47 29l-510 1034l-157 -901h166q20 2 25 -4t1 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5h-451q-20 0 -25 6q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="O" horiz-adv-x="1445" d="M98 522q0 242 88 444.5t265.5 330.5t410.5 128q70 0 137.5 -14t140 -52t126 -97.5t88.5 -160t35 -229.5q0 -379 -212 -638t-571 -259q-240 0 -374 148.5t-134 398.5zM350 553q0 -164 68.5 -274.5t230.5 -110.5q111 0 197 46t138 116.5t87 165t47 182.5t12 178 q0 182 -73.5 285.5t-227.5 103.5q-94 0 -170.5 -31.5t-127 -88t-87 -124t-56 -148.5t-29 -153.5t-9.5 -146.5z" />
<glyph unicode="P" horiz-adv-x="1159" d="M-12 31l16 102q4 18 11.5 24.5t27.5 4.5h104l183 1063h-105q-20 -2 -25 4t-1 24l20 107q4 31 39 33q389 10 436 10q231 0 354 -94.5t123 -261.5q0 -238 -168.5 -364t-441.5 -126q-61 0 -115 6l-69 -401h168q20 2 25 -4t1 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5 h-502q-20 0 -25 6q-3 3 -3 11q0 6 2 14zM477 719q16 -2 64 -2q178 0 284.5 80t106.5 241q0 195 -293 195h-74z" />
<glyph unicode="Q" horiz-adv-x="1445" d="M98 522q0 242 88 444.5t265.5 330.5t410.5 128q70 0 137.5 -14t140 -52t126 -97.5t88.5 -160t35 -229.5q0 -324 -169 -572.5t-462 -309.5v-15q86 -18 184 -86q10 -6 31.5 -20t31 -20.5t28 -17.5t26.5 -16t22.5 -13.5t22.5 -11.5t18.5 -8t18.5 -6t16 -1q25 0 32 10t7 41 q0 35 31 35h45q35 0 35 -68q0 -109 -49.5 -159t-124.5 -50q-53 0 -98.5 20.5t-125.5 71.5q-244 156 -282 156q-37 0 -37 -44v-9q0 -29 -31 -29h-57q-29 0 -29 33q0 70 14.5 110.5t57.5 75.5v15q-215 31 -331 173t-116 365zM350 553q0 -76 14.5 -140.5t46 -125t93 -95 t145.5 -34.5q111 0 197 47t138 118.5t87 168t47 185.5t12 179q0 182 -73.5 286.5t-227.5 104.5q-111 0 -198.5 -47t-139 -118.5t-84 -167t-45 -183.5t-12.5 -178z" />
<glyph unicode="R" horiz-adv-x="1277" d="M-12 31l16 102q4 18 11.5 24.5t27.5 4.5h104l185 1063h-105q-20 -2 -25 4t-1 24l18 107q4 31 39 33q389 10 436 10q231 0 352 -87t121 -245q0 -285 -327 -420l153 -456q25 -72 74 -72q27 0 66 16q31 12 43 -16l16 -35q4 -9 4 -17q0 -17 -18 -28q-96 -68 -205 -68 q-88 0 -131 40t-74 126l-158 457h-41q-66 0 -114 6l-78 -442h127q20 2 25.5 -4t0.5 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5h-461q-20 0 -25 6q-3 3 -3 11q0 6 2 14zM477 741q16 -2 64 -2q170 0 278.5 75t108.5 224q0 195 -289 195h-74z" />
<glyph unicode="S" horiz-adv-x="1058" d="M18 66l54 325q4 18 11 24.5t28 6.5h110q20 0 25.5 -6t1.5 -25l-43 -188q78 -51 219 -51q303 0 303 225q0 51 -17.5 91t-60.5 71.5t-74.5 50t-97.5 49.5q-74 35 -109.5 55.5t-88 63.5t-75 100t-22.5 135q0 184 136.5 308t383.5 124q158 0 314 -45q26 -8 26 -29 q0 -6 -2 -12l-48 -280q-4 -31 -40 -31h-110q-20 0 -24.5 6t-0.5 25l33 139q-80 49 -191 49q-123 0 -189.5 -51t-66.5 -137q0 -23 3.5 -41.5t13.5 -35.5t16 -29.5t25.5 -29t28 -23.5t36 -22.5t35.5 -19.5t42 -21.5t40 -21.5q55 -27 85 -44t78 -54t74.5 -73t47 -93t20.5 -123 q0 -209 -148.5 -331t-396.5 -122q-203 0 -360 50q-27 8 -27 30q0 5 2 11z" />
<glyph unicode="T" horiz-adv-x="1214" d="M129 1087l47 273q4 31 39 31h1067q20 -1 26 -7q3 -4 3 -11q0 -6 -2 -13l-47 -273q-4 -31 -39 -30h-121q-20 0 -24.5 6t-0.5 24l33 140h-272l-191 -1065h168q20 2 25.5 -4.5t3.5 -24.5l-19 -102q-4 -18 -10 -24.5t-27 -6.5h-565q-20 0 -25 6t-3 25l18 102q4 18 10 24.5 t27 4.5h166l188 1065h-274l-17 -137q-4 -20 -10 -26.5t-27 -6.5h-120q-20 0 -26 6q-3 3 -3 11q0 5 2 13z" />
<glyph unicode="U" horiz-adv-x="1476" d="M170 348q0 68 16 162l125 715h-108q-20 -2 -25.5 4t-1.5 24l19 107q2 18 10 24.5t28 6.5h443q20 0 25.5 -6.5t0.5 -24.5l-18 -107q-4 -18 -11.5 -24t-27.5 -4h-104l-115 -643q-20 -113 -20 -187q0 -115 61 -175t219 -60q176 0 266 91t123 286l119 688h-109q-20 -2 -25 4 t-1 24l18 107q4 31 39 31h410q20 -1 25 -7q3 -4 3 -10t-2 -14l-18 -107q-4 -18 -11 -24t-28 -4h-104l-131 -740q-20 -113 -56.5 -197.5t-104 -159.5t-181 -114t-269.5 -39q-254 0 -366.5 93.5t-112.5 279.5z" />
<glyph unicode="V" horiz-adv-x="1400" d="M135 1253l19 107q2 18 10 24.5t29 6.5h497q20 0 25.5 -6.5t1.5 -24.5l-17 -107q-4 -18 -11 -24t-27 -4h-113l131 -998l481 998h-127q-20 -2 -25 4t-1 24l18 107q2 18 10 24.5t29 6.5h440q19 -1 25 -7q3 -4 4 -11q0 -6 -2 -13l-21 -107q-4 -18 -11 -24t-27 -4h-119 l-609 -1211q-16 -28 -47 -28h-194q-33 0 -37 30l-178 1209h-127q-20 -2 -26 4q-3 3 -3 11q0 5 2 13z" />
<glyph unicode="W" horiz-adv-x="2041" d="M135 1253l19 107q2 18 10 24.5t29 6.5h493q20 0 25.5 -6.5t1.5 -24.5l-17 -107q-4 -18 -11 -24t-28 -4h-129l47 -955l486 1092q12 29 45 29h174q20 0 26.5 -6.5t8.5 -26.5l102 -1094l387 961h-127q-20 -2 -25 4t-1 24l20 107q4 31 39 31h424q20 -1 26 -7q3 -4 3 -11 q0 -6 -2 -13l-19 -107q-4 -18 -11 -24t-28 -4h-104l-504 -1211q-12 -28 -43 -28h-2h-201q-20 0 -26 6t-11 26l-100 1047l-463 -1051q-12 -28 -45 -28h-207q-20 0 -26 6t-9 26l-79 1207h-121q-20 -2 -26 4q-3 3 -3 11q0 5 2 13z" />
<glyph unicode="X" horiz-adv-x="1386" d="M-84 31l14 102q4 18 11.5 24.5t27.5 4.5h107l493 530l-295 533h-108q-20 -2 -25.5 4t-1.5 24l17 107q4 18 11 24.5t28 6.5h507q20 0 25.5 -6.5t1.5 -24.5l-16 -107q-4 -18 -11.5 -24t-27.5 -4h-123l199 -369l333 369h-112q-20 -2 -25.5 4t-1.5 24l17 107q4 18 11 24.5 t27 6.5h428q19 -1 25 -7q3 -4 4 -11q0 -6 -2 -13l-16 -107q-4 -18 -11.5 -24t-27.5 -4h-105l-467 -496l310 -567h123q20 2 25 -4t1 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5h-533q-20 0 -25 6t-1 25l16 102q4 18 11.5 24.5t27.5 4.5h129l-211 389l-360 -389h129 q20 2 25 -4t1 -25l-16 -102q-4 -18 -11 -24.5t-28 -6.5h-442q-19 0 -25 6q-3 3 -4 11q0 6 2 14z" />
<glyph unicode="Y" horiz-adv-x="1359" d="M162 1253l20 107q2 18 10.5 24.5t28.5 6.5h484q20 0 25 -6.5t1 -24.5l-16 -107q-4 -18 -11.5 -24t-27.5 -4h-109l162 -488l346 488h-114q-20 -2 -25.5 4t-1.5 24l20 107q4 31 39 31h420q20 0 25 -7q4 -3 4 -11q0 -5 -2 -13l-19 -107q-4 -18 -11 -24t-28 -4h-104 l-483 -672l-68 -391h107q20 2 25 -4t1 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5h-443q-20 0 -25 6t-1 25l16 102q4 18 11.5 24.5t27.5 4.5h107l63 364l-256 699h-117q-20 -2 -25 4q-3 3 -3 10q0 6 2 14z" />
<glyph unicode="Z" horiz-adv-x="1204" d="M-33 31l13 82q4 27 26 55l932 1063h-547l-20 -162q-4 -20 -10.5 -26.5t-26.5 -6.5h-121q-20 0 -25.5 6.5t-1.5 24.5l47 293q4 18 11.5 24.5t27.5 6.5h963q19 -1 25 -7q3 -4 4 -11q0 -6 -2 -13l-13 -76q-4 -27 -26 -55l-942 -1069h608l16 164q4 20 10.5 26t26.5 6h117 q20 0 25.5 -6t0.5 -24l-69 -404q-4 -31 -39 -31h-111q-20 0 -24 6.5t0 24.5l20 78h-868q-20 0 -26 6q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="[" horiz-adv-x="690" d="M84 -276l309 1773q4 31 39 31h309q20 0 25.5 -6t1.5 -25l-18 -121q-4 -18 -11.5 -24t-27.5 -4l-144 10l-264 -1501l148 10q20 2 25 -4.5t1 -24.5l-18 -114q-4 -31 -39 -31h-309q-20 0 -25.5 6t-1.5 25z" />
<glyph unicode="\" horiz-adv-x="1099" d="M168 1519q6 7 29 7h82q25 0 34 -7.5t17 -29.5l676 -1659q8 -23 1.5 -30t-28.5 -7h-80q-25 0 -34 7t-17 30l-678 1659q-8 23 -2 30z" />
<glyph unicode="]" horiz-adv-x="690" d="M-70 -276l19 120q4 18 11 24.5t28 4.5l143 -10l264 1501l-147 -10q-20 -2 -25.5 4t-1.5 24l19 115q2 18 10 24.5t29 6.5h309q20 0 25 -6t1 -25l-309 -1773q-2 -18 -10 -24.5t-29 -6.5h-309q-20 0 -25.5 6t-1.5 25z" />
<glyph unicode="^" horiz-adv-x="1196" d="M199 672l469 712q16 29 49 29h96q31 0 37 -29l219 -712q6 -29 -25 -29h-131q-30 0 -36 29l-144 530l-330 -530q-16 -29 -49 -29h-145q-31 0 -10 29z" />
<glyph unicode="_" d="M-147 -299l8 55q4 31 39 31h985q20 0 25 -6t1 -25l-8 -55q-2 -18 -10.5 -24.5t-28.5 -6.5h-985q-20 0 -25.5 6.5t-0.5 24.5z" />
<glyph unicode="`" d="M675 1492.5q5 6.5 23 6.5h160q35 0 39 -31l45 -249q4 -18 -1 -24.5t-26 -6.5h-102q-33 0 -43 31l-94 249q-6 18 -1 24.5z" />
<glyph unicode="a" horiz-adv-x="1210" d="M61 352q0 123 31 240t92.5 218t169 163.5t246.5 62.5q178 0 277 -125l14 72q2 18 10.5 24.5t28.5 6.5h143q20 0 25.5 -6.5t1.5 -24.5l-139 -784q-2 -11 -2 -19q0 -38 42 -39q23 0 56 17q31 12 45 -15l18 -32q5 -10 5 -19q0 -16 -15 -29q-121 -88 -225 -88 q-160 0 -160 155v11q-119 -166 -326 -166q-162 0 -250 93.5t-88 283.5zM293 381q0 -115 46 -172t155 -57q88 0 169.5 59t98.5 162l69 381l-1 1q-73 107 -209 107q-92 0 -160 -46t-102.5 -122t-50 -153.5t-15.5 -159.5z" />
<glyph unicode="b" horiz-adv-x="1208" d="M88 20l234 1344h-89q-20 -2 -25 4t-1 25l18 104q4 31 39 31h283q20 0 25.5 -6t0.5 -25l-108 -629q131 168 338 168q156 0 244 -100t88 -285q0 -285 -133.5 -480.5t-389.5 -195.5q-180 0 -299 123l-188 -104q-17 -10 -29 0q-9 7 -9 18q0 4 1 8zM360 258q14 -18 33 -35.5 t76 -45t121 -27.5q303 0 303 452q0 113 -49.5 178.5t-151.5 65.5q-90 0 -170 -56.5t-98 -158.5z" />
<glyph unicode="c" horiz-adv-x="966" d="M53 395q0 258 147.5 449.5t420.5 191.5q180 0 260 -97q69 -83 68 -211q0 -21 -1 -42q-2 -33 -35 -33h-110q-18 0 -24.5 6.5t-6.5 26.5v14q0 81 -42 119q-46 41 -134 41q-113 0 -184.5 -75.5t-96 -173t-24.5 -210.5q0 -254 241 -254q109 0 232 70q27 16 43 -12l33 -66 q18 -27 -11 -45q-168 -119 -383 -119q-197 0 -295 114t-98 306z" />
<glyph unicode="d" horiz-adv-x="1200" d="M51 362q0 96 18.5 189.5t60.5 182.5t103.5 155.5t153.5 106.5t205 40q96 0 165.5 -36.5t96.5 -77.5l76 442h-88q-20 -2 -25.5 4t-1.5 25l19 104q2 18 10 24.5t28 6.5h283q19 0 25 -6q3 -3 4 -11q0 -6 -2 -14l-232 -1298q-2 -11 -2 -20q0 -38 41 -38q23 0 55 17 q31 12 46 -15l18 -32q14 -27 -10 -48q-121 -88 -226 -88q-90 0 -124.5 42t-34.5 124q-117 -166 -324 -166q-162 0 -250 96.5t-88 290.5zM283 391q0 -121 45.5 -180t156.5 -59q88 0 169 58t98 161l69 383l-1 1q-73 107 -210 107q-92 0 -159.5 -45t-102.5 -119.5t-50 -150.5 t-15 -156z" />
<glyph unicode="e" horiz-adv-x="968" d="M51 379q0 121 36 235.5t102.5 210t178 153.5t248.5 58q156 0 238 -74.5t82 -197.5q-2 -184 -151.5 -268t-362.5 -84q-49 0 -131 8q-2 -16 -2 -45q0 -102 56 -165t171 -63q131 0 248 70q29 14 43 -12l35 -64q17 -27 -8 -47q-164 -119 -377 -119q-209 0 -307.5 107.5 t-98.5 296.5zM307 571q41 -8 78 -8q129 0 222 47t93 144q0 51 -36 78.5t-95 27.5q-106 0 -173.5 -82t-88.5 -207z" />
<glyph unicode="f" horiz-adv-x="708" d="M-303 -399l35 88q12 29 43 16q61 -33 129 -33q88 0 119.5 49.5t52.5 172.5l170 954h-125q-20 -2 -25.5 4t-1.5 25l17 106q4 18 11 24.5t28 6.5h124l35 198q14 78 31.5 127.5t54.5 104.5t107.5 82.5t173.5 27.5q125 0 219 -47q20 -10 20 -26q0 -8 -4 -17l-39 -94 q-12 -29 -43 -16q-55 30 -123 30h-4q-88 0 -119.5 -49t-52.5 -172l-26 -149h246q20 0 25 -6.5t1 -24.5l-16 -106q-4 -18 -11.5 -24.5t-27.5 -4.5h-246l-176 -995q-12 -76 -29.5 -126.5t-55.5 -105.5t-108.5 -82.5t-173.5 -27.5q-125 0 -219 47q-20 10 -20 26q0 8 4 17z" />
<glyph unicode="g" horiz-adv-x="1200" d="M32 -410q-1 3 -1 6q0 8 6 21l37 104q8 18 16 21.5t25 -4.5q115 -55 252 -55q131 0 208.5 65.5t106.5 222.5l29 154q-49 -66 -133 -108t-181 -42q-162 0 -254 89.5t-92 279.5q0 182 55.5 334.5t180.5 255t299 102.5q178 0 282 -127l13 74q4 18 11 24.5t28 6.5h268 q20 0 26 -6q2 -4 2 -10t-2 -15l-18 -109q-4 -18 -11.5 -24t-27.5 -4l-92 2l-125 -721q-25 -150 -49 -252q-92 -367 -502 -367q-201 0 -336 66q-18 8 -21 16zM281 377q0 -223 202 -223q92 0 172 58t97 163l69 379l-1 1q-80 105 -218 107q-88 0 -154.5 -45t-100.5 -119.5 t-50 -153.5t-16 -167z" />
<glyph unicode="h" horiz-adv-x="1226" d="M90 31l232 1333h-89q-20 -2 -25 4t-1 25l18 104q4 31 39 31h285q20 0 25.5 -6t0.5 -25l-110 -631q143 170 354 170q260 0 260 -245q0 -61 -18 -150l-92 -436q-3 -14 -3 -25q0 -38 33 -39q25 0 62 17q31 12 43 -15l16 -32q5 -10 5 -19q0 -16 -15 -29q-111 -88 -223 -88 q-160 0 -160 138q0 26 6 57l86 416q16 86 17 123q0 125 -140 125q-102 0 -180 -58.5t-94 -142.5l-105 -602q-2 -18 -10 -24.5t-28 -6.5h-162q-19 0 -25 6q-3 4 -4 12q0 5 2 13z" />
<glyph unicode="i" horiz-adv-x="606" d="M113 168l116 680h-88q-20 -2 -25 4t-1 25l20 106q4 31 39 31h285q20 0 25 -6.5t1 -24.5l-139 -780q-3 -13 -3 -24q0 -39 36 -40q25 0 61 17q31 12 43 -15l17 -32q14 -27 -11 -48q-111 -88 -223 -88q-158 0 -158 141q0 25 5 54zM238 1323q0 68 48 113t107 45q68 0 105 -39 t37 -96q0 -70 -46 -114t-114 -44q-63 0 -100 39t-37 96z" />
<glyph unicode="j" horiz-adv-x="591" d="M-354 -408l41 99q12 31 41 18q58 -22 115 -22h5q182 0 228 260l157 903h-88q-20 -2 -25 4t-1 25l16 104q4 18 11.5 24.5t27.5 6.5h285q20 0 25 -6.5t1 -24.5l-188 -1067q-16 -92 -41 -159.5t-70 -127t-118.5 -90.5t-176.5 -31q-121 0 -229 43q-20 7 -20 24q0 7 4 17z M238 1323q0 68 48 113t107 45q68 0 105 -39t37 -96q0 -70 -46 -114t-114 -44q-63 0 -100 39t-37 96z" />
<glyph unicode="k" horiz-adv-x="1128" d="M88 31l234 1331h-91q-20 -2 -25 4t-1 25l18 106q2 18 10.5 24.5t28.5 6.5h285q20 0 25.5 -6t0.5 -25l-141 -817h51q233 0 326 303q8 31 41 31h158q18 0 22 -6.5t0 -24.5q-37 -133 -129 -224t-215 -114q90 -10 133 -63.5t60 -180.5l24 -204q8 -74 51 -74q31 0 68 18 q18 8 26.5 5t16.5 -21l14 -31q4 -10 4 -18q0 -16 -16 -27q-104 -74 -209 -74q-88 0 -125 42t-51 133l-33 221q-12 90 -44 120.5t-132 30.5h-70l-88 -491q-4 -31 -39 -31h-161q-19 0 -25 6q-3 3 -4 11q0 6 2 14z" />
<glyph unicode="l" horiz-adv-x="595" d="M111 168l208 1196h-88q-20 -2 -25 4t-1 25l18 104q2 18 10.5 24.5t28.5 6.5h285q19 0 25 -6q3 -3 3 -10q0 -6 -2 -15l-231 -1294q-2 -13 -2 -23q0 -40 37 -41q25 0 61 17q31 12 43 -15l17 -32q14 -27 -11 -48q-111 -88 -223 -88q-158 0 -158 141q0 25 5 54z" />
<glyph unicode="m" horiz-adv-x="1779" d="M88 31l143 819h-88q-20 -2 -25 4t-3 25l18 104q4 18 10.5 24.5t26.5 6.5h256q20 0 25.5 -6.5t3.5 -24.5l-19 -125q133 178 344 178q104 0 166 -49t80 -131q143 180 342 180q129 0 195.5 -65.5t66.5 -188.5q0 -51 -18 -143l-90 -436q-3 -14 -3 -25q0 -38 33 -39 q25 0 62 17q31 12 43 -15l16 -32q5 -10 5 -19q0 -16 -15 -29q-111 -88 -223 -88q-161 0 -161 135q0 27 7 60l84 414q16 88 16 133q0 125 -126 125q-88 0 -159 -56.5t-83 -128.5l-109 -624q-4 -31 -39 -31h-163q-20 0 -25.5 6t-1.5 25l98 561q14 82 15 123q0 125 -125 125 q-92 0 -163 -65.5t-85 -147.5l-107 -596q-2 -18 -10 -24.5t-29 -6.5h-159q-19 0 -25 6q-3 3 -4 11q0 6 2 14z" />
<glyph unicode="n" horiz-adv-x="1226" d="M90 31l143 819h-88q-20 -2 -25 4t-1 25l16 104q4 18 11.5 24.5t27.5 6.5h258q20 0 25.5 -6.5t1.5 -24.5l-19 -119q145 172 365 172q129 0 201.5 -66.5t72.5 -189.5q0 -55 -16 -129l-94 -448q-3 -14 -3 -25q0 -38 33 -39q25 0 62 17q31 12 43 -15l16 -32q5 -10 5 -19 q0 -16 -15 -29q-111 -88 -223 -88q-161 0 -161 135q0 27 7 60l88 426q14 76 15 117q0 66 -31 98.5t-107 32.5q-102 0 -181 -57.5t-93 -141.5l-107 -612q-2 -18 -10 -24.5t-28 -6.5h-162q-19 0 -25 6q-3 4 -4 12q0 5 2 13z" />
<glyph unicode="o" horiz-adv-x="1105" d="M51 383q0 287 151.5 470t426.5 183q53 0 102 -8t106.5 -34.5t99.5 -69.5t70.5 -119t28.5 -174q0 -297 -158.5 -476.5t-439.5 -179.5q-184 0 -285.5 104.5t-101.5 303.5zM289 383q0 -238 184 -238q90 0 156.5 49.5t100.5 128t49.5 154.5t15.5 150q0 231 -201 231 q-90 0 -154.5 -47t-95.5 -125t-43 -151.5t-12 -151.5z" />
<glyph unicode="p" horiz-adv-x="1210" d="M6 -440l225 1290h-88q-20 -2 -25 4t-1 25l18 104q4 31 39 31h262q20 0 25.5 -6.5t1.5 -24.5l-21 -111q131 164 344 164q168 0 258.5 -102.5t90.5 -282.5q0 -301 -138.5 -488.5t-392.5 -187.5q-86 0 -162.5 30t-115.5 65l-90 -510q-2 -18 -10.5 -24.5t-28.5 -6.5h-164 q-20 0 -25 6q-4 3 -4 11q0 6 2 14zM356 258q108 -108 232 -108h2q86 0 148.5 39.5t95 110.5t47 147.5t14.5 166.5q0 230 -203 230q-90 0 -170 -56.5t-98 -158.5z" />
<glyph unicode="q" horiz-adv-x="1189" d="M53 354q0 129 32 247t94.5 217.5t169 158.5t243.5 59q178 0 272 -125l19 72q8 31 41 31h141q20 0 25 -6q4 -4 4 -12q0 -5 -2 -13l-224 -1245q-2 -13 -2 -23q0 -40 37 -41q25 0 62 17q31 12 43 -15l16 -32q14 -27 -10 -47q-111 -88 -226 -89q-159 0 -159 137q0 26 6 58 l84 434q-115 -162 -326 -162q-158 0 -249 97.5t-91 281.5zM287 373q0 -221 200 -221q90 0 171 57t98 160l67 385q0 6 -19.5 29.5t-71.5 51t-118 27.5q-92 0 -159.5 -44t-102.5 -117.5t-50 -154.5t-15 -173z" />
<glyph unicode="r" horiz-adv-x="913" d="M90 31l141 817h-88q-20 -2 -25 4t-1 25l18 106q4 31 39 31h260q20 0 25.5 -6.5t1.5 -24.5l-29 -168q129 221 342 221q53 0 109 -12q18 -6 23 -14q3 -5 3 -13q0 -6 -2 -14l-47 -270q-4 -31 -39 -31h-116q-20 0 -25.5 6t-1.5 25l18 108q-29 4 -41 4q-199 0 -247 -278 l-91 -516q-2 -18 -10 -24.5t-28 -6.5h-162q-19 0 -25 6q-3 3 -4 11q0 6 2 14z" />
<glyph unicode="s" horiz-adv-x="942" d="M31 266q0 20 6 26.5t24 6.5h115q20 0 26.5 -6t10.5 -27q8 -70 51.5 -103.5t145.5 -33.5q188 0 188 133q0 59 -43 89t-139 61q-59 18 -83 27.5t-73 35t-70.5 52t-41 73.5t-19.5 107q0 156 112.5 242.5t293.5 86.5q174 0 260 -80q78 -72 78 -186q0 -12 -1 -25q0 -20 -6 -26 t-26 -6h-117q-20 0 -26.5 6t-6.5 26q-2 66 -42 100t-134 34q-168 0 -168 -121q0 -53 45 -83t144 -65q66 -23 104.5 -41t86.5 -52t71.5 -85t23.5 -119q0 -166 -117.5 -252t-310.5 -86q-166 0 -263 70t-99 221z" />
<glyph unicode="t" horiz-adv-x="741" d="M104 874l17 109q4 18 11 24.5t28 6.5h114l48 276q4 18 11 24.5t27 6.5h164q20 0 25.5 -6t1.5 -25l-47 -276h205q20 0 25 -6q3 -4 3 -11q0 -6 -2 -14l-18 -109q-4 -18 -11.5 -24t-27.5 -4h-205l-86 -481q-12 -70 -12 -119q0 -55 21.5 -81t74.5 -26q66 0 123 23 q29 10 41 -19l18 -69q10 -31 -18 -43q-123 -55 -250 -56q-141 0 -195.5 55.5t-54.5 153.5q0 57 21 168l90 494h-115q-19 -2 -25 4q-3 3 -4 11q0 5 2 13z" />
<glyph unicode="u" horiz-adv-x="1236" d="M123 879l18 104q2 18 10.5 24.5t28.5 6.5h283q20 0 25.5 -6.5t0.5 -24.5l-102 -571q-12 -74 -14 -130v-6q1 -50 33 -80q34 -32 112 -32q94 0 173 61.5t93 139.5l111 618q2 18 10.5 24.5t28.5 6.5h164q20 0 25 -6.5t1 -24.5l-139 -784q-2 -11 -2 -20q0 -38 41 -38 q23 0 55 17q31 12 45 -15l19 -32q5 -10 5 -19q0 -16 -15 -29q-121 -88 -226 -88q-159 0 -159 147v9q-131 -156 -349 -156q-268 0 -268 246q0 47 10 103l95 528l-86 -2q-20 -2 -26 4q-3 3 -3 11q0 6 2 14z" />
<glyph unicode="v" horiz-adv-x="1073" d="M31 930q-3 8 -3 15q0 20 21 30q105 61 201 61q152 0 178 -174l100 -669q242 332 301 788q4 20 10.5 26.5t26.5 6.5h146q18 0 23 -6q4 -5 4 -17q0 -5 -1 -10q-29 -242 -159.5 -521.5t-298.5 -451.5q-19 -22 -51 -22h-3h-164q-20 0 -26 6t-10 24l-131 805q-12 68 -52 68 q-25 0 -59 -15q-29 -10 -39 19z" />
<glyph unicode="w" horiz-adv-x="1644" d="M31 930q-3 8 -3 15q0 20 21 30q105 61 201 61q158 0 170 -178l53 -665q219 328 279 788q4 20 10 26.5t26 6.5h230q20 0 26.5 -6.5t10.5 -26.5l80 -788q117 180 175 363t87 425q4 20 10 26.5t27 6.5h139q17 0 23 -6q4 -4 4 -15q0 -5 -1 -12q-27 -236 -143.5 -521.5 t-273.5 -451.5q-19 -22 -51 -22h-3h-153q-20 0 -26.5 6t-8.5 26l-66 713q-53 -209 -145 -404.5t-209 -318.5q-19 -22 -50 -22h-3h-154q-20 0 -26 6t-11 26l-83 811q-6 68 -52 68q-20 0 -59 -16q-29 -12 -39 18z" />
<glyph unicode="x" horiz-adv-x="1056" d="M-14 25l405 475l-147 338q-25 57 -66 57q-27 0 -65 -18q-31 -12 -43 18l-17 35q-12 31 17 45q115 61 211 61q74 0 117.5 -32.5t78.5 -118.5l86 -211l258 315q20 25 53 25h148q21 0 21 -9q0 -6 -9 -16l-399 -477l153 -334q27 -61 70 -61q23 0 66 16q27 12 43 -16l14 -35 q14 -31 -12 -45q-113 -63 -205 -64q-76 0 -125 33t-84 117l-92 215l-266 -313q-20 -25 -54 -25h-145q-21 0 -21 9q0 6 9 16z" />
<glyph unicode="y" horiz-adv-x="1218" d="M72 -375l43 96q8 18 16 21.5t25 -4.5q127 -57 256 -57q252 0 299 270l32 180q-141 -156 -337 -156q-133 0 -204 64.5t-71 189.5q0 47 8 95l94 528l-86 -2q-20 -2 -25 4t-1 25l16 104q4 18 11.5 24.5t27.5 6.5h283q20 0 25 -6.5t1 -24.5l-100 -571q-14 -76 -14 -119 q0 -63 32.5 -96t112.5 -33q94 0 173 61.5t93 139.5l109 618q2 18 10 24.5t29 6.5h164q20 0 25 -6q3 -4 3 -11q0 -6 -2 -14l-143 -813q-25 -166 -57 -291q-47 -180 -165 -275.5t-331 -95.5q-184 0 -336 74q-20 8 -20 26q0 7 4 17z" />
<glyph unicode="z" horiz-adv-x="952" d="M-6 31l14 78q2 27 25 55l622 706h-323l-19 -129q-4 -18 -10 -24t-27 -6h-108q-20 0 -25.5 6t-1.5 24l41 242q2 18 10.5 24.5t28.5 6.5h699q20 0 25 -6q3 -4 3 -11q0 -6 -2 -14l-12 -74q-4 -27 -27 -55l-631 -713h359l20 148q4 20 10.5 26.5t26.5 6.5h111q20 0 25.5 -6.5 t0.5 -24.5l-43 -260q-4 -18 -11 -24.5t-27 -6.5h-725q-19 0 -25 6q-4 4 -5 16q0 4 1 9z" />
<glyph unicode="{" horiz-adv-x="735" d="M123 -276l201 835h-166q-20 0 -25.5 6t-1.5 25l19 115q2 18 10 24t28 6h166l78 760q4 20 10.5 26.5t26.5 6.5h326q20 0 25 -6t1 -25l-18 -121q-4 -18 -11.5 -24t-27.5 -4l-143 10l-265 -1501l148 10q20 2 25.5 -4t0.5 -25l-18 -114q-4 -31 -39 -31h-326q-20 0 -24 6t0 25 z" />
<glyph unicode="|" horiz-adv-x="526" d="M53 -176l293 1671q2 18 10.5 24.5t28.5 6.5h92q20 0 25.5 -6.5t1.5 -24.5l-293 -1671q-2 -18 -10 -24.5t-29 -6.5h-92q-20 0 -25.5 6t-1.5 25z" />
<glyph unicode="}" horiz-adv-x="737" d="M-86 -276l18 120q4 18 11.5 24.5t27.5 4.5l144 -10l264 1501l-148 -10q-20 -2 -25 4t-1 24l18 115q2 18 10.5 24.5t28.5 6.5h326q20 0 24 -6t0 -25l-200 -835h166q20 0 25 -6.5t1 -24.5l-18 -115q-4 -31 -39 -31h-166l-78 -759q-4 -20 -10 -26.5t-27 -6.5h-325 q-20 0 -25.5 6t-1.5 25z" />
<glyph unicode="~" horiz-adv-x="1302" d="M166 473q27 147 104.5 214t157.5 67q76 0 263.5 -56.5t258.5 -56.5q98 0 113 78q6 33 37 33h76q31 0 24 -31q-23 -145 -97.5 -212t-172.5 -67q-94 0 -283.5 55.5t-232.5 55.5q-49 0 -69.5 -19.5t-31.5 -66.5q-4 -27 -32 -27h-91q-33 0 -24 33z" />
<glyph unicode="&#xa2;" horiz-adv-x="958" d="M80 446q0 166 56.5 301.5t181 220.5t300.5 79l46 143q10 31 43 31h20q18 0 23.5 -6.5t-0.5 -24.5l-48 -156q184 -59 185 -248q0 -41 -8 -79q-4 -18 -10.5 -24.5t-26.5 -6.5h-82q-18 0 -23.5 6t-3.5 24.5t2 49.5q0 98 -82 123l-200 -643q18 -4 57 -5q86 0 188 43 q29 12 41 -18l29 -61q12 -29 -16 -45q-156 -80 -308 -80h-43l-51 -160q-10 -31 -43 -31h-20q-18 0 -23.5 6t0.5 25l55 174q-119 29 -179 127t-60 235zM295 475q0 -145 82 -207l192 621q-133 -12 -203.5 -131t-70.5 -283z" />
<glyph unicode="&#xa3;" horiz-adv-x="944" d="M-74 59q-4 31 25 47q59 33 110 97q74 100 105 274h-90q-18 0 -23.5 6t0.5 25l17 65q10 31 43 31h84l36 150q45 184 148.5 258.5t271.5 74.5q100 0 240 -34q33 -8 25 -39l-39 -236q-4 -18 -11.5 -24t-27.5 -6h-99q-20 0 -24 6t0 24l26 113q-49 39 -133 39 q-74 0 -110.5 -41t-61.5 -137l-35 -148h302q18 0 23 -6t-1 -25l-20 -69q-10 -31 -43 -31h-291q-27 -117 -56.5 -173t-111.5 -130h436l10 113q4 20 10.5 26t26.5 6h111q20 0 25 -6t1 -24l-43 -254q-4 -31 -39 -31h-561q-119 0 -215 -10q-20 -2 -26.5 4t-10.5 26z" />
<glyph unicode="&#xa5;" horiz-adv-x="1071" d="M84 911l18 105q4 31 39 31h412q20 0 25.5 -6.5t1.5 -24.5l-19 -105q-4 -18 -11 -24t-28 -4h-100l160 -260l264 260h-98q-20 -2 -25.5 4t-1.5 24l18 105q2 18 10.5 24.5t28.5 6.5h328q20 0 25.5 -6.5t1.5 -24.5l-19 -105q-4 -18 -11 -24t-28 -4h-71l-330 -328h174 q20 0 25.5 -6t0.5 -25l-6 -43q-4 -18 -11 -24t-28 -6h-219l-14 -91h219q20 0 25.5 -6t1.5 -24l-6 -43q-4 -18 -11.5 -24.5t-27.5 -6.5h-219l-17 -94h74q20 2 25.5 -4t1.5 -25l-17 -102q-4 -18 -11 -24.5t-28 -6.5h-334q-20 0 -25 6t-1 25l16 102q4 18 11.5 24.5t27.5 4.5h72 l16 94h-219q-20 0 -25.5 6t-1.5 25l7 43q4 18 11 24t27 6h220l14 91h-219q-20 0 -25.5 6t-1.5 24l6 43q4 18 11.5 24.5t27.5 6.5h174l-207 328h-77q-20 -2 -25.5 4t-1.5 24z" />
<glyph unicode="&#xa8;" d="M381 1325q0 63 39 102t106 39q51 0 82 -27.5t31 -74.5q0 -63 -39.5 -105t-105.5 -42q-49 0 -81 30.5t-32 77.5zM797 1325q0 63 40 102t105 39q51 0 82 -27.5t31 -74.5q0 -63 -40 -105t-106 -42q-49 0 -80.5 30.5t-31.5 77.5z" />
<glyph unicode="&#xa9;" horiz-adv-x="1802" d="M176 694q0 313 206 519t525 206q330 0 541 -203.5t211 -508.5q0 -322 -209 -527t-543 -205q-336 0 -533.5 201t-197.5 518zM264 694q0 -289 180 -469t461 -180q295 0 480.5 176t185.5 473q0 289 -188.5 471.5t-477.5 182.5q-291 0 -466 -180.5t-175 -473.5zM561 702 q0 178 93.5 295t283.5 117q131 0 197.5 -67.5t68.5 -178.5q0 -20 -6 -26t-27 -6h-59q-20 0 -26.5 6t-10.5 26q-6 59 -38.5 87t-100.5 28q-197 0 -197 -274q0 -135 41 -206t144 -71q72 0 108.5 25.5t42.5 89.5q4 20 10.5 26.5t26.5 6.5h59q20 0 26.5 -6.5t6.5 -26.5 q-4 -109 -75.5 -177.5t-202.5 -68.5q-188 0 -276.5 112.5t-88.5 288.5z" />
<glyph unicode="&#xab;" horiz-adv-x="1009" d="M164 557q-10 29 8 57l254 367q16 27 51 27h131q35 0 15 -27l-265 -391l121 -387q6 -18 1 -24.5t-23 -6.5h-135q-33 0 -43 31zM504 557q-10 29 8 57l254 367q16 27 51 27h131q35 0 15 -27l-265 -391l121 -387q6 -18 1 -24.5t-23 -6.5h-135q-33 0 -44 31z" />
<glyph unicode="&#xad;" horiz-adv-x="577" d="M61 477l23 137q2 18 10 24.5t29 6.5h389q20 0 25.5 -6t1.5 -25l-25 -137q-2 -18 -10.5 -24.5t-28.5 -6.5h-387q-20 0 -25.5 6.5t-1.5 24.5z" />
<glyph unicode="&#xae;" horiz-adv-x="1019" d="M248 1157q0 158 103 260.5t263 102.5q164 0 270.5 -101.5t106.5 -253.5q0 -162 -104.5 -264t-272.5 -102t-267 100t-99 258zM305 1157q0 -139 87 -225t222 -86q141 0 230.5 84t89.5 227q0 139 -90 227.5t-230 88.5q-141 0 -225 -86.5t-84 -229.5zM457 999v15q0 14 14 14 h25v275h-23q-16 0 -16 16v22q0 16 18 17h146q129 0 129 -98q0 -68 -70 -97l70 -135h36q16 0 17 -14v-15q0 -14 -17 -14h-79q-16 0 -21 12l-74 150h-47v-119h25q16 0 16 -18v-9q0 -16 -16 -16h-117q-16 0 -16 14zM565 1196h33q78 0 78 59q0 48 -76 48h-35v-107z" />
<glyph unicode="&#xb4;" d="M557 1196.5q-4 8.5 6 28.5l129 237q16 37 58 37h153q39 0 15 -35l-177 -241q-23 -35 -63 -35h-94q-23 0 -27 8.5z" />
<glyph unicode="&#xb8;" d="M322 -418q-14 27 10 47q100 72 100 125q0 31 -37 68l-18 18q-14 14 2 35l110 131h91l-60 -72l29 -28q57 -61 57 -107q0 -115 -235 -237q-16 -10 -25.5 -7t-19.5 19z" />
<glyph unicode="&#xbb;" horiz-adv-x="1009" d="M80 199l268 393l-125 385q-6 18 -1 24.5t24 6.5h135q33 0 43 -31l115 -354q10 -29 -9 -58l-254 -366q-16 -27 -51 -27h-131q-35 0 -14 27zM420 199l268 393l-125 385q-6 18 -1 24.5t24 6.5h135q33 0 43 -31l115 -354q10 -29 -9 -58l-254 -366q-16 -27 -51 -27h-131 q-35 0 -14 27z" />
<glyph unicode="&#xc0;" horiz-adv-x="1425" d="M-70 31l19 102q4 18 11 24.5t28 4.5h125l618 1200q16 29 47 29h176q33 0 37 -31l183 -1163q6 -41 16 -57.5t35 -16.5q27 0 63 14q31 12 45 -16l15 -31q12 -29 -15 -45q-104 -70 -213 -70q-86 0 -118.5 41t-49.5 134l-53 288h-457l-141 -276h127q20 2 25.5 -4t1.5 -25 l-21 -102q-4 -31 -39 -31h-438q-20 0 -25.5 6t-1.5 25zM514 592h367l-82 563zM698 1729q-14 29 19 28h135q33 0 41 -31l53 -196q4 -18 0 -24.5t-24 -6.5h-74q-31 0 -47 29z" />
<glyph unicode="&#xc2;" horiz-adv-x="1425" d="M-70 31l19 102q4 18 11 24.5t28 4.5h125l618 1200q16 29 47 29h176q33 0 37 -31l183 -1163q6 -41 16 -57.5t35 -16.5q27 0 63 14q31 12 45 -16l15 -31q12 -29 -15 -45q-104 -70 -213 -70q-86 0 -118.5 41t-49.5 134l-53 288h-457l-141 -276h127q20 2 25.5 -4t1.5 -25 l-21 -102q-4 -31 -39 -31h-438q-20 0 -25.5 6t-1.5 25zM514 592h367l-82 563zM559 1524l207 219q20 25 53 24h156q29 0 45 -24l129 -219q14 -25 -16 -25h-107q-33 0 -47 25l-92 145l-137 -145q-21 -25 -54 -25h-129q-31 0 -8 25z" />
<glyph unicode="&#xc6;" horiz-adv-x="1849" d="M-74 31l17 102q4 18 11 24.5t28 4.5h102l754 1063h-105q-20 -2 -25.5 4t-0.5 24l16 107q4 18 11 24.5t28 6.5h1085q20 0 25.5 -6.5t1.5 -24.5l-47 -275q-4 -31 -39 -30h-111q-20 0 -24 6t0 24l33 142h-429l-75 -436h395q20 0 25.5 -6.5t1.5 -24.5l-19 -98q-4 -31 -39 -31 h-393l-84 -469h469l18 141q4 20 10.5 26.5t26.5 6.5h111q20 0 25.5 -6t1.5 -25l-48 -274q-4 -31 -38 -31h-938q-20 0 -25.5 6t-1.5 25l16 102q4 18 11.5 24.5t27.5 4.5h107l47 276h-406l-192 -276h112q20 2 25.5 -4t1.5 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5h-422 q-20 0 -25.5 6t-1.5 25zM582 592h336l110 635z" />
<glyph unicode="&#xc7;" horiz-adv-x="1294" d="M102 557q0 156 49.5 306.5t141.5 277.5t246.5 205.5t347.5 78.5q223 0 411 -106q29 -14 21 -47l-45 -256q-4 -31 -39 -31h-111q-20 0 -25 6t-1 25l32 145q-106 84 -270 84q-137 0 -239.5 -58.5t-158.5 -158.5t-82 -211.5t-26 -238.5q0 -195 90.5 -308.5t282.5 -113.5 q168 0 238 59l18 133q4 20 10 26.5t27 6.5h113q20 0 25 -6t1 -25l-45 -256q-8 -33 -35 -45q-147 -66 -348 -74l-33 -41l29 -28q57 -61 57 -107q0 -115 -235 -237q-16 -10 -25.5 -7t-19.5 19l-4 8q-14 27 10 47q100 72 100 125q0 31 -37 68l-18 18q-14 14 2 35l86 102 q-274 14 -407.5 165t-133.5 415z" />
<glyph unicode="&#xc8;" horiz-adv-x="1155" d="M-14 31l16 102q4 18 11 24.5t28 4.5h106l185 1063h-107q-20 -2 -25 4t-1 24l18 107q4 31 39 31h897q20 0 25.5 -6.5t1.5 -24.5l-47 -275q-2 -18 -10.5 -24t-28.5 -6h-111q-20 0 -25.5 6t-1.5 24l33 142h-424l-78 -436h396q20 0 25 -6.5t1 -24.5l-16 -98q-4 -31 -39 -31 h-393l-84 -469h469l18 141q4 20 10.5 26.5t26.5 6.5h111q20 0 25 -6t1 -25l-49 -274q-2 -18 -10 -24.5t-29 -6.5h-938q-20 0 -25 6t-1 25zM584 1729q-14 29 18 28h135q33 0 41 -31l53 -196q4 -18 0 -24.5t-24 -6.5h-74q-31 0 -47 29z" />
<glyph unicode="&#xc9;" horiz-adv-x="1155" d="M-14 31l16 102q4 18 11 24.5t28 4.5h106l185 1063h-107q-20 -2 -25 4t-1 24l18 107q4 31 39 31h897q20 0 25.5 -6.5t1.5 -24.5l-47 -275q-2 -18 -10.5 -24t-28.5 -6h-111q-20 0 -25.5 6t-1.5 24l33 142h-424l-78 -436h396q20 0 25 -6.5t1 -24.5l-16 -98q-4 -31 -39 -31 h-393l-84 -469h469l18 141q4 20 10.5 26.5t26.5 6.5h111q20 0 25 -6t1 -25l-49 -274q-2 -18 -10 -24.5t-29 -6.5h-938q-20 0 -25 6t-1 25zM621 1528l127 201q16 29 49 28h166q31 0 6 -24l-178 -209q-20 -25 -54 -25h-104q-28 0 -12 29z" />
<glyph unicode="&#xca;" horiz-adv-x="1155" d="M-14 31l16 102q4 18 11 24.5t28 4.5h106l185 1063h-107q-20 -2 -25 4t-1 24l18 107q4 31 39 31h897q20 0 25.5 -6.5t1.5 -24.5l-47 -275q-2 -18 -10.5 -24t-28.5 -6h-111q-20 0 -25.5 6t-1.5 24l33 142h-424l-78 -436h396q20 0 25 -6.5t1 -24.5l-16 -98q-4 -31 -39 -31 h-393l-84 -469h469l18 141q4 20 10.5 26.5t26.5 6.5h111q20 0 25 -6t1 -25l-49 -274q-2 -18 -10 -24.5t-29 -6.5h-938q-20 0 -25 6t-1 25zM453 1524l206 219q20 25 54 24h155q29 0 45 -24l129 -219q14 -25 -16 -25h-106q-33 0 -48 25l-92 145l-137 -145q-20 -25 -53 -25 h-129q-31 0 -8 25z" />
<glyph unicode="&#xcb;" horiz-adv-x="1155" d="M-14 31l16 102q4 18 11 24.5t28 4.5h106l185 1063h-107q-20 -2 -25 4t-1 24l18 107q4 31 39 31h897q20 0 25.5 -6.5t1.5 -24.5l-47 -275q-2 -18 -10.5 -24t-28.5 -6h-111q-20 0 -25.5 6t-1.5 24l33 142h-424l-78 -436h396q20 0 25 -6.5t1 -24.5l-16 -98q-4 -31 -39 -31 h-393l-84 -469h469l18 141q4 20 10.5 26.5t26.5 6.5h111q20 0 25 -6t1 -25l-49 -274q-2 -18 -10 -24.5t-29 -6.5h-938q-20 0 -25 6t-1 25zM422 1620q0 63 39 102t106 39q51 0 82 -27.5t31 -74.5q0 -63 -39.5 -105.5t-105.5 -42.5q-49 0 -81 31t-32 78zM838 1620q0 63 40 102 t105 39q51 0 82 -27.5t31 -74.5q0 -63 -40 -105.5t-106 -42.5q-49 0 -80.5 31t-31.5 78z" />
<glyph unicode="&#xce;" horiz-adv-x="669" d="M-12 31l16 102q4 18 11.5 24.5t27.5 4.5h104l185 1063h-105q-20 -2 -25 4t-1 24l16 107q4 18 11.5 24.5t27.5 6.5h442q20 0 25.5 -6.5t1.5 -24.5l-16 -107q-4 -18 -11.5 -24t-27.5 -4h-107l-186 -1063h106q20 2 25.5 -4t1.5 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5 h-441q-20 0 -25 6t-1 25zM203 1524l207 219q20 25 53 24h155q29 0 46 -24l129 -219q14 -25 -17 -25h-106q-33 0 -47 25l-93 145l-137 -145q-20 -25 -53 -25h-129q-31 0 -8 25z" />
<glyph unicode="&#xcf;" horiz-adv-x="669" d="M-12 31l16 102q4 18 11.5 24.5t27.5 4.5h104l185 1063h-105q-20 -2 -25 4t-1 24l16 107q4 18 11.5 24.5t27.5 6.5h442q20 0 25.5 -6.5t1.5 -24.5l-16 -107q-4 -18 -11.5 -24t-27.5 -4h-107l-186 -1063h106q20 2 25.5 -4t1.5 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5 h-441q-20 0 -25 6t-1 25zM188 1620q0 63 39 102t107 39q51 0 81.5 -27.5t30.5 -74.5q0 -63 -39.5 -105.5t-105.5 -42.5q-49 0 -81 31t-32 78zM604 1620q0 63 40 102t106 39q51 0 81.5 -27.5t30.5 -74.5q0 -63 -39.5 -105.5t-105.5 -42.5q-49 0 -81 31t-32 78z" />
<glyph unicode="&#xd4;" horiz-adv-x="1445" d="M98 522q0 242 88 444.5t265.5 330.5t410.5 128q70 0 137.5 -14t140 -52t126 -97.5t88.5 -160t35 -229.5q0 -379 -212 -638t-571 -259q-240 0 -374 148.5t-134 398.5zM350 553q0 -164 68.5 -274.5t230.5 -110.5q111 0 197 46t138 116.5t87 165t47 182.5t12 178 q0 182 -73.5 285.5t-227.5 103.5q-94 0 -170.5 -31.5t-127 -88t-87 -124t-56 -148.5t-29 -153.5t-9.5 -146.5zM602 1524l207 219q23 25 53 24h156q31 0 45 -24l129 -219q16 -25 -16 -25h-107q-33 0 -47 25l-92 145l-137 -145q-23 -25 -54 -25h-129q-29 0 -8 25z" />
<glyph unicode="&#xd9;" horiz-adv-x="1476" d="M170 348q0 68 16 162l125 715h-108q-20 -2 -25.5 4t-1.5 24l19 107q2 18 10 24.5t28 6.5h443q20 0 25.5 -6.5t0.5 -24.5l-18 -107q-4 -18 -11.5 -24t-27.5 -4h-104l-115 -643q-20 -113 -20 -187q0 -115 61 -175t219 -60q176 0 266 91t123 286l119 688h-109q-20 -2 -25 4 t-1 24l18 107q4 31 39 31h410q20 0 25 -6.5t1 -24.5l-18 -107q-4 -18 -11 -24t-28 -4h-104l-131 -740q-20 -113 -56.5 -197.5t-104 -159.5t-181 -114t-269.5 -39q-254 0 -366.5 93.5t-112.5 279.5zM733 1729q-14 29 19 28h135q33 0 41 -31l53 -196q4 -18 0 -24.5t-25 -6.5 h-73q-31 0 -47 29z" />
<glyph unicode="&#xdb;" horiz-adv-x="1476" d="M170 348q0 68 16 162l125 715h-108q-20 -2 -25.5 4t-1.5 24l19 107q2 18 10 24.5t28 6.5h443q20 0 25.5 -6.5t0.5 -24.5l-18 -107q-4 -18 -11.5 -24t-27.5 -4h-104l-115 -643q-20 -113 -20 -187q0 -115 61 -175t219 -60q176 0 266 91t123 286l119 688h-109q-20 -2 -25 4 t-1 24l18 107q4 31 39 31h410q20 0 25 -6.5t1 -24.5l-18 -107q-4 -18 -11 -24t-28 -4h-104l-131 -740q-20 -113 -56.5 -197.5t-104 -159.5t-181 -114t-269.5 -39q-254 0 -366.5 93.5t-112.5 279.5zM618 1524l207 219q23 25 54 24h155q31 0 45 -24l129 -219q16 -25 -16 -25 h-107q-33 0 -47 25l-92 145l-137 -145q-22 -25 -53 -25h-129q-29 0 -9 25z" />
<glyph unicode="&#xdc;" horiz-adv-x="1476" d="M170 348q0 68 16 162l125 715h-108q-20 -2 -25.5 4t-1.5 24l19 107q2 18 10 24.5t28 6.5h443q20 0 25.5 -6.5t0.5 -24.5l-18 -107q-4 -18 -11.5 -24t-27.5 -4h-104l-115 -643q-20 -113 -20 -187q0 -115 61 -175t219 -60q176 0 266 91t123 286l119 688h-109q-20 -2 -25 4 t-1 24l18 107q4 31 39 31h410q20 0 25 -6.5t1 -24.5l-18 -107q-4 -18 -11 -24t-28 -4h-104l-131 -740q-20 -113 -56.5 -197.5t-104 -159.5t-181 -114t-269.5 -39q-254 0 -366.5 93.5t-112.5 279.5zM606 1620q0 63 39 102t107 39q51 0 81.5 -27.5t30.5 -74.5 q0 -63 -39.5 -105.5t-105.5 -42.5q-49 0 -81 31t-32 78zM1022 1620q0 63 40 102t105 39q51 0 82 -27.5t31 -74.5q0 -63 -39.5 -105.5t-105.5 -42.5q-49 0 -81 31t-32 78z" />
<glyph unicode="&#xe0;" horiz-adv-x="1210" d="M61 352q0 123 31 240t92.5 218t169 163.5t246.5 62.5q178 0 277 -125l14 72q2 18 10.5 24.5t28.5 6.5h143q20 0 25.5 -6.5t1.5 -24.5l-139 -784q-2 -11 -2 -19q0 -38 42 -39q23 0 56 17q31 12 45 -15l18 -32q5 -10 5 -19q0 -16 -15 -29q-121 -88 -225 -88 q-160 0 -160 155v11q-119 -166 -326 -166q-162 0 -250 93.5t-88 283.5zM293 381q0 -115 46 -172t155 -57q88 0 169.5 59t98.5 162l69 381l-1 1q-73 107 -209 107q-92 0 -160 -46t-102.5 -122t-50 -153.5t-15.5 -159.5zM530 1492.5q5 6.5 23 6.5h160q35 0 39 -31l45 -249 q4 -18 -1 -24.5t-26 -6.5h-102q-33 0 -43 31l-94 249q-6 18 -1 24.5z" />
<glyph unicode="&#xe2;" horiz-adv-x="1210" d="M61 352q0 123 31 240t92.5 218t169 163.5t246.5 62.5q178 0 277 -125l14 72q2 18 10.5 24.5t28.5 6.5h143q20 0 25.5 -6.5t1.5 -24.5l-139 -784q-2 -11 -2 -19q0 -38 42 -39q23 0 56 17q31 12 45 -15l18 -32q5 -10 5 -19q0 -16 -15 -29q-121 -88 -225 -88 q-160 0 -160 155v11q-119 -166 -326 -166q-162 0 -250 93.5t-88 283.5zM293 381q0 -115 46 -172t155 -57q88 0 169.5 59t98.5 162l69 381l-1 1q-73 107 -209 107q-92 0 -160 -46t-102.5 -122t-50 -153.5t-15.5 -159.5zM395 1214l219 277q25 27 53 27h156q29 0 41 -27 l125 -277q12 -27 -21 -26h-110q-31 0 -43 24l-88 174l-140 -172q-24 -26 -53 -26h-131q-33 0 -8 26z" />
<glyph unicode="&#xe6;" horiz-adv-x="1695" d="M51 362q0 123 31 240t92.5 218.5t170 164t247.5 62.5q164 0 258 -127l18 96q4 31 39 31h140q20 0 25 -6.5t1 -24.5l-20 -103q115 133 301 134q147 0 227 -76t80 -197q-2 -184 -151.5 -268t-362.5 -84q-49 0 -131 8q-2 -16 -2 -51q0 -106 56 -169t171 -63q131 0 248 70 q29 14 43 -12l35 -64q17 -27 -8 -47q-164 -119 -377 -119q-293 0 -377 226q-147 -225 -406 -226q-162 0 -255 97.5t-93 289.5zM283 391q0 -123 45.5 -182t154.5 -59q88 0 170 60t99 163l73 397l-1 2q-73 107 -210 107q-92 0 -160.5 -48.5t-103.5 -126t-51 -155.5t-16 -158z M1032 582q41 -8 78 -9q117 0 213 48.5t96 142.5q0 104 -125 104q-106 0 -173.5 -81.5t-88.5 -204.5z" />
<glyph unicode="&#xe7;" horiz-adv-x="966" d="M53 393q0 121 35 234.5t101.5 209t179 153t252.5 57.5q182 0 261 -93.5t64 -257.5q-2 -33 -35 -32h-108q-18 0 -24.5 6t-6.5 26q4 90 -42 130t-134 40q-86 0 -148.5 -43t-95.5 -114.5t-47 -148.5t-14 -159q0 -256 241 -256q109 0 232 70q27 16 43 -12l33 -64 q18 -27 -11 -45q-137 -100 -313 -114l-37 -46l29 -28q57 -61 57 -107q0 -115 -235 -237q-16 -10 -25.5 -7t-19.5 19l-4 8q-14 27 10 47q100 72 100 125q0 31 -37 68l-18 18q-14 14 2 35l84 100q-184 8 -276.5 120t-92.5 298z" />
<glyph unicode="&#xe8;" horiz-adv-x="968" d="M51 379q0 121 36 235.5t102.5 210t178 153.5t248.5 58q156 0 238 -74.5t82 -197.5q-2 -184 -151.5 -268t-362.5 -84q-49 0 -131 8q-2 -16 -2 -45q0 -102 56 -165t171 -63q131 0 248 70q29 14 43 -12l35 -64q17 -27 -8 -47q-164 -119 -377 -119q-209 0 -307.5 107.5 t-98.5 296.5zM307 571q41 -8 78 -8q129 0 222 47t93 144q0 51 -36 78.5t-95 27.5q-106 0 -173.5 -82t-88.5 -207zM444 1492.5q5 6.5 23 6.5h160q35 0 39 -31l45 -249q4 -18 -1 -24.5t-26 -6.5h-102q-33 0 -43 31l-94 249q-6 18 -1 24.5z" />
<glyph unicode="&#xe9;" horiz-adv-x="968" d="M51 379q0 121 36 235.5t102.5 210t178 153.5t248.5 58q156 0 238 -74.5t82 -197.5q-2 -184 -151.5 -268t-362.5 -84q-49 0 -131 8q-2 -16 -2 -45q0 -102 56 -165t171 -63q131 0 248 70q29 14 43 -12l35 -64q17 -27 -8 -47q-164 -119 -377 -119q-209 0 -307.5 107.5 t-98.5 296.5zM307 571q41 -8 78 -8q129 0 222 47t93 144q0 51 -36 78.5t-95 27.5q-106 0 -173.5 -82t-88.5 -207zM520 1196.5q-4 8.5 6 28.5l129 237q16 37 58 37h153q39 0 15 -35l-176 -241q-23 -35 -64 -35h-94q-23 0 -27 8.5z" />
<glyph unicode="&#xea;" horiz-adv-x="968" d="M51 379q0 121 36 235.5t102.5 210t178 153.5t248.5 58q156 0 238 -74.5t82 -197.5q-2 -184 -151.5 -268t-362.5 -84q-49 0 -131 8q-2 -16 -2 -45q0 -102 56 -165t171 -63q131 0 248 70q29 14 43 -12l35 -64q17 -27 -8 -47q-164 -119 -377 -119q-209 0 -307.5 107.5 t-98.5 296.5zM307 571q41 -8 78 -8q129 0 222 47t93 144q0 51 -36 78.5t-95 27.5q-106 0 -173.5 -82t-88.5 -207zM336 1214l219 277q25 27 53 27h156q29 0 41 -27l125 -277q12 -27 -21 -26h-110q-31 0 -43 24l-88 174l-140 -172q-24 -26 -53 -26h-131q-33 0 -8 26z" />
<glyph unicode="&#xeb;" horiz-adv-x="968" d="M51 379q0 121 36 235.5t102.5 210t178 153.5t248.5 58q156 0 238 -74.5t82 -197.5q-2 -184 -151.5 -268t-362.5 -84q-49 0 -131 8q-2 -16 -2 -45q0 -102 56 -165t171 -63q131 0 248 70q29 14 43 -12l35 -64q17 -27 -8 -47q-164 -119 -377 -119q-209 0 -307.5 107.5 t-98.5 296.5zM307 571q41 -8 78 -8q129 0 222 47t93 144q0 51 -36 78.5t-95 27.5q-106 0 -173.5 -82t-88.5 -207zM317 1325q0 63 40 102t106 39q51 0 81.5 -27.5t30.5 -74.5q0 -63 -39.5 -105t-105.5 -42q-49 0 -81 30.5t-32 77.5zM733 1325q0 63 39 102t107 39 q51 0 81.5 -27.5t30.5 -74.5q0 -63 -39.5 -105t-105.5 -42q-49 0 -81 30.5t-32 77.5z" />
<glyph unicode="&#xee;" horiz-adv-x="604" d="M72 1214l219 277q25 27 53 27h156q29 0 41 -27l125 -277q12 -27 -21 -26h-110q-31 0 -43 24l-89 174l-139 -172q-24 -26 -53 -26h-131q-33 0 -8 26zM113 168l116 680h-88q-20 -2 -25 4t-1 25l20 106q4 31 39 31h285q20 0 25 -6.5t1 -24.5l-139 -780q-12 -63 33 -64 q25 0 61 17q31 12 43 -15l17 -32q14 -27 -11 -48q-111 -88 -223 -88q-186 0 -153 195z" />
<glyph unicode="&#xef;" horiz-adv-x="604" d="M51 1325q0 63 40 102t106 39q51 0 81.5 -27.5t30.5 -74.5q0 -63 -39.5 -105t-105.5 -42q-49 0 -81 30.5t-32 77.5zM113 168l116 680h-88q-20 -2 -25 4t-1 25l20 106q4 31 39 31h285q20 0 25 -6.5t1 -24.5l-139 -780q-12 -63 33 -64q25 0 61 17q31 12 43 -15l17 -32 q14 -27 -11 -48q-111 -88 -223 -88q-186 0 -153 195zM467 1325q0 63 39 102t106 39q51 0 82 -27.5t31 -74.5q0 -63 -39.5 -105t-105.5 -42q-49 0 -81 30.5t-32 77.5z" />
<glyph unicode="&#xf4;" horiz-adv-x="1105" d="M51 383q0 287 151.5 470t426.5 183q53 0 102 -8t106.5 -34.5t99.5 -69.5t70.5 -119t28.5 -174q0 -297 -158.5 -476.5t-439.5 -179.5q-184 0 -285.5 104.5t-101.5 303.5zM289 383q0 -238 184 -238q90 0 156.5 49.5t100.5 128t49.5 154.5t15.5 150q0 231 -201 231 q-90 0 -154.5 -47t-95.5 -125t-43 -151.5t-12 -151.5zM361 1214l219 277q25 27 53 27h156q29 0 41 -27l125 -277q12 -27 -21 -26h-110q-31 0 -43 24l-88 174l-140 -172q-24 -26 -53 -26h-131q-33 0 -8 26z" />
<glyph unicode="&#xf9;" horiz-adv-x="1236" d="M123 879l18 104q2 18 10.5 24.5t28.5 6.5h283q20 0 25.5 -6.5t0.5 -24.5l-102 -571q-12 -74 -14 -130v-6q1 -50 33 -80q34 -32 112 -32q94 0 173 61.5t93 139.5l111 618q2 18 10.5 24.5t28.5 6.5h164q20 0 25 -6.5t1 -24.5l-139 -784q-2 -11 -2 -20q0 -38 41 -38 q23 0 55 17q31 12 45 -15l19 -32q5 -10 5 -19q0 -16 -15 -29q-121 -88 -226 -88q-159 0 -159 147v9q-131 -156 -349 -156q-268 0 -268 246q0 47 10 103l95 528l-86 -2q-20 -2 -26 4q-3 3 -3 11q0 6 2 14zM536 1492.5q5 6.5 23 6.5h160q35 0 39 -31l45 -249q4 -18 -1 -24.5 t-26 -6.5h-102q-33 0 -43 31l-94 249q-6 18 -1 24.5z" />
<glyph unicode="&#xfb;" horiz-adv-x="1236" d="M123 879l18 104q2 18 10.5 24.5t28.5 6.5h283q20 0 25.5 -6.5t0.5 -24.5l-102 -571q-12 -74 -14 -130v-6q1 -50 33 -80q34 -32 112 -32q94 0 173 61.5t93 139.5l111 618q2 18 10.5 24.5t28.5 6.5h164q20 0 25 -6.5t1 -24.5l-139 -784q-2 -11 -2 -20q0 -38 41 -38 q23 0 55 17q31 12 45 -15l19 -32q5 -10 5 -19q0 -16 -15 -29q-121 -88 -226 -88q-159 0 -159 147v9q-131 -156 -349 -156q-268 0 -268 246q0 47 10 103l95 528l-86 -2q-20 -2 -26 4q-3 3 -3 11q0 6 2 14zM420 1214l219 277q25 27 53 27h156q29 0 41 -27l125 -277 q12 -27 -21 -26h-110q-31 0 -43 24l-88 174l-140 -172q-24 -26 -53 -26h-131q-33 0 -8 26z" />
<glyph unicode="&#xfc;" horiz-adv-x="1236" d="M123 879l18 104q2 18 10.5 24.5t28.5 6.5h283q20 0 25.5 -6.5t0.5 -24.5l-102 -571q-12 -74 -14 -129.5t32.5 -87t112.5 -31.5q94 0 173 61.5t93 139.5l111 618q2 18 10.5 24.5t28.5 6.5h164q20 0 25 -6.5t1 -24.5l-139 -784q-12 -57 39 -58q23 0 55 17q31 12 45 -15 l19 -32q14 -27 -10 -48q-121 -88 -226 -88q-164 0 -159 156q-131 -156 -349 -156q-319 0 -258 349l95 528l-86 -2q-20 -2 -25.5 4t-1.5 25zM383 1325q0 63 40 102t105 39q51 0 82 -27.5t31 -74.5q0 -63 -39.5 -105t-105.5 -42q-49 0 -81 30.5t-32 77.5zM799 1325 q0 63 39 102t106 39q51 0 82 -27.5t31 -74.5q0 -63 -40 -105t-106 -42q-49 0 -80.5 30.5t-31.5 77.5z" />
<glyph unicode="&#xff;" horiz-adv-x="1218" d="M72 -375l43 96q8 18 16 21.5t25 -4.5q127 -57 256 -57q252 0 299 270l32 180q-141 -156 -337 -156q-133 0 -204 64.5t-71 189.5q0 47 8 95l94 528l-86 -2q-20 -2 -25 4t-1 25l16 104q4 18 11.5 24.5t27.5 6.5h283q20 0 25 -6.5t1 -24.5l-100 -571q-14 -76 -14 -119 q0 -63 32.5 -96t112.5 -33q94 0 173 61.5t93 139.5l109 618q2 18 10 24.5t29 6.5h164q20 0 25 -6.5t1 -24.5l-143 -813q-25 -166 -57 -291q-47 -180 -165 -275.5t-331 -95.5q-184 0 -336 74q-29 12 -16 43zM393 1325q0 63 39 102t107 39q51 0 81.5 -27.5t30.5 -74.5 q0 -63 -39.5 -105t-105.5 -42q-49 0 -81 30.5t-32 77.5zM809 1325q0 63 40 102t105 39q51 0 82 -27.5t31 -74.5q0 -63 -39.5 -105t-105.5 -42q-49 0 -81 30.5t-32 77.5z" />
<glyph unicode="&#x152;" horiz-adv-x="2033" d="M98 541q0 240 87 439.5t257 322t392 122.5q256 0 362 -157l14 92q2 18 10.5 24.5t28.5 6.5h774q20 0 25.5 -6.5t1.5 -24.5l-47 -275q-4 -31 -39 -30h-111q-20 0 -25 6t-1 24l33 142h-424l-78 -436h395q20 0 25.5 -6.5t1.5 -24.5l-17 -98q-2 -18 -10 -24.5t-29 -6.5h-393 l-84 -469h469l19 141q4 20 10 26.5t27 6.5h110q20 0 25.5 -6t1.5 -25l-49 -274q-4 -31 -39 -31h-817q-20 0 -25.5 6t-1.5 25l20 90q-145 -145 -391 -146q-242 0 -375 156t-133 410zM350 571q0 -403 299 -403q137 0 235.5 63.5t149.5 170t73.5 218t22.5 236.5 q0 182 -73.5 286.5t-227.5 104.5q-137 0 -237 -65.5t-149.5 -173t-71 -215t-21.5 -222.5z" />
<glyph unicode="&#x153;" horiz-adv-x="1701" d="M51 383q0 289 152.5 476.5t425.5 187.5q238 0 340 -179q152 178 385 179q156 0 237.5 -75t81.5 -198q-2 -184 -151.5 -268t-362.5 -84q-49 0 -131 8q-2 -16 -2 -51q0 -102 56.5 -167t170.5 -65q131 0 248 70q29 14 43 -12l35 -64q17 -27 -8 -47q-164 -119 -377 -119 q-252 0 -346 175q-154 -176 -410 -177q-184 0 -285.5 105.5t-101.5 304.5zM289 383q0 -240 184 -240q90 0 156.5 51.5t100.5 132.5t49.5 158.5t15.5 151.5q0 231 -201 231q-90 0 -154.5 -49t-95.5 -128t-43 -154.5t-12 -153.5zM1044 582q41 -8 78 -9q117 0 213.5 48.5 t96.5 142.5q0 106 -125 106q-106 0 -174 -81.5t-89 -206.5z" />
<glyph unicode="&#x178;" horiz-adv-x="1359" d="M162 1253l20 107q2 18 10.5 24.5t28.5 6.5h484q20 0 25 -6.5t1 -24.5l-16 -107q-4 -18 -11.5 -24t-27.5 -4h-109l162 -488l346 488h-114q-20 -2 -25.5 4t-1.5 24l20 107q4 31 39 31h420q20 0 25.5 -6.5t1.5 -24.5l-19 -107q-4 -18 -11 -24t-28 -4h-104l-483 -672 l-68 -391h107q20 2 25 -4t1 -25l-16 -102q-4 -18 -11.5 -24.5t-27.5 -6.5h-443q-20 0 -25 6t-1 25l16 102q4 18 11.5 24.5t27.5 4.5h107l63 364l-256 699h-117q-20 -2 -25 4t-1 24zM535 1620q0 63 39.5 102t105.5 39q51 0 82 -27.5t31 -74.5q0 -63 -40 -105.5t-106 -42.5 q-49 0 -80.5 31t-31.5 78zM950 1620q0 63 39 102t107 39q51 0 81.5 -27.5t30.5 -74.5q0 -63 -39.5 -105.5t-105.5 -42.5q-49 0 -81 31t-32 78z" />
<glyph unicode="&#x2c6;" d="M461 1214l219 277q25 27 53 27h156q29 0 41 -27l125 -277q12 -27 -21 -26h-110q-31 0 -43 24l-88 174l-140 -172q-24 -26 -53 -26h-131q-33 0 -8 26z" />
<glyph unicode="&#x2da;" d="M307 1364q0 86 58.5 145.5t146.5 59.5q92 0 147.5 -57.5t55.5 -137.5q0 -94 -57.5 -155.5t-149.5 -61.5q-94 0 -147.5 59.5t-53.5 147.5zM426 1364q0 -43 22.5 -71.5t63.5 -28.5t64.5 28.5t23.5 71.5q0 45 -23.5 71.5t-64.5 26.5q-86 0 -86 -98z" />
<glyph unicode="&#x2dc;" d="M399 1266q18 109 72 150.5t113 41.5q55 0 182 -42t174 -42q33 0 50.5 10.5t23.5 45.5q4 27 35 26h55q25 0 20 -29q-29 -203 -192 -202q-68 0 -197 40t-160 40q-55 0 -65 -48q-2 -14 -6 -17t-21 -3h-63q-27 0 -21 29z" />
<glyph unicode="&#x2000;" horiz-adv-x="883" />
<glyph unicode="&#x2001;" horiz-adv-x="1767" />
<glyph unicode="&#x2002;" horiz-adv-x="883" />
<glyph unicode="&#x2003;" horiz-adv-x="1767" />
<glyph unicode="&#x2004;" horiz-adv-x="589" />
<glyph unicode="&#x2005;" horiz-adv-x="441" />
<glyph unicode="&#x2006;" horiz-adv-x="294" />
<glyph unicode="&#x2007;" horiz-adv-x="294" />
<glyph unicode="&#x2008;" horiz-adv-x="220" />
<glyph unicode="&#x2009;" horiz-adv-x="353" />
<glyph unicode="&#x200a;" horiz-adv-x="98" />
<glyph unicode="&#x2010;" horiz-adv-x="577" d="M61 477l23 137q2 18 10 24.5t29 6.5h389q20 0 25.5 -6t1.5 -25l-25 -137q-2 -18 -10.5 -24.5t-28.5 -6.5h-387q-20 0 -25.5 6.5t-1.5 24.5z" />
<glyph unicode="&#x2011;" horiz-adv-x="577" d="M61 477l23 137q2 18 10 24.5t29 6.5h389q20 0 25.5 -6t1.5 -25l-25 -137q-2 -18 -10.5 -24.5t-28.5 -6.5h-387q-20 0 -25.5 6.5t-1.5 24.5z" />
<glyph unicode="&#x2012;" horiz-adv-x="577" d="M61 477l23 137q2 18 10 24.5t29 6.5h389q20 0 25.5 -6t1.5 -25l-25 -137q-2 -18 -10.5 -24.5t-28.5 -6.5h-387q-20 0 -25.5 6.5t-1.5 24.5z" />
<glyph unicode="&#x2013;" d="M-8 539l16 96q4 31 39 31h959q20 0 25 -6.5t1 -24.5l-16 -96q-4 -31 -39 -31h-959q-20 0 -25 6t-1 25z" />
<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M12 539l17 96q4 31 39 31h1931q20 0 25.5 -6.5t0.5 -24.5l-16 -96q-2 -18 -10.5 -24.5t-28.5 -6.5h-1931q-20 0 -25.5 6t-1.5 25z" />
<glyph unicode="&#x2018;" horiz-adv-x="520" d="M246 1153q0 18 2 33.5t9 33t11 26.5t18.5 28.5t17.5 25t23.5 29t22.5 27.5l131 162q20 27 49 10l9 -6q29 -16 14 -43l-94 -185q41 -72 41 -118q0 -57 -37 -98.5t-94 -41.5q-55 0 -89 34t-34 83z" />
<glyph unicode="&#x2019;" horiz-adv-x="520" d="M240 1100l94 184q-41 72 -41 119q0 57 38 98t101 41q51 0 83 -31.5t32 -78.5q0 -41 -17.5 -81t-33 -59.5t-54.5 -68.5l-131 -162q-20 -27 -49 -10l-8 6q-29 16 -14 43z" />
<glyph unicode="&#x201a;" horiz-adv-x="520" d="M4 -254l94 184q-41 72 -41 119q0 57 38 98t102 41q51 0 82.5 -31.5t31.5 -78.5q0 -41 -17.5 -81t-32.5 -59.5t-54 -68.5l-131 -162q-20 -27 -49 -10l-9 6q-29 16 -14 43z" />
<glyph unicode="&#x201c;" horiz-adv-x="827" d="M246 1153q0 18 2 33.5t9 33t11 26.5t18.5 28.5t17.5 25t23.5 29t22.5 27.5l131 162q20 27 49 10l9 -6q29 -16 14 -43l-94 -185q41 -72 41 -118q0 -57 -37 -98.5t-94 -41.5q-55 0 -89 34t-34 83zM553 1153q0 18 2 33.5t9 33t11.5 26.5t18.5 28.5t17 25t23.5 29t22.5 27.5 l131 162q20 27 50 10l8 -6q29 -16 14 -43l-94 -185q41 -72 41 -118q0 -57 -37 -98.5t-94 -41.5q-55 0 -89 34t-34 83z" />
<glyph unicode="&#x201d;" horiz-adv-x="827" d="M240 1100l94 184q-41 72 -41 119q0 57 38 98t101 41q51 0 83 -31.5t32 -78.5q0 -41 -17.5 -81t-33 -59.5t-54.5 -68.5l-131 -162q-20 -27 -49 -10l-8 6q-29 16 -14 43zM547 1100l94 184q-41 72 -41 119q0 57 38 98t101 41q51 0 83 -31.5t32 -78.5q0 -41 -17.5 -81 t-32.5 -59.5t-54 -68.5l-132 -162q-20 -27 -49 -10l-8 6q-29 16 -14 43z" />
<glyph unicode="&#x201e;" horiz-adv-x="827" d="M4 -254l94 184q-41 72 -41 119q0 57 38 98t102 41q51 0 82.5 -31.5t31.5 -78.5q0 -41 -17.5 -81t-32.5 -59.5t-54 -68.5l-131 -162q-20 -27 -49 -10l-9 6q-29 16 -14 43zM311 -254l95 184q-41 72 -41 119q0 57 37.5 98t101.5 41q51 0 82.5 -31.5t31.5 -78.5 q0 -41 -17 -81t-32.5 -59.5t-54.5 -68.5l-131 -162q-20 -27 -49 -10l-8 6q-29 16 -15 43z" />
<glyph unicode="&#x2026;" horiz-adv-x="1579" d="M61 82q0 72 49.5 117t125.5 45q61 0 99 -35t38 -86q0 -72 -50 -117t-128 -45q-61 0 -97.5 35t-36.5 86zM571 82q0 72 49.5 117t124.5 45q61 0 99.5 -35t38.5 -86q0 -72 -50 -117t-128 -45q-61 0 -97.5 35t-36.5 86zM1094 82q0 72 49 117t125 45q61 0 99 -35t38 -86 q0 -72 -50 -117t-128 -45q-61 0 -97 35t-36 86z" />
<glyph unicode="&#x202f;" horiz-adv-x="353" />
<glyph unicode="&#x2039;" horiz-adv-x="669" d="M164 557q-10 29 8 57l254 367q16 27 51 27h131q35 0 15 -27l-265 -391l121 -387q6 -18 1 -24.5t-23 -6.5h-135q-33 0 -43 31z" />
<glyph unicode="&#x203a;" horiz-adv-x="669" d="M80 199l268 393l-125 385q-6 18 -1 24.5t24 6.5h135q33 0 43 -31l115 -354q10 -29 -9 -58l-254 -366q-16 -27 -51 -27h-131q-35 0 -14 27z" />
<glyph unicode="&#x205f;" horiz-adv-x="441" />
<glyph unicode="&#x20ac;" horiz-adv-x="1079" d="M12 403l15 48q8 31 41 30h94q2 35 14 80h-88q-18 0 -23 6.5t1 24.5l12 47q10 31 43 31h80q55 209 208.5 313t329.5 104q188 0 328 -79q27 -14 23 -47l-33 -193q-4 -18 -11.5 -24.5t-27.5 -6.5h-100q-20 0 -24.5 6.5t-0.5 24.5l27 111q-25 25 -84.5 45t-120.5 20 q-240 0 -309 -274h401q18 0 23.5 -6.5t-1.5 -24.5l-16 -47q-10 -31 -43 -31h-389q-8 -33 -12 -80h374q18 0 23.5 -6t-0.5 -24l-14 -48q-10 -31 -43 -30h-347q10 -248 254 -248q104 0 175 39l10 115q4 20 10 26t27 6h104q20 0 25.5 -6t1.5 -24l-31 -191q-8 -33 -35 -45 q-154 -70 -321 -70q-213 0 -316.5 120t-109.5 278h-119q-18 0 -23.5 6t-1.5 24z" />
<glyph unicode="&#x2122;" horiz-adv-x="1728" d="M227 1247v113q0 31 31 31h498q31 0 30 -31v-113q0 -31 -30 -30h-29q-31 0 -29 30l4 70h-131v-524h66q31 0 31 -31v-27q0 -30 -31 -30h-256q-31 0 -31 30v27q0 31 31 31h63v524h-129l4 -70q2 -31 -28 -30h-33q-31 0 -31 30zM836 735v25q0 31 30 31h37v514h-37 q-31 0 -30 30v25q0 31 30 31h154q33 0 41 -29l196 -520l203 520q8 29 41 29h137q31 0 31 -31v-25q0 -31 -31 -30h-34v-514h34q31 0 31 -31v-25q0 -31 -31 -30h-196q-31 0 -31 30v27q0 31 31 31h41v409l-180 -469q-8 -28 -41 -28h-41q-33 0 -41 28l-189 488v-428h58 q31 0 30 -31v-27q0 -31 -30 -30h-183q-31 0 -30 30z" />
<glyph unicode="&#xe000;" horiz-adv-x="1035" d="M0 1035h1035v-1035h-1035v1035z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,190 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : Copyright c 2011 TypeTogether wwwtypetogethercom with Reserved Font Names Crete and Crete Round
Designer : Veronika Burian
Foundry : TypeTogether
Foundry URL : wwwtypetogethercomCrete
</metadata>
<defs>
<font id="CreteRoundRegular" horiz-adv-x="1024" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="409" />
<glyph unicode=" " horiz-adv-x="409" />
<glyph unicode="&#x09;" horiz-adv-x="409" />
<glyph unicode="&#xa0;" horiz-adv-x="409" />
<glyph unicode="!" horiz-adv-x="518" d="M119 92q0 53 39 90t98 37q63 0 101 -34.5t38 -90t-35.5 -92.5t-101.5 -37q-63 0 -101 36t-38 91zM147 1044v306q0 23 8.5 31t30.5 8h144q23 0 31 -8.5t8 -30.5v-310l-45 -682q-2 -23 -10 -31t-31 -8h-50q-23 0 -30.5 8.5t-9.5 30.5z" />
<glyph unicode="&#x22;" horiz-adv-x="765" d="M123 1223v129q0 23 8 31t31 8h131q23 0 31 -8.5t8 -30.5v-133q0 -41 -6 -78l-25 -166q-2 -25 -11 -32t-34 -7h-57q-25 0 -34 7t-11 32l-25 170q-6 35 -6 78zM434 1223v129q0 23 8.5 31t30.5 8h131q23 0 31 -8.5t8 -30.5v-133q0 -41 -6 -78l-25 -166q-2 -25 -11 -32 t-34 -7h-57q-25 0 -34 7t-11 32l-25 170q-6 35 -6 78z" />
<glyph unicode="#" horiz-adv-x="1153" d="M82 385v4q0 20 6 27.5t29 7.5h211l47 252h-211q-20 0 -27.5 6t-7.5 29v4q0 23 7 29t28 6h225l57 303q2 20 11.5 27t31.5 7h5q35 0 28 -34l-57 -303h270l53 303q2 20 11.5 27t31.5 7h5q35 0 28 -34l-53 -303h225q20 0 27.5 -6.5t7.5 -28.5v-4q0 -23 -7 -29t-28 -6h-239 l-43 -252h235q23 0 29 -7t6 -28v-4q0 -20 -6 -27.5t-29 -7.5h-250l-61 -350q-2 -20 -10.5 -27.5t-30.5 -7.5h-4q-20 0 -27.5 7.5t-3.5 27.5l62 350h-273l-65 -350q-2 -20 -10.5 -27.5t-30.5 -7.5h-4q-20 0 -27.5 7.5t-3.5 27.5l65 350h-198q-23 0 -29 7.5t-6 27.5zM403 424 h275l43 252h-270z" />
<glyph unicode="$" horiz-adv-x="882" d="M63 51v217q0 23 8.5 31t30.5 8h99q23 0 31 -8t6 -31l-7 -110q31 -25 103 -35l41 311q-57 20 -87 32.5t-77 40.5t-71.5 57.5t-44 76.5t-19.5 107q0 145 105.5 239t283.5 100l12 95q4 23 13.5 31t31.5 8h8q23 0 30 -8.5t3 -30.5l-12 -97q76 -4 180 -30q23 -6 30 -15.5 t7 -31.5v-217q0 -23 -8 -31t-31 -8h-98q-23 0 -30 8t-5 31l10 108q-43 20 -78 27l-36 -285q57 -23 74.5 -30t68.5 -31.5t72.5 -46t52.5 -56.5t43 -80t12 -100q0 -150 -111.5 -240t-304.5 -92l-16 -127q-4 -23 -13 -31t-32 -8h-8q-23 0 -30 8.5t-5 30.5l18 131 q-106 6 -213 35q-23 6 -30 15.5t-7 31.5zM289 807q0 -49 28.5 -80t92.5 -61l32 264q-154 -10 -153 -123zM420 117q174 4 174 133q0 55 -33 89t-104 64z" />
<glyph unicode="%" horiz-adv-x="1703" d="M82 967q0 182 100.5 280.5t237.5 98.5q145 0 235 -95.5t90 -279.5q0 -180 -93 -283.5t-236 -103.5q-147 0 -240.5 103.5t-93.5 279.5zM262 958q0 -121 37 -178t117 -57q152 0 151 244q0 129 -34.5 186t-114.5 57t-118 -59.5t-38 -192.5zM455 0l628 1307q10 23 20.5 28.5 t35.5 5.5h82q38 1 22 -34l-631 -1307q-10 -23 -20 -29t-35 -6h-80q-39 0 -22 35zM958 348q0 182 100.5 280.5t237.5 98.5q145 0 235.5 -95t90.5 -280q0 -180 -93 -283.5t-237 -103.5q-147 0 -240.5 103.5t-93.5 279.5zM1139 340q0 -236 153 -236q78 0 115 58.5t37 185.5 q0 129 -35 186.5t-115 57.5t-117.5 -59.5t-37.5 -192.5z" />
<glyph unicode="&#x26;" horiz-adv-x="1325" d="M164 360q0 150 82 250.5t198 126.5q-248 90 -247 316q0 160 111.5 266t316.5 106q365 0 366 -335q2 -23 -6 -31t-31 -8h-108q-25 0 -33 8t-10 31q-6 82 -47 122.5t-135 40.5q-102 0 -154.5 -60t-52.5 -152.5t58 -154t200 -61.5h532q23 0 31 -8t8 -31v-94q0 -23 -8 -31 t-31 -6h-92v-534q0 -37 -33 -55q-86 -45 -212 -74t-240 -29q-463 0 -463 397zM379 377q0 -119 69.5 -181.5t202.5 -62.5q139 0 236 57v465h-193q-154 0 -234.5 -77.5t-80.5 -200.5z" />
<glyph unicode="'" horiz-adv-x="454" d="M123 1223v129q0 23 8 31t31 8h131q23 0 31 -8.5t8 -30.5v-133q0 -41 -6 -78l-25 -166q-2 -25 -11 -32t-34 -7h-57q-25 0 -34 7t-11 32l-25 170q-6 35 -6 78z" />
<glyph unicode="(" horiz-adv-x="688" d="M170 590q-6 39 0 78l127 821q2 25 11 32t34 7h215q23 0 31 -8.5t8 -30.5v-100q0 -23 -8 -31t-31 -6l-88 6l-109 -729l125 -772l93 6q23 2 30.5 -6t7.5 -31v-94q0 -23 -8 -31t-30 -8h-216q-25 0 -34 7t-11 32z" />
<glyph unicode=")" horiz-adv-x="688" d="M72 -174q0 23 8 31t31 6l92 -6l125 772l-109 729l-88 -6q-23 -2 -31 6t-8 31v100q0 23 8.5 31t30.5 8h215q25 0 34 -7.5t11 -31.5l127 -821q6 -39 0 -78l-147 -858q-2 -25 -11.5 -32t-33.5 -7h-215q-23 0 -31 8t-8 31v94z" />
<glyph unicode="*" horiz-adv-x="995" d="M147 934q-18 35 13 57l200 139l-200 146q-31 23 -10 55l2 4q12 20 23 23.5t32 -6.5l213 -103l29 240q4 23 12 31t31 8h10q23 0 31 -8.5t12 -30.5l22 -240l224 101q35 18 53 -17l2 -4q18 -33 -12 -55l-203 -139l205 -148q31 -23 10 -55l-4 -2q-12 -20 -22.5 -23.5 t-33.5 6.5l-215 101l-28 -236q-4 -23 -12.5 -31t-30.5 -8h-8q-23 0 -31 8.5t-12 30.5l-25 236l-221 -101q-35 -18 -53 19z" />
<glyph unicode="+" horiz-adv-x="1085" d="M72 582v55q0 23 8 31t31 8h354v354q0 23 8 31t31 8h71q23 0 31 -8t8 -31v-354h361q23 0 31 -8.5t8 -30.5v-55q0 -23 -8.5 -31t-30.5 -8h-361v-385q0 -23 -8 -31t-31 -8h-71q-23 0 -31 8t-8 31v385h-354q-23 0 -31 8t-8 31z" />
<glyph unicode="," horiz-adv-x="598" d="M137 121q0 57 40 96t108 39q74 0 114.5 -38t40.5 -105q0 -78 -94 -232l-113 -178q-12 -20 -22 -23.5t-33 7.5l-12 4q-23 10 -27 20t4 33l74 217q-2 4 -13 16.5t-16.5 18.5t-14.5 19.5t-14 23.5t-11.5 23.5t-8.5 27.5t-2 31z" />
<glyph unicode="-" horiz-adv-x="577" d="M61 485v121q0 23 8.5 31t30.5 8h377q23 0 31 -8t8 -31v-121q0 -23 -8 -31t-31 -8h-377q-23 0 -31 8.5t-8 30.5z" />
<glyph unicode="." horiz-adv-x="571" d="M104 102q0 59 43 100.5t109 41.5q70 0 113 -39t43 -100.5t-41 -102.5t-113 -41t-113 40t-41 101z" />
<glyph unicode="/" horiz-adv-x="919" d="M71.5 -200q-5.5 7 2.5 30l602 1659q8 23 17 30t34 7h82q23 0 29 -7t-2 -30l-605 -1659q-8 -23 -17 -30t-34 -7h-80q-23 0 -28.5 7z" />
<glyph unicode="0" horiz-adv-x="1179" d="M72 516q0 152 46 266.5t125 179t169 95t188 30.5q219 0 363.5 -133t144.5 -417q0 -289 -147.5 -425.5t-382.5 -136.5q-231 0 -368.5 138.5t-137.5 402.5zM311 518q0 -174 66.5 -274.5t208.5 -100.5q145 0 215.5 91.5t70.5 287.5q0 393 -280.5 393t-280.5 -397z" />
<glyph unicode="1" horiz-adv-x="694" d="M51 913v95q0 23 8 31t31 8h344q23 0 31 -8.5t8 -30.5v-846h141q23 2 31 -6.5t8 -30.5v-86q0 -23 -8 -31t-31 -8h-512q-23 0 -31 8t-8 31v86q0 23 8.5 31t30.5 6h142v723l-154 -8q-23 -2 -31 6t-8 30z" />
<glyph unicode="2" horiz-adv-x="1077" d="M82 739q8 166 120.5 257t297.5 91q188 0 293.5 -87t105.5 -261q0 -84 -32.5 -160.5t-78 -132t-119 -111.5t-130 -90t-136.5 -77h422l-8 102q-2 23 6 31t31 8h96q23 0 31 -8t8 -31v-340q0 -23 -8 -31t-31 -8h-96q-23 0 -31 8.5t-6 30.5l6 70h-696q-23 0 -31 8t-8 31v84 q0 37 35 53q115 59 191.5 106.5t166.5 118t136.5 151.5t46.5 171t-41 141t-150 51q-180 0 -205 -176q-4 -23 -12 -31t-31 -8h-106q-23 0 -31 8.5t-6 30.5z" />
<glyph unicode="3" horiz-adv-x="989" d="M41 55q-2 23 6 31t31 8h115q25 0 31.5 -7t11.5 -32q8 -94 59 -134t158 -40q111 0 169 53.5t58 182.5q0 219 -219 229q-23 2 -63 2h-60q-23 0 -31 8.5t-8 30.5v90q0 23 8 30t31 9q104 6 133 10q184 35 184 211q0 178 -184 178q-188 0 -209 -176q-4 -23 -12 -31t-31 -8 h-108q-23 0 -31 8.5t-6 30.5q8 172 123.5 260t289.5 88q190 0 290 -83.5t100 -239.5q0 -223 -265 -320q121 -16 207 -99t86 -230q0 -184 -125 -294t-334 -110q-197 0 -298 83t-107 261z" />
<glyph unicode="4" horiz-adv-x="1073" d="M61 70v90q0 41 21 71l485 783q20 33 60 33h161q23 0 31 -8.5t8 -30.5v-805h168q23 0 31 -8.5t8 -30.5v-94q0 -23 -8 -31t-31 -8h-170v-264q0 -23 -8 -31t-31 -8h-147q-23 0 -31 8t-8 31v264h-500q-23 0 -31 8t-8 31zM229 203h373v604z" />
<glyph unicode="5" horiz-adv-x="972" d="M23 59q0 23 7 31t29 8h121q23 0 31 -8t12 -31q16 -178 203 -178q238 0 238 281q0 262 -215 262q-104 0 -197 -70q-33 -23 -70 -8l-22 10q-23 10 -28 19.5t-3 34.5l68 598q4 23 12 31t31 8h585q23 0 31 -8.5t8 -30.5v-119q0 -23 -8 -31t-31 -8h-465l-43 -305q96 55 207 55 q162 0 265.5 -106.5t103.5 -303.5q0 -227 -123 -353t-340 -126q-389 0 -407 348z" />
<glyph unicode="6" horiz-adv-x="1118" d="M86 604q0 373 144.5 556t408.5 183q322 0 348 -305q2 -23 -5 -31t-30 -8h-112q-25 0 -33 8.5t-12 30.5q-20 133 -170 133q-299 0 -310 -452q109 152 318 151q193 0 296 -111.5t103 -295.5q0 -217 -124 -352.5t-337 -135.5q-485 0 -485 629zM319 453q0 -131 56.5 -220.5 t189.5 -89.5q242 0 242 283q0 266 -242 266q-88 0 -154.5 -41t-84.5 -127q-6 -33 -7 -71z" />
<glyph unicode="7" horiz-adv-x="944" d="M20 889v119q0 23 8.5 31t30.5 8h826q23 0 31 -8.5t8 -30.5v-90q0 -41 -17 -74l-518 -1082q-16 -35 -55 -34h-154q-39 0 -22 34l524 1088h-623q-23 0 -31 8t-8 31z" />
<glyph unicode="8" horiz-adv-x="1093" d="M78 313q0 231 266 373q-102 59 -153.5 128t-51.5 181q0 166 121 257t295 91q180 0 278.5 -82.5t98.5 -207.5q0 -111 -58.5 -183.5t-166.5 -144.5q166 -72 231.5 -150.5t65.5 -212.5q0 -174 -127 -280.5t-355 -106.5q-221 0 -332.5 93t-111.5 245zM295 328 q0 -190 235 -191q246 0 246 197q0 53 -23.5 97t-76.5 79t-81 49t-91 43q-209 -121 -209 -274zM362 1024q0 -78 47.5 -129t133.5 -96q55 39 87 65.5t60.5 73.5t28.5 98q0 147 -164 148q-86 0 -139.5 -41t-53.5 -119z" />
<glyph unicode="9" horiz-adv-x="1118" d="M86 616q0 207 123 339t338 132q246 0 365.5 -151.5t119.5 -468.5q0 -758 -543 -758q-338 0 -360 305q-2 23 6 31t31 8h113q25 0 32.5 -7t12.5 -32q14 -68 51 -100.5t123 -32.5q295 0 305 453q-109 -152 -318 -152q-195 0 -297 119t-102 315zM311 633q0 -273 242 -273 q94 0 160.5 51.5t81.5 141.5q4 23 4 72q0 121 -57.5 208t-188.5 87q-242 0 -242 -287z" />
<glyph unicode=":" horiz-adv-x="571" d="M104 102q0 59 43 100.5t109 41.5q70 0 113 -39t43 -100.5t-41 -102.5t-113 -41t-113 40t-41 101zM104 915q0 59 43 100.5t109 41.5q70 0 113 -39t43 -100.5t-41 -102.5t-113 -41t-113 40t-41 101z" />
<glyph unicode=";" horiz-adv-x="614" d="M137 121q0 57 40 96t108 39q74 0 114.5 -38t40.5 -105q0 -78 -94 -232l-113 -178q-12 -20 -22 -23.5t-33 7.5l-12 4q-23 10 -27 20t4 33l74 217q-2 4 -13 16.5t-16.5 18.5t-14.5 19.5t-14 23.5t-11.5 23.5t-8.5 27.5t-2 31zM147 915q0 59 43 100.5t109 41.5q70 0 113 -39 t43 -100.5t-41 -102.5t-113 -41t-113 40t-41 101z" />
<glyph unicode="&#x3c;" horiz-adv-x="1085" d="M109 514v61q0 25 6 34t28 20l799 348q35 14 35 -25v-82q0 -25 -6 -34t-29 -19l-657 -268l657 -285q23 -10 29 -20.5t6 -34.5v-86q0 -39 -35 -23l-799 359q-35 16 -34 55z" />
<glyph unicode="=" horiz-adv-x="1085" d="M72 328v55q0 23 8 31t31 8h864q23 0 31 -8t8 -31v-55q0 -23 -8.5 -31t-30.5 -8h-864q-23 0 -31 8t-8 31zM72 694v56q0 23 8 30.5t31 7.5h864q23 0 31 -8t8 -30v-56q0 -23 -8.5 -31t-30.5 -8h-864q-23 0 -31 8t-8 31z" />
<glyph unicode="&#x3e;" horiz-adv-x="1085" d="M109 115v102q0 31 28 43l664 289l-664 270q-29 12 -28 43v99q0 31 28 18l811 -352q29 -12 29 -43v-78q0 -31 -29 -43l-811 -367q-29 -12 -28 19z" />
<glyph unicode="?" horiz-adv-x="952" d="M74 1092q8 164 118.5 248.5t292.5 84.5q180 0 288 -91t108 -265q0 -182 -103.5 -290.5t-275.5 -153.5v-263q0 -23 -8 -30.5t-31 -7.5h-98q-23 0 -31 8t-8 30v349q0 23 7 32t29 15q295 66 295 295q0 215 -196 215q-178 0 -199 -176q-4 -23 -12 -31t-31 -8h-108 q-23 0 -31 8t-6 31zM272 92q0 53 39 90t99 37q63 0 101 -34.5t38 -90t-35.5 -92.5t-101.5 -37q-63 0 -101.5 36t-38.5 91z" />
<glyph unicode="@" horiz-adv-x="1736" d="M96 469q0 365 222.5 588t590.5 223q350 0 547 -188.5t197 -540.5q0 -102 -17.5 -190.5t-58.5 -174.5t-124 -136t-200 -50q-80 0 -130 33t-52 96q-106 -129 -283 -129q-119 0 -201.5 65.5t-82.5 204.5q0 76 25.5 135.5t72.5 95.5t98.5 59.5t122 34.5t121.5 15t115 4v50 q0 96 -38 142t-130 46q-90 0 -126 -26.5t-44 -82.5q-4 -23 -12.5 -30.5t-32.5 -7.5h-92q-23 0 -30 8t-5 30q14 139 120.5 200t256.5 61q340 0 340 -314v-491q0 -100 67 -101q111 0 171.5 124t60.5 317q0 313 -174 488t-496 175q-319 0 -509.5 -204.5t-190.5 -524.5 q0 -344 194.5 -511t511.5 -167q61 0 127 6q23 2 30 -4t11 -28v-5q6 -37 -31 -38q-74 -6 -145 -7q-174 0 -317.5 45.5t-251 134.5t-168 234.5t-60.5 335.5zM711 299q0 -139 155 -139q92 0 144.5 42t52.5 99v182q-63 -2 -96 -4t-90.5 -12t-87 -27.5t-54 -53.5t-24.5 -87z" />
<glyph unicode="A" horiz-adv-x="1425" d="M0 31v100q0 31 31 31h121l409 1200q12 29 41 29h199q29 0 41 -29l413 -1200h140q31 0 30 -31v-100q0 -31 -30 -31h-514q-31 0 -31 31v100q0 31 31 31h127l-97 276h-473l-94 -276h123q31 0 31 -31v-100q0 -31 -31 -31h-436q-31 0 -31 31zM479 592h387l-192 602z" />
<glyph unicode="B" horiz-adv-x="1202" d="M80 31v100q0 31 31 31h108v1063h-106q-31 0 -31 30v105q0 33 31 33q246 10 436 10q252 0 384 -85t132 -243q0 -115 -70.5 -199.5t-167.5 -123.5q158 -25 241 -117t83 -225q0 -174 -129 -282t-342 -122q-88 -6 -283 -6h-286q-31 0 -31 31zM449 158h92q180 0 279.5 57 t99.5 199q0 231 -324 231h-147v-487zM449 815h77q303 0 303 211q0 119 -73.5 165t-210.5 46h-96v-422z" />
<glyph unicode="C" horiz-adv-x="1288" d="M88 688q0 197 58.5 346.5t154.5 231.5t203.5 120.5t224.5 38.5q238 0 428 -104q27 -14 27 -41v-264q0 -31 -31 -31h-115q-31 0 -28 31l6 143q-127 86 -289 86q-393 0 -393 -524q0 -164 39 -286t137 -201.5t252 -79.5q174 0 256 65l-8 143q-2 31 28 31h117q31 0 31 -31 v-260q0 -29 -21 -39q-180 -88 -411 -88q-336 0 -501 190.5t-165 522.5z" />
<glyph unicode="D" horiz-adv-x="1390" d="M82 31v100q0 31 31 31h106v1063h-106q-31 0 -31 30v105q0 31 31 31q262 12 442 12q74 0 136.5 -5t142 -21.5t142 -44t126 -79t105.5 -120t69 -171t27 -229.5q0 -371 -205 -552t-559 -181h-426q-31 0 -31 31zM449 160h135q225 0 349 147t124 389q0 270 -116 403.5 t-361 133.5h-131v-1073z" />
<glyph unicode="E" horiz-adv-x="1136" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h901q31 0 30 -31v-275q0 -31 -30 -30h-115q-31 0 -29 30l9 142h-428v-436h305l-8 104q-2 31 28 31h115q31 0 31 -31v-363q0 -31 -31 -30h-115q-31 0 -28 30l6 99h-303v-471h469l-9 145q-2 31 29 31h115 q31 0 30 -31v-274q0 -31 -30 -31h-942q-31 0 -31 31z" />
<glyph unicode="F" horiz-adv-x="1105" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h921q31 0 31 -31v-275q0 -31 -31 -30h-114q-31 0 -29 30l8 142h-448v-426h325l-8 104q-2 31 29 31h114q31 0 31 -31v-362q0 -31 -31 -31h-114q-31 0 -29 31l6 98h-323v-479h211q31 0 30 -31v-100 q0 -31 -30 -31h-549q-31 0 -31 31z" />
<glyph unicode="G" horiz-adv-x="1423" d="M88 698q0 193 58.5 339.5t154.5 228.5t203.5 120.5t224.5 38.5q250 0 426 -108q29 -16 29 -45v-256q0 -31 -31 -31h-117q-31 0 -28 31l6 137q-129 92 -287 92q-143 0 -234.5 -74.5t-125 -184t-33.5 -255.5q0 -164 38 -286.5t137 -204.5t253 -82q164 0 270 71v250h-131 q-31 0 -31 31v102q0 31 31 31h451q31 0 30 -31v-102q0 -31 -30 -31h-109v-348q0 -29 -29 -43q-88 -47 -218 -80t-242 -33q-176 0 -307.5 55.5t-208 156t-113.5 228.5t-37 283z" />
<glyph unicode="H" horiz-adv-x="1521" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-422h620v422h-108q-31 0 -31 30v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-109v-1063h109q31 0 31 -31v-100q0 -31 -31 -31h-446q-31 0 -31 31 v100q0 31 31 31h108v465h-620v-465h108q31 0 31 -31v-100q0 -31 -31 -31h-446q-31 0 -31 31z" />
<glyph unicode="I" horiz-adv-x="671" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-1063h108q31 0 31 -31v-100q0 -31 -31 -31h-446q-31 0 -31 31z" />
<glyph unicode="J" horiz-adv-x="673" d="M-164 -410l37 107q10 31 37 20q68 -26 138 -26h5q88 0 129 53t41 178v1303h-108q-31 0 -31 30v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-1311q0 -406 -375 -406q-141 0 -232 43q-13 7 -13 22q0 7 3 17z" />
<glyph unicode="K" horiz-adv-x="1359" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-439h106l381 439h-109q-31 0 -30 30v105q0 31 30 31h418q31 0 31 -31v-109q0 -31 -31 -30h-104l-406 -473l408 -586h133q31 0 31 -31v-100q0 -31 -31 -31 h-262q-31 0 -49 25l-412 593h-104v-456h108q31 0 31 -31v-100q0 -31 -31 -31h-446q-31 0 -31 31z" />
<glyph unicode="L" horiz-adv-x="1075" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h487q31 0 31 -31v-105q0 -31 -31 -30h-149v-1063h428l-9 143q-2 31 29 31h115q31 0 30 -31v-403q0 -31 -30 -31h-115q-31 0 -29 31l7 98h-764q-31 0 -31 31z" />
<glyph unicode="M" horiz-adv-x="1861" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h358q33 0 41 -29l422 -1100l432 1100q8 29 41 29h342q31 0 31 -31v-105q0 -31 -31 -30h-109v-1063h109q31 0 31 -31v-100q0 -31 -31 -31h-451q-31 0 -30 31v100q0 31 30 31h123v874l-403 -1007 q-12 -29 -43 -29h-135q-31 0 -43 29l-398 1009v-876h129q31 0 31 -31v-100q0 -31 -31 -31h-415q-31 0 -31 31z" />
<glyph unicode="N" horiz-adv-x="1521" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h301q29 0 47 -27l682 -1036v897h-109q-31 0 -30 30v105q0 31 30 31h396q31 0 30 -31v-105q0 -31 -30 -30h-109v-1194q0 -31 -31 -31h-149q-31 0 -47 25l-695 1026v-889h170q31 0 31 -31v-100 q0 -31 -31 -31h-456q-31 0 -31 31z" />
<glyph unicode="O" horiz-adv-x="1417" d="M88 682q0 205 61.5 357.5t161 232.5t202.5 116.5t212 36.5q76 0 145.5 -12t157.5 -54t150.5 -112.5t106.5 -202t44 -305.5q0 -369 -181 -566.5t-466 -197.5q-283 0 -438.5 180.5t-155.5 526.5zM334 754q0 -586 373 -586q367 0 366 532q0 545 -373 545q-131 0 -216 -70.5 t-117.5 -176t-32.5 -244.5z" />
<glyph unicode="P" horiz-adv-x="1157" d="M82 31v100q0 31 31 31h106v1065h-106q-31 0 -31 30v103q0 31 31 31q262 12 428 12q544 0 544 -398q0 -208 -133 -329t-362 -121q-90 0 -141 6v-399h169q31 0 31 -31v-100q0 -31 -31 -31h-505q-31 0 -31 31zM449 719q18 -2 94 -2q307 0 307 272q0 98 -50 154.5t-117 73 t-161 16.5h-73v-514z" />
<glyph unicode="Q" horiz-adv-x="1417" d="M88 680q0 166 42 298t106.5 214t151.5 136t170 75.5t167 21.5q76 0 145.5 -12t157.5 -55t150.5 -113.5t106.5 -202t44 -305.5q0 -258 -92 -431t-252 -259q39 -141 186 -268q23 -18 5 -43l-48 -58q-9 -12 -23 -12q-10 0 -22 6q-270 139 -352 305q-8 0 -24.5 -1t-24.5 -1 q-285 0 -439.5 179.5t-154.5 525.5zM334 752q0 -584 373 -584q367 0 366 530q0 547 -373 547q-131 0 -216 -71.5t-117.5 -177t-32.5 -244.5z" />
<glyph unicode="R" horiz-adv-x="1261" d="M82 31v100q0 31 31 31h106v1065h-106q-31 0 -31 30v103q0 31 31 31q262 12 436 12q532 0 532 -381q0 -133 -67.5 -234.5t-179.5 -154.5l239 -471h127q31 0 31 -31v-100q0 -31 -31 -31h-270q-31 0 -45 27l-279 551h-41q-66 0 -116 6v-422h129q31 0 30 -31v-100 q0 -31 -30 -31h-465q-31 0 -31 31zM449 739q16 -2 47 -2q166 0 258 65.5t92 196.5q0 233 -324 234h-73v-494z" />
<glyph unicode="S" horiz-adv-x="1058" d="M113 66v325q0 31 30 31h115q31 0 29 -31l-8 -170q27 -25 89 -46t128 -21q254 0 254 206q0 100 -68 159t-203 104q-80 27 -135 54.5t-112.5 71.5t-86 110.5t-28.5 152.5q0 180 123 296.5t340 116.5q152 0 303 -45q29 -8 28 -37v-282q0 -31 -30 -31h-115q-31 0 -29 31 l6 137q-82 49 -184 49q-98 0 -158.5 -48t-60.5 -132q0 -88 55.5 -142.5t184.5 -103.5q76 -29 110.5 -43t101 -53t98.5 -77t59.5 -101.5t27.5 -140.5q0 -203 -128 -317t-364 -114q-174 0 -344 54q-29 8 -28 37z" />
<glyph unicode="T" horiz-adv-x="1214" d="M41 1067v293q0 31 31 31h1071q31 0 31 -31v-293q0 -31 -31 -31h-125q-31 0 -29 31l10 160h-276v-1065h170q31 0 31 -31v-100q0 -31 -31 -31h-569q-31 0 -31 31v100q0 31 31 31h168v1065h-277l10 -160q2 -31 -28 -31h-125q-31 0 -31 31z" />
<glyph unicode="U" horiz-adv-x="1460" d="M51 1255v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-643q0 -102 10 -169t41 -130.5t96.5 -93t169.5 -29.5q184 0 260 106.5t76 308.5v650h-108q-31 0 -31 30v105q0 31 31 31h413q31 0 31 -31v-105q0 -31 -31 -30h-108v-693q0 -113 -24.5 -204.5 t-82 -174.5t-167 -130.5t-265.5 -47.5q-303 0 -422 132.5t-119 402.5v715h-108q-31 0 -31 30z" />
<glyph unicode="V" horiz-adv-x="1400" d="M10 1255v105q0 31 31 31h520q31 0 31 -31v-105q0 -31 -31 -30h-125l291 -981l332 981h-131q-31 0 -31 30v105q0 31 31 31h432q31 0 31 -31v-105q0 -31 -31 -30h-109l-420 -1196q-12 -29 -40 -29h-199q-29 0 -41 29l-383 1196h-127q-31 0 -31 30z" />
<glyph unicode="W" horiz-adv-x="2041" d="M10 1255v105q0 31 31 31h512q31 0 31 -31v-105q0 -31 -31 -30h-145l219 -953l299 1090q8 29 39 29h168q31 0 38 -29l297 -1096l236 959h-135q-31 0 -31 30v105q0 31 31 31h432q31 0 31 -31v-105q0 -31 -31 -30h-109l-315 -1194q-8 -31 -39 -31h-192q-31 0 -39 29 l-287 1020l-275 -1020q-8 -29 -38 -29h-226q-31 0 -39 31l-295 1194h-106q-31 0 -31 30z" />
<glyph unicode="X" horiz-adv-x="1386" d="M12 31v98q0 31 31 31h109l399 532l-389 533h-111q-31 0 -31 30v105q0 31 31 31h512q31 0 31 -31v-105q0 -31 -31 -30h-125l264 -369l269 369h-115q-31 0 -31 30v105q0 31 31 31h432q31 0 31 -31v-105q0 -31 -31 -30h-106l-379 -496l407 -569h125q31 0 31 -31v-98 q0 -31 -31 -31h-536q-31 0 -31 31v98q0 31 31 31h131l-279 391l-291 -391h129q31 0 31 -31v-98q0 -31 -31 -31h-446q-31 0 -31 31z" />
<glyph unicode="Y" horiz-adv-x="1359" d="M20 1255v105q0 31 31 31h520q31 0 31 -31v-105q0 -31 -31 -30h-145l295 -504l293 504h-137q-31 0 -31 30v105q0 31 31 31h432q31 0 30 -31v-105q0 -31 -30 -30h-109l-399 -672v-393h108q31 0 31 -31v-98q0 -31 -31 -31h-446q-31 0 -31 31v98q0 31 31 31h108v366l-413 699 h-107q-31 0 -31 30z" />
<glyph unicode="Z" horiz-adv-x="1204" d="M63 31v98q0 31 19 55l762 1047h-572l11 -164q2 -31 -29 -31h-125q-31 0 -31 31v293q0 31 31 31h967q31 0 30 -31v-98q0 -31 -18 -56l-770 -1046h627l-13 145q-2 31 29 31h121q31 0 31 -31v-403q0 -31 -31 -31h-115q-31 0 -29 31l7 98h-871q-31 0 -31 31z" />
<glyph unicode="[" horiz-adv-x="690" d="M258 -268v1757q0 23 8 31t31 8h297q23 0 31 -8.5t8 -30.5v-105q0 -23 -8.5 -30.5t-30.5 -5.5l-139 10v-1501l139 10q23 2 31 -6t8 -31v-98q0 -23 -8.5 -31t-30.5 -8h-297q-23 0 -31 8t-8 31z" />
<glyph unicode="\" horiz-adv-x="888" d="M51 1519q6 7 29 7h82q25 0 34 -7.5t17 -29.5l602 -1659q8 -23 2 -30t-29 -7h-79q-25 0 -34.5 7t-17.5 30l-604 1659q-8 23 -2 30z" />
<glyph unicode="]" horiz-adv-x="690" d="M57 -170q0 23 8.5 31t30.5 6l140 -10v1501l-140 -10q-23 -2 -31 6t-8 30v105q0 23 8.5 31t30.5 8h297q23 0 31 -8.5t8 -30.5v-1757q0 -23 -8 -31t-31 -8h-297q-23 0 -31 8t-8 31v98z" />
<glyph unicode="^" horiz-adv-x="1196" d="M139 672l344 712q12 29 43 29h97q31 0 43 -29l344 -712q12 -29 -19 -29h-141q-31 0 -43 29l-236 530l-237 -530q-12 -29 -43 -29h-135q-31 0 -17 29z" />
<glyph unicode="_" d="M-14 -252q0 23 8 31t31 8h974q23 0 31 -8t8 -31v-39q0 -23 -8 -31t-31 -8h-974q-23 0 -31 8.5t-8 30.5v39z" />
<glyph unicode="`" d="M393 1491.5q4 7.5 27 7.5h147q25 0 34 -7t17 -30l89 -237q8 -20 1.5 -28.5t-28.5 -8.5h-90q-41 0 -58 35l-133 241q-10 20 -6 27.5z" />
<glyph unicode="a" horiz-adv-x="1073" d="M72 264q0 70 22.5 124t54 89t88 60.5t101.5 38t115.5 20.5t110.5 9t108 3v72q0 43 -5 73.5t-22.5 61.5t-55.5 47.5t-95 16.5q-90 0 -130 -34t-55 -97q-6 -31 -30 -31h-132q-33 0 -28 31q8 150 120.5 219t286.5 69q367 0 367 -336v-538h88q31 0 31 -31v-100q0 -31 -31 -31 h-242q-27 0 -30 31l-15 94q-111 -150 -319 -150q-131 0 -217 69t-86 220zM289 285q0 -141 162 -142q106 0 165.5 50t59.5 116v158q-59 0 -88 -1t-84 -6t-85 -17.5t-65 -31t-50 -51t-15 -75.5z" />
<glyph unicode="b" horiz-adv-x="1196" d="M41 1389v108q0 31 31 31h309q31 0 31 -31v-637q49 82 132 129t179 47q188 0 294.5 -125t106.5 -368q0 -287 -121.5 -427.5t-320.5 -140.5q-113 0 -196 40t-119 100l-13 -84q-2 -31 -30 -31h-250q-31 0 -31 31v100q0 31 31 31h108v1196h-110q-31 0 -31 31zM412 256 q8 -12 26.5 -29.5t79 -47t127.5 -29.5q248 0 248 350q0 76 -8 130t-32 107.5t-74 82t-126 28.5q-96 0 -168.5 -63t-72.5 -167v-362z" />
<glyph unicode="c" horiz-adv-x="958" d="M72 502q0 236 121.5 385t363.5 149q184 0 272.5 -100t88.5 -256q0 -27 -35 -27h-123q-33 0 -35 31q-10 180 -182 180q-123 0 -180.5 -85t-57.5 -259q0 -373 289 -373q92 0 215 56q31 12 43 -19l37 -90q10 -29 -17 -43q-125 -76 -315 -76q-248 0 -366.5 140.5 t-118.5 386.5z" />
<glyph unicode="d" horiz-adv-x="1193" d="M72 477q0 281 126 420t324 139q90 0 160 -33.5t102 -80.5v436h-108q-31 0 -31 31v108q0 31 31 31h307q31 0 31 -31v-1335h88q31 0 31 -31v-100q0 -31 -31 -31h-232q-27 0 -30 31l-17 121q-104 -176 -334 -177q-201 0 -309 126t-108 376zM303 512q0 -78 8 -134t32 -111.5 t74 -84t128 -28.5q94 0 166.5 63.5t72.5 167.5v360q-8 12 -25.5 31t-75.5 49.5t-126 30.5q-254 0 -254 -344z" />
<glyph unicode="e" horiz-adv-x="1001" d="M72 508q0 221 120.5 374.5t348.5 153.5q113 0 193.5 -42t123.5 -114.5t62.5 -151.5t19.5 -169q0 -45 -2 -70q-2 -20 -8 -26t-29 -6h-602q10 -147 72.5 -228.5t216.5 -81.5q113 0 231 54q29 14 41 -17l39 -94q10 -25 -18 -41q-135 -74 -338 -74q-244 0 -357.5 142.5 t-113.5 390.5zM299 608h426v10q0 246 -201 246q-121 0 -171 -77t-54 -179z" />
<glyph unicode="f" horiz-adv-x="733" d="M41 31v100q0 31 31 31h127v686h-127q-31 0 -31 31v104q0 31 31 31h127v198q0 70 12 125.5t44 107.5t96.5 80.5t160.5 28.5q125 0 240 -51q18 -7 18 -25q0 -6 -2 -14l-31 -102q-10 -25 -35 -14q-82 36 -142 36h-3q-84 0 -106.5 -48t-22.5 -173v-149h248q31 0 31 -31v-104 q0 -31 -31 -31h-248v-686h217q31 0 31 -31v-100q0 -31 -31 -31h-573q-31 0 -31 31z" />
<glyph unicode="g" horiz-adv-x="1167" d="M72 477q0 283 123.5 421t316.5 138q182 0 297 -133l20 80q10 31 37 31h250q31 0 31 -31v-106q0 -31 -31 -31h-112v-727q0 -131 -11 -244q-16 -174 -127.5 -270.5t-324.5 -96.5q-197 0 -336 62q-25 10 -17 41l37 108q8 29 41 17q125 -51 250 -51q131 0 194.5 61t63.5 217 v160q-90 -147 -303 -148q-188 0 -293.5 129t-105.5 373zM303 514q0 -176 49 -269t191 -93q90 0 160.5 63.5t70.5 167.5v365q-8 12 -25.5 30.5t-76 48t-125.5 29.5q-109 0 -176.5 -81t-67.5 -261z" />
<glyph unicode="h" horiz-adv-x="1226" d="M41 31v100q0 31 31 31h110v1198h-110q-31 0 -31 31v106q0 31 31 31h309q31 0 31 -31v-631q115 170 317 170q317 0 318 -348v-526h120q31 0 31 -31v-100q0 -31 -31 -31h-448q-31 0 -31 31v100q0 31 31 31h98v424q0 129 -32.5 188.5t-143.5 59.5q-94 0 -161.5 -61.5 t-67.5 -139.5v-471h125q31 0 30 -31v-100q0 -31 -30 -31h-465q-31 0 -31 31z" />
<glyph unicode="i" horiz-adv-x="602" d="M33 31q0 -31 30 -31h488q31 0 31 31v100q0 31 -31 31h-129v821q0 31 -31 31h-309q-31 0 -31 -31v-106q0 -31 31 -31h111v-684h-130q-31 0 -30 -31v-100zM135 1300.5q0 63.5 40 105.5t106 42q68 0 107.5 -42t39.5 -105.5t-41 -104.5t-106 -41q-68 0 -107 41t-39 104.5z " />
<glyph unicode="j" horiz-adv-x="591" d="M-203 -408l41 113q10 27 39 16q65 -24 137 -24h6q172 0 173 240v909h-111q-31 0 -31 31v106q0 31 31 31h309q31 0 31 -31v-1067q0 -408 -363 -408q-156 0 -245 43q-20 10 -20 27q0 7 3 14zM135 1300.5q0 63.5 40 105.5t106 42q68 0 107.5 -42t39.5 -105.5t-41 -104.5 t-106 -41q-68 0 -107 41t-39 104.5z" />
<glyph unicode="k" horiz-adv-x="1159" d="M51 1393v104q0 31 31 31h309q31 0 31 -31v-817h104l318 311q23 23 53 23h160q31 0 30 -31v-106q0 -31 -30 -31h-125l-225 -219l280 -465h121q31 0 31 -31v-100q0 -31 -31 -31h-264q-29 0 -47 27l-308 495h-67v-360h108q31 0 31 -31v-100q0 -31 -31 -31h-446q-31 0 -31 31 v100q0 31 31 31h109v1200h-111q-31 0 -31 31z" />
<glyph unicode="l" horiz-adv-x="602" d="M33 31v100q0 31 30 31h130v1198h-111q-31 0 -31 31v106q0 31 31 31h309q31 0 31 -31v-1335h129q31 0 31 -31v-100q0 -31 -31 -31h-488q-31 0 -30 31z" />
<glyph unicode="m" horiz-adv-x="1828" d="M51 877v106q0 31 31 31h280q27 0 31 -31l17 -119q106 172 309 172q223 0 291 -180q111 180 321 180q317 0 318 -348v-526h116q31 0 31 -31v-100q0 -31 -31 -31h-450q-31 0 -31 31v100q0 31 31 31h104v424q0 129 -32.5 188.5t-143.5 59.5q-88 0 -147.5 -53.5t-59.5 -125.5 v-493h99q31 0 30 -31v-100q0 -31 -30 -31h-420q-31 0 -31 31v100q0 31 31 31h92v424q0 129 -33 188.5t-143 59.5q-92 0 -150.5 -60.5t-58.5 -140.5v-471h125q31 0 31 -31v-100q0 -31 -31 -31h-463q-31 0 -31 31v100q0 31 31 31h109v684h-111q-31 0 -31 31z" />
<glyph unicode="n" horiz-adv-x="1236" d="M51 874v109q0 31 31 31h278q27 0 33 -31l19 -119q115 172 327 172q317 0 318 -348v-526h119q31 0 30 -31v-100q0 -31 -30 -31h-447q-31 0 -31 31v100q0 31 31 31h98v424q0 129 -32.5 188.5t-143.5 59.5q-94 0 -161.5 -61.5t-67.5 -139.5v-471h127q31 0 31 -31v-100 q0 -31 -31 -31h-465q-31 0 -31 31v100q0 31 31 31h109v684h-111q-31 -1 -31 28z" />
<glyph unicode="o" horiz-adv-x="1089" d="M72 492q0 154 47 266t123.5 169.5t154.5 83t160 25.5q57 0 109.5 -8t120 -39t115.5 -82t82 -147t34 -225q0 -274 -138.5 -417t-355.5 -143q-213 0 -332.5 130.5t-119.5 386.5zM303 537q0 -394 240 -394q123 0 179 91.5t56 271.5t-56 271t-183 91q-236 0 -236 -331z" />
<glyph unicode="p" horiz-adv-x="1196" d="M41 877v106q0 31 31 31h278q25 0 31 -31l20 -123q104 176 322 176q188 0 294.5 -124t106.5 -365q0 -293 -125 -432.5t-321 -139.5q-162 0 -266 86v-368h217q31 0 30 -31v-102q0 -31 -30 -31h-555q-31 0 -31 31v100q0 31 31 31h108v1155h-110q-31 0 -31 31zM412 231 q10 -10 28.5 -24t79 -38t125.5 -24q119 0 183.5 81t64.5 274q0 78 -8 133t-32 108.5t-74 80t-126 26.5q-96 0 -168.5 -60.5t-72.5 -164.5v-392z" />
<glyph unicode="q" horiz-adv-x="1177" d="M72 477q0 276 126 417.5t324 141.5q96 0 175 -37.5t120 -99.5l21 84q10 31 32 31h256q31 0 31 -31v-106q0 -31 -31 -31h-112v-1157h108q31 0 31 -31v-98q0 -31 -31 -31h-307q-31 0 -31 31v569q-96 -154 -311 -154q-188 0 -294.5 129t-106.5 373zM303 520q0 -82 8 -139 t32 -114.5t74 -86t126 -28.5q100 0 170.5 64.5t70.5 170.5v358q-8 12 -25.5 31t-75.5 48.5t-126 29.5q-115 0 -184.5 -82t-69.5 -252z" />
<glyph unicode="r" horiz-adv-x="923" d="M51 877v106q0 31 31 31h270q29 0 35 -31l23 -145q35 82 112.5 140t179.5 58q82 0 132 -16q25 -8 24 -37v-276q0 -31 -31 -31h-133q-31 0 -28 31l8 118q-10 2 -35 2q-94 0 -155.5 -76.5t-61.5 -205.5v-383h225q31 0 31 -31v-100q0 -31 -31 -31h-563q-31 0 -31 31v100 q0 31 31 31h109v684h-111q-31 0 -31 31z" />
<glyph unicode="s" horiz-adv-x="903" d="M113 55v217q0 31 30 31h119q31 0 29 -31l-6 -106q55 -41 157 -41q182 0 183 129q0 66 -52.5 103.5t-128 58t-150.5 46t-127 90t-52 169.5q0 135 104.5 225t286.5 90q137 0 254 -37q29 -8 28 -36v-218q0 -31 -30 -30h-119q-33 0 -27 30l11 105q-61 33 -136 33 q-163 0 -163 -114q0 -60 53 -95t129 -56.5t152.5 -49t130 -94t53.5 -169.5q0 -156 -108.5 -243t-305.5 -87q-137 0 -289 41q-27 8 -26 39z" />
<glyph unicode="t" horiz-adv-x="755" d="M31 877v106q0 31 30 31h117v276q0 31 31 31h168q31 0 31 -31v-276h206q31 0 31 -31v-106q0 -31 -31 -31h-206v-516q0 -96 24.5 -139.5t97.5 -43.5q59 0 125 29q23 8 33 -16l37 -94q3 -7 3 -13q0 -17 -21 -28q-98 -49 -234 -50q-61 0 -109.5 12.5t-79 30t-52 51t-32 59.5 t-15.5 73t-6 73.5t-1 77.5v494h-117q-31 0 -30 31z" />
<glyph unicode="u" horiz-adv-x="1226" d="M41 877v106q0 31 31 31h307q31 0 31 -31v-598q0 -123 31.5 -175t144.5 -52q94 0 161.5 61.5t67.5 138.5v488h-129q-31 0 -31 31v106q0 31 31 31h328q31 0 30 -31v-821h91q31 0 30 -31v-100q0 -31 -30 -31h-230q-25 0 -31 31l-18 114q-131 -170 -344 -170q-332 0 -332 349 v522h-108q-31 0 -31 31z" />
<glyph unicode="v" horiz-adv-x="1062" d="M0 877v106q0 31 31 31h268q31 0 39 -29l237 -758l216 619h-105q-31 0 -31 31v106q0 31 31 31h299q25 0 36 -20q6 -10 6 -21q0 -10 -5 -21l-350 -923q-8 -29 -41 -29h-176q-29 0 -41 29l-281 817h-102q-31 0 -31 31z" />
<glyph unicode="w" horiz-adv-x="1599" d="M0 877v106q0 31 31 31h268q31 0 39 -31l186 -731l203 733q8 29 39 29h164q31 0 39 -29l209 -737l182 598h-98q-31 0 -31 31v106q0 31 31 31h262q25 0 36 -16q7 -11 7 -25q0 -7 -2 -15l-283 -929q-8 -29 -39 -29h-184q-31 0 -39 31l-195 723l-202 -725q-8 -29 -39 -29 h-185q-31 0 -39 29l-223 817h-106q-31 0 -31 31z" />
<glyph unicode="x" horiz-adv-x="1132" d="M47 31v100q0 31 31 31h106l260 346l-204 338h-131q-31 0 -31 31v106q0 31 31 31h256q31 0 45 -27l180 -317l131 176h-76q-31 0 -31 31v106q0 31 31 31h389q31 0 31 -31v-106q0 -31 -31 -31h-123l-229 -307l231 -377h142q31 0 30 -31v-100q0 -31 -30 -31h-269 q-29 0 -47 27l-200 340l-150 -205h113q31 0 30 -31v-100q0 -31 -30 -31h-424q-31 0 -31 31z" />
<glyph unicode="y" horiz-adv-x="1062" d="M-8 -408l35 101q8 27 39 18q98 -33 161 -33q61 0 95 32t71 132l51 135l-311 869h-102q-31 0 -31 31v106q0 31 31 31h268q31 0 39 -29l240 -745l213 606h-105q-31 0 -31 31v106q0 31 31 31h299q25 0 36 -20q6 -10 6 -21q0 -10 -5 -21l-438 -1145q-31 -78 -52.5 -119.5 t-61.5 -90t-97.5 -69t-139.5 -20.5q-133 0 -227 46q-17 9 -17 24q0 7 3 14z" />
<glyph unicode="z" horiz-adv-x="925" d="M72 31v119q0 31 18 55l510 645h-340l4 -109q2 -31 -28 -30h-113q-31 0 -31 30v242q0 31 31 31h702q31 0 31 -31v-115q0 -31 -18 -55l-523 -653h379l-4 129q-2 31 29 30h115q30 1 30 -30l-2 -258q0 -31 -31 -31h-729q-31 0 -30 31z" />
<glyph unicode="{" horiz-adv-x="671" d="M82 598v98q0 23 8 31t31 8h160l-56 754q-2 23 6.5 31t30.5 8h313q23 0 31 -8.5t8 -30.5v-105q0 -23 -8 -30.5t-31 -5.5l-139 10v-1501l139 10q23 2 31 -6t8 -31v-98q0 -23 -8 -31t-31 -8h-313q-23 0 -31 8t-6 31l56 827h-160q-23 0 -31 8t-8 31z" />
<glyph unicode="|" horiz-adv-x="526" d="M184 -168v1655q0 23 8.5 31t30.5 8h80q23 0 31 -8t8 -31v-1655q0 -23 -8 -31t-31 -8h-80q-23 0 -31 8.5t-8 30.5z" />
<glyph unicode="}" horiz-adv-x="675" d="M82 -170q0 23 8 31t31 6l139 -10v1501l-139 -10q-23 -2 -31 6t-8 30v105q0 23 8 31t31 8h313q23 0 31 -8.5t6 -30.5l-55 -754h159q23 0 31 -8t8 -31v-98q0 -23 -8 -31t-31 -8h-159l55 -827q2 -23 -6 -31t-31 -8h-313q-23 0 -31 8t-8 31v98z" />
<glyph unicode="~" horiz-adv-x="1302" d="M147 473q0 147 66.5 214t146.5 67q76 0 273.5 -56.5t269.5 -56.5q47 0 72.5 15.5t25.5 62.5q0 33 31 33h76q31 0 31 -31q2 -145 -60.5 -212t-160.5 -67q-94 0 -294 55.5t-243 55.5q-49 0 -66.5 -19.5t-17.5 -66.5q0 -27 -29 -27h-90q-31 0 -31 33z" />
<glyph unicode="&#xa2;" horiz-adv-x="958" d="M131 559q0 209 111.5 345t326.5 138l19 140q4 23 13 31t32 8h8q23 0 30 -8.5t3 -30.5l-19 -144q121 -23 185.5 -108.5t64.5 -214.5q2 -23 -6 -31t-31 -8h-90q-25 0 -32 7t-11 32q-12 135 -102 162l-84 -631q18 -4 57 -4q88 0 187 41q37 16 49 -21l24 -72q8 -23 5 -33 t-23 -20q-131 -68 -281 -67h-43l-20 -158q-4 -23 -13 -31t-32 -8h-8q-23 0 -30 8t-3 31l22 172q-309 72 -309 475zM340 567q0 -215 125 -299l82 615q-102 -8 -154.5 -91t-52.5 -225z" />
<glyph unicode="&#xa3;" horiz-adv-x="929" d="M27 51q-10 39 22 62q53 41 82 90q53 98 57 274h-84q-23 0 -29.5 8.5t-4.5 30.5l6 49q4 23 12 31t31 8h78l8 133q12 182 114.5 266t260.5 84q92 0 227 -32q23 -6 30 -15.5t7 -33.5v-220q0 -23 -8.5 -30.5t-30.5 -7.5h-86q-23 0 -31 8t-6 30l8 105q-57 39 -137 39 q-74 0 -104.5 -41t-36.5 -137l-9 -148h295q23 0 30 -8t3 -31l-6 -53q-2 -25 -11 -32t-34 -7h-285q-4 -102 -27.5 -163.5t-86.5 -139.5h432l-8 106q-2 23 6 31t30 8h99q23 0 31 -8t8 -31v-237q0 -23 -8.5 -31t-30.5 -8h-551q-94 0 -209 -8q-25 -2 -34 4t-13 31z" />
<glyph unicode="&#xa5;" horiz-adv-x="1071" d="M35 920v88q0 23 8 31t31 8h391q23 0 31 -8.5t8 -30.5v-88q0 -23 -8.5 -30t-30.5 -7h-86l190 -260l193 260h-86q-23 0 -31 7t-8 30v88q0 23 8 31t31 8h309q23 0 31 -8.5t8 -30.5v-88q0 -23 -8 -30t-31 -7h-65l-246 -328h168q23 0 31 -8t8 -31v-27q0 -23 -8.5 -30.5 t-30.5 -7.5h-213v-91h213q23 0 31 -8t8 -30v-27q0 -23 -8.5 -31t-30.5 -8h-213v-94h67q23 2 31 -6.5t8 -30.5v-86q0 -23 -8 -31t-31 -8h-321q-23 0 -31 8t-8 31v86q0 23 8 31t31 6h65v94h-213q-23 0 -31 8t-8 31v27q0 23 8.5 30.5t30.5 7.5h213v91h-213q-23 0 -31 8t-8 30 v27q0 23 8.5 31t30.5 8h168l-250 328h-71q-23 0 -31 7t-8 30z" />
<glyph unicode="&#xa8;" d="M131 1346q0 57 35 89.5t92 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5zM547 1346q0 57 34.5 89.5t92.5 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5z" />
<glyph unicode="&#xa9;" horiz-adv-x="1802" d="M160 694q0 313 206 519t525 206q330 0 540.5 -203.5t210.5 -508.5q0 -322 -208.5 -527t-542.5 -205q-336 0 -533.5 201t-197.5 518zM248 694q0 -289 180 -469t461 -180q295 0 480 176t185 473q0 289 -188 471.5t-477 182.5q-291 0 -466 -180.5t-175 -473.5zM545 702.5 q0 178.5 93 295t284 116.5q129 0 195.5 -65.5t70.5 -174.5q0 -23 -8.5 -30.5t-30.5 -7.5h-47q-23 0 -31 8t-12 30q-14 109 -139 109q-197 0 -197 -274q0 -135 41 -206t143 -71q70 0 107 23.5t45 85.5q4 23 12 31t31 8h47q23 0 31 -8.5t6 -30.5q-4 -109 -77 -174.5 t-214 -65.5q-182 0 -266 111.5t-84 290z" />
<glyph unicode="&#xab;" horiz-adv-x="1009" d="M150 553q-14 35 2 70l180 350q16 35 57 35h119q39 0 22 -35l-194 -383l188 -383q16 -35 -22 -35h-123q-41 0 -55 35zM489 553q-14 35 3 70l180 350q16 35 57 35h119q39 0 22 -35l-194 -383l188 -383q16 -35 -22 -35h-123q-41 0 -55 35z" />
<glyph unicode="&#xad;" horiz-adv-x="577" d="M61 485v121q0 23 8.5 31t30.5 8h377q23 0 31 -8t8 -31v-121q0 -23 -8 -31t-31 -8h-377q-23 0 -31 8.5t-8 30.5z" />
<glyph unicode="&#xae;" horiz-adv-x="1019" d="M133 1157q0 158 103.5 260.5t263.5 102.5q164 0 270.5 -101.5t106.5 -253.5q0 -162 -104.5 -264t-272.5 -102t-267.5 100t-99.5 258zM190 1157q0 -139 87.5 -225t222.5 -86q141 0 230 84t89 227q0 139 -90 227.5t-229 88.5q-141 0 -225.5 -86.5t-84.5 -229.5zM342 999v15 q0 14 14 14h25v275h-23q-16 0 -16 16v22q0 16 18 17h146q129 0 129 -98q0 -68 -70 -97l70 -135h37q16 0 16 -14v-15q0 -14 -16 -14h-80q-16 0 -21 12l-73 150h-47v-119h24q16 0 17 -18v-9q-1 -16 -17 -16h-117q-16 0 -16 14zM451 1196h32q78 0 78 59q0 48 -76 48h-34v-107z " />
<glyph unicode="&#xb4;" d="M340 1196.5q-6 8.5 2 28.5l86 237q8 23 17.5 30t33.5 7h148q23 0 26.5 -7t-6.5 -28l-133 -241q-10 -20 -21.5 -27.5t-35.5 -7.5h-88q-23 0 -29 8.5z" />
<glyph unicode="&#xb8;" d="M387 -410q-18 23 2 41q84 74 84 115t-45 76l-18 14q-22 18 -7 43l89 127h86l-46 -72l33 -28q78 -68 78 -127q0 -84 -197 -215q-25 -16 -43 6z" />
<glyph unicode="&#xbb;" horiz-adv-x="1009" d="M135 179q-4 7 6 28l195 385l-191 381q-16 35 23 35h123q41 0 55 -35l174 -346q14 -35 -2 -70l-180 -350q-10 -20 -21 -27.5t-36 -7.5h-119q-23 0 -27 7zM475 179q-4 7 6 28l195 385l-191 381q-16 35 23 35h123q41 0 55 -35l174 -346q14 -35 -2 -70l-180 -350 q-10 -20 -21 -27.5t-36 -7.5h-119q-23 0 -27 7z" />
<glyph unicode="&#xc0;" horiz-adv-x="1425" d="M0 31v100q0 31 31 31h121l409 1200q12 29 41 29h199q29 0 41 -29l413 -1200h140q31 0 30 -31v-100q0 -31 -30 -31h-514q-31 0 -31 31v100q0 31 31 31h127l-97 276h-473l-94 -276h123q31 0 31 -31v-100q0 -31 -31 -31h-436q-31 0 -31 31zM479 592h387l-192 602zM485 1726 q-23 31 17 31h143q39 0 55 -35l84 -188q16 -35 -22 -35h-82q-39 0 -62 31z" />
<glyph unicode="&#xc2;" horiz-adv-x="1425" d="M0 31v100q0 31 31 31h121l409 1200q12 29 41 29h199q29 0 41 -29l413 -1200h140q31 0 30 -31v-100q0 -31 -30 -31h-514q-31 0 -31 31v100q0 31 31 31h127l-97 276h-473l-94 -276h123q31 0 31 -31v-100q0 -31 -31 -31h-436q-31 0 -31 31zM403 1524l168 219q18 25 50 24 h155q31 0 49 -24l168 -219q18 -25 -12 -25h-117q-33 0 -51 25l-119 145l-116 -145q-19 -25 -50 -25h-112q-31 0 -13 25zM479 592h387l-192 602z" />
<glyph unicode="&#xc6;" horiz-adv-x="1800" d="M0 39v86q0 23 8 31t31 6h98l568 1065h-99q-23 -2 -31 6t-8 31v88q0 23 8.5 31t30.5 8h1073q23 0 31 -8.5t8 -30.5v-258q0 -23 -8 -31t-31 -8h-98q-23 0 -31 8t-6 31l8 133h-428v-436h306l-9 96q-2 23 6.5 31t30.5 8h98q23 0 31 -8.5t8 -30.5v-346q0 -23 -8 -31t-31 -8 h-98q-23 0 -31 8t-6 31l6 90h-303v-469h469l-8 135q-2 23 6 31t31 8h98q23 0 31 -8.5t8 -30.5v-258q0 -23 -8 -31t-31 -8h-925q-23 0 -31 8t-8 31v86q0 23 8 31t31 6h100v276h-406l-145 -276h107q23 2 30.5 -6.5t7.5 -30.5v-86q0 -23 -8 -31t-30 -8h-412q-23 0 -31 8t-8 31z M559 592h336v635z" />
<glyph unicode="&#xc7;" horiz-adv-x="1288" d="M88 688q0 197 58.5 346.5t154.5 231.5t203.5 120.5t224.5 38.5q238 0 428 -104q27 -14 27 -41v-264q0 -31 -31 -31h-115q-31 0 -28 31l6 143q-127 86 -289 86q-393 0 -393 -524q0 -164 39 -286t137 -201.5t252 -79.5q174 0 256 65l-8 143q-2 31 28 31h117q31 0 31 -31 v-260q0 -29 -21 -39q-160 -78 -362 -86l-27 -43l33 -28q78 -68 78 -127q0 -84 -197 -215q-27 -16 -43 6l-16 20q-18 23 2 41q84 74 84 115t-45 76l-19 14q-22 18 -6 43l68 98q-317 10 -472 199.5t-155 511.5z" />
<glyph unicode="&#xc8;" horiz-adv-x="1136" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h901q31 0 30 -31v-275q0 -31 -30 -30h-115q-31 0 -29 30l9 142h-428v-436h305l-8 104q-2 31 28 31h115q31 0 31 -31v-363q0 -31 -31 -30h-115q-31 0 -28 30l6 99h-303v-471h469l-9 145q-2 31 29 31h115 q31 0 30 -31v-274q0 -31 -30 -31h-942q-31 0 -31 31zM385 1726q-23 31 16 31h144q25 0 35 -6t20 -29l84 -188q16 -35 -22 -35h-82q-39 0 -62 31z" />
<glyph unicode="&#xc9;" horiz-adv-x="1136" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h901q31 0 30 -31v-275q0 -31 -30 -30h-115q-31 0 -29 30l9 142h-428v-436h305l-8 104q-2 31 28 31h115q31 0 31 -31v-363q0 -31 -31 -30h-115q-31 0 -28 30l6 99h-303v-471h469l-9 145q-2 31 29 31h115 q31 0 30 -31v-274q0 -31 -30 -31h-942q-31 0 -31 31zM555 1528l92 201q12 29 43 28h160q31 0 12 -24l-143 -209q-14 -25 -47 -25h-99q-30 0 -18 29z" />
<glyph unicode="&#xca;" horiz-adv-x="1136" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h901q31 0 30 -31v-275q0 -31 -30 -30h-115q-31 0 -29 30l9 142h-428v-436h305l-8 104q-2 31 28 31h115q31 0 31 -31v-363q0 -31 -31 -30h-115q-31 0 -28 30l6 99h-303v-471h469l-9 145q-2 31 29 31h115 q31 0 30 -31v-274q0 -31 -30 -31h-942q-31 0 -31 31zM295 1524l168 219q18 25 49 24h156q31 0 49 -24l168 -219q18 -25 -13 -25h-116q-33 0 -51 25l-119 145l-117 -145q-18 -25 -49 -25h-113q-31 0 -12 25z" />
<glyph unicode="&#xcb;" horiz-adv-x="1136" d="M82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h901q31 0 30 -31v-275q0 -31 -30 -30h-115q-31 0 -29 30l9 142h-428v-436h305l-8 104q-2 31 28 31h115q31 0 31 -31v-363q0 -31 -31 -30h-115q-31 0 -28 30l6 99h-303v-471h469l-9 145q-2 31 29 31h115 q31 0 30 -31v-274q0 -31 -30 -31h-942q-31 0 -31 31zM260 1638q0 57 35 90t92 33q127 0 127 -123q0 -59 -36 -93t-91 -34q-57 0 -92 34t-35 93zM676 1638q0 57 34.5 90t92.5 33q127 0 127 -123q0 -59 -36 -93t-91 -34q-57 0 -92 34t-35 93z" />
<glyph unicode="&#xce;" horiz-adv-x="671" d="M41 1524l168 219q18 25 49 24h156q31 0 49 -24l168 -219q18 -25 -13 -25h-116q-33 0 -51 25l-119 145l-117 -145q-18 -25 -49 -25h-113q-31 0 -12 25zM82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-1063 h108q31 0 31 -31v-100q0 -31 -31 -31h-446q-31 0 -31 31z" />
<glyph unicode="&#xcf;" horiz-adv-x="671" d="M0 1638q0 57 35 90t92 33q127 0 127 -123q0 -59 -36 -93t-91 -34q-57 0 -92 34t-35 93zM82 31v100q0 31 31 31h108v1063h-108q-31 0 -31 30v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-1063h108q31 0 31 -31v-100q0 -31 -31 -31h-446q-31 0 -31 31z M416 1638q0 57 34.5 90t92.5 33q127 0 127 -123q0 -59 -36 -93t-91 -34q-57 0 -92 34t-35 93z" />
<glyph unicode="&#xd4;" horiz-adv-x="1417" d="M88 682q0 205 61.5 357.5t161 232.5t202.5 116.5t212 36.5q76 0 145.5 -12t157.5 -54t150.5 -112.5t106.5 -202t44 -305.5q0 -369 -181 -566.5t-466 -197.5q-283 0 -438.5 180.5t-155.5 526.5zM334 754q0 -586 373 -586q367 0 366 532q0 545 -373 545q-131 0 -216 -70.5 t-117.5 -176t-32.5 -244.5zM434 1524l168 219q18 25 49 24h156q31 0 49 -24l168 -219q18 -25 -12 -25h-117q-33 0 -51 25l-119 145l-117 -145q-18 -25 -49 -25h-113q-31 0 -12 25z" />
<glyph unicode="&#xd9;" horiz-adv-x="1460" d="M51 1255v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-643q0 -102 10 -169t41 -130.5t96.5 -93t169.5 -29.5q184 0 260 106.5t76 308.5v650h-108q-31 0 -31 30v105q0 31 31 31h413q31 0 31 -31v-105q0 -31 -31 -30h-108v-693q0 -113 -24.5 -204.5 t-82 -174.5t-167 -130.5t-265.5 -47.5q-303 0 -422 132.5t-119 402.5v715h-108q-31 0 -31 30zM543 1726q-23 31 16 31h143q40 0 56 -35l84 -188q16 -35 -23 -35h-82q-39 0 -61 31z" />
<glyph unicode="&#xdb;" horiz-adv-x="1460" d="M51 1255v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-643q0 -102 10 -169t41 -130.5t96.5 -93t169.5 -29.5q184 0 260 106.5t76 308.5v650h-108q-31 0 -31 30v105q0 31 31 31h413q31 0 31 -31v-105q0 -31 -31 -30h-108v-693q0 -113 -24.5 -204.5 t-82 -174.5t-167 -130.5t-265.5 -47.5q-303 0 -422 132.5t-119 402.5v715h-108q-31 0 -31 30zM455 1524l168 219q18 25 49 24h155q31 0 50 -24l167 -219q18 -25 -12 -25h-117q-33 0 -51 25l-119 145l-116 -145q-18 -25 -49 -25h-113q-31 0 -12 25z" />
<glyph unicode="&#xdc;" horiz-adv-x="1460" d="M51 1255v105q0 31 31 31h446q31 0 31 -31v-105q0 -31 -31 -30h-108v-643q0 -102 10 -169t41 -130.5t96.5 -93t169.5 -29.5q184 0 260 106.5t76 308.5v650h-108q-31 0 -31 30v105q0 31 31 31h413q31 0 31 -31v-105q0 -31 -31 -30h-108v-693q0 -113 -24.5 -204.5 t-82 -174.5t-167 -130.5t-265.5 -47.5q-303 0 -422 132.5t-119 402.5v715h-108q-31 0 -31 30zM414 1638q0 57 34.5 90t92.5 33q127 0 127 -123q0 -59 -36 -93t-91 -34q-57 0 -92 34t-35 93zM829 1638q0 57 35 90t92 33q127 0 127 -123q0 -59 -36 -93t-91 -34q-57 0 -92 34 t-35 93z" />
<glyph unicode="&#xe0;" horiz-adv-x="1073" d="M72 264q0 70 22.5 124t54 89t88 60.5t101.5 38t115.5 20.5t110.5 9t108 3v72q0 43 -5 73.5t-22.5 61.5t-55.5 47.5t-95 16.5q-90 0 -130 -34t-55 -97q-6 -31 -30 -31h-132q-33 0 -28 31q8 150 120.5 219t286.5 69q367 0 367 -336v-538h88q31 0 31 -31v-100q0 -31 -31 -31 h-242q-27 0 -30 31l-15 94q-111 -150 -319 -150q-131 0 -217 69t-86 220zM289 285q0 -141 162 -142q106 0 165.5 50t59.5 116v158q-59 0 -88 -1t-84 -6t-85 -17.5t-65 -31t-50 -51t-15 -75.5zM311 1491.5q4 7.5 27 7.5h147q25 0 34 -7t17 -30l89 -237q8 -20 1.5 -28.5 t-28.5 -8.5h-90q-41 0 -58 35l-133 241q-10 20 -6 27.5z" />
<glyph unicode="&#xe2;" horiz-adv-x="1073" d="M72 264q0 70 22.5 124t54 89t88 60.5t101.5 38t115.5 20.5t110.5 9t108 3v72q0 43 -5 73.5t-22.5 61.5t-55.5 47.5t-95 16.5q-90 0 -130 -34t-55 -97q-6 -31 -30 -31h-132q-33 0 -28 31q8 150 120.5 219t286.5 69q367 0 367 -336v-538h88q31 0 31 -31v-100q0 -31 -31 -31 h-242q-27 0 -30 31l-15 94q-111 -150 -319 -150q-131 0 -217 69t-86 220zM289 285q0 -141 162 -142q106 0 165.5 50t59.5 116v158q-59 0 -88 -1t-84 -6t-85 -17.5t-65 -31t-50 -51t-15 -75.5zM227 1214l172 277q18 27 47 27h156q29 0 47 -27l172 -277q18 -27 -14 -26h-121 q-31 0 -47 24l-119 174l-111 -172q-18 -26 -47 -26h-121q-33 0 -14 26z" />
<glyph unicode="&#xe6;" horiz-adv-x="1593" d="M72 279q0 72 22.5 127t54 92t88 62.5t101.5 38.5t115.5 21.5t110.5 9.5t108 3v55q0 100 -41 145.5t-133 45.5q-166 0 -189 -123q-4 -25 -13 -32t-34 -7h-106q-23 0 -30 8t-5 31q27 281 395 280q229 0 297 -143q115 143 328 143q109 0 186.5 -36.5t121.5 -102.5 t63.5 -142.5t19.5 -170.5q0 -41 -2 -64q-2 -25 -9.5 -32t-31.5 -7h-598q0 -334 295 -334q104 0 221 52q23 8 31 5t18 -26l31 -80q8 -23 5 -33t-26 -20q-147 -70 -327 -70q-236 0 -353 129q-180 -129 -389 -129q-147 0 -236 72t-89 232zM289 297q0 -154 178 -154 q72 0 143.5 28t108.5 60q-55 96 -55 250q-55 -2 -86 -3t-82.5 -7t-82 -18.5t-62.5 -32t-47 -51t-15 -72.5zM891 633h416q0 47 -6.5 84t-25 72.5t-58.5 55t-99 19.5q-63 0 -110 -24.5t-71 -63.5t-34 -73.5t-12 -69.5z" />
<glyph unicode="&#xe7;" horiz-adv-x="958" d="M72 502q0 236 121.5 385t363.5 149q184 0 272.5 -100t88.5 -256q0 -27 -35 -27h-123q-33 0 -35 31q-10 180 -182 180q-123 0 -180.5 -85t-57.5 -259q0 -373 289 -373q92 0 215 56q31 12 43 -19l37 -90q10 -29 -17 -43q-106 -66 -272 -74l-27 -43l33 -28q78 -68 78 -127 q0 -84 -197 -215q-25 -16 -43 6l-16 20q-18 23 2 41q84 74 84 115t-45 76l-18 14q-22 18 -7 43l68 98q-225 12 -332.5 151.5t-107.5 373.5z" />
<glyph unicode="&#xe8;" horiz-adv-x="1001" d="M72 508q0 221 120.5 374.5t348.5 153.5q113 0 193.5 -42t123.5 -114.5t62.5 -151.5t19.5 -169q0 -45 -2 -70q-2 -20 -8 -26t-29 -6h-602q10 -147 72.5 -228.5t216.5 -81.5q113 0 231 54q29 14 41 -17l39 -94q10 -25 -18 -41q-135 -74 -338 -74q-244 0 -357.5 142.5 t-113.5 390.5zM299 608h426v10q0 246 -201 246q-121 0 -171 -77t-54 -179zM334 1491.5q4 7.5 27 7.5h147q25 0 34 -7t17 -30l89 -237q8 -20 1.5 -28.5t-28.5 -8.5h-90q-41 0 -58 35l-133 241q-10 20 -6 27.5z" />
<glyph unicode="&#xe9;" horiz-adv-x="1001" d="M72 508q0 221 120.5 374.5t348.5 153.5q113 0 193.5 -42t123.5 -114.5t62.5 -151.5t19.5 -169q0 -45 -2 -70q-2 -20 -8 -26t-29 -6h-602q10 -147 72.5 -228.5t216.5 -81.5q113 0 231 54q29 14 41 -17l39 -94q10 -25 -18 -41q-135 -74 -338 -74q-244 0 -357.5 142.5 t-113.5 390.5zM299 608h426q4 256 -201 256q-121 0 -171 -77t-54 -179zM477 1196.5q-6 8.5 2 28.5l86 237q8 23 17.5 30t33.5 7h148q23 0 27 -7t-7 -28l-133 -241q-16 -35 -57 -35h-88q-23 0 -29 8.5z" />
<glyph unicode="&#xea;" horiz-adv-x="1001" d="M72 508q0 221 120.5 374.5t348.5 153.5q113 0 193.5 -42t123.5 -114.5t62.5 -151.5t19.5 -169q0 -45 -2 -70q-2 -20 -8 -26t-29 -6h-602q10 -147 72.5 -228.5t216.5 -81.5q113 0 231 54q29 14 41 -17l39 -94q10 -25 -18 -41q-135 -74 -338 -74q-244 0 -357.5 142.5 t-113.5 390.5zM299 608h426v10q0 246 -201 246q-121 0 -171 -77t-54 -179zM237 1214l172 277q18 27 47 27h156q29 0 47 -27l172 -277q18 -27 -14 -26h-121q-31 0 -47 24l-119 174l-111 -172q-18 -26 -47 -26h-121q-33 0 -14 26z" />
<glyph unicode="&#xeb;" horiz-adv-x="1001" d="M72 508q0 221 120.5 374.5t348.5 153.5q113 0 193.5 -42t123.5 -114.5t62.5 -151.5t19.5 -169q0 -45 -2 -70q-2 -20 -8 -26t-29 -6h-602q10 -147 72.5 -228.5t216.5 -81.5q113 0 231 54q29 14 41 -17l39 -94q10 -25 -18 -41q-135 -74 -338 -74q-244 0 -357.5 142.5 t-113.5 390.5zM209 1346q0 57 35 89.5t92 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5zM299 608h426q4 256 -201 256q-121 0 -171 -77t-54 -179zM625 1346q0 57 34.5 89.5t92.5 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5 z" />
<glyph unicode="&#xee;" horiz-adv-x="602" d="M33 31v100q0 31 30 31h130v684h-111q-31 0 -31 31v106q0 31 31 31h309q31 0 31 -31v-821h129q31 0 31 -31v-100q0 -31 -31 -31h-488q-31 0 -30 31zM8 1214l172 277q18 27 47 27h156q29 0 47 -27l172 -277q18 -27 -14 -26h-121q-31 0 -47 24l-119 174l-111 -172 q-18 -26 -47 -26h-121q-33 0 -14 26z" />
<glyph unicode="&#xef;" horiz-adv-x="602" d="M-80 1346q0 57 35 89.5t92 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5zM33 31q0 -31 30 -31h488q31 0 31 31v100q0 31 -31 31h-129v821q0 31 -31 31h-309q-31 0 -31 -31v-106q0 -31 31 -31h111v-684h-130q-31 0 -30 -31v-100zM336 1346 q0 57 35 89.5t92 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5z" />
<glyph unicode="&#xf4;" horiz-adv-x="1089" d="M72 492q0 154 47 266t123.5 169.5t154.5 83t160 25.5q57 0 109.5 -8t120 -39t115.5 -82t82 -147t34 -225q0 -274 -138.5 -417t-355.5 -143q-213 0 -332.5 130.5t-119.5 386.5zM303 537q0 -394 240 -394q123 0 179 91.5t56 271.5t-56 271t-183 91q-236 0 -236 -331z M252 1214l172 277q18 27 47 27h156q29 0 47 -27l172 -277q18 -27 -14 -26h-121q-31 0 -47 24l-119 174l-111 -172q-18 -26 -47 -26h-121q-33 0 -14 26z" />
<glyph unicode="&#xf9;" horiz-adv-x="1226" d="M41 877v106q0 31 31 31h307q31 0 31 -31v-598q0 -123 31.5 -175t144.5 -52q94 0 161.5 61.5t67.5 138.5v488h-129q-31 0 -31 31v106q0 31 31 31h328q31 0 30 -31v-821h91q31 0 30 -31v-100q0 -31 -30 -31h-230q-25 0 -31 31l-18 114q-131 -170 -344 -170q-332 0 -332 349 v522h-108q-31 0 -31 31zM420 1491.5q4 7.5 27 7.5h147q25 0 34 -7t17 -30l89 -237q8 -20 1.5 -28.5t-28.5 -8.5h-90q-41 0 -58 35l-133 241q-10 20 -6 27.5z" />
<glyph unicode="&#xfb;" horiz-adv-x="1226" d="M41 877v106q0 31 31 31h307q31 0 31 -31v-598q0 -123 31.5 -175t144.5 -52q94 0 161.5 61.5t67.5 138.5v488h-129q-31 0 -31 31v106q0 31 31 31h328q31 0 30 -31v-821h91q31 0 30 -31v-100q0 -31 -30 -31h-230q-25 0 -31 31l-18 114q-131 -170 -344 -170q-332 0 -332 349 v522h-108q-31 0 -31 31zM307 1214l172 277q18 27 47 27h156q29 0 47 -27l172 -277q18 -27 -14 -26h-121q-31 0 -47 24l-119 174l-111 -172q-18 -26 -47 -26h-121q-33 0 -14 26z" />
<glyph unicode="&#xfc;" horiz-adv-x="1226" d="M41 877v106q0 31 31 31h307q31 0 31 -31v-598q0 -123 31.5 -175t144.5 -52q94 0 161.5 61.5t67.5 138.5v488h-129q-31 0 -31 31v106q0 31 31 31h328q31 0 30 -31v-821h91q31 0 30 -31v-100q0 -31 -30 -31h-230q-25 0 -31 31l-18 114q-131 -170 -344 -170q-332 0 -332 349 v522h-108q-31 0 -31 31zM252 1346q0 57 35 89.5t92 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5zM668 1346q0 57 34.5 89.5t92.5 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5z" />
<glyph unicode="&#xff;" horiz-adv-x="1062" d="M-8 -408l35 101q8 27 39 18q98 -33 161 -33q61 0 95 32t71 132l51 135l-311 869h-102q-31 0 -31 31v106q0 31 31 31h268q31 0 39 -29l240 -745l213 606h-105q-31 0 -31 31v106q0 31 31 31h299q25 0 36 -19.5t1 -42.5l-438 -1145q-31 -78 -52.5 -119.5t-61.5 -90 t-97.5 -69t-139.5 -20.5q-133 0 -227 46q-23 12 -14 38zM207 1346q0 57 34.5 89.5t92.5 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5zM623 1346q0 57 34.5 89.5t92.5 32.5q127 0 127 -122q0 -59 -36 -93t-91 -34q-57 0 -92 33.5t-35 93.5z" />
<glyph unicode="&#x131;" horiz-adv-x="602" d="M33 31v100q0 31 30 31h130v684h-111q-31 0 -31 31v106q0 31 31 31h309q31 0 31 -31v-821h129q31 0 31 -31v-100q0 -31 -31 -31h-488q-31 0 -30 31z" />
<glyph unicode="&#x152;" horiz-adv-x="1998" d="M102 676q0 166 42 299t106.5 215t151.5 137t170 76.5t167 21.5q217 0 355 -112v39q0 23 8 31t31 8h745q23 0 31 -8.5t8 -30.5v-258q0 -23 -8 -31t-31 -8h-98q-23 0 -31 8t-6 31l8 133h-428v-436h305l-8 96q-2 23 6 31t31 8h98q23 0 31 -8.5t8 -30.5v-346q0 -23 -8 -31 t-31 -8h-98q-23 0 -31 8t-6 31l6 90h-303v-463h469l-8 129q-2 23 6 31t31 8h98q23 0 31 -8.5t8 -30.5v-258q0 -23 -8 -31t-31 -8h-786q-23 0 -31 8t-8 31v74q-143 -137 -398 -138q-285 0 -439.5 177.5t-154.5 523.5zM348 754q0 -586 373 -586q190 0 278 142.5t88 383.5 q0 250 -88 400.5t-284 150.5q-190 0 -278.5 -139t-88.5 -352z" />
<glyph unicode="&#x153;" horiz-adv-x="1699" d="M72 492q0 154 47 266t123.5 169.5t154.5 83t160 25.5q236 0 344 -153q119 154 338 153q113 0 193.5 -42t123.5 -114.5t62.5 -151.5t19.5 -169q0 -45 -2 -70q-2 -20 -8 -26t-29 -6h-602q10 -147 73 -228.5t216 -81.5q111 0 232 54q29 14 41 -17l38 -94q10 -25 -18 -41 q-135 -74 -338 -74q-250 0 -360 162q-121 -162 -357 -162q-213 0 -332.5 130.5t-119.5 386.5zM303 537q0 -394 240 -394q123 0 179 91.5t56 271.5t-56 271t-183 91q-236 0 -236 -331zM997 608h426q4 256 -200 256q-121 0 -171.5 -77t-54.5 -179z" />
<glyph unicode="&#x178;" horiz-adv-x="1359" d="M20 1255v105q0 31 31 31h520q31 0 31 -31v-105q0 -31 -31 -30h-145l295 -504l293 504h-137q-31 0 -31 30v105q0 31 31 31h432q31 0 30 -31v-105q0 -31 -30 -30h-109l-399 -672v-393h108q31 0 31 -31v-98q0 -31 -31 -31h-446q-31 0 -31 31v98q0 31 31 31h108v366l-413 699 h-107q-31 0 -31 30zM373 1638q0 57 34.5 90t92.5 33q127 0 127 -123q0 -59 -36 -93t-91 -34q-57 0 -92 34t-35 93zM788 1638q0 57 35 90t92 33q127 0 127 -123q0 -59 -36 -93t-91 -34q-57 0 -92 34t-35 93z" />
<glyph unicode="&#x2c6;" d="M219 1214l172 277q18 27 47 27h156q29 0 47 -27l172 -277q18 -27 -14 -26h-121q-31 0 -47 24l-119 174l-111 -172q-18 -26 -47 -26h-121q-33 0 -14 26z" />
<glyph unicode="&#x2da;" d="M307 1364q0 86 58.5 145.5t146.5 59.5q92 0 147.5 -57.5t55.5 -137.5q0 -94 -57.5 -155.5t-149.5 -61.5q-94 0 -147.5 59.5t-53.5 147.5zM426 1364q0 -43 22.5 -71.5t63.5 -28.5t64.5 28.5t23.5 71.5q0 45 -23.5 71.5t-64.5 26.5q-86 0 -86 -98z" />
<glyph unicode="&#x2dc;" d="M164 1266q0 109 45 150.5t104 41.5q55 0 190.5 -42t182.5 -42q70 0 70 56q0 27 30 26h50q25 0 24 -29q0 -102 -44 -152t-111 -50q-66 0 -201 39t-166 39q-61 0 -62 -46q0 -14 -4 -17t-20 -3h-64q-25 0 -24 29z" />
<glyph unicode="&#x2000;" horiz-adv-x="883" />
<glyph unicode="&#x2001;" horiz-adv-x="1767" />
<glyph unicode="&#x2002;" horiz-adv-x="883" />
<glyph unicode="&#x2003;" horiz-adv-x="1767" />
<glyph unicode="&#x2004;" horiz-adv-x="589" />
<glyph unicode="&#x2005;" horiz-adv-x="441" />
<glyph unicode="&#x2006;" horiz-adv-x="294" />
<glyph unicode="&#x2007;" horiz-adv-x="294" />
<glyph unicode="&#x2008;" horiz-adv-x="220" />
<glyph unicode="&#x2009;" horiz-adv-x="353" />
<glyph unicode="&#x200a;" horiz-adv-x="98" />
<glyph unicode="&#x2010;" horiz-adv-x="577" d="M61 485v121q0 23 8.5 31t30.5 8h377q23 0 31 -8t8 -31v-121q0 -23 -8 -31t-31 -8h-377q-23 0 -31 8.5t-8 30.5z" />
<glyph unicode="&#x2011;" horiz-adv-x="577" d="M61 485v121q0 23 8.5 31t30.5 8h377q23 0 31 -8t8 -31v-121q0 -23 -8 -31t-31 -8h-377q-23 0 -31 8.5t-8 30.5z" />
<glyph unicode="&#x2012;" horiz-adv-x="577" d="M61 485v121q0 23 8.5 31t30.5 8h377q23 0 31 -8t8 -31v-121q0 -23 -8 -31t-31 -8h-377q-23 0 -31 8.5t-8 30.5z" />
<glyph unicode="&#x2013;" d="M0 547v80q0 23 8 31t31 8h946q23 0 31 -8.5t8 -30.5v-80q0 -23 -8 -31t-31 -8h-946q-23 0 -31 8t-8 31z" />
<glyph unicode="&#x2014;" horiz-adv-x="2045" d="M0 547v80q0 23 8 31t31 8h1968q23 0 31 -8.5t8 -30.5v-80q0 -23 -8 -31t-31 -8h-1968q-23 0 -31 8t-8 31z" />
<glyph unicode="&#x2018;" horiz-adv-x="520" d="M135 1155q0 35 12.5 73t24.5 60.5t43 71.5l90 151q18 31 53 17h2q23 -10 27 -18.5t-4 -30.5l-59 -185q63 -84 63 -143q0 -49 -34 -82t-89 -33t-92 33t-37 86z" />
<glyph unicode="&#x2019;" horiz-adv-x="520" d="M149 1069q-4 8 5 31l59 184q-63 84 -63 143q0 49 33.5 82t89 33t92 -32.5t36.5 -86.5q0 -35 -12 -72.5t-24 -60t-43 -71.5l-91 -152q-18 -31 -53 -16h-2q-23 10 -27 18z" />
<glyph unicode="&#x201a;" horiz-adv-x="520" d="M149 -284.5q-4 8.5 5 30.5l59 184q-63 84 -63 144q0 49 33.5 81.5t89 32.5t92 -32.5t36.5 -85.5q0 -35 -12 -73t-24 -60.5t-43 -71.5l-91 -152q-18 -31 -53 -16h-2q-23 10 -27 18.5z" />
<glyph unicode="&#x201c;" horiz-adv-x="827" d="M135 1155q0 35 12.5 73t24.5 60.5t43 71.5l90 151q18 31 53 17h2q23 -10 27 -18.5t-4 -30.5l-59 -185q63 -84 63 -143q0 -49 -34 -82t-89 -33t-92 33t-37 86zM442 1155q0 35 12.5 73t24.5 60.5t43 71.5l90 151q18 31 54 17h2q23 -10 26.5 -18.5t-4.5 -30.5l-59 -185 q63 -84 63 -143q0 -49 -33.5 -82t-89 -33t-92.5 33t-37 86z" />
<glyph unicode="&#x201d;" horiz-adv-x="827" d="M149 1069q-4 8 5 31l59 184q-63 84 -63 143q0 49 33.5 82t89 33t92 -32.5t36.5 -86.5q0 -35 -12 -72.5t-24 -60t-43 -71.5l-91 -152q-18 -31 -53 -16h-2q-23 10 -27 18zM456.5 1069q-3.5 8 4.5 31l59 184q-63 84 -63 143q0 49 33.5 82t89 33t92.5 -32.5t37 -86.5 q0 -35 -12.5 -72.5t-24.5 -60t-43 -71.5l-90 -152q-18 -31 -54 -16h-2q-23 10 -26.5 18z" />
<glyph unicode="&#x201e;" horiz-adv-x="806" d="M149 -284.5q-4 8.5 5 30.5l59 184q-63 84 -63 144q0 49 33.5 81.5t89 32.5t92 -32.5t36.5 -85.5q0 -35 -12 -73t-24 -60.5t-43 -71.5l-91 -152q-18 -31 -53 -16h-2q-23 10 -27 18.5zM456.5 -284.5q-3.5 8.5 4.5 30.5l59 184q-63 84 -63 144q0 49 33.5 81.5t89 32.5 t92.5 -32.5t37 -85.5q0 -35 -12.5 -73t-24.5 -60.5t-43 -71.5l-90 -152q-18 -31 -54 -16h-2q-23 10 -26.5 18.5z" />
<glyph unicode="&#x2026;" horiz-adv-x="1583" d="M104 102q0 59 43 100.5t109 41.5q70 0 113 -39t43 -100.5t-41 -102.5t-113 -41t-113 40t-41 101zM610 102q0 59 43 100.5t109 41.5q70 0 113 -39t43 -100.5t-41 -102.5t-113 -41t-113 40t-41 101zM1133 102q0 59 43 100.5t108 41.5q70 0 113 -39t43 -100.5t-41 -102.5 t-113 -41t-112.5 40t-40.5 101z" />
<glyph unicode="&#x202f;" horiz-adv-x="353" />
<glyph unicode="&#x2039;" horiz-adv-x="669" d="M150 553q-14 35 2 70l180 350q16 35 57 35h119q39 0 22 -35l-194 -383l188 -383q16 -35 -22 -35h-123q-41 0 -55 35z" />
<glyph unicode="&#x203a;" horiz-adv-x="669" d="M135 179q-4 7 6 28l195 385l-191 381q-16 35 23 35h123q41 0 55 -35l174 -346q14 -35 -2 -70l-180 -350q-10 -20 -21 -27.5t-36 -7.5h-119q-23 0 -27 7z" />
<glyph unicode="&#x205f;" horiz-adv-x="441" />
<glyph unicode="&#x20ac;" horiz-adv-x="1079" d="M45 412l4 30q4 23 12.5 31t30.5 8h86q-2 39 0 80h-82q-23 0 -30 8t-3 31l5 31q2 25 11 32t34 7h75q25 147 106 245.5t175 135t203 36.5q188 0 317 -75q33 -18 33 -56v-180q0 -23 -8 -31t-31 -8h-88q-23 0 -31 8.5t-6 30.5l8 103q-74 66 -196 65q-129 0 -199 -75.5 t-82 -198.5h393q23 0 30 -7.5t3 -29.5l-6 -35q-2 -23 -11.5 -30t-33.5 -7h-379q-2 -43 2 -80h367q23 0 30 -8t2 -31l-4 -30q-2 -25 -11 -32t-34 -7h-338q51 -248 299 -248q104 0 168 39l-8 108q-2 23 5 31t30 8h92q23 0 31 -8t8 -31v-176q0 -39 -35 -55q-139 -66 -299 -66 q-436 0 -502 398h-108q-23 0 -30 8t-5 31z" />
<glyph unicode="&#x2122;" horiz-adv-x="1728" d="M143 1247v113q0 31 31 31h498q31 0 30 -31v-113q0 -31 -30 -30h-29q-31 0 -29 30l4 70h-131v-524h66q31 0 31 -31v-27q0 -30 -31 -30h-256q-31 0 -31 30v27q0 31 31 31h63v524h-129l5 -70q2 -31 -29 -30h-33q-31 0 -31 30zM752 735v25q0 31 30 31h37v514h-37 q-31 0 -30 30v25q0 31 30 31h154q33 0 41 -29l197 -520l202 520q8 29 41 29h137q31 0 31 -31v-25q0 -31 -31 -30h-34v-514h34q31 0 31 -31v-25q0 -31 -31 -30h-196q-31 0 -31 30v27q0 31 31 31h41v409l-180 -469q-8 -28 -41 -28h-41q-33 0 -41 28l-189 488v-428h58 q31 0 30 -31v-27q0 -31 -30 -30h-183q-31 0 -30 30z" />
<glyph unicode="&#xe000;" horiz-adv-x="1014" d="M0 1015h1015v-1015h-1015v1015z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

View File

@ -0,0 +1,38 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Font Face Demo</title>
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8">
<style type="text/css" media="screen">
h1.fontface {font: 60px/68px 'CreteRoundRegular', Arial, sans-serif;letter-spacing: 0;}
p.style1 {font: 18px/27px 'CreteRoundItalic', Arial, sans-serif;}
p.style2 {font: 18px/27px 'CreteRoundRegular', Arial, sans-serif;}
#container {
width: 800px;
margin-left: auto;
margin-right: auto;
}
</style>
</head>
<body>
<div id="container">
<h1 class="fontface">Font-face Demo for the Crete Round Font</h1>
<p class="style1">Crete Round Italic - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p class="style2">Crete Round Regular - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</body>
</html>

View File

@ -0,0 +1,28 @@
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on November 9, 2012 01:39:30 PM America/New_York */
@font-face {
font-family: 'CreteRoundItalic';
src: url('CreteRound-Italic-webfont.eot');
src: url('CreteRound-Italic-webfont.eot?#iefix') format('embedded-opentype'),
url('CreteRound-Italic-webfont.woff') format('woff'),
url('CreteRound-Italic-webfont.ttf') format('truetype'),
url('CreteRound-Italic-webfont.svg#CreteRoundItalic') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'CreteRoundRegular';
src: url('CreteRound-Regular-webfont.eot');
src: url('CreteRound-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('CreteRound-Regular-webfont.woff') format('woff'),
url('CreteRound-Regular-webfont.ttf') format('truetype'),
url('CreteRound-Regular-webfont.svg#CreteRoundRegular') format('svg');
font-weight: normal;
font-style: normal;
}

36
a_propos.php Normal file
View File

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html id="top">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="aide.css" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - A propos</title>
<meta name="keywords" content="festivalgo, Festiv'Algo, algobox, site, application gratuite, nitrosax, algorithme, algorithmique, programmation, Casio, TI, HP, apprendre, bac, mathématiques, ROC, nouveaux programmes, réformes" />
<meta name="description" content="Vidéo de présentation de Festiv'Algo, une application pédagogique d'initiation à l'algorithmique dans l'esprit des nouveaux programmes de mathématiques. Une interface simple et interactive, des exemples, un tutoriel et un forum pour toutes vos questions." />
</head>
<body>
<div id="content">
<?php include("menu.php"); ?>
<div id="contenu">
<article style="position: inherit;">
<iframe style="margin-top: 20px;" width="420" height="315" src="https://www.youtube.com/embed/8vJ-A4QNS1c" frameborder="0"></iframe>
<br /><br /><br /><h2>Evènements :</h2>
<div class="paragraphes">
<ul>
<li>20/04/13 : Mise en ligne du site.</li>
<li>9/05/13 : Correction des problèmes de position du curseur dans l'onglet principal.</li>
<li>20/05/13 : Ajout de la coloration syntaxique pour le debuggage.</li>
<li>14/12/13 : Changement de serveur et remise en ligne du site après un mois d'indisponibilité.</li>
</ul>
</div>
</article>
</div>
<?php include "pub.php" ?>
</div>
</body>
<?php include("bas_de_page.php"); ?>
</html>

202
aide.css Normal file
View File

@ -0,0 +1,202 @@
#content
{
height: 2010px;
}
article
{
position: absolute;
width: 980px;
top: 285px;
left: 0px;
}
h2
{
font-family: Normal, Arial;
font-size: 24px;
font-style: bold;
color: black;
text-align: left;
margin-left: 70px;
margin-bottom: 20px;
}
.partie
{
margin-bottom: 50px;
}
.paragraphes
{
text-align: justify;
background-color: #FFD745;
border: solid;
border-width: 4px;
border-radius: 5px;
border-color: #FAC801;
font-family: Normal, Arial;
font-size: 16px;
font-style: none;
color: black;
padding: 5px 11px 7px 11px;
margin-left: 45px;
margin-right: 45px;
}
#par1
{
width: 455px;
}
#par3
{
width: 515px;
}
#schema_algo
{
float: right;
margin-left: 45px;
margin-right: 45px;
margin-top: -44px;
}
#schema_condition
{
float: right;
margin-left: 45px;
margin-right: 45px;
margin-top: -44px;
}
.exemples_code
{
margin-left: 25px;
margin-bottom: 10px;
}
#code_condition
{
height: 68px;
}
.code_algo
{
display: inline-block;
background-color: rgb(255, 84, 84);
width: 230px;
height: 22px;
border: solid;
border-radius: 14px;
border-width: 4px;
border-color: rgb(236, 10, 10);
font-family: Verdanna, Arial;
color: rgb(173, 0, 0);
font-size: 14px;
padding-left: 8px;
padding-top: 4px;
margin: 14px -40px 12px 0px;
}
.type_algo
{
font-family: Normal, Arial;
position: relative;
right: 30px;
top: -6px;
font-size: 12px;
color: rgb(218, 7, 7);
}
.code_casio
{
display: inline-block;
background-color: rgb(145, 226, 99);
width: 230px;
height: 22px;
border: solid;
border-radius: 14px;
border-width: 4px;
border-color: rgb(66, 167, 66);
font-family: Verdanna, Arial;
color: rgb(62, 139, 10);
font-size: 14px;
padding-left: 8px;
padding-top: 4px;
margin: 14px -7px 12px 0px;
}
#type_condition
{
top: -54px;
}
.type_casio
{
font-family: Normal, Arial;
position: relative;
right: 31px;
top: -6px;
font-size: 12px;
color: rgb(58, 173, 30);
}
.code_ti
{
display: inline-block;
background-color: rgb(155, 148, 248);
width: 230px;
height: 22px;
border: solid;
border-radius: 14px;
border-width: 4px;
border-color: rgb(60, 103, 167);
font-family: Verdanna, Arial;
color: rgb(40, 83, 175);
font-size: 14px;
padding-left: 8px;
padding-top: 4px;
margin: 14px -40px 12px 0px;
}
.type_ti
{
font-family: Normal, Arial;
position: relative;
right: -19px;
top: -6px;
font-size: 12px;
color: rgb(12, 26, 99);
}
.resultats_code
{
width: 622px;
height: 45px;
background-color: #EED858;
border: solid;
border-width: 4px;
border-radius: 14px;
border-color: #D2A124;
font-family: Normal, Arial;
padding: 0px 0px 8px 12px;
padding-left: 6px;
}
.resultats_title
{
font-size: 18px;
color: #DB7517;
margin-top: 0px;
}
.resultats_content
{
font-size: 15px;
color: #D29A17;
margin-top: -16px;
margin-left: 8px;
}

110
aide.php Normal file
View File

@ -0,0 +1,110 @@
<!DOCTYPE html>
<html id="top">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<link rel="stylesheet" type="text/css" href="aide.css" />
<script src="execution.js"></script>
<script src="jquery.js"></script>
<script src="menus.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Aide pour la programmation d'algorithmes. Tutoriel d'algorithmique, TI Basic et Basic Casio.</title>
<meta name="keywords" content="festivalgo, algobox, tutoriel, aide, algorithme, algorithmique, programmation, Casio, TI, HP, apprendre, bac, mathématiques, ROC, nouveaux programmes, réformes" />
<meta name="description" content="Initiation simple et claire à l'algorithmique pour le Bac, dans l'esprit des nouveaux programmes de mathématiques." />
</head>
<body>
<div id="content" style="padding-bottom: 130px">
<?php include("menu.php"); ?>
<article>
<div class="partie">
<h2>&bull; Qu'est-ce qu'un <mark>algorithme</mark> ?</h2>
<img id="schema_algo" src="Images/schema_algo.png" title="Schéma des 3 phases d'un algorithme" alt="Schéma d'un algorithme" />
<div class="paragraphes" id="par1">
Le mot <i>"<mark>algorithme</mark>"</i> vient du nom du mathématicien Persan <strong>Al-Khuwarizmi</strong>, qui inventa une méthode, au début du IXème siècle, pour résoudre des équations pas à pas.<br />
Un <mark>algorithme</mark> est une suite d'opérations appliquées dans un ordre donné.
</div>
</div>
<div class="partie">
<div class="titres">
<h2>&bull; Variables et affectation</h2>
</div>
<div class="paragraphes">
Dans un <mark>algorithme</mark>, on commence par <strong>l'entrée des données</strong>. Chacune de ces données est stockée dans la mémoire de la <strong>calculatrice</strong> ou de l'<strong>ordinateur</strong> à un emplacement nommé <strong>variable</strong> et est repérée par une lettre.<br />
Les <strong>instructions</strong> que l'on peut pratiquer avec une <strong>variable</strong> sont :<br /><br />
- <strong><b>la saisie</b></strong> : on demande à l'utilisateur de donner une valeur à une <strong>variable</strong>.<br />
<div class="exemples_code">
<div class="code_algo"><b>Saisir A</b></div><span class="type_algo"><strong>Algorithme</strong></span><div class="code_casio"><b>? &rarr; A</b></div><span class="type_casio"><strong>Casio</strong></span><div class="code_ti"><b>Input A</b></div><span class="type_ti"><strong>TI</strong></span>
<div class="resultats_code"><p class="resultats_title">Exécution :</p><div class="resultats_content">
<input onkeypress='if(event.keyCode == 13) lire("a", 1, 0, 1);' autofocus size='7' maxlength='10' id='lire' placeholder='A =' required rows='1' cols='5'>
</div>
</div>
</div>
<br/>
- <strong><b>l'affectation</b></strong> : on donne à la <strong>variable</strong> une certaine valeur ou le résultat d'un calcul.<br />
<div class="exemples_code">
<div class="code_algo"><b>A Prend_la_valeur 3 * 5</b></div><span class="type_algo"><strong>Algorithme</strong></span><div class="code_casio"><b>3 * 5 &rarr; A</b></div><span class="type_casio"><strong>Casio</strong></span><div class="code_ti"><b>3 * 5 &rarr; A</b></div><span class="type_ti"><strong>TI</strong></span>
</div>
<br/>
- <strong><b>l'affichage</b></strong> : on affiche le contenu de la <strong>variable</strong>.
<div class="exemples_code">
<div class="code_algo"><b>Afficher A</b></div><span class="type_algo"><strong>Algorithme</strong></span><div class="code_casio"><b>A&ang;</b></div><span class="type_casio"><strong>Casio</strong></span><div class="code_ti"><b>Disp A</b></div><span class="type_ti"><strong>TI</strong></span>
<div class="resultats_code"><p class="resultats_title">Exécution :</p>
<div class="resultats_content">
15
</div>
</div>
</div>
</div>
</div>
<div class="partie">
<h2>&bull; Les conditions</h2>
<img id="schema_condition" src="Images/schema_condition.png" title="Schéma d'une condition" alt="Schéma d'une condition" />
<div class="paragraphes" id="par3">
La résolution de certains problèmes conduit parfois à une situation dans laquelle la décision prise est soumise à <strong>condition</strong>.<br />
Si la <strong>condition</strong> est vérifiée, on effectue une première tâche, sinon on effectue une seconde tâche.
</div>
<br /><br />
<div class="paragraphes">
<div class="exemples_code">
<div class="code_algo" id="code_condition"><b>Si A = 1<br />Alors ...<br />(Sinon ...)<br />Fin_si</b></div><span class="type_algo" id="type_condition"><strong>Algorithme</strong></span>
<div class="code_casio" id="code_condition"><b>If A = 1<br />Then ...<br />(Else ...)<br />IfEnd</b></div><span class="type_casio" id="type_condition"><strong>Casio</strong></span>
<div class="code_ti" id="code_condition"><b>If A = 1<br />Then ...<br />(Else ...)<br />End</b></div><span class="type_ti" id="type_condition"><strong>TI</strong></span>
</div>
Le "<em>Sinon</em>" n'est pas systématique. Sans cette <strong>instruction</strong>, si la <strong>condition</strong> n'est pas vérifiée, la tâche n'est pas effectuée et l'<mark>algorithme</mark> passe à l'<strong>instruction</strong> suivante.
</div>
</div>
<div class="partie">
<h2>&bull; Les boucles</h2>
<div class="paragraphes">
Pendant l'<strong>exécution</strong> d'un <mark>programme</mark>, il est possible d'avoir à réaliser plusieurs fois de suites la même tâche.<br />
Il existe deux types de <strong>boucles</strong> :<br /><br />
- <strong><b>la boucle conditionelle</b></strong> : on répète les mêmes <strong>instructions</strong> tant qu'une <strong>condition</strong> est remplie.
<div class="exemples_code">
<div class="code_algo" id="code_condition"><b>Tant_que A = 1<br />...<br />...<br />Fin_tant_que</b></div><span class="type_algo" id="type_condition"><strong>Algorithme</strong></span>
<div class="code_casio" id="code_condition"><b>While A = 1<br />...<br />...<br />End</b></div><span class="type_casio" id="type_condition"><strong>Casio</strong></span>
<div class="code_ti" id="code_condition"><b>While A = 1<br />...<br />...<br />WhileEnd</b></div><span class="type_ti" id="type_condition"><strong>TI</strong></span>
</div>
- <strong><b>la boucle itérative</b></strong> : on répète les mêmes <strong>instructions</strong> un certain nombre de fois.
<div class="exemples_code">
<div class="code_algo" id="code_condition"><b>Pour A Allant_de 0 à 10<br />...<br />...<br />Fin_pour</b></div><span class="type_algo" id="type_condition"><strong>Algorithme</strong></span>
<div class="code_casio" id="code_condition"><b>For 0 &rarr; A To 10<br />...<br />...<br />Next</b></div><span class="type_casio" id="type_condition"><strong>Casio</strong></span>
<div class="code_ti" id="code_condition"><b>For(A,0,10)<br />...<br />...<br />End</b></div><span class="type_ti" id="type_condition"><strong>TI</strong></span>
</div>
</div>
</div>
</article>
<div id="pub_aide">
<script for=window language="JScript" src="https://www.pubdirecte.com/script/banniere.php?id=73608&ref=43885"></script>
</div>
</div>
<?php include("bas_de_page.php"); ?>
</body>
</html>

52
algo_soumis.php Normal file
View File

@ -0,0 +1,52 @@
<?php
include('config.php');
include_once 'mail.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Publier un algorithme</title>
</head>
<body>
<div id="content">
<?php include("menu.php");?>
<div id="contenu">
<?php
$prog = str_replace('@', ';', $_COOKIE["algo"]);
$prog = str_replace('¤', '+', $prog);
if(isset($_POST['titre'], $_POST['auteur'], $_POST['mail'], $_POST['description']) && $_POST['titre'] != "" && $_POST['auteur'] != "" && $_POST['mail'] != "" && $_POST['description'] != "")
{
$titre = str_replace('\\', '', $_POST['titre']);
$auteur = str_replace('\\', '', $_POST['auteur']);
$mail = str_replace('\\', '', $_POST['mail']);
$description = str_replace('\\', '', $_POST['description']);
$prog = str_replace('\\', '', $prog);
mysql_query("INSERT INTO exemples_en_attente(titre, auteur, mail, description, programme) VALUES('".$titre."', '".$auteur."', '".$mail."', '".$description."', '".$prog."')");
$id = mysql_insert_id();
$message = "<b>".$titre."</b><br /><br /><i>".$auteur."<br />".$mail."</i><br /><br />".$description."<br /><br />".$prog."<br /><br /><center><a href='/festivalgo/publier_admin.php?id=".$id."'>>>> Publier <<<</a></center>";
send_mail("bruno-godefroy@sfr.fr", 'Nouvel exemple : '.$titre, $message);
echo "<div class='message'>Votre algorithme a été soumis. Vous recevrez une réponse par mail prochainement.<br /><br />Merci de votre participation.</div>";
}
else
{
if($_POST['code'] == '')
echo "<div class='message'>Votre algorithme comporte des erreurs.<br />Corrigez les avant de le publier.</div>";
else
echo "<div class='message'>Une erreur s'est produite lors de la soumission de l'algorithme.</div>";
}
?>
</div>
</div>
<?php include("bas_de_page.php"); ?>
</body>
</html>

86
algo_soumis_admin.php Normal file
View File

@ -0,0 +1,86 @@
<?php
include('config.php');
include_once 'mail.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<script src="jquery.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Publier un algorithme</title>
</head>
<body>
<div id="content">
<?php include("menu.php");?>
<div id="contenu">
<?php
if(isset($_POST['titre'], $_POST['auteur'], $_POST['mail'], $_POST['description'], $_POST['code']) && $_POST['titre'] != "" && $_POST['auteur'] != "" && $_POST['mail'] != "" && $_POST['description'] != "" && $_POST['code'] != "" && $_POST['mdp'] == "studio3607")
{
if(mysql_query("INSERT INTO exemples(titre, auteur, mail, description, programme) VALUES('".$_POST['titre']."', '".$_POST['auteur']."', '".$_POST['mail']."', '".$_POST['description']."', '".$_POST['code']."')"))
{
echo "<div class='message'>Algorithme soumis avec succès !</div>";
$message = "
Vous avez posté récemment l'algorithme \"".$_POST['titre']."\" sur <a href='/festivalgo'>Festiv'Algo</a>.<br />
Félicitations, celui-ci vient d'être publié dans <a href='/festivalgo/exemples.php'>les exemples</a>.<br /><br />
Nous avons besoin de vos contributions. N'hésitez donc pas à publier de nouveaux algorithmes.<br />
Au plaisir de vous revoir sur <a href='/festivalgo'>Festiv'Algo</a> !<br /><br />
<i>Il s'agit d'un mail automatique. Merci de ne pas y répondre.</i>
";
send_mail($_POST['mail'], "Publication d'un algorithme sur Festiv'Algo", $message);
mysql_query('delete from exemples_en_attente where id = "'.$_GET['id'].'"');
}
else
echo "<div class='message'>Erreur php.</div>";
}
else
{
if(isset($_GET['id'], $_GET['case']) && $_POST['mdp'] == "studio3607")
{
$req = mysql_fetch_array(mysql_query('select titre, auteur, mail, description, programme from exemples_en_attente where id = "'.$_GET['id'].'"'));
if($_GET['case'] == 1)
{
$raisons = "
<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- votre algorithme a été jugé sans intêret<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- votre algorithme contient de la publicité ou un contenu choquant<br /></b>
";
}
else
{
$raisons = "
<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- votre algorithme existe déjà dans les exemples<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- vous avez déjà soumis cet algorithme<br /></b>
";
}
$message = "
Vous avez posté récemment l'algorithme \"".$req['titre']."\" sur <a href='/festivalgo'>Festiv'Algo</a>. Nous vous remercions pour cette initiative.<br /><br />
Cependant, celui-ci n'a pas été publié pour l'une des raisons suivantes :<br />"
.$raisons.
"<br />Merci de prendre en compte ces remarques pour vos futures publications.<br />
Au plaisir de vous revoir sur <a href='/festivalgo'>Festiv'Algo</a> !<br /><br />
<i>Il s'agit d'un mail automatique. Merci de ne pas y répondre.</i>
";
send_mail($req['mail'], "Publication d'un algorithme sur Festiv'Algo", $message);
mysql_query('delete from exemples_en_attente where id = "'.$_GET['id'].'"');
echo "<div class='message'>Email envoyé !</div>";
}
else
echo "<div class='message'>Erreur.</div>";
}
?>
</div>
</div>
<?php include("bas_de_page.php"); ?>
</body>
</html>

26
bas_de_page.php Normal file
View File

@ -0,0 +1,26 @@
<footer>
<table id="partenaires" border="0">
<tr>
<td><a class="Planete-Casio" href="http://www.planet-casio.com/Fr" target="_blank"><img src="Images/Planete-Casio.png" alt="Site communautaire de programmation des calculatrices Casio" title="Site communautaire de programmation des calculatrices Casio" /><div class="nom_part">Planète Casio</div></a></td>
<td><span class="espace"></span></td>
<td><a class="TI-Planet" href="http://tiplanet.org" target="_blank"><img src="Images/TI-Planet.png" alt="Site communautaire de programmation des calculatrices TI" title="Site communautaire de programmation des calculatrices TI" /><div class="nom_part">TI-Planet</div></a></td>
<td><span class="espace"></span></td>
<td><a class="mathematiques_magiques" href="http://therese.eveilleau.pagesperso-orange.fr" target="_blank"><img src="Images/mathematiques_magiques.png" alt="" title="Mathématiques magiques, ludiques et dynamiques pour l'école Primaire et le Secondaire" /><div class="nom_part">Maths Magiques</div></a></td>
</tr>
</table>
<p id="auteur"><mark>/festivalgo</mark> <!--&copy; créé par <strong>Nitrosax</strong> -->- 2013 | <a class="lien" href="contact.php">Nous contacter</a></p>
<p id="credits_images">Crédits images : <a class="lien" href="http://www.siteduzero.com" target=_blank>Site du Zéro</a></p>
</footer>
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-40310477-1']);
_gaq.push(['_setDomainName', 'festivalgo.fr']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

70
bbcode_function.php Normal file
View File

@ -0,0 +1,70 @@
<?php
//Fonction permettant de convertir du bbcode en du html
function bbcode_to_html($text)
{
$text = nl2br(htmlentities($text, ENT_QUOTES, 'UTF-8'));
$in = array(
'#\[b\](.*)\[/b\]#Usi',
'#\[i\](.*)\[/i\]#Usi',
'#\[u\](.*)\[/u\]#Usi',
'#\[s\](.*)\[/s\]#Usi',
'#\[img\](.*)\[/img\]#Usi',
'#\[url\]((ht|f)tps?\:\/\/(.*))\[/url\]#Usi',
'#\[url=((ht|f)tps?\:\/\/(.*))\](.*)\[/url\]#Usi',
'#\[left\](.*)\[/left\]#Usi',
'#\[center\](.*)\[/center\]#Usi',
'#\[right\](.*)\[/right\]#Usi'
);
$out = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<span style="text-decoration:underline;">$1</span>',
'<span style="text-decoration:line-through;">$1</span>',
'<img src="$1" alt="Image" />',
'<a href="$1">$1</a>',
'<a href="$1">$4</a>',
'<div style="text-align:left;">$1</div>',
'<div style="text-align:center;">$1</div>',
'<div style="text-align:right;">$1</div>'
);
$count = count($in)-1;
for($i=0;$i<=$count;$i++)
{
$text = preg_replace($in[$i],$out[$i],$text);
}
return $text;
}
//Fonction permettant de convertir du html en du bbcode
function html_to_bbcode($text)
{
$text = str_replace('<br />','',$text);
$in = array(
'#<strong>(.*)</strong>#Usi',
'#<em>(.*)</em>#Usi',
'#<span style="text-decoration:underline;">(.*)</span>#Usi',
'#<span style="text-decoration:line-through;">(.*)</span>#Usi',
'#<img src="(.*)" alt="Image" />#Usi',
'#<a href="(.*)">(.*)</a>#Usi',
'#<div style="text-align:left;">(.*)</div>#Usi',
'#<div style="text-align:center;">(.*)</div>#Usi',
'#<div style="text-align:right;">(.*)</div>#Usi'
);
$out = array(
'[b]$1[/b]',
'[i]$1[/i]',
'[u]$1[/u]',
'[s]$1[/s]',
'[img]$1[/img]',
'[url=$1]$2[/url]',
'[left]$1[/left]',
'[center]$1[/center]',
'[right]$1[/right]'
);
$count = count($in)-1;
for($i=0;$i<=$count;$i++)
{
$text = preg_replace($in[$i],$out[$i],$text);
}
return $text;
}
?>

407
class.pop3.php Normal file
View File

@ -0,0 +1,407 @@
<?php
/*~ class.pop3.php
.---------------------------------------------------------------------------.
| Software: PHPMailer - PHP email class |
| Version: 5.1 |
| Contact: via sourceforge.net support pages (also www.codeworxtech.com) |
| Info: http://phpmailer.sourceforge.net |
| Support: http://sourceforge.net/projects/phpmailer/ |
| ------------------------------------------------------------------------- |
| Admin: Andy Prevost (project admininistrator) |
| Authors: Andy Prevost (codeworxtech) codeworxtech@users.sourceforge.net |
| : Marcus Bointon (coolbru) coolbru@users.sourceforge.net |
| Founder: Brent R. Matzelle (original founder) |
| Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. |
| Copyright (c) 2001-2003, Brent R. Matzelle |
| ------------------------------------------------------------------------- |
| License: Distributed under the Lesser General Public License (LGPL) |
| http://www.gnu.org/copyleft/lesser.html |
| This program is distributed in the hope that it will be useful - WITHOUT |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| FITNESS FOR A PARTICULAR PURPOSE. |
| ------------------------------------------------------------------------- |
| We offer a number of paid services (www.codeworxtech.com): |
| - Web Hosting on highly optimized fast and secure servers |
| - Technology Consulting |
| - Oursourcing (highly qualified programmers and graphic designers) |
'---------------------------------------------------------------------------'
*/
/**
* PHPMailer - PHP POP Before SMTP Authentication Class
* NOTE: Designed for use with PHP version 5 and up
* @package PHPMailer
* @author Andy Prevost
* @author Marcus Bointon
* @copyright 2004 - 2009 Andy Prevost
* @license http://www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL)
* @version $Id: class.pop3.php 444 2009-05-05 11:22:26Z coolbru $
*/
/**
* POP Before SMTP Authentication Class
* Version 5.0.0
*
* Author: Richard Davey (rich@corephp.co.uk)
* Modifications: Andy Prevost
* License: LGPL, see PHPMailer License
*
* Specifically for PHPMailer to allow POP before SMTP authentication.
* Does not yet work with APOP - if you have an APOP account, contact Richard Davey
* and we can test changes to this script.
*
* This class is based on the structure of the SMTP class originally authored by Chris Ryan
*
* This class is rfc 1939 compliant and implements all the commands
* required for POP3 connection, authentication and disconnection.
*
* @package PHPMailer
* @author Richard Davey
*/
class POP3 {
/**
* Default POP3 port
* @var int
*/
public $POP3_PORT = 110;
/**
* Default Timeout
* @var int
*/
public $POP3_TIMEOUT = 30;
/**
* POP3 Carriage Return + Line Feed
* @var string
*/
public $CRLF = "\r\n";
/**
* Displaying Debug warnings? (0 = now, 1+ = yes)
* @var int
*/
public $do_debug = 2;
/**
* POP3 Mail Server
* @var string
*/
public $host;
/**
* POP3 Port
* @var int
*/
public $port;
/**
* POP3 Timeout Value
* @var int
*/
public $tval;
/**
* POP3 Username
* @var string
*/
public $username;
/**
* POP3 Password
* @var string
*/
public $password;
/////////////////////////////////////////////////
// PROPERTIES, PRIVATE AND PROTECTED
/////////////////////////////////////////////////
private $pop_conn;
private $connected;
private $error; // Error log array
/**
* Constructor, sets the initial values
* @access public
* @return POP3
*/
public function __construct() {
$this->pop_conn = 0;
$this->connected = false;
$this->error = null;
}
/**
* Combination of public events - connect, login, disconnect
* @access public
* @param string $host
* @param integer $port
* @param integer $tval
* @param string $username
* @param string $password
*/
public function Authorise ($host, $port = false, $tval = false, $username, $password, $debug_level = 0) {
$this->host = $host;
// If no port value is passed, retrieve it
if ($port == false) {
$this->port = $this->POP3_PORT;
} else {
$this->port = $port;
}
// If no port value is passed, retrieve it
if ($tval == false) {
$this->tval = $this->POP3_TIMEOUT;
} else {
$this->tval = $tval;
}
$this->do_debug = $debug_level;
$this->username = $username;
$this->password = $password;
// Refresh the error log
$this->error = null;
// Connect
$result = $this->Connect($this->host, $this->port, $this->tval);
if ($result) {
$login_result = $this->Login($this->username, $this->password);
if ($login_result) {
$this->Disconnect();
return true;
}
}
// We need to disconnect regardless if the login succeeded
$this->Disconnect();
return false;
}
/**
* Connect to the POP3 server
* @access public
* @param string $host
* @param integer $port
* @param integer $tval
* @return boolean
*/
public function Connect ($host, $port = false, $tval = 30) {
// Are we already connected?
if ($this->connected) {
return true;
}
/*
On Windows this will raise a PHP Warning error if the hostname doesn't exist.
Rather than supress it with @fsockopen, let's capture it cleanly instead
*/
set_error_handler(array(&$this, 'catchWarning'));
// Connect to the POP3 server
$this->pop_conn = fsockopen($host, // POP3 Host
$port, // Port #
$errno, // Error Number
$errstr, // Error Message
$tval); // Timeout (seconds)
// Restore the error handler
restore_error_handler();
// Does the Error Log now contain anything?
if ($this->error && $this->do_debug >= 1) {
$this->displayErrors();
}
// Did we connect?
if ($this->pop_conn == false) {
// It would appear not...
$this->error = array(
'error' => "Failed to connect to server $host on port $port",
'errno' => $errno,
'errstr' => $errstr
);
if ($this->do_debug >= 1) {
$this->displayErrors();
}
return false;
}
// Increase the stream time-out
// Check for PHP 4.3.0 or later
if (version_compare(phpversion(), '5.0.0', 'ge')) {
stream_set_timeout($this->pop_conn, $tval, 0);
} else {
// Does not work on Windows
if (substr(PHP_OS, 0, 3) !== 'WIN') {
socket_set_timeout($this->pop_conn, $tval, 0);
}
}
// Get the POP3 server response
$pop3_response = $this->getResponse();
// Check for the +OK
if ($this->checkResponse($pop3_response)) {
// The connection is established and the POP3 server is talking
$this->connected = true;
return true;
}
}
/**
* Login to the POP3 server (does not support APOP yet)
* @access public
* @param string $username
* @param string $password
* @return boolean
*/
public function Login ($username = '', $password = '') {
if ($this->connected == false) {
$this->error = 'Not connected to POP3 server';
if ($this->do_debug >= 1) {
$this->displayErrors();
}
}
if (empty($username)) {
$username = $this->username;
}
if (empty($password)) {
$password = $this->password;
}
$pop_username = "USER $username" . $this->CRLF;
$pop_password = "PASS $password" . $this->CRLF;
// Send the Username
$this->sendString($pop_username);
$pop3_response = $this->getResponse();
if ($this->checkResponse($pop3_response)) {
// Send the Password
$this->sendString($pop_password);
$pop3_response = $this->getResponse();
if ($this->checkResponse($pop3_response)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
/**
* Disconnect from the POP3 server
* @access public
*/
public function Disconnect () {
$this->sendString('QUIT');
fclose($this->pop_conn);
}
/////////////////////////////////////////////////
// Private Methods
/////////////////////////////////////////////////
/**
* Get the socket response back.
* $size is the maximum number of bytes to retrieve
* @access private
* @param integer $size
* @return string
*/
private function getResponse ($size = 128) {
$pop3_response = fgets($this->pop_conn, $size);
return $pop3_response;
}
/**
* Send a string down the open socket connection to the POP3 server
* @access private
* @param string $string
* @return integer
*/
private function sendString ($string) {
$bytes_sent = fwrite($this->pop_conn, $string, strlen($string));
return $bytes_sent;
}
/**
* Checks the POP3 server response for +OK or -ERR
* @access private
* @param string $string
* @return boolean
*/
private function checkResponse ($string) {
if (substr($string, 0, 3) !== '+OK') {
$this->error = array(
'error' => "Server reported an error: $string",
'errno' => 0,
'errstr' => ''
);
if ($this->do_debug >= 1) {
$this->displayErrors();
}
return false;
} else {
return true;
}
}
/**
* If debug is enabled, display the error message array
* @access private
*/
private function displayErrors () {
echo '<pre>';
foreach ($this->error as $single_error) {
print_r($single_error);
}
echo '</pre>';
}
/**
* Takes over from PHP for the socket warning handler
* @access private
* @param integer $errno
* @param string $errstr
* @param string $errfile
* @param integer $errline
*/
private function catchWarning ($errno, $errstr, $errfile, $errline) {
$this->error[] = array(
'error' => "Connecting to the POP3 server raised a PHP warning: ",
'errno' => $errno,
'errstr' => $errstr
);
}
// End of class
}
?>

814
class.smtp.php Normal file
View File

@ -0,0 +1,814 @@
<?php
/*~ class.smtp.php
.---------------------------------------------------------------------------.
| Software: PHPMailer - PHP email class |
| Version: 5.1 |
| Contact: via sourceforge.net support pages (also www.codeworxtech.com) |
| Info: http://phpmailer.sourceforge.net |
| Support: http://sourceforge.net/projects/phpmailer/ |
| ------------------------------------------------------------------------- |
| Admin: Andy Prevost (project admininistrator) |
| Authors: Andy Prevost (codeworxtech) codeworxtech@users.sourceforge.net |
| : Marcus Bointon (coolbru) coolbru@users.sourceforge.net |
| Founder: Brent R. Matzelle (original founder) |
| Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. |
| Copyright (c) 2001-2003, Brent R. Matzelle |
| ------------------------------------------------------------------------- |
| License: Distributed under the Lesser General Public License (LGPL) |
| http://www.gnu.org/copyleft/lesser.html |
| This program is distributed in the hope that it will be useful - WITHOUT |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| FITNESS FOR A PARTICULAR PURPOSE. |
| ------------------------------------------------------------------------- |
| We offer a number of paid services (www.codeworxtech.com): |
| - Web Hosting on highly optimized fast and secure servers |
| - Technology Consulting |
| - Oursourcing (highly qualified programmers and graphic designers) |
'---------------------------------------------------------------------------'
*/
/**
* PHPMailer - PHP SMTP email transport class
* NOTE: Designed for use with PHP version 5 and up
* @package PHPMailer
* @author Andy Prevost
* @author Marcus Bointon
* @copyright 2004 - 2008 Andy Prevost
* @license http://www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL)
* @version $Id: class.smtp.php 444 2009-05-05 11:22:26Z coolbru $
*/
/**
* SMTP is rfc 821 compliant and implements all the rfc 821 SMTP
* commands except TURN which will always return a not implemented
* error. SMTP also provides some utility methods for sending mail
* to an SMTP server.
* original author: Chris Ryan
*/
class SMTP {
/**
* SMTP server port
* @var int
*/
public $SMTP_PORT = 25;
/**
* SMTP reply line ending
* @var string
*/
public $CRLF = "\r\n";
/**
* Sets whether debugging is turned on
* @var bool
*/
public $do_debug; // the level of debug to perform
/**
* Sets VERP use on/off (default is off)
* @var bool
*/
public $do_verp = false;
/////////////////////////////////////////////////
// PROPERTIES, PRIVATE AND PROTECTED
/////////////////////////////////////////////////
private $smtp_conn; // the socket to the server
private $error; // error if any on the last call
private $helo_rply; // the reply the server sent to us for HELO
/**
* Initialize the class so that the data is in a known state.
* @access public
* @return void
*/
public function __construct() {
$this->smtp_conn = 0;
$this->error = null;
$this->helo_rply = null;
$this->do_debug = 0;
}
/////////////////////////////////////////////////
// CONNECTION FUNCTIONS
/////////////////////////////////////////////////
/**
* Connect to the server specified on the port specified.
* If the port is not specified use the default SMTP_PORT.
* If tval is specified then a connection will try and be
* established with the server for that number of seconds.
* If tval is not specified the default is 30 seconds to
* try on the connection.
*
* SMTP CODE SUCCESS: 220
* SMTP CODE FAILURE: 421
* @access public
* @return bool
*/
public function Connect($host, $port = 0, $tval = 30) {
// set the error val to null so there is no confusion
$this->error = null;
// make sure we are __not__ connected
if($this->connected()) {
// already connected, generate error
$this->error = array("error" => "Already connected to a server");
return false;
}
if(empty($port)) {
$port = $this->SMTP_PORT;
}
// connect to the smtp server
$this->smtp_conn = @fsockopen($host, // the host of the server
$port, // the port to use
$errno, // error number if any
$errstr, // error message if any
$tval); // give up after ? secs
// verify we connected properly
if(empty($this->smtp_conn)) {
$this->error = array("error" => "Failed to connect to server",
"errno" => $errno,
"errstr" => $errstr);
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": $errstr ($errno)" . $this->CRLF . '<br />';
}
return false;
}
// SMTP server can take longer to respond, give longer timeout for first read
// Windows does not have support for this timeout function
if(substr(PHP_OS, 0, 3) != "WIN")
socket_set_timeout($this->smtp_conn, $tval, 0);
// get any announcement
$announce = $this->get_lines();
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $announce . $this->CRLF . '<br />';
}
return true;
}
/**
* Initiate a TLS communication with the server.
*
* SMTP CODE 220 Ready to start TLS
* SMTP CODE 501 Syntax error (no parameters allowed)
* SMTP CODE 454 TLS not available due to temporary reason
* @access public
* @return bool success
*/
public function StartTLS() {
$this->error = null; # to avoid confusion
if(!$this->connected()) {
$this->error = array("error" => "Called StartTLS() without being connected");
return false;
}
fputs($this->smtp_conn,"STARTTLS" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />';
}
if($code != 220) {
$this->error =
array("error" => "STARTTLS not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
// Begin encrypted connection
if(!stream_socket_enable_crypto($this->smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
return false;
}
return true;
}
/**
* Performs SMTP authentication. Must be run after running the
* Hello() method. Returns true if successfully authenticated.
* @access public
* @return bool
*/
public function Authenticate($username, $password) {
// Start authentication
fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($code != 334) {
$this->error =
array("error" => "AUTH not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
// Send encoded username
fputs($this->smtp_conn, base64_encode($username) . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($code != 334) {
$this->error =
array("error" => "Username not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
// Send encoded password
fputs($this->smtp_conn, base64_encode($password) . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($code != 235) {
$this->error =
array("error" => "Password not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
return true;
}
/**
* Returns true if connected to a server otherwise false
* @access public
* @return bool
*/
public function Connected() {
if(!empty($this->smtp_conn)) {
$sock_status = socket_get_status($this->smtp_conn);
if($sock_status["eof"]) {
// the socket is valid but we are not connected
if($this->do_debug >= 1) {
echo "SMTP -> NOTICE:" . $this->CRLF . "EOF caught while checking if connected";
}
$this->Close();
return false;
}
return true; // everything looks good
}
return false;
}
/**
* Closes the socket and cleans up the state of the class.
* It is not considered good to use this function without
* first trying to use QUIT.
* @access public
* @return void
*/
public function Close() {
$this->error = null; // so there is no confusion
$this->helo_rply = null;
if(!empty($this->smtp_conn)) {
// close the connection and cleanup
fclose($this->smtp_conn);
$this->smtp_conn = 0;
}
}
/////////////////////////////////////////////////
// SMTP COMMANDS
/////////////////////////////////////////////////
/**
* Issues a data command and sends the msg_data to the server
* finializing the mail transaction. $msg_data is the message
* that is to be send with the headers. Each header needs to be
* on a single line followed by a <CRLF> with the message headers
* and the message body being seperated by and additional <CRLF>.
*
* Implements rfc 821: DATA <CRLF>
*
* SMTP CODE INTERMEDIATE: 354
* [data]
* <CRLF>.<CRLF>
* SMTP CODE SUCCESS: 250
* SMTP CODE FAILURE: 552,554,451,452
* SMTP CODE FAILURE: 451,554
* SMTP CODE ERROR : 500,501,503,421
* @access public
* @return bool
*/
public function Data($msg_data) {
$this->error = null; // so no confusion is caused
if(!$this->connected()) {
$this->error = array(
"error" => "Called Data() without being connected");
return false;
}
fputs($this->smtp_conn,"DATA" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />';
}
if($code != 354) {
$this->error =
array("error" => "DATA command not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
/* the server is ready to accept data!
* according to rfc 821 we should not send more than 1000
* including the CRLF
* characters on a single line so we will break the data up
* into lines by \r and/or \n then if needed we will break
* each of those into smaller lines to fit within the limit.
* in addition we will be looking for lines that start with
* a period '.' and append and additional period '.' to that
* line. NOTE: this does not count towards limit.
*/
// normalize the line breaks so we know the explode works
$msg_data = str_replace("\r\n","\n",$msg_data);
$msg_data = str_replace("\r","\n",$msg_data);
$lines = explode("\n",$msg_data);
/* we need to find a good way to determine is headers are
* in the msg_data or if it is a straight msg body
* currently I am assuming rfc 822 definitions of msg headers
* and if the first field of the first line (':' sperated)
* does not contain a space then it _should_ be a header
* and we can process all lines before a blank "" line as
* headers.
*/
$field = substr($lines[0],0,strpos($lines[0],":"));
$in_headers = false;
if(!empty($field) && !strstr($field," ")) {
$in_headers = true;
}
$max_line_length = 998; // used below; set here for ease in change
while(list(,$line) = @each($lines)) {
$lines_out = null;
if($line == "" && $in_headers) {
$in_headers = false;
}
// ok we need to break this line up into several smaller lines
while(strlen($line) > $max_line_length) {
$pos = strrpos(substr($line,0,$max_line_length)," ");
// Patch to fix DOS attack
if(!$pos) {
$pos = $max_line_length - 1;
$lines_out[] = substr($line,0,$pos);
$line = substr($line,$pos);
} else {
$lines_out[] = substr($line,0,$pos);
$line = substr($line,$pos + 1);
}
/* if processing headers add a LWSP-char to the front of new line
* rfc 822 on long msg headers
*/
if($in_headers) {
$line = "\t" . $line;
}
}
$lines_out[] = $line;
// send the lines to the server
while(list(,$line_out) = @each($lines_out)) {
if(strlen($line_out) > 0)
{
if(substr($line_out, 0, 1) == ".") {
$line_out = "." . $line_out;
}
}
fputs($this->smtp_conn,$line_out . $this->CRLF);
}
}
// message data has been sent
fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />';
}
if($code != 250) {
$this->error =
array("error" => "DATA not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
return true;
}
/**
* Sends the HELO command to the smtp server.
* This makes sure that we and the server are in
* the same known state.
*
* Implements from rfc 821: HELO <SP> <domain> <CRLF>
*
* SMTP CODE SUCCESS: 250
* SMTP CODE ERROR : 500, 501, 504, 421
* @access public
* @return bool
*/
public function Hello($host = '') {
$this->error = null; // so no confusion is caused
if(!$this->connected()) {
$this->error = array(
"error" => "Called Hello() without being connected");
return false;
}
// if hostname for HELO was not specified send default
if(empty($host)) {
// determine appropriate default to send to server
$host = "localhost";
}
// Send extended hello first (RFC 2821)
if(!$this->SendHello("EHLO", $host)) {
if(!$this->SendHello("HELO", $host)) {
return false;
}
}
return true;
}
/**
* Sends a HELO/EHLO command.
* @access private
* @return bool
*/
private function SendHello($hello, $host) {
fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER: " . $rply . $this->CRLF . '<br />';
}
if($code != 250) {
$this->error =
array("error" => $hello . " not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
$this->helo_rply = $rply;
return true;
}
/**
* Starts a mail transaction from the email address specified in
* $from. Returns true if successful or false otherwise. If True
* the mail transaction is started and then one or more Recipient
* commands may be called followed by a Data command.
*
* Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>
*
* SMTP CODE SUCCESS: 250
* SMTP CODE SUCCESS: 552,451,452
* SMTP CODE SUCCESS: 500,501,421
* @access public
* @return bool
*/
public function Mail($from) {
$this->error = null; // so no confusion is caused
if(!$this->connected()) {
$this->error = array(
"error" => "Called Mail() without being connected");
return false;
}
$useVerp = ($this->do_verp ? "XVERP" : "");
fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />';
}
if($code != 250) {
$this->error =
array("error" => "MAIL not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
return true;
}
/**
* Sends the quit command to the server and then closes the socket
* if there is no error or the $close_on_error argument is true.
*
* Implements from rfc 821: QUIT <CRLF>
*
* SMTP CODE SUCCESS: 221
* SMTP CODE ERROR : 500
* @access public
* @return bool
*/
public function Quit($close_on_error = true) {
$this->error = null; // so there is no confusion
if(!$this->connected()) {
$this->error = array(
"error" => "Called Quit() without being connected");
return false;
}
// send the quit command to the server
fputs($this->smtp_conn,"quit" . $this->CRLF);
// get any good-bye messages
$byemsg = $this->get_lines();
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $byemsg . $this->CRLF . '<br />';
}
$rval = true;
$e = null;
$code = substr($byemsg,0,3);
if($code != 221) {
// use e as a tmp var cause Close will overwrite $this->error
$e = array("error" => "SMTP server rejected quit command",
"smtp_code" => $code,
"smtp_rply" => substr($byemsg,4));
$rval = false;
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $e["error"] . ": " . $byemsg . $this->CRLF . '<br />';
}
}
if(empty($e) || $close_on_error) {
$this->Close();
}
return $rval;
}
/**
* Sends the command RCPT to the SMTP server with the TO: argument of $to.
* Returns true if the recipient was accepted false if it was rejected.
*
* Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>
*
* SMTP CODE SUCCESS: 250,251
* SMTP CODE FAILURE: 550,551,552,553,450,451,452
* SMTP CODE ERROR : 500,501,503,421
* @access public
* @return bool
*/
public function Recipient($to) {
$this->error = null; // so no confusion is caused
if(!$this->connected()) {
$this->error = array(
"error" => "Called Recipient() without being connected");
return false;
}
fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />';
}
if($code != 250 && $code != 251) {
$this->error =
array("error" => "RCPT not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
return true;
}
/**
* Sends the RSET command to abort and transaction that is
* currently in progress. Returns true if successful false
* otherwise.
*
* Implements rfc 821: RSET <CRLF>
*
* SMTP CODE SUCCESS: 250
* SMTP CODE ERROR : 500,501,504,421
* @access public
* @return bool
*/
public function Reset() {
$this->error = null; // so no confusion is caused
if(!$this->connected()) {
$this->error = array(
"error" => "Called Reset() without being connected");
return false;
}
fputs($this->smtp_conn,"RSET" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />';
}
if($code != 250) {
$this->error =
array("error" => "RSET failed",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
return true;
}
/**
* Starts a mail transaction from the email address specified in
* $from. Returns true if successful or false otherwise. If True
* the mail transaction is started and then one or more Recipient
* commands may be called followed by a Data command. This command
* will send the message to the users terminal if they are logged
* in and send them an email.
*
* Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF>
*
* SMTP CODE SUCCESS: 250
* SMTP CODE SUCCESS: 552,451,452
* SMTP CODE SUCCESS: 500,501,502,421
* @access public
* @return bool
*/
public function SendAndMail($from) {
$this->error = null; // so no confusion is caused
if(!$this->connected()) {
$this->error = array(
"error" => "Called SendAndMail() without being connected");
return false;
}
fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
if($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />';
}
if($code != 250) {
$this->error =
array("error" => "SAML not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />';
}
return false;
}
return true;
}
/**
* This is an optional command for SMTP that this class does not
* support. This method is here to make the RFC821 Definition
* complete for this class and __may__ be implimented in the future
*
* Implements from rfc 821: TURN <CRLF>
*
* SMTP CODE SUCCESS: 250
* SMTP CODE FAILURE: 502
* SMTP CODE ERROR : 500, 503
* @access public
* @return bool
*/
public function Turn() {
$this->error = array("error" => "This method, TURN, of the SMTP ".
"is not implemented");
if($this->do_debug >= 1) {
echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF . '<br />';
}
return false;
}
/**
* Get the current error
* @access public
* @return array
*/
public function getError() {
return $this->error;
}
/////////////////////////////////////////////////
// INTERNAL FUNCTIONS
/////////////////////////////////////////////////
/**
* Read in as many lines as possible
* either before eof or socket timeout occurs on the operation.
* With SMTP we can tell if we have more lines to read if the
* 4th character is '-' symbol. If it is a space then we don't
* need to read anything else.
* @access private
* @return string
*/
private function get_lines() {
$data = "";
while($str = @fgets($this->smtp_conn,515)) {
if($this->do_debug >= 4) {
echo "SMTP -> get_lines(): \$data was \"$data\"" . $this->CRLF . '<br />';
echo "SMTP -> get_lines(): \$str is \"$str\"" . $this->CRLF . '<br />';
}
$data .= $str;
if($this->do_debug >= 4) {
echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF . '<br />';
}
// if 4th character is a space, we are done reading, break the loop
if(substr($str,3,1) == " ") { break; }
}
return $data;
}
}
?>

1423
compil1.js Normal file

File diff suppressed because it is too large Load Diff

103
compil2.js Normal file
View File

@ -0,0 +1,103 @@
function detecte_instruction(recu, langage_source) {
mot = recu.toLowerCase();
if(mot == "&ang;")
mot = unescape("%u2220");
if(((mot == "lire" || mot == "afficher" || mot == "si" || mot == "alors" || mot == "sinon" || mot == "fin_si" || mot == "tant_que" || mot == "fin_tant_que" || mot == "pour" || mot == "allant_de" || mot == "à" || mot == "fin_pour" || mot == "prend_la_valeur" || mot == "hasard" || mot == "et" || mot == "ou" || mot == "partie_entière" || mot == "partie_décimale" || mot == "valeur_absolue" || mot == "fin_programme") && langage_source == 1) || ((mot == "?" || escape(mot) == "%u2220" || mot == "ifend" || mot == "for" || mot == "to" || mot == "next" || mot == "#ran" || mot == "int" || mot == "frac" || mot == "abs") && langage_source == 2) || ((mot == "input" || mot == "disp" || mot == "end" || mot == "for(" || mot == "rand" || mot == "int(" || mot == "fpart(" || mot == "abs(") && langage_source == 3) || ((mot == "if" || mot == "then" || mot == "else" || mot == "while" || mot == "whileend" || escape(mot) == "%u2192" || mot == "and" || mot == "or" || mot == "stop") && (langage_source == 2 || langage_source == 3)))
return mot;
else
return "undefined";
}
function detecte_signe(mot) {
if(mot == "=" || mot == "<" || mot == ">" || escape(mot) == "%u2265" || escape(mot) == "%u2264" || escape(mot) == "%u2260")
return "signe";
else
return "undefined";
}
function detecte_operation(mot) {
if(mot == "+" || mot == "-" || mot == "*" || mot == "/" ||mot == "%" || mot == "^")
return "operation";
else
return "undefined";
}
function detecte_parenthese(mot) {
if(mot == "(" || mot == ")")
return "parenthese";
else
return "undefined";
}
function detecte_outils(mot, langage_source) {
mot = mot.toLowerCase();
if(mot == "racine_carrée" || mot == "exp" || mot == "ln" || (langage_source == 1 && (mot == "hasard" || mot == "partie_décimale" || mot == "partie_entière" || mot == "valeur_absolue")) || (langage_source == 2 && (mot == "#ran" || mot == "int" || mot == "frac" || mot == "abs")) || (langage_source == 3 && (mot == "rand" || mot == "int" || mot == "fpart" || mot == "abs")))
return "outils";
else
return "undefined";
}
function verifie_conditions(mot_recu, ligne) {
if(conditions_ouvertes - conditions_fermees <= 0)
{
erreur_syntaxe[4 * nb_erreurs + 1] = mot_recu;
erreur_syntaxe[4 * nb_erreurs + 2] = "instruction_illegale";
erreur_syntaxe[4 * nb_erreurs + 3] = ligne;
erreur_syntaxe[4 * nb_erreurs + 4] = "conditions";
nb_erreurs++;
}
}
function verifie_boucles(mot_recu, ligne, langage) {
if(boucles_ouvertes - boucles_fermees <= 0)
{
erreur_syntaxe[4 * nb_erreurs + 1] = mot_recu;
erreur_syntaxe[4 * nb_erreurs + 2] = "instruction_illegale";
erreur_syntaxe[4 * nb_erreurs + 3] = ligne;
if(langage == 1)
erreur_syntaxe[4 * nb_erreurs + 4] = "boucles \"Tant_que\"";
else
erreur_syntaxe[4 * nb_erreurs + 4] = "boucles \"While\"";
nb_erreurs++;
}
}
function verifie_pour(mot_recu, ligne, langage) {
if(pour_ouverts - pour_fermes <= 0)
{
erreur_syntaxe[4 * nb_erreurs + 1] = mot_recu;
erreur_syntaxe[4 * nb_erreurs + 2] = "instruction_illegale";
erreur_syntaxe[4 * nb_erreurs + 3] = ligne;
if(langage == 1)
erreur_syntaxe[4 * nb_erreurs + 4] = "boucles \"Pour\"";
else
erreur_syntaxe[4 * nb_erreurs + 4] = "boucles \"For\"";
nb_erreurs++;
}
}
function affiche_resultats() {
var z, n = 0;
for(z = 0; z < j; z++)
{
if(z == indices[n])
{
alert("ok");
n++;
}
alert(code[z]);
}
}
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value;
}

30
config.php Normal file
View File

@ -0,0 +1,30 @@
<?php
/******************************************************
----------------Configuration Obligatoire--------------
Veuillez modifier les variables ci-dessous pour que la
bdd puisse fonctionner correctement.
******************************************************/
//On se connecte a la base de donnee
mysql_connect("pc-sql.net.labate.me", "festivalgo", "G4e3MzDuz2P1j5qz");
mysql_select_db('festivalgo');
//Nom dutilisateur de ladministrateur
$admin='Nitrosax';
/******************************************************
----------------Configuration Optionelle---------------
******************************************************/
//Nom du fichier de laccueil
$url_home = 'forum.php';
//Nom du design
$design = 'design_forum';
/******************************************************
----------------------Initialisation-------------------
******************************************************/
include('init.php');
?>

39
contact.php Normal file
View File

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<link rel="stylesheet" type="text/css" href="exemples.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<script type="text/javascript" src="functions.js"></script>
<script type="text/javascript" src="publier.js"></script>
<script src="jquery.js"></script>
<script type="text/javascript" src="jquery.cleditor.min.js"></script>
<script type="text/javascript" src="jquery.cleditor.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Contact</title>
</head>
<body>
<div id="content">
<?php include("menu.php");?>
<div id="contenu">
<article>
<form action="message_envoye.php" method="post">
<h4 class="publier_titres" for="title">Nom</h4>
<input type="text" name="nom" id="nom" style="display: block; margin-left: 198px;" />
<h4 class="publier_titres" for="title">E-mail</h4>
<input type="text" name="mail" id="mail" style="display: block; margin-left: 198px;" />
<h4 class="publier_titres" for="title">Objet</h4>
<input type="text" name="objet" id="objet" style="display: block; margin-left: 198px;" />
<h4 class="publier_titres" for="title">Message</h4>
<textarea name="message" id="message" cols="70" rows="6" style="resize: none;"></textarea><br /><br />
<input id="submit" type="submit" value="Envoyer" />
</form>
</article>
</div>
</div>
<?php include("bas_de_page.php"); ?>
</body>
</html>

64
database.sql Normal file
View File

@ -0,0 +1,64 @@
-- --------------------------------------------------------
--
-- Structure de la table `categories`
--
CREATE TABLE `categories` (
`id` smallint(6) NOT NULL,
`name` varchar(256) NOT NULL,
`description` text NOT NULL,
`position` smallint(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Structure de la table `pm`
--
CREATE TABLE `pm` (
`id` bigint(20) NOT NULL,
`id2` int(11) NOT NULL,
`title` varchar(256) NOT NULL,
`user1` bigint(20) NOT NULL,
`user2` bigint(20) NOT NULL,
`message` text NOT NULL,
`timestamp` int(10) NOT NULL,
`user1read` varchar(3) NOT NULL,
`user2read` varchar(3) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Structure de la table `topics`
--
CREATE TABLE `topics` (
`parent` smallint(6) NOT NULL,
`id` int(11) NOT NULL,
`id2` int(11) NOT NULL,
`title` varchar(256) NOT NULL,
`message` longtext NOT NULL,
`authorid` int(11) NOT NULL,
`timestamp` int(11) NOT NULL,
`timestamp2` int(11) NOT NULL,
PRIMARY KEY (`id`,`id2`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Structure de la table `users`
--
CREATE TABLE `users` (
`id` bigint(20) NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`avatar` text NOT NULL,
`signup_date` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

84
delete_category.php Normal file
View File

@ -0,0 +1,84 @@
<?php
//Cette page permet de supprimer une catégorie
include('config.php');
if(isset($_GET['id']))
{
$id = intval($_GET['id']);
$dn1 = mysql_fetch_array(mysql_query('select count(id) as nb1, name, position from categories where id="'.$id.'" group by id'));
if($dn1['nb1']>0)
{
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Supprimer une catégorie - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - forum</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/Images/logo.png" alt="forum" /></a>
</div>
<div class="content">
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> &gt; Supprimer la catégorie
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>
<div class="clean"></div>
</div>
<?php
if(isset($_POST['confirm']))
{
if(mysql_query('delete from categories where id="'.$id.'"') and mysql_query('delete from topics where parent="'.$id.'"') and mysql_query('update categories set position=position-1 where position>"'.$dn1['position'].'"'))
{
?>
<div class="message">La catégorie et ses sujets a bien été supprimée.<br />
<a href="<?php echo $url_home; ?>">Retourner à l'index du forum</a></div>
<?php
}
else
{
echo 'Une erreur s\'est produite lors de la suppresssion de la catégorie et de ses sujets.';
}
}
else
{
?>
<form action="delete_category.php?id=<?php echo $id; ?>" method="post">
Êtes-vous sûr de vouloir supprimer cette catégorie et l'ensemble de ses sujets?
<input type="hidden" name="confirm" value="true" />
<input type="submit" value="Oui" /> <input type="button" value="Non" onclick="javascript:history.go(-1);" />
</form>
<?php
}
?>
</div>
<div class="foot"><a href="http://www.supportduweb.com/scripts_tutoriaux-code-source-89-simple-php-forum-script-forum-en-php-facile-simple-script-code-telecharger-forum-php-gratuit-mysql.html">Simple PHP forum Script</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>
<?php
}
else
{
echo '<h2>Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: <a href="login.php">Connexion</a> - <a href="signup.php">Inscription</a></h2>';
}
}
else
{
echo '<h2>La catégorie que vous désirez supprimer n\'existe pas.</h2>';
}
}
else
{
echo '<h2>L\'identifiant de la catégorie à supprimer n\'est pas défini</h2>';
}
?>

91
delete_topic.php Normal file
View File

@ -0,0 +1,91 @@
<?php
//Cette page permet de supprimer un sujet
include('config.php');
if(isset($_GET['id']))
{
$id = intval($_GET['id']);
if(isset($_SESSION['username']))
{
$dn1 = mysql_fetch_array(mysql_query('select count(t.id) as nb1, t.title, t.parent, c.name from topics as t, categories as c where t.id="'.$id.'" and t.id2=1 and c.id=t.parent group by t.id'));
if($dn1['nb1']>0)
{
if($_SESSION['username']==$admin)
{
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Supprimer un sujet - <?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?> - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - forum</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/Images/logo.png" alt="forum" /></a>
</div>
<div class="content">
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; <a href="list_topics.php?parent=<?php echo $dn1['parent']; ?>"><?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?></a> &gt; <a href="read_topic.php?id=<?php echo $id; ?>"><?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?></a> &gt; Supprimer le sujet
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>
<div class="clean"></div>
</div>
<?php
if(isset($_POST['confirm']))
{
if(mysql_query('delete from topics where id="'.$id.'"'))
{
?>
<div class="message">Le sujet a bien été supprimé.<br />
<a href="list_topics.php?parent=<?php echo $dn1['parent']; ?>">Retourner au sujet</a></div>
<?php
}
else
{
echo 'Une erreur s\'est produite lors de la suppression du sujet.';
}
}
else
{
?>
<form action="delete_topic.php?id=<?php echo $id; ?>" method="post">
Êtes-vous sûr de vouloir supprimer ce sujet?
<input type="hidden" name="confirm" value="true" />
<input type="submit" value="Oui" /> <input type="button" value="Non" onclick="javascript:history.go(-1);" />
</form>
<?php
}
?>
</div>
<div class="foot"><a href="http://www.supportduweb.com/scripts_tutoriaux-code-source-89-simple-php-forum-script-forum-en-php-facile-simple-script-code-telecharger-forum-php-gratuit-mysql.html">Simple PHP forum Script</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>
<?php
}
else
{
echo '<h2>Vous n\'avez pas le droit de supprimer ce sujet.</h2>';
}
}
else
{
echo '<h2>Le sujet que vous désirez supprimer n\'existe pas.</h2>';
}
}
else
{
echo '<h2>Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: <a href="login.php">Connexion</a> - <a href="signup.php">Inscription</a></h2>';
}
}
else
{
echo '<h2>Un identifiant du sujet que vous désirez supprimer n\'est pas défini.</h2>';
}
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 B

BIN
design_forum/images/up.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

268
design_forum/style.css Normal file
View File

@ -0,0 +1,268 @@
/*****************************************************/
/****General****/
/**
{
margin:0px;
padding:0px;
}*/
a
{
text-decoration:none;
color:#333333;
}
a:hover
{
color:#000000;
}
img, table, tr, td
{
border:0px;
}
h1
{
text-align:center;
margin:0px;
padding:0px;
}
.clean
{
clear:both;
}
.left
{
text-align:left;
}
.center
{
text-align:center;
}
input[type=text], input[type=submit], input[type=button], input[type=password]
{
width:150px;
}
input[type=submit]
{
margin-top: 10px;
}
label
{
width: 200px;
display: inline-block;
vertical-align: top;
text-align: left;
margin-bottom: 8px;
}
#se_souvenir
{
width: 351px;
}
.message_buttons input
{
width:auto;
padding:0px 5px;
}
.button
{
padding:5px 15px;
vertical-align:middle;
border:1px solid #aaaaaa;
font-weight:bold;
background:url('Images/button.png') repeat-x;
-moz-border-radius:6px;
-webkit-border-radius:6px;
border-radius:6px;
display:inline-block;
}
#content table
{
border-spacing:0px;
background:#ffffff;
padding:0px;
width:95%;
margin:5px auto 18px auto;
background-color: rgb(241, 189, 23);
border: solid;
border-width: 4px;
border-radius: 10px;
border-color: rgb(233, 153, 10);
}
tr
{
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
margin:0px;
}
td, th
{
margin:0px;
border:0px;
padding:3px;
text-align:center;
}
/*****************************************************/
/****Blocks****/
.header
{
margin:auto;
margin-top:10px;
padding:15px;
background:url('Images/bluec_30p.png');
width:60%;
-moz-border-radius:20px;
-webkit-border-radius:20px;
border-radius:20px;
text-align:center;
}
.foot
{
text-align:center;
background:url('Images/bluec_30p.png');
width:60%;
-moz-border-radius:15px;
-webkit-border-radius:15px;
border-radius:15px;
padding:10px;
margin:20px auto;
}
.content
{
background-color: #FFD745;
border: solid;
border-width: 4px;
border-color: #FAC801;
font-family: Normal, Arial;
margin-left: 45px;
margin-right: 45px;
border-radius:20px;
padding:20px;
margin-top:10px;
}
.box_left
{
float:left;
}
.box_right
{
float:right;
}
.box
{
border: solid;
border-width: 4px;
border-radius: 10px;
border-color: #FAC801;
margin:5px auto 30px auto;
padding: 5px 10px 5px 10px;
}
.login
{
width:355px;
margin:auto;
text-align:left;
}
.box_login
{
background-color: rgb(250, 184, 43);
border: solid;
border-width: 4px;
border-color: rgb(247, 154, 14);
width:360px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
margin:auto;
padding:20px;
margin-top:20px;
margin-bottom: 38px;
color:#ffffff;
}
/*****************************************************/
/****Content****/
.champs
{
margin-bottom: 8px;
}
#memorize
{
position: absolute;
top: 419px;
left: 510px;
}
.big
{
font-size:1.2em;
}
.small
{
font-size:0.7em;
}
.message
{
-moz-border-radius:20px;
-webkit-border-radius:20px;
border-radius:20px;
padding:20px;
margin:auto;
width:500px;
background:url('Images/black_40p.png');
color:#ffffff;
text-align:center;
font-weight:bold;
margin-top:20px;
}
.messages_table td
{
border-top:1px solid #cccccc;
vertical-align:top;
}
.author
{
width:150px;
border-right:1px solid #cccccc;
}
.title_cell
{
width:45%;
}
.date
{
font-style:italic;
text-align:right;
font-size:0.9em;
margin-right:10px;
}
.edit
{
float:left;
}
.forum_ntop, .forum_nrep, .forum_act, .forum_auth
{
width:100px;
}
td.forum_cat, td.forum_tops
{
padding-left:15px;
text-align:left;
}
.categories_table td, .categories_table th, .topics_table td, .topics_table th, .list_pm td, .list_pm th
{
border-bottom:1px solid #cccccc;
}
.categories_table tr:last-child td, .topics_table tr:last-child td, .list_pm tr:last-child td
{
border-bottom:0px;
}
td.forum_cat .title
{
font-weight:bold;
}
td.forum_cat .description
{
padding-left:5px;
}

94
edit_category.php Normal file
View File

@ -0,0 +1,94 @@
<?php
//Cette page permet de modifier une categorie
include('config.php');
if(isset($_GET['id']))
{
$id = intval($_GET['id']);
$dn1 = mysql_fetch_array(mysql_query('select count(id) as nb1, name, description from categories where id="'.$id.'" group by id'));
if($dn1['nb1']>0)
{
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Modifier une catégorie - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - forum</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/Images/logo.png" alt="forum" /></a>
</div>
<div class="content">
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> &gt; Modifier la catégorie
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>
<div class="clean"></div>
</div>
<?php
if(isset($_POST['name'], $_POST['description']) and $_POST['name']!='')
{
$name = $_POST['name'];
$description = $_POST['description'];
if(get_magic_quotes_gpc())
{
$name = stripslashes($name);
$description = stripslashes($description);
}
$name = mysql_real_escape_string($name);
$description = mysql_real_escape_string($description);
if(mysql_query('update categories set name="'.$name.'", description="'.$description.'" where id="'.$id.'"'))
{
?>
<div class="message">La catégorie a bien été modifiée.<br />
<a href="<?php echo $url_home; ?>">Retourner à l'index du forum</a></div>
<?php
}
else
{
echo 'Une erreur s\'est produite lors de la modification de la catégorie.';
}
}
else
{
?>
<form action="edit_category.php?id=<?php echo $id; ?>" method="post">
<label for="name">Nom</label><input type="text" name="name" id="name" value="<?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?>" /><br />
<label for="description">Description</label>(html accepté)<br />
<textarea name="description" id="description" cols="70" rows="6"><?php echo htmlentities($dn1['description'], ENT_QUOTES, 'UTF-8'); ?></textarea><br />
<input type="submit" value="Modifier" />
</form>
<?php
}
?>
</div>
<div class="foot"><a href="http://www.supportduweb.com/scripts_tutoriaux-code-source-89-simple-php-forum-script-forum-en-php-facile-simple-script-code-telecharger-forum-php-gratuit-mysql.html">Simple PHP forum Script</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>
<?php
}
else
{
echo '<h2>Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: <a href="login.php">Connexion</a> - <a href="signup.php">Inscription</a></h2>';
}
}
else
{
echo '<h2>La catégorie que vous désirez modifier n\'existe pas.</h2>';
}
}
else
{
echo '<h2>L\'identifiant de la catégorie à modifier n\'est pas défini</h2>';
}
?>

156
edit_message.php Normal file
View File

@ -0,0 +1,156 @@
<?php
//Cette page permet de modifer un message
include('config.php');
if(isset($_GET['id'], $_GET['id2']))
{
$id = intval($_GET['id']);
$id2 = intval($_GET['id2']);
if(isset($_SESSION['username']))
{
$dn1 = mysql_fetch_array(mysql_query('select count(t.id) as nb1, t.authorid, t2.title, t.message, t.parent, c.name from topics as t, topics as t2, categories as c where t.id="'.$id.'" and t.id2="'.$id2.'" and t2.id="'.$id.'" and t2.id2=1 and c.id=t.parent group by t.id'));
if($dn1['nb1']>0)
{
if($_SESSION['userid']==$dn1['authorid'] or $_SESSION['username']==$admin)
{
include('bbcode_function.php');
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Editer un message</title>
<script type="text/javascript" src="functions.js"></script>
</head>
<body>
<div id="content">
<?php include("menu.php"); ?>
<div class="content">
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; <a href="list_topics.php?parent=<?php echo $dn1['parent']; ?>"><?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?></a> &gt; <a href="read_topic.php?id=<?php echo $id; ?>"><?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?></a> &gt; Modifier
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>
<div class="clean"></div>
</div>
<?php
if(isset($_POST['message']) and $_POST['message']!='')
{
if($id2==1)
{
if($_SESSION['username']==$admin and isset($_POST['title']) and $_POST['title']!='')
{
$title = $_POST['title'];
if(get_magic_quotes_gpc())
{
$title = stripslashes($title);
}
$title = mysql_real_escape_string($dn1['title']);
}
else
{
$title = mysql_real_escape_string($dn1['title']);
}
}
else
{
$title = '';
}
$message = $_POST['message'];
if(get_magic_quotes_gpc())
{
$message = stripslashes($message);
}
$message = mysql_real_escape_string(bbcode_to_html($message));
if(mysql_query('update topics set title="'.$title.'", message="'.$message.'" where id="'.$id.'" and id2="'.$id2.'"'))
{
?>
<div class="message">Le message a bien &eacute;t&eacute; modifi&eacute;.<br />
<a href="read_topic.php?id=<?php echo $id; ?>">Retourner au sujet</a></div>
<?php
}
else
{
echo 'Une erreur s\'est produite lors de la modification du message.';
}
}
else
{
?>
<form action="edit_message.php?id=<?php echo $id; ?>&id2=<?php echo $id2; ?>" method="post">
<?php
if($_SESSION['username']==$admin and $id2==1)
{
?>
<label for="title">Titre</label><input type="text" name="title" id="title" value="<?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?>" />
<?php
}
?>
<label for="message">Message</label><br />
<div class="message_buttons">
<input type="button" value="Gras" onclick="javascript:insert('[b]', '[/b]', 'message');" /><!--
--><input type="button" value="Italique" onclick="javascript:insert('[i]', '[/i]', 'message');" /><!--
--><input type="button" value="Souligne" onclick="javascript:insert('[u]', '[/u]', 'message');" /><!--
--><input type="button" value="Image" onclick="javascript:insert('[img]', '[/img]', 'message');" /><!--
--><input type="button" value="Lien" onclick="javascript:insert('[url]', '[/url]', 'message');" /><!--
--><input type="button" value="Gauche" onclick="javascript:insert('[left]', '[/left]', 'message');" /><!--
--><input type="button" value="Centre" onclick="javascript:insert('[center]', '[/center]', 'message');" /><!--
--><input type="button" value="Droite" onclick="javascript:insert('[right]', '[/right]', 'message');" />
</div>
<textarea name="message" id="message" cols="70" rows="6"><?php echo html_to_bbcode($dn1['message']); ?></textarea><br />
<input type="submit" value="Envoyer" />
</form>
<?php
}
?>
</div>
</span>
</span>
</div>
</body>
<?php include("bas_de_page.php"); ?>
</html>
<?php
}
else
{
echo '<h2>Vous n\'avez pas le droit de modifier ce message.</h2>';
}
}
else
{
echo '<h2>Le message que vous désirez modifier n\'existe pas.</h2>';
}
}
else
{
?>
<h2>Vous devez être connecté pour accéder à cette page:</h2>
<div class="box_login">
<form action="login.php" method="post">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<label for="memorize">Se souvenir</label><input type="checkbox" name="memorize" id="memorize" value="yes" />
<div class="center">
<input type="submit" value="Login" /> <input type="button" onclick="javascript:document.location='signup.php';" value="S'inscrire" />
</div>
</form>
</div>
<?php
}
}
else
{
echo '<h2>Un identifiant du message que vous désirez modifier n\'est pas défini.</h2>';
}
?>

163
edit_profile.php Normal file
View File

@ -0,0 +1,163 @@
<?php
//Cette page permet aux utilisateurs de modifier leur profil
include('config.php');
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Modifier ses informations personnelles</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/Images/logo.png" alt="Espace Membre" /></a>
</div>
<div class="content">
<?php
if(isset($_SESSION['username']))
{
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; Modifier ses informations personnelles
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>
<div class="clean"></div>
</div>
<?php
if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar']))
{
if(get_magic_quotes_gpc())
{
$_POST['username'] = stripslashes($_POST['username']);
$_POST['password'] = stripslashes($_POST['password']);
$_POST['passverif'] = stripslashes($_POST['passverif']);
$_POST['email'] = stripslashes($_POST['email']);
$_POST['avatar'] = stripslashes($_POST['avatar']);
}
if($_POST['password']==$_POST['passverif'])
{
if(strlen($_POST['password'])>=6)
{
if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
{
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$email = mysql_real_escape_string($_POST['email']);
$avatar = mysql_real_escape_string($_POST['avatar']);
$dn = mysql_fetch_array(mysql_query('select count(*) as nb from users where username="'.$username.'"'));
if($dn['nb']==0 or $_POST['username']==$_SESSION['username'])
{
if(mysql_query('update users set username="'.$username.'", password="'.$password.'", email="'.$email.'", avatar="'.$avatar.'" where id="'.mysql_real_escape_string($_SESSION['userid']).'"'))
{
$form = false;
unset($_SESSION['username'], $_SESSION['userid']);
?>
<div class="message">Vos informations ont bien &eacute;t&eacute; modifif&eacute;e. Vous devez vous reconnecter.<br />
<a href="login.php">Se connecter</a></div>
<?php
}
else
{
$form = true;
$message = 'Une erreur est survenue lors des modifications.';
}
}
else
{
$form = true;
$message = 'Un autre utilisateur utilise d&eacute;j&agrave; le nom d\'utilisateur que vous d&eacute;sirez utiliser.';
}
}
else
{
$form = true;
$message = 'L\'email que vous avez entr&eacute; n\'est pas valide.';
}
}
else
{
$form = true;
$message = 'Le mot de passe que vous avez entr&eacute; contien moins de 6 caract&egrave;res.';
}
}
else
{
$form = true;
$message = 'Les mot de passe que vous avez entr&eacute; ne sont pas identiques.';
}
}
else
{
$form = true;
}
if($form)
{
if(isset($message))
{
echo '<strong>'.$message.'</strong>';
}
if(isset($_POST['username'],$_POST['password'],$_POST['email']))
{
$username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');
if($_POST['password']==$_POST['passverif'])
{
$password = htmlentities($_POST['password'], ENT_QUOTES, 'UTF-8');
}
else
{
$password = '';
}
$email = htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');
$avatar = htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');
}
else
{
$dnn = mysql_fetch_array(mysql_query('select username,password,email,avatar from users where username="'.$_SESSION['username'].'"'));
$username = htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8');
$password = htmlentities($dnn['password'], ENT_QUOTES, 'UTF-8');
$email = htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8');
$avatar = htmlentities($dnn['avatar'], ENT_QUOTES, 'UTF-8');
}
?>
<form action="edit_profile.php" method="post">
Vous pouvez modifier vos informations:<br />
<div class="center">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo $username; ?>" /><br />
<label for="password">Mot de passe<span class="small">(6 caract&egrave;res min.)</span></label><input type="password" name="password" id="password" value="<?php echo $password; ?>" /><br />
<label for="passverif">Mot de passe<span class="small">(v&eacute;rification)</span></label><input type="password" name="passverif" id="passverif" value="<?php echo $password; ?>" /><br />
<label for="email">Email</label><input type="text" name="email" id="email" value="<?php echo $email; ?>" /><br />
<label for="avatar">Image perso<span class="small">(facultatif)</span></label><input type="text" name="avatar" id="avatar" value="<?php echo $avatar; ?>" /><br />
<input type="submit" value="Envoyer" />
</div>
</form>
<?php
}
}
else
{
?>
<div class="message">Pour acc&eacute;der &agrave; cette page, vous devez &ecirc;tre connect&eacute;.</div>
<div class="box_login">
<form action="login.php" method="post">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<label for="memorize">Se souvenir</label><input type="checkbox" name="memorize" id="memorize" value="yes" />
<div class="center">
<input type="submit" value="Login" /> <input type="button" onclick="javascript:document.location='signup.php';" value="S'inscrire" />
</div>
</form>
</div>
<?php
}
?>
</div>
<div class="foot"><a href="http://www.supportduweb.com/scripts_tutoriaux-code-source-89-simple-php-forum-script-forum-en-php-facile-simple-script-code-telecharger-forum-php-gratuit-mysql.html">Simple PHP forum Script</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>

953
execution.js Normal file
View File

@ -0,0 +1,953 @@
var vitesse_execution = 20;
boucles_pour = new Array();
idlire = 1;
var priorites = [
"&pi; & variables", "outils", "^", "*/%", "+-"
];
var variables = [
"a", 0,
"b", 0,
"c", 0,
"d", 0,
"e", 0,
"f", 0,
"g", 0,
"h", 0,
"i", 0,
"j", 0,
"k", 0,
"l", 0,
"m", 0,
"n", 0,
"o", 0,
"p", 0,
"q", 0,
"r", 0,
"s", 0,
"t", 0,
"u", 0,
"v", 0,
"w", 0,
"x", 0,
"y", 0,
"z", 0,
"&pi;", 3.141592653
];
var v;
function execution(langage_source, nb) {
var j, e, result;
if(nb == 0 || reset == 1)
{
nb = 0;
reset = 0;
pause = 0;
process = 1;
boucles_pour[0] = 1;
execution_init();
result = compilation(langage_source);
if(result == "failed")
return "failed";
$('#executer').hide();
$('#pause').show();
reset_variables();
$("#saisie").cleditor()[0].disable(true);
}
instructions(nb, langage_source);
}
function instructions(nb, langage_source) {
var quit = 0;
for(v = nb; v < k; v++)
{
if(pause == 1)
{
$('#executer').unbind('click');
$('#executer').click(function() {
execution(langage_source, nb + 1);
});
pause = 0;
return;
}
if(reset == 1)
{
process = 0;
return;
}
switch(code[indices[v]])
{
case "lire":
display("<input onkeypress='if(event.keyCode == 13) lire(\"" + code[indices[v] + (langage_source == 2 ? 3 : 2)] + "\", " + langage_source + ", " + v + ", " + idlire + ");' autofocus size='7' maxlength='10' id='lire" + idlire + "' placeholder='" + code[indices[v] + (langage_source == 2 ? 3 : 2)].toUpperCase() + " =' required rows='1' cols='5'>");
lire_pending = 1;
idlire++;
return;
break;
case "afficher":
var message;
switch(code[indices[v] + 1])
{
case "chaine":
message = code[indices[v] + 2].substring(1, code[indices[v] + 2].length - 1);
break;
case "calcul":
message = execute_calculs(code[indices[v] + 2], langage_source);
break;
case "variable":
message = valeur_variable(code[indices[v] + 2]);
break;
}
display(message);
break;
case "si":
if(execute_condition(v, langage_source) == "false")
{
var si = 0, ti = 0;
for(v = v + 1; ; v++)
{
if(((langage_source != 3 && si == 0 )|| (langage_source == 3 && ti == 0)) && (code[indices[v]] == "sinon" || code[indices[v]] == "fin_si" || code[indices[v]] == "fin_si_ou_boucle"))
break;
if(code[indices[v]] == "si")
si++;
if(code[indices[v]] == "fin_si")
si--;
if(code[indices[v]] == "si" || code[indices[v]] == "tant_que" || code[indices[v]] == "pour")
ti++;
if(code[indices[v]] == "fin_si_ou_boucle")
ti--;
}
}
break;
case "sinon":
var si = 0, ti = 0;
for(v = v + 1; ; v++)
{
if(((langage_source != 3 && si == 0 ) || (langage_source == 3 && ti == 0)) && (code[indices[v]] == "fin_si_ou_boucle" || code[indices[v]] == "fin_si"))
break;
if(code[indices[v]] == "si")
si++;
if(code[indices[v]] == "fin_si")
si--;
if(code[indices[v]] == "si" || code[indices[v]] == "tant_que" || code[indices[v]] == "pour")
ti++;
if(code[indices[v]] == "fin_si_ou_boucle")
ti--;
}
break;
case "tant_que":
if(execute_condition(v, langage_source) == "false")
{
var tant_que = 0, ti = 0;
for(v = v + 1; ; v++)
{
if(((langage_source != 3 && tant_que == 0) || (langage_source == 3 && ti == 0)) && (code[indices[v]] == "fin_tant_que" || code[indices[v]] == "fin_si_ou_boucle"))
break;
if(code[indices[v]] == "tant_que")
tant_que++;
if(code[indices[v]] == "fin_tant_que")
tant_que--;
if(code[indices[v]] == "si" || code[indices[v]] == "tant_que" || code[indices[v]] == "pour")
ti++;
if(code[indices[v]] == "fin_si_ou_boucle")
ti--;
}
}
break;
case "fin_tant_que":
case "fin_si_ou_boucle":
var tant_que = 0, ti = 0, mem = v;
for(v = v - 2; ; v--)
{
if(((langage_source != 3 && tant_que == 0) || (langage_source == 3 && ti == 0)) && (code[indices[v + 1]] == "tant_que" || ((code[indices[v + 1]] == "si" || code[indices[v + 1]] == "pour") && langage_source == 3)))
{
if(code[indices[v + 1]] == "si")
v = mem;
break;
}
if(code[indices[v + 1]] == "tant_que")
tant_que++;
if(code[indices[v + 1]] == "fin_tant_que")
tant_que--;
if(code[indices[v + 1]] == "si" || code[indices[v + 1]] == "tant_que" || code[indices[v + 1]] == "pour")
ti++;
if(code[indices[v + 1]] == "fin_si_ou_boucle")
ti--;
}
setTimeout("instructions(" + (v + 1) + ", " + langage_source + ")", vitesse_execution);
quit = 1;
break;
case "pour":
var new_pour = 0, a;
for(a = 1; a < boucles_pour[0]; a++)
{
if(boucles_pour[a] == v)
{
new_pour = a;
break;
}
}
var num = new Array;
switch(langage_source)
{
case 1:
num[0] = 2;
num[1] = 5;
num[2] = 8;
break;
case 2:
num[0] = 5;
num[1] = 2;
num[2] = 8;
break;
case 3:
num[0] = 2;
num[1] = 5;
num[2] = 8;
if(compte_caract(code[indices[v] + num[2]], "(") + 1 == compte_caract(code[indices[v] + num[2]], ")"))
code[indices[v] + num[2]] = code[indices[v] + num[2]].substring(0, code[indices[v] + num[2]].length - 1);
break;
}
var indice_var = cherche_variable(code[indices[v] + num[0]]);
if(new_pour == 0)
{
variables[indice_var] = execute_calculs(code[indices[v] + num[1]], langage_source);
boucles_pour[boucles_pour[0]] = v;
boucles_pour[0]++;
}
else
{
if(variables[indice_var] < execute_calculs(code[indices[v] + num[2]], langage_source))
variables[indice_var]++;
else
{
var pour = 0, ti = 0;
for(v = v + 1; ; v++)
{
if(((langage_source != 3 && pour == 0) || (langage_source == 3 && ti == 0)) && (code[indices[v]] == "fin_pour" || code[indices[v]] == "fin_si_ou_boucle"))
break;
if(code[indices[v]] == "pour")
pour++;
if(code[indices[v]] == "fin_pour")
pour--;
if(code[indices[v]] == "si" || code[indices[v]] == "tant_que" || code[indices[v]] == "pour")
ti++;
if(code[indices[v]] == "fin_si_ou_boucle")
ti--;
}
boucles_pour[new_pour] = -1;
}
}
affiche_variable(indice_var - 1);
break;
case "fin_pour":
var pour = 0;
for(v = v - 2; ; v--)
{
if(pour == 0 && code[indices[v + 1]] == "pour")
break;
if(code[indices[v + 1]] == "pour")
pour++;
if(code[indices[v + 1]] == "fin_pour")
pour--;
}
setTimeout("instructions(" + (v + 1) + ", " + langage_source + ")", vitesse_execution);
quit = 1;
break;
case "variable":
var indice_var = cherche_variable(code[indices[v] + 1]);
if(code[indices[v] + 2] == "prend_la_valeur")
variables[indice_var] = execute_calculs(code[indices[v] + 4], langage_source);
else if(code[indices[v] + 2] == "&ang;")
{
var valeur = execute_calculs(code[indices[v] + 1], langage_source);
variables[indice_var] = valeur;
display(valeur);
}
else if(code[indices[v] + 2] == "&rarr;")
{
indice_var = cherche_variable(code[indices[v] + 4]);
variables[indice_var] = execute_calculs(code[indices[v] + 1], langage_source);
}
affiche_variable(indice_var - 1);
break;
case "calcul":
if(code[indices[v] + 2] == "&ang;")
{
var valeur = execute_calculs(code[indices[v] + 1], langage_source);
display(valeur);
}
else if(code[indices[v] + 2] == "&rarr;")
{
var indice_var = cherche_variable(code[indices[v] + 4]);
variables[indice_var] = execute_calculs(code[indices[v] + 1], langage_source);
affiche_variable(indice_var - 1);
}
break;
case "chaine":
message = code[indices[v] + 1].substring(1, code[indices[v] + 1].length - 1);
display(message);
break;
case "fin_programme":
v = k;
break;
}
if(quit == 1)
break;
}
if(v == k)
{
display("<span id='fin_execution'>Fin de l'exécution</span>");
process = 0;
$('#pause').hide();
$('#executer').show();
$("#saisie").cleditor()[0].disable(false);
}
}
function lire(myvar, langage_source, nb, id) {
var nombre = document.getElementById("lire" + id).value;
$('#lire' + id).replaceWith('<p>' + nombre + '</p>');
if(detecte_nombre(nombre, 1) != "nombre" || nombre.length == 0)
{
display("<span id='fin_execution'>Erreur : veuillez rentrer un nombre.</span>");
display("<input onkeypress='if(event.keyCode == 13) lire(\"" + code[indices[v] + (langage_source == 2 ? 3 : 2)] + "\", " + langage_source + ", " + v + ", " + idlire + ");' autofocus size='7' maxlength='10' id='lire" + idlire + "' placeholder='" + code[indices[v] + (langage_source == 2 ? 3 : 2)].toUpperCase() + " =' required rows='1' cols='5'>");
document.getElementById("lire" + idlire).focus();
idlire++;
return;
}
var indice_var = cherche_variable(myvar);
variables[indice_var] = nombre;
affiche_variable(indice_var - 1);
if(pause == 1)
{
$('#executer').hide();
$('#pause').show();
}
pause = 0;
lire_pending = 0;
execution(langage_source, nb + 1);
}
function paused(langage_source, nb) {
execution(langage_source, nb + 1);
}
function display(message) {
$('#resultats').append('<p>' + message + '</p>');
}
function affiche_variable(myvar) {
$('#var_' + variables[myvar]).replaceWith("<p class='vars' id='var_" + variables[myvar] + "'>" + variables[myvar].toUpperCase() + " = " + variables[myvar + 1] + "</p>");
}
function execute_condition(v, langage_source) {
var compil = new Array(), l;
compil = compil_condition(v, langage_source);
compil = simplifie_condition(compil, 1, compil[0]);
for(l = 1; l < compil[0]; l++)
{
if(compil[l] == "true" || compil[l] == "false")
return compil[l];
}
}
function compil_condition(v, langage_source) {
var n;
var compil = new Array();
compil[0] = 1;
for(n = 1; indices[v] + n < indices[v + 1]; n++)
{
switch(code[indices[v] + n])
{
case "calcul":
if(compte_caract(code[indices[v] + n + 1], "(") > compte_caract(code[indices[v] + n + 1], ")"))
{
compil[compil[0]] = "(";
compil[0]++;
code[indices[v] + n + 1] = code[indices[v] + n + 1].substring(1, code[indices[v] + n + 1].length);
}
if(compte_caract(code[indices[v] + n + 1], "(") > compte_caract(code[indices[v] + n + 1], ")"))
{
compil[compil[0]] = "(";
compil[0]++;
code[indices[v] + n + 1] = code[indices[v] + n + 1].substring(1, code[indices[v] + n + 1].length);
}
if(compte_caract(code[indices[v] + n + 1], "(") < compte_caract(code[indices[v] + n + 1], ")"))
{
code[indices[v] + n + 1] = code[indices[v] + n + 1].substring(0, code[indices[v] + n + 1].length - 1);
compil[compil[0]] = execute_calculs(code[indices[v] + n + 1], langage_source);
compil[0]++;
compil[compil[0]] = ")";
compil[0]++;
}
else
{
compil[compil[0]] = execute_calculs(code[indices[v] + n + 1], langage_source);
compil[0]++;
}
if(compte_caract(code[indices[v] + n + 1], "(") < compte_caract(code[indices[v] + n + 1], ")"))
{
compil[compil[0]] = ")";
compil[0]++;
code[indices[v] + n + 1] = code[indices[v] + n + 1].substring(0, code[indices[v] + n + 1].length - 1);
}
break;
case "variable":
compil[compil[0]] = valeur_variable(code[indices[v] + n + 1]);
compil[0]++;
break;
case "et":
compil[compil[0]] = "et";
compil[0]++;
break;
case "ou":
compil[compil[0]] = "ou";
compil[0]++;
break;
case "signe":
compil[compil[0]] = code[indices[v] + n + 1];
compil[0]++;
break;
}
}
return compil;
}
function simplifie_condition(compil, min, max) {
/*
// Gestion des parenthèses
*/
var j, l, parenthese;
for(j = min; j < max; j++)
{
if(compil[j] == "(")
{
parenthese = 1;
for(l = j + 1; l < max; l++)
{
if(compil[l] == "(")
parenthese++;
if(compil[l] == ")")
parenthese--;
if(parenthese == 0 && compil[l] == ")")
{
compil[j] = "rien";
compil[l] = "rien";
compil = simplifie_condition(compil, j + 1, l);
break;
}
}
}
if(compil[j] == "<" || compil[j] == ">" || compil[j] == "=" || escape(compil[j]) == "%u2260" || escape(compil[j]) == "%u2264" || escape(compil[j]) == "%u2265")
{
var last = precedente_valeur(compil, j, 1);
var next = prochaine_valeur(compil, j, 1);
switch(compil[j])
{
case "<":
if(compil[last] < compil[next])
compil[j] = "true";
else
compil[j] = "false";
break;
case ">":
if(compil[last] > compil[next])
compil[j] = "true";
else
compil[j] = "false";
break;
case "=":
if(compil[last] == compil[next])
compil[j] = "true";
else
compil[j] = "false";
break;
}
switch(escape(compil[j]))
{
case "%u2260":
if(compil[last] != compil[next])
compil[j] = "true";
else
compil[j] = "false";
break;
case "%u2264":
if(compil[last] <= compil[next])
compil[j] = "true";
else
compil[j] = "false";
break;
case "%u2265":
if(compil[last] >= compil[next])
compil[j] = "true";
else
compil[j] = "false";
break;
}
compil[last] = "rien";
compil[next] = "rien";
do
{
var operateur = -1, resultat = -1;
for(var r = j - 1; r >= 1; r--)
{
if(operateur == -1 && (compil[r] == "et" || compil[r] == "ou"))
operateur = r;
if(operateur != -1 && resultat == -1 && (compil[r] == "true" || compil[r] == "false"))
resultat = r;
if(compil[r] == "(" || compil[r] == ")")
break;
}
if(operateur != -1 && resultat != -1)
{
if(compil[operateur] == "et")
{
if(compil[j] == "true" && compil[resultat] == "true")
compil[operateur] = "true";
else
compil[operateur] = "false";
}
else if(compil[operateur] == "ou")
{
if(compil[j] != compil[resultat] || compil[j] == "true")
compil[operateur] = "true";
else
compil[operateur] = "false";
}
compil[j] = "rien";
compil[resultat] = "rien";
j = operateur;
}
}
while(operateur != -1 && resultat != -1);
}
}
return compil;
}
function execute_calculs(calcul, langage_source) {
compil = new Array();
compil = compil_calculs(calcul, langage_source);
compil = simplifie_calculs(compil, 2, compil[0], langage_source, calcul);
for(j = 1; j < compil[0]; j++)
{
if(compil[j] != "rien" && compil[j] != "(" && compil[j] != ")" && compil[j] != "parenthese" && compil[j] != "outil" && compil[j] != "undefined")
{
return Math.round(compil[j + 1] * 10e8) / 10e8;
}
}
return "erreur";
}
function compil_calculs(calcul, langage_source) {
var i, current, position = 0, longer, type;
var compil = new Array();
compil[0] = 1;
while(position < calcul.length)
{
type = "autre";
longer = -1;
for(i = 0; i < calcul.substring(position, calcul.length).length; i++)
{
current = calcul.substring(position, calcul.length - i);
if(detecte_calculs2(current, langage_source) == "calcul")
{
longer = calcul.length - i;
break;
}
}
if(i == calcul.substring(position, calcul.length).length + 1)
alert("erreur");
if(detecte_nombre(calcul.substring(position, longer), 0) == "nombre")
type = "nombre";
if(detecte_variable(calcul.substring(position, longer)) == "variable")
type = "variable";
if(detecte_operation(calcul.substring(position, longer)) == "operation")
type = "operation";
if(detecte_parenthese(calcul.substring(position, longer)) == "parenthese")
type = "parenthese";
if(detecte_outils(calcul.substring(position, longer), langage_source) == "outils")
type = "outils";
compil[compil[0]] = type;
compil[compil[0] + 1] = calcul.substring(position, longer);
compil[0] += 2;
if(compil[compil[0] - 1] == "hasard")
{
compil[compil[0]] = "rien";
compil[compil[0] + 1] = "rien";
compil[0] += 2;
}
if(compil[compil[0] - 1] == "#ran")
{
compil[compil[0]] = compil[compil[0] - 2];
compil[compil[0] + 1] = compil[compil[0] - 1];
compil[compil[0] - 2] = "rien";
compil[compil[0] - 1] = "rien";
compil[0] += 2;
}
position = longer;
}
return compil;
}
function simplifie_calculs(calcul, min, max, langage_source, expression) {
var j, l, parenthese, p, last, next;
/*
// Gestion des parenthèses
*/
for(j = min; j < max; j += 2)
{
if(compil[j] == "(" && compte_caract(expression, ")") > 0)
{
parenthese = 1;
for(l = j + 2; l < max; l += 2)
{
if(compil[l] == "(")
parenthese++;
if(compil[l] == ")")
parenthese--;
if(parenthese == 0 && compil[l] == ")")
{
compil[j - 1] = "rien";
compil[j] = "rien";
compil[l - 1] = "rien";
compil[l] = "rien";
compil = simplifie_calculs(compil, j + 2, l - 1, langage_source, "");
break;
}
}
}
}
/******************************************************************/
for(p = 0; p < 6; p++)
{
for(j = min; j < max; j += 2)
{
last = precedente_valeur(compil, j, 2);
next = prochaine_valeur(compil, j, 2);
switch(priorites[p])
{
case "&pi; & variables":
if(escape(compil[j]) == "%u03C0")
compil[j] = "&pi;";
if(compil[j - 1] == "variable" || compil[j] == "&pi;")
{
compil[j - 1] = "nombre";
compil[j] = valeur_variable(compil[j]);
}
break;
case "outils":
if(compil[j - 1] == "outils")
{
if(compil[next - 1] != "nombre" && compil[j] != "#ran")
alert("erreur outils");
else
{
if(compil[j] == "racine_carrée")
{
compil[j - 1] = "rien";
compil[j] = "rien";
compil[next] = Math.sqrt(compil[next]);
if(escape(compil[next]) == "NaN")
alert("erreur domaine de définition racine carrée");
}
if(compil[j] == "exp")
{
compil[j - 1] = "rien";
compil[j] = "rien";
compil[next] = Math.exp(compil[next]);
}
if(compil[j] == "ln")
{
compil[j - 1] = "rien";
compil[j] = "rien";
compil[next] = Math.log(compil[next]);
if(escape(compil[next]) == "NaN")
alert("erreur domaine de définition du logarithme népérien");
}
if(compil[j] == "hasard" || compil[j] == "rand")
{
compil[j - 1] = "nombre";
compil[j] = Math.random();
compil[j + 1] = "operation";
compil[j + 2] = "*";
}
if(compil[j] == "#ran")
{
compil[j - 1] = "nombre";
compil[j] = Math.random();
compil[last + 1] = "operation";
compil[last + 2] = "*";
}
if(compil[j] == "partie_entière" || compil[j] == "int")
{
compil[j - 1] = "rien";
compil[j] = "rien";
compil[next] = Math.floor(compil[next]);
}
if(compil[j] == "partie_décimale" || compil[j] == "frac" || compil[j] == "fpart")
{
compil[j - 1] = "rien";
compil[j] = "rien";
compil[next] -= Math.floor(compil[next]);
}
if(compil[j] == "valeur_absolue" || compil[j] == "abs")
{
compil[j - 1] = "rien";
compil[j] = "rien";
compil[next] = Math.abs(compil[next]);
}
}
}
break;
case "^":
if(compil[j] == "^")
{
if(compil[last - 1] != "nombre" || compil[next - 1] != "nombre")
alert("erreur ^");
else
{
compil[last] = Math.pow(compil[last], compil[next]);
compil[j - 1] = "rien";
compil[j] = "rien";
compil[next - 1] = "rien";
compil[next] = "rien";
}
}
break;
case "*/%":
if(compil[j] == "*" || compil[j] == "/" || compil[j] == "%")
{
if(compil[last - 1] != "nombre" || compil[next - 1] != "nombre")
alert("erreur */%");
else
{
switch(compil[j])
{
case "*":
compil[last] = compil[last] * compil[next];
break;
case "/":
compil[last] = compil[last] / compil[next];
break;
case "%":
compil[last] = compil[last] % compil[next];
break;
}
if(escape(compil[last]) == "NaN")
alert("erreur */%");
if(escape(compil[last]) == "Infinity")
alert("erreur division par 0");
compil[j - 1] = "rien";
compil[j] = "rien";
compil[next - 1] = "rien";
compil[next] = "rien";
}
}
break;
case "+-":
if(compil[j] == "+" || compil[j] == "-")
{
if(compil[next - 1] != "nombre")
alert("erreur +-");
else
{
if(compil[last - 1] != "nombre")
{
if(compil[j] == "+")
compil[next] = 1 * compil[next];
else
compil[next] = - compil[next];
}
else
{
if(compil[j] == "+")
compil[last] = 1 * compil[last] + 1 * compil[next];
else
compil[last] = compil[last] - compil[next];
compil[next - 1] = "rien";
compil[next] = "rien";
}
compil[j - 1] = "rien";
compil[j] = "rien";
}
}
break;
}
}
}
return compil;
}
function detecte_calculs2(mot, langage_source) {
mot = mot.toLowerCase();
if(detecte_nombre(mot, 0) == "nombre" || detecte_variable(mot) == "variable" || detecte_operation(mot) == "operation" || detecte_parenthese(mot) == "parenthese" || detecte_outils(mot, langage_source) == "outils" || escape(mot) == "%u03C0")
return "calcul";
else
return "undefined";
}
function reset_variables() {
var i;
for(i = 0; i < 26; i++)
variables[2 * i + 1] = 0;
}
function valeur_variable(myvar) {
return variables[cherche_variable(myvar)];
}
function cherche_variable(myvar) {
var i;
for(i = 0; i < 27; i++)
{
if(variables[2 * i] == myvar)
return 2 * i + 1;
}
alert("variable inconnue");
}
function prochaine_valeur(compil, j, pas) {
var i;
for(i = j + pas; i < compil[0]; i += pas)
{
if(compil[i] != "rien" && compil[i] != "true" && compil[i] != "false" && compil[i] != "et" && compil[i] != "ou" && compil[i] != "(" && compil[i] != ")" && compil[i] != "NaN")
return i;
}
}
function precedente_valeur(compil, j, pas) {
var i;
for(i = j - pas; i > 0; i -= pas)
{
if(compil[i] != "rien" && compil[i] != "true" && compil[i] != "false" && compil[i] != "et" && compil[i] != "ou" && compil[i] != "(" && compil[i] != ")" && compil[i] != "NaN")
return i;
}
}
function execution_init() {
$('#resultats').replaceWith('<div id="resultats"></div>');
for(v = 0; v < 52; v += 2)
$('#var_' + variables[v]).replaceWith("<p class='vars' id='var_" + variables[v] + "'></p>");
}
function compte_caract(chaine, type) {
var i, nb = 0;
for(i = 0; i < chaine.length; i++)
{
if(chaine.substring(i, i + 1) == type)
nb++;
}
return nb;
}

85
exemples.css Normal file
View File

@ -0,0 +1,85 @@
article
{
margin-top: 30px;
}
h2
{
font-size: 24px;
font-style: bold;
color: black;
text-align: left;
margin: 10px 10px 20px 10px;
}
h4
{
font-size: 12px;
font-style: bold;
color: rgb(255, 143, 0);
text-align: left;
margin: 18px 10px 6px 10px;
}
#contenu
{
margin-top: 10px;
}
.exemples
{
text-align: justify;
background-color: #FFD745;
border: solid;
border-width: 4px;
border-radius: 5px;
border-color: #FAC801;
font-family: Normal, Arial;
font-size: 16px;
font-style: none;
color: black;
padding: 5px 11px 7px 11px;
margin-left: 45px;
margin-right: 262px;
}
.auteur
{
font-size: 14px;
text-align: left;
margin: 0px 10px 10px 20px;
}
.description
{
font-size: 14px;
text-align: left;
margin: 0px 10px 10px 20px;
}
.cleditorMain
{
position: relative;
top: 0px;
left: 198px;
}
.tester
{
margin-left: 444px;
}
#code
{
width: 400px;
padding: 3px 0px 4px 8px;
margin-left: 198px;
font-family: Normal, Arial;
color: rgb(206, 133, 4);
text-align: left;
border: solid;
border-width: 4px;
border-radius: 5px;
border-color: rgb(221, 147, 53);
background-color: rgb(247, 226, 119);
}

27
exemples.js Normal file
View File

@ -0,0 +1,27 @@
$(document).ready(function() {
$('.tester').click(function() {
var texte = $(this).attr('id').substring(4, $(this).attr('id').length);
createCookie("exemple",texte,30);
});
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value;
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

49
exemples.php Normal file
View File

@ -0,0 +1,49 @@
<?php
include('config.php');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<link rel="stylesheet" type="text/css" href="exemples.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<script type="text/javascript" src="exemples.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Exemples d'algorithmes</title>
<meta name="keywords" content="festivalgo, algobox, exemples, algorithme, algorithmique, programmation, Casio, TI, HP, tester des algorithmes, bac, mathématiques, ROC, nouveaux programmes, réformes" />
<meta name="description" content="De nombreux exemples d'algorithmes pour s'entrainer en mathématiques et pour le bac." />
</head>
<body>
<div id="content">
<?php include("menu.php");?>
<div id="contenu">
<?php
$req = mysql_query('select id, titre, auteur, description from exemples ORDER BY titre ASC');
while($dnn = mysql_fetch_array($req))
{
?>
<article>
<div class="exemples">
<h2 class="titre"><?php echo htmlentities($dnn['titre'], ENT_QUOTES, 'UTF-8'); ?></h2>
<h4>Auteur :</h4><p class="auteur"><?php echo htmlentities($dnn['auteur'], ENT_QUOTES, 'UTF-8'); ?></p>
<h4>Description :</h4><p class="description"><?php echo htmlentities($dnn['description'], ENT_QUOTES, 'UTF-8'); ?></p><br />
<a href="/festivalgo/index.php" id="<?php echo 'algo'.$dnn['id'];?>" class="tester"><img alt="Tester cet algorithme" title="Tester cet algorithme" src="Images/tester.png" style="border: 0px;"/></a>
</div>
</article>
<?php
}
?>
<aside>
<p id="annonces" style="top: 281px; height: 634px; width: 162px;">Annonces</p>
<div id="pub3">
<script for=window language="JScript" src='http://www.pubdirecte.com/script/banniere.php?id=73442&ref=43885'></script>
</div>
</aside>
</div>
</div>
<?php include("bas_de_page.php"); ?>
</body>
</html>

121
forum.php Normal file
View File

@ -0,0 +1,121 @@
<?php
//Cette page permet dafficher la liste des categories
include('config.php');
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - forum</title>
<meta name="keywords" content="festivalgo, algobox, forum, aide, algorithme, algorithmique, problème, problème algorithme, programmation, Casio, TI, HP, apprendre, bac, mathématiques, ROC, nouveaux programmes, réformes" />
<meta name="description" content="Posez toutes vos questions sur des algorithmes sur ce forum. Résolvez vos problèmes d'algorithmique. Inscription rapide et gratuite." />
</head>
<body>
<div id="content">
<?php include("menu.php"); ?>
<div class="content">
<?php
if(isset($_SESSION['username']))
{
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_right">
<a href="list_pm.php">Vos messages&nbsp;(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"></a> <a href="login.php">Déconnexion</a>
</div>
<div class="clean"></div>
</div>
<?php
}
else
{
?>
<?php
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<a href="new_category.php" class="button">Nouvelle Catégorie</a>
<?php
}
if(!isset($_SESSION['username']))
{
?>
<div class="box_login">
<form action="login.php" method="post">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" class="champs" id="username" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" class="champs" id="password" /><br />
<label id="se_souvenir" for="memorize">Se souvenir</label><input class="champs" type="checkbox" name="memorize" id="memorize" value="yes" />
<div class="center">
<input type="button" onclick="javascript:document.location='signup.php';" value="S'inscrire" /> <input type="submit" value="Login" />
</div>
</form>
</div>
<?php
}
?>
<?php
}
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<a href="new_category.php" class="button">Nouvelle Catégorie</a>
<?php
}
?>
<table class="categories_table">
<tr>
<th class="forum_cat">Catégorie</th>
<th class="forum_ntop">Sujets</th>
<th class="forum_nrep">Réponses</th>
<?php
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<th class="forum_act">Action</th>
<?php
}
?>
</tr>
<?php
$dn1 = mysql_query('select c.id, c.name, c.description, c.position, (select count(t.id) from topics as t where t.parent=c.id and t.id2=1) as topics, (select count(t2.id) from topics as t2 where t2.parent=c.id and t2.id2!=1) as replies from categories as c group by c.id order by c.position asc');
$nb_cats = mysql_num_rows($dn1);
while($dnn1 = mysql_fetch_array($dn1))
{
?>
<tr>
<td class="forum_cat"><a href="list_topics.php?parent=<?php echo $dnn1['id']; ?>" class="title"><?php echo htmlentities($dnn1['name'], ENT_QUOTES, 'UTF-8'); ?></a>
<div class="description"><?php echo $dnn1['description']; ?></div></td>
<td><?php echo $dnn1['topics']; ?></td>
<td><?php echo $dnn1['replies']; ?></td>
<?php
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<td><a href="delete_category.php?id=<?php echo $dnn1['id']; ?>"><img src="<?php echo $design; ?>/Images/delete.png" alt="Delete" /></a>
<?php if($dnn1['position']>1){ ?><a href="move_category.php?action=up&id=<?php echo $dnn1['id']; ?>"><img src="<?php echo $design; ?>/Images/up.png" alt="Faire Monter" /></a><?php } ?>
<?php if($dnn1['position']<$nb_cats){ ?><a href="move_category.php?action=down&id=<?php echo $dnn1['id']; ?>"><img src="<?php echo $design; ?>/Images/down.png" alt="Faire Descendre" /></a><?php } ?>
<a href="edit_category.php?id=<?php echo $dnn1['id']; ?>"><img src="<?php echo $design; ?>/Images/edit.png" alt="Edit" /></a></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>
</div>
<?php include "pub.php" ?>
</div>
</body>
<?php include("bas_de_page.php"); ?>
</html>

28
functions.js Normal file
View File

@ -0,0 +1,28 @@
function getelem(id)
{
return document.getElementById(id);
}
function insert(f, e, id)
{
var scroll = getelem(id).scrollTop;
if(document.selection)
{
getelem(id).focus();
sel = document.selection.createRange();
sel.text = f+sel.text+e;
}
else if(getelem(id).selectionStart || getelem(id).selectionStart == '0')
{
var startPos = getelem(id).selectionStart;
var endPos = getelem(id).selectionEnd;
getelem(id).value = getelem(id).value.substring(0, startPos)+f+getelem(id).value.substring(startPos, endPos)+e+getelem(id).value.substring(endPos, getelem(id).value.length);
getelem(id).selectionStart = startPos+f.length;
getelem(id).selectionEnd = startPos+f.length+(endPos-startPos);
}
else
{
getelem(id).value += msg;
}
getelem(id).scrollTop = scroll;
getelem(id).focus();
}

19
ie.css Normal file
View File

@ -0,0 +1,19 @@
#Ecriture_onglet1
{
bottom: 75px;
}
#Ecriture_onglet2
{
bottom: 122px;
}
#Ecriture_onglet3
{
bottom: 170px;
}
#Ecriture_onglet4
{
bottom: 217px;
}

19
ie8.php Normal file
View File

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<link rel="stylesheet" type="text/css" href="exemples.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<script src="jquery.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Navigateur obsolète</title>
</head>
<body>
Votre navigateur est obsolète et est incapable d'afficher correctement ce site (comme une majorité de sites).<br />
Pour accéder à cette page, merci de le mettre à jour <a class="lien" href="http://www.internetexplorer.fr/" target="_blank">ici</a>.<br /><br />
contact@festivalgo.fr
</body>
</html>

182
index.php Normal file
View File

@ -0,0 +1,182 @@
<?php
include('config.php');
/*
if(isset($_COOKIE["exemple"]) && $_COOKIE["exemple"] != "init")
{
$dn = mysql_query('select programme from exemples where id="'.$_COOKIE['exemple'].'"');
$dnn = mysql_fetch_array($dn);
if($dnn['programme'] != "")
{
$content = str_replace("+", "@" , $dnn['programme']);
//$content = htmlentities($content, ENT_QUOTES, 'UTF-8');
$content = utf8_decode($content);
setcookie('last_algo', $content, (time() + 30*24*60*60));
setcookie('last_language', '1', (time() + 30*24*60*60));
}
}
*/
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="stylesheet.css" />
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<script src="jquery.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.cleditor.css" />
<script type="text/javascript" src="jquery.cleditor.min.js"></script>
<script type="text/javascript" src="jquery.cleditor.js"></script>
<script src="menus.js"></script>
<script src="interface.js"></script>
<script src="compil1.js"></script>
<script src="compil2.js"></script>
<script src="traduction.js"></script>
<script src="execution.js"></script>
<title>Festiv'Algo - Programmer, exécuter et traduire des algorithmes pour toutes les calculatrices</title>
<meta name="keywords" content="festivalgo, algobox, algorithme, algorithmique, traduction pour calculatrice, Casio, TI, HP, en ligne, traduire, exécuter, programmer, mathématiques, ROC, bac" />
<meta name="description" content="Application pédagogique d'initiation à l'algorithmique dans l'esprit des nouveaux programmes de mathématiques. Une interface simple et interactive, des exemples, un tutoriel et un forum pour toutes vos questions." />
</head>
<body>
<div id="content" style="height: 1040px">
<?php include("menu.php"); ?>
<aside>
<p id="vous_programmez_en">Vous <strong>programmez</strong> en</p>
<p class="langage_actuel" id="langage_algo"><mark>algorithme</mark></p>
<p class="langage_actuel" id="langage_casio"><mark>Basic Casio</mark></p>
<p class="langage_actuel" id="langage_ti"><mark>Ti-Basic</mark></p>
<img class="conversion" id="conversion_algo" src="Images/conversion_algo.png"/>
<img class="conversion" id="conversion_casio" src="Images/conversion_casio.png"/>
<img class="conversion" id="conversion_ti" src="Images/conversion_ti.png"/>
</aside>
<aside>
<p id="annonces">Annonces</p>
<div id='texteAnnonce'>Festiv'Algo a change de serveur ! Il est desormais disponible a cette adresse :<br />/festivalgo</div>
</aside>
<article id="algorithmie">
<img id="support_menus" src="Images/support_menus.png"/>
<img id="selection" src="Images/onglet_deroulant_selection.png"/>
<img class="icone" id="entrees-sorties" alt="Entrées/Sorties" title="Entrées/Sorties" src="Images/entrees-sorties.png"/>
<img class="icone" id="conditions" alt="Conditions" title="Conditions" src="Images/conditions.png"/>
<img class="icone" id="boucles" alt="Boucles" title="Boucles" src="Images/boucles.png"/>
<img class="icone" id="autres" alt="Autres" title="Autres" src="Images/autres.png"/>
<img class="onglet_deroulant" id="onglet_deroulant1" src="Images/onglet_deroulant.png"/>
<img class="onglet_deroulant" id="onglet_deroulant2" src="Images/onglet_deroulant.png"/>
<img class="onglet_deroulant" id="onglet_deroulant3" src="Images/onglet_deroulant.png"/>
<img class="onglet_deroulant" id="onglet_deroulant4" src="Images/onglet_deroulant.png"/>
<img class="onglet_deroulant" id="onglet_deroulant5" src="Images/onglet_deroulant.png"/>
<img class="onglet_deroulant" id="onglet_deroulant6" src="Images/onglet_deroulant.png"/>
<img class="onglet_deroulant" id="onglet_deroulant7" src="Images/onglet_deroulant.png"/>
<img class="onglet_deroulant" id="onglet_deroulant8" src="Images/onglet_deroulant.png"/>
<p class="instruction" id="instruction1"></p>
<p class="instruction" id="instruction2"></p>
<p class="instruction" id="instruction3"></p>
<p class="instruction" id="instruction4"></p>
<p class="instruction" id="instruction5"></p>
<p class="instruction" id="instruction6"></p>
<p class="instruction" id="instruction7"></p>
<p class="instruction" id="instruction8"></p>
<p id="infos"><span id="info_contenu">Cliquez sur l'une des icônes, puis sélectionnez une <strong>instruction</strong>.</span></p>
<form name="code"><textarea cols="41" rows="22" name="Saisie" id="saisie" spellcheck="false" method="post" action="/festivalgo">
<?php
if(isset($_COOKIE["exemple"]) && $_COOKIE["exemple"] != "init")
{
$dn = mysql_query('select programme from exemples where id="'.$_COOKIE['exemple'].'"');
$dnn = mysql_fetch_array($dn);
if($dnn['programme'] != "")
echo $dnn['programme'];
}/*
else
{
if(isset($_COOKIE["last_algo"], $_COOKIE["last_language"]) && $_COOKIE["last_language"] > 0 && $_COOKIE["last_language"] < 4)
{
$code = str_replace('\\', "", $_COOKIE["last_algo"]);
$code = str_replace('@', ";", $code);
echo $code;
}
else
echo "<div>Afficher \"Hello World !\"</div>";
}*/
?>
</textarea></form>
<section id="debug">
<img id="attention" src="Images/attention.png"/>
<p id="debug_titre">Erreurs de syntaxe :</p>
</section>
<img class="signes_icone" id="signe_icone1" src="Images/signes.png"/>
<img class="signes_icone" id="signe_icone2" src="Images/signes.png"/>
<img class="signes_icone" id="signe_icone3" src="Images/signes.png"/>
<img class="signes_icone" id="signe_icone4" src="Images/signes.png"/>
<img class="signes_icone" id="signe_icone5" src="Images/signes.png"/>
<img class="signes_icone" id="signe_icone6" src="Images/signes.png"/>
<img class="signes_icone" id="signe_icone7" src="Images/signes.png"/>
<img class="signes_icone" id="signe_icone8" src="Images/signes.png"/>
<p class="signes" id="signe1">&ge;</p>
<p class="signes" id="signe2">&le;</p>
<p class="signes" id="signe3">&ne;</p>
<p class="signes" id="signe4">&radic;</p>
<p class="signes" id="signe5">^</p>
<p class="signes" id="signe6">&pi;</p>
<p class="signes" id="signe7">e</p>
<p class="signes" id="signe8">ln</p>
<div id="execution">
<p id="resultats_titre"><mark>Exécution</mark> :</p>
<div id="resultats"></div>
</div>
<div id="boutons_execution">
<img class="bouton" id="executer" src="Images/executer.png"/>
<img class="bouton" id="pause" title="Pause" src="Images/pause.png"/>
<img class="bouton" id="reset" src="Images/reset.png"/>
</div>
<div id="variables">
<p id="variable_titre"><strong>Variables</strong> :</p>
<p class="vars" id="var_a"></p>
<p class="vars" id="var_b"></p>
<p class="vars" id="var_c"></p>
<p class="vars" id="var_d"></p>
<p class="vars" id="var_e"></p>
<p class="vars" id="var_f"></p>
<p class="vars" id="var_g"></p>
<p class="vars" id="var_h"></p>
<p class="vars" id="var_i"></p>
<p class="vars" id="var_j"></p>
<p class="vars" id="var_k"></p>
<p class="vars" id="var_l"></p>
<p class="vars" id="var_m"></p>
<p class="vars" id="var_n"></p>
<p class="vars" id="var_o"></p>
<p class="vars" id="var_p"></p>
<p class="vars" id="var_q"></p>
<p class="vars" id="var_r"></p>
<p class="vars" id="var_s"></p>
<p class="vars" id="var_t"></p>
<p class="vars" id="var_u"></p>
<p class="vars" id="var_v"></p>
<p class="vars" id="var_w"></p>
<p class="vars" id="var_x"></p>
<p class="vars" id="var_y"></p>
<p class="vars" id="var_z"></p>
</div>
<a href="publier.php" id="publier"><img style="border: 0px;" alt="Publier cet algorithme" title="Publier cet algorithme dans les exemples" src="Images/publier.png"/></a>
<img id="disable" src="Images/disable.png"/>
</article>
</div>
<?php include("bas_de_page.php"); ?>
</body>
</html>

15
init.php Normal file
View File

@ -0,0 +1,15 @@
<?php
//Cette page permet d'initialiser le site en verifiant par exemple si le membre est connecté
session_start();
header('Content-type: text/html;charset=UTF-8');
if(!isset($_SESSION['username']) and isset($_COOKIE['username'], $_COOKIE['password']))
{
$cnn = mysql_query('select password,id from users where username="'.mysql_real_escape_string($_COOKIE['username']).'"');
$dn_cnn = mysql_fetch_array($cnn);
if(sha1($dn_cnn['password'])==$_COOKIE['password'] and mysql_num_rows($cnn)>0)
{
$_SESSION['username'] = $_COOKIE['username'];
$_SESSION['userid'] = $dn_cnn['id'];
}
}
?>

592
interface.js Normal file
View File

@ -0,0 +1,592 @@
var process = 0;
var pause = 0;
var reset = 0;
var lire_pending = 0;
var langage_avant_publier = 1;
$(document).ready(function() {
var TIME = 600;
var langage = 1;
var time = 0;
var indices = [
0, 2, 6 , 12,
20, 22, 26, 31,
39, 41, 45, 48,
56
];
var instructions = [
"Lire", "Afficher", "Si", "Alors", "Sinon", "Fin_Si", "Tant_que", "Fin_Tant_que", "Pour", "Allant_de", "à", "Fin_Pour", "Prend_la_valeur", "Hasard", "ET", "OU", "Partie_entière", "Partie_décimale", "Valeur_absolue", "Fin_programme",
"?", "&ang;", "If", "Then", "Else", "IfEnd", "While", "WhileEnd", "For", "To", "Next", "&rarr;", "#Ran", "and", "or", "Int", "Frac", "Abs", "Stop",
"Input", "Disp", "If", "Then", "Else", "End", "While", "For(", "End", "&rarr;", "rand", "and", "or", "int(", "fPart(", "abs(", "Stop"
];
function affiche_conversion() {
$('#conversion_algo').show();
$('#conversion_casio').show();
$('#conversion_ti').show();
if(langage == 1)
{
$('#conversion_algo').hide();
$('#conversion_casio').css('bottom', '-70px').css('right', '264px');
$('#conversion_ti').css('bottom', '-216px').css('right', '450px');
}
else if(langage == 2)
{
$('#conversion_casio').hide();
$('#conversion_ti').css('bottom', '-70px').css('right', '450px');
$('#conversion_algo').css('bottom', '-216px').css('right', '264px');
}
else if(langage == 3)
{
$('#conversion_ti').hide();
$('#conversion_algo').css('bottom', '-70px').css('right', '264px');
$('#conversion_casio').css('bottom', '-216px').css('right', '450px');
}
}
function hide_langage() {
$('.langage_actuel').hide();
}
function affiche_langage() {
hide_langage();
if(langage == 1)
$('#langage_algo').show();
if(langage == 2)
$('#langage_casio').show();
if(langage == 3)
$('#langage_ti').show();
$('#info_contenu').replaceWith("<span id='info_contenu'>Cliquez sur l'une des icônes, puis sélectionnez une instruction.</span>");
}
function changement_langage() {
var result;
$('#conversion_algo').click(function(event) {
if(new Date().getTime() - time > TIME && process == 0)
{
$('#executer').unbind('click');
time = new Date().getTime();
process = 1;
result = traduction(langage, 1, 1);
if(result == "completed")
{
langage = 1;
langage_avant_publier = 1;
affiche_conversion();
affiche_langage();
}
process = 0;
boutons();
$("#saisie").cleditor()[0].disable(false);
}
});
$('#conversion_casio').click(function(event) {
if(new Date().getTime() - time > TIME && process == 0)
{
$('#executer').unbind('click');
time = new Date().getTime();
process = 1;
result = traduction(langage, 2, 1);
if(result == "completed")
{
langage = 2;
langage_avant_publier = 2;
affiche_conversion();
affiche_langage();
}
process = 0;
boutons();
$("#saisie").cleditor()[0].disable(false);
}
});
$('#conversion_ti').click(function(event) {
if(new Date().getTime() - time > TIME && process == 0)
{
$('#executer').unbind('click');
time = new Date().getTime();
process = 1;
result = traduction(langage, 3, 1);
if(result == "completed")
{
langage = 3;
langage_avant_publier = 3;
affiche_conversion();
affiche_langage();
}
process = 0;
boutons();
$("#saisie").cleditor()[0].disable(false);
}
});
}
function init_boutons() {
$('#pause').hide();
}
function boutons() {
$('#executer').click(function() {
if(process == 0)
{
pause = 0;
process = 1;
reset = 0;
execution(langage, 0);
process = 0;
}
if(lire_pending == 1 && pause == 1)
{
$('#executer').hide();
$('#pause').show();
pause = 0;
document.getElementById("lire").focus();
}
});
$('#pause').click(function() {
$('#pause').hide();
$('#executer').show();
pause = 1;
});
$('#reset').click(function() {
$('#pause').hide();
$('#executer').show();
reset = 1;
process = 0;
execution_init();
$("#saisie").cleditor()[0].disable(false);
});
}
function signes() {
$('#signe1').click(function() {
addText(" &ge; ");
});
$('#signe2').click(function() {
addText(" &le; ");
});
$('#signe3').click(function() {
addText(" &ne; ");
});
$('#signe4').click(function() {
addText("Racine_Carrée(");
});
$('#signe5').click(function() {
addText("^");
});
$('#signe6').click(function() {
addText("&pi;");
});
$('#signe7').click(function() {
addText("exp(");
});
$('#signe8').click(function() {
addText("ln");
});
}
function addText(instext) {
/*var content = document.getElementById("saisie").value;
var saut = 0;
if(content.lastIndexOf("<div>") != -1)
saut = 6;
if(content.lastIndexOf("<br>") != -1)
saut = 10;
document.getElementById("saisie").value = content.substring(0, content.length - saut) + " " + instext;
if(content.lastIndexOf("<div>") != -1)
document.getElementById("saisie").value += "</div>";
$("#saisie").cleditor()[0].updateFrame().focus();*/
if(navigator.appName=='Microsoft Internet Explorer'){
var content = document.getElementById("saisie").value;
var saut = 0;
if(content.lastIndexOf("<div>") != -1)
saut = 6;
if(content.lastIndexOf("<br>") != -1)
saut = 10;
document.getElementById("saisie").value = content.substring(0, content.length - saut) + " " + instext;
if(content.lastIndexOf("<div>") != -1)
document.getElementById("saisie").value += "</div>";
$("#saisie").cleditor()[0].updateFrame().focus();
}
else
{
document.getElementById("main_iframe").blur();
document.getElementById("main_iframe").contentWindow.document.execCommand("InsertHTML", false, instext);
document.getElementById("main_iframe").focus();
}
}
function menus_deroulants_init() {
$('.onglet_deroulant').hide();
$('.instruction').hide();
$('#selection').hide();
}
function menus_deroulants_show() {
$('.icone').mouseenter(function() {
var iconeNb, indice_pointeur, ongletNb;
var id = $(this).attr('id');
$('#selection').hide();
if(id == 'entrees-sorties')
iconeNb = 0;
if(id == 'conditions')
iconeNb = 1;
if(id == 'boucles')
iconeNb = 2;
if(id == 'autres')
iconeNb = 3;
indice_pointeur = indices[(langage - 1) * 4 + iconeNb];
ongletNb = indices[(langage - 1) * 4 + iconeNb + 1] - indice_pointeur;
menus_deroulants_init();
affiche_menu_deroulant(iconeNb, ongletNb, indice_pointeur);
selection(iconeNb, ongletNb, id, indice_pointeur);
menus_deroulants_hide(ongletNb, id);
});
}
function menus_deroulants_hide(ongletNb, id, indice_pointeur) {
$('#support_menus, .cleditorMain').mouseenter(function() {
menus_deroulants_init();
});
}
function affiche_menu_deroulant(iconeNb, ongletNb, indice_pointeur) {
var i;
$('.onglet_deroulant').css('left', 255 + 69 * iconeNb);
for(i = 1; i <= ongletNb; i++)
{
$('#onglet_deroulant' + i).show();
$('#instruction' + i).replaceWith("<p class='instruction' id='instruction" + i + "'>" + instructions[indice_pointeur + i - 1] + "</p>");
$('#instruction' + i).css('left', 261 + 69 * iconeNb).show();
}
}
function Valeur_top(valeur_top) {
var onglet_click = 0;
switch(valeur_top)
{
case '-136px':
onglet_click = 1;
break;
case '-107px':
onglet_click = 2;
break;
case '-78px':
onglet_click = 3;
break;
case '-49px':
onglet_click = 4;
break;
case '-20px':
onglet_click = 5;
break;
case '9px':
onglet_click = 6;
break;
case '38px':
onglet_click = 7;
break;
case '67px':
onglet_click = 8;
break;
}
return onglet_click;
}
function selection(iconeNb, ongletNb, id, indice_pointeur) {
var i, valeur_top, onglet_click, text, syntaxe, test;
for(i = 1; i <= ongletNb; i++)
{
$('#instruction' + i).mouseenter(function() {
valeur_top = $(this).css('top');
onglet_click = Valeur_top(valeur_top);
$('#selection').css('top', -155 + 29 * onglet_click)
.css('left', 255 + 69 * iconeNb)
.show();
text = instructions[indice_pointeur + onglet_click - 1];
switch(text)
{
case 'Lire':
syntaxe = "<span class='mot_cle'>Lire </span><span class='indications'>variable</span>";
break;
case 'Afficher':
syntaxe = "<span class='mot_cle'>Afficher </span><span class='indications'>\"Mon texte\" (ou variable)</span>";
break;
case 'Si':
syntaxe = "<span class='mot_cle'>Si </span><span class='indications'>condition</span><br /><span class='mot_cle'>Alors </span><span class='indications'>Instructions</span><br />(<span class='mot_cle'>Sinon </span><span class='indications'>Instructions</span>)<br /><span class='mot_cle'>Fin_Si</span>";
break;
case 'Tant_que':
syntaxe = "<span class='mot_cle'>Tant_que </span><span class='indications'>condition</span><br /><span class='indications'>Instructions</span><br /><span class='mot_cle'>Fin_Tant_que</span>";
break;
case 'Fin_Tant_que':
syntaxe = "<span class='mot_cle'>Tant_que </span><span class='indications'>condition</span><br /><span class='indications'>Instructions</span><br /><span class='mot_cle'>Fin_Tant_que</span>";
break;
case 'Pour':
syntaxe = "<span class='mot_cle'>Pour </span><span class='indications'>variable </span><span class='mot_cle'>Allant_de </span><span class='indications'>départ </span><span class='mot_cle'>à </span><span class='indications'>arrivée</span><br /><span class='indications'>Instructions</span><br /><span class='mot_cle'>Fin_Pour</span>";
break;
case 'Prend_la_valeur':
syntaxe = "<span class='indications'>variable </span><span class='mot_cle'>Prend_la_valeur </span><span class='indications'>valeur</span>";
break;
case 'Hasard':
syntaxe = "<span class='mot_cle'>Hasard(</span><span class='indications'>(valeur maximale)</span>";
break;
case 'ET':
syntaxe = "<span class='indications'>condition 1 </span><span class='mot_cle'>ET </span><span class='indications'>condition 2</span>";
break;
case 'OU':
syntaxe = "<span class='indications'>condition 1 </span><span class='mot_cle'>OU </span><span class='indications'>condition 2</span>";
break;
case 'Partie_entière':
syntaxe = "<span class='mot_cle'>Partie_entière </span><span class='indications'>(valeur)</span>";
break;
case 'Partie_décimale':
syntaxe = "<span class='mot_cle'>Partie_décimale </span><span class='indications'>(valeur)</span>";
break;
case 'Valeur_absolue':
syntaxe = "<span class='mot_cle'>Valeur_absolue </span><span class='indications'>(valeur)</span>";
break;
case 'Fin_programme':
syntaxe = "<span class='mot_cle'>Fin_programme</span>";
break;
case '?':
syntaxe = "<span class='mot_cle'>? </span><span class='indications'>&rarr; variable</span>";
break;
case '&ang;':
syntaxe = "<span class='indications'>\"Mon texte\" (ou variable)</span><span class='mot_cle'>&ang;</span>";
break;
case 'If':
syntaxe = "<span class='mot_cle'>If </span><span class='indications'>condition</span><br /><span class='mot_cle'>Then </span><span class='indications'>Instructions</span><br />(<span class='mot_cle'>Else </span><span class='indications'>Instructions</span>)<br /><span class='mot_cle'>IfEnd</span>";
break;
case 'While':
syntaxe = "<span class='mot_cle'>While </span><span class='indications'>condition</span><br /><span class='indications'>Instructions</span><br /><span class='mot_cle'>WhileEnd</span>";
break;
case 'WhileEnd':
syntaxe = "<span class='mot_cle'>While </span><span class='indications'>condition</span><br /><span class='indications'>Instructions</span><br /><span class='mot_cle'>WhileEnd</span>";
break;
case 'For':
syntaxe = "<span class='mot_cle'>For </span><span class='indications'>départ&rarr;variable <span class='mot_cle'>To </span><span class='indications'>arrivée</span><br /><span class='indications'>Instructions</span><br /><span class='mot_cle'>Next</span>";
break;
case '&rarr;':
syntaxe = "<span class='indications'>valeur </span><span class='mot_cle'>&rarr; </span><span class='indications'>variable</span>";
break;
case 'rand':
syntaxe = "<span class='mot_cle'>rand</span><span class='indications'>(valeur maximale)</span>";
break;
case 'and':
syntaxe = "<span class='indications'>condition 1 </span><span class='mot_cle'>and </span><span class='indications'>condition 2</span>";
break;
case 'or':
syntaxe = "<span class='indications'>condition 1 </span><span class='mot_cle'>or </span><span class='indications'>condition 2</span>";
break;
case 'Int':
syntaxe = "<span class='mot_cle'>Int</span><span class='indications'>(valeur)</span>";
break;
case 'Frac':
syntaxe = "<span class='mot_cle'>Frac</span><span class='indications'>(valeur)</span>";
break;
case 'Abs':
syntaxe = "<span class='mot_cle'>Abs</span><span class='indications'>(valeur)</span>";
break;
case 'Stop':
syntaxe = "<span class='mot_cle'>Stop</span>";
break;
case 'Input':
syntaxe = "<span class='mot_cle'>Input </span><span class='indications'>variable</span>";
break;
case 'Disp':
syntaxe = "<span class='mot_cle'>Disp </span><span class='indications'>\"Mon texte\" (ou variable)</span>";
break;
case 'If':
syntaxe = "<span class='mot_cle'>If </span><span class='indications'>condition</span><br /><span class='mot_cle'>Then </span><span class='indications'>Instructions</span><br />(<span class='mot_cle'>Else </span><span class='indications'>Instructions</span>)<br /><span class='mot_cle'>End</span>";
break;
case 'While':
syntaxe = "<span class='mot_cle'>While </span><span class='indications'>condition</span><br /><span class='indications'>Instructions</span><br /><span class='mot_cle'>End</span>";
break;
case 'For(':
syntaxe = "<span class='mot_cle'>For(</span><span class='indications'>variable, départ, arrivée)<br /><span class='indications'>Instructions</span><br /><span class='mot_cle'>End</span>";
break;
case '#Ran':
syntaxe = "<span class='indications'>(valeur maximale)</span><span class='mot_cle'>#Ran</span>";
break;
case 'int(':
syntaxe = "<span class='mot_cle'>int(</span><span class='indications'>valeur)</span>";
break;
case 'fPart(':
syntaxe = "<span class='mot_cle'>fPart(</span><span class='indications'>valeur)</span>";
break;
case 'abs(':
syntaxe = "<span class='mot_cle'>abs(</span><span class='indications'>valeur)</span>";
break;
}
$('#info_contenu').replaceWith("<span id='info_contenu'><h3 id='syntaxe_titre'>Syntaxe</h3>" + "<div id='syntaxe'>" + syntaxe + "</div></span>");
});
}
$('.instruction').click(function() {
var num;
valeur_top = $(this).css('top');
menus_deroulants_init(id);
onglet_click = Valeur_top(valeur_top);
num = indice_pointeur + onglet_click - 1;
text = instructions[num];
if((num >= 16 && num <= 18) || num == 13 || (num >= 35 && num <= 37) || num == 49)
text += "()";
if(num >= 52 && num <= 54)
text += ")";
if(num == 32)
text = "()" + text;
/*if(text == "&ang;")
text = "&ang;";
if(text == "&rarr;")
text = "&rarr;";*/
addText(text + " ");
});
}
function default_code()
{
if((document.cookie.indexOf('exemple=') == -1 || readCookie('exemple') == "init") && document.cookie.indexOf('last_algo=') != -1 && document.cookie.indexOf('last_language=') != -1 && (readCookie('last_language') == 1 || readCookie('last_language') == 2 || readCookie('last_language') == 3)){
langage = readCookie('last_language');
var t;
switch(langage)
{
case "1": t = 1; break;
case "2": t = 2; break;
case "3": t = 3; break;
}
langage = t;
var code = unescape(readCookie('last_algo'));
document.getElementById("saisie").value = code;
$("#saisie").cleditor()[0].updateFrame().focus();
affiche_conversion();
affiche_langage();
}
}
$("#saisie").cleditor().focus(); // transforme le textarea en éditeur html
$('#debug').hide();
$('#disable').hide();
menus_deroulants_init('');
affiche_langage();
changement_langage();
affiche_conversion();
init_boutons();
boutons();
signes();
menus_deroulants_show();
copie_contenu();
default_code();
alert_mobile();
});
function copie_contenu() {
$('#publier').click(function() {
var texte;
if(langage_avant_publier == 1)
texte = document.getElementById('saisie').value;
else
texte = traduction(langage_avant_publier, 1, 0);
while(texte.indexOf(";") != -1)
texte = texte.replace(";","@");
createCookie("algorithme",texte,1);
});
}
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value;
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function alert_mobile() {
if(/iPhone|iPod|Android|opera mini|blackberry|palm os|palm|hiptop|avantgo|plucker|xiino|blazer|elaine|iris|3g_t|windows ce|opera mobi|windows ce; smartphone;|windows ce;iemobile/i.test(navigator.userAgent)){
alert("Cette interface ne fonctionne pas encore sur mobile. Merci de vous procurer un ordinateur pour l'utiliser.");
}
}

23
jquery.cleditor.css Normal file
View File

@ -0,0 +1,23 @@
.cleditorMain iframe {border:none; margin:0; padding:0}
.cleditorMain textarea {border:none; margin:0; padding:0; overflow-y:scroll; font:10pt Arial,Verdana; resize:none; outline:none /* webkit grip focus */}
.cleditorToolbar {background: url('Images/toolbar.gif') repeat}
.cleditorGroup {float:left; height:26px}
.cleditorButton {float:left; width:24px; height:24px; margin:1px 0 1px 0; background: url('Images/buttons.gif')}
.cleditorDisabled {opacity:0.3; filter:alpha(opacity=30)}
.cleditorDivider {float:left; width:1px; height:23px; margin:1px 0 1px 0; background:#CCC}
.cleditorPopup {border:solid 1px #999; background-color:white; position:absolute; font:10pt Arial,Verdana; cursor:default; z-index:10000}
.cleditorList div {padding:2px 4px 2px 4px}
.cleditorList p,
.cleditorList h1,
.cleditorList h2,
.cleditorList h3,
.cleditorList h4,
.cleditorList h5,
.cleditorList h6,
.cleditorList font {padding:0; margin:0; background-color:Transparent}
.cleditorColor {width:150px; padding:1px 0 0 1px}
.cleditorColor div {float:left; width:14px; height:14px; margin:0 1px 1px 0}
.cleditorPrompt {background-color:#F6F7F9; padding:4px; font-size:8.5pt}
.cleditorPrompt input,
.cleditorPrompt textarea {font:8.5pt Arial,Verdana;}
.cleditorMsg {background-color:#FDFCEE; width:150px; padding:4px; font-size:8.5pt}

1136
jquery.cleditor.js Normal file

File diff suppressed because it is too large Load Diff

561
jquery.cleditor.min.js vendored Normal file
View File

@ -0,0 +1,561 @@
/*
CLEditor WYSIWYG HTML Editor v1.3.0
http://premiumsoftware.net/cleditor
requires jQuery v1.4.2 or later
Copyright 2010, Chris Landowski, Premium Software, LLC
Dual licensed under the MIT or GPL Version 2 licenses.
*/
(function (e) {
function aa(a) {
var b = this,
c = a.target,
d = e.data(c, x),
h = s[d],
f = h.popupName,
i = p[f];
if (!(b.disabled || e(c).attr(n) == n)) {
var g = {
editor: b,
button: c,
buttonName: d,
popup: i,
popupName: f,
command: h.command,
useCSS: b.options.useCSS
};
if (h.buttonClick && h.buttonClick(a, g) === false) return false;
if (d == "source") {
if (t(b)) {
delete b.range;
b.$area.hide();
b.$frame.show();
c.title = h.title
} else {
b.$frame.hide();
b.$area.show();
c.title = "Show Rich Text"
}
setTimeout(function () {
u(b)
}, 100)
} else if (!t(b)) if (f) {
var j = e(i);
if (f ==
"url") {
if (d == "link" && M(b) === "") {
z(b, "A selection is required when inserting a link.", c);
return false
}
j.children(":button").unbind(q).bind(q, function () {
var k = j.find(":text"),
o = e.trim(k.val());
o !== "" && v(b, g.command, o, null, g.button);
k.val("http://");
r();
w(b)
})
} else f == "pastetext" && j.children(":button").unbind(q).bind(q, function () {
var k = j.find("textarea"),
o = k.val().replace(/\n/g, "<br />");
o !== "" && v(b, g.command, o, null, g.button);
k.val("");
r();
w(b)
}); if (c !== e.data(i, A)) {
N(b, i, c);
return false
}
return
} else if (d ==
"print") b.$frame[0].contentWindow.print();
else if (!v(b, g.command, g.value, g.useCSS, c)) return false;
w(b)
}
}
function O(a) {
a = e(a.target).closest("div");
a.css(H, a.data(x) ? "#FFF" : "#FFC")
}
function P(a) {
e(a.target).closest("div").css(H, "transparent")
}
function ba(a) {
var b = a.data.popup,
c = a.target;
if (!(b === p.msg || e(b).hasClass(B))) {
var d = e.data(b, A),
h = e.data(d, x),
f = s[h],
i = f.command,
g, j = this.options.useCSS;
if (h == "font") g = c.style.fontFamily.replace(/"/g, "");
else if (h == "size") {
if (c.tagName == "DIV") c = c.children[0];
g = c.innerHTML
} else if (h == "style") g = "<" + c.tagName + ">";
else if (h == "color") g = Q(c.style.backgroundColor);
else if (h == "highlight") {
g = Q(c.style.backgroundColor);
if (l) i = "backcolor";
else j = true
}
b = {
editor: this,
button: d,
buttonName: h,
popup: b,
popupName: f.popupName,
command: i,
value: g,
useCSS: j
};
if (!(f.popupClick && f.popupClick(a, b) === false)) {
if (b.command && !v(this, b.command, b.value, b.useCSS, d)) return false;
r();
w(this)
}
}
}
function C(a) {
for (var b = 1, c = 0, d = 0; d < a.length; ++d) {
b = (b + a.charCodeAt(d)) % 65521;
c = (c + b) % 65521
}
return c <<
16 | b
}
function R(a, b, c, d, h) {
if (p[a]) return p[a];
var f = e(m).hide().addClass(ca).appendTo("body");
if (d) f.html(d);
else if (a == "color") {
b = b.colors.split(" ");
b.length < 10 && f.width("auto");
e.each(b, function (i, g) {
e(m).appendTo(f).css(H, "#" + g)
});
c = da
} else if (a == "font") e.each(b.fonts.split(","), function (i, g) {
e(m).appendTo(f).css("fontFamily", g).html(g)
});
else if (a == "size") e.each(b.sizes.split(","), function (i, g) {
e(m).appendTo(f).html("<font size=" + g + ">" + g + "</font>")
});
else if (a == "style") e.each(b.styles, function (i,
g) {
e(m).appendTo(f).html(g[1] + g[0] + g[1].replace("<", "</"))
});
else if (a == "url") {
f.html('Enter URL:<br><input type=text value="http://" size=35><br><input type=button value="Submit">');
c = B
} else if (a == "pastetext") {
f.html("Paste your content here and click submit.<br /><textarea cols=40 rows=3></textarea><br /><input type=button value=Submit>");
c = B
}
if (!c && !d) c = S;
f.addClass(c);
l && f.attr(I, "on").find("div,font,p,h1,h2,h3,h4,h5,h6").attr(I, "on");
if (f.hasClass(S) || h === true) f.children().hover(O, P);
p[a] = f[0];
return f[0]
}
function T(a, b) {
if (b) {
a.$area.attr(n, n);
a.disabled = true
} else {
a.$area.removeAttr(n);
delete a.disabled
}
try {
if (l) a.doc.body.contentEditable = !b;
else a.doc.designMode = !b ? "on" : "off"
} catch (c) {}
u(a)
}
function v(a, b, c, d, h) {
D(a);
if (!l) {
if (d === undefined || d === null) d = a.options.useCSS;
a.doc.execCommand("styleWithCSS", 0, d.toString())
}
d = true;
var f;
if (l && b.toLowerCase() == "inserthtml") y(a).pasteHTML(c);
else {
try {
d = a.doc.execCommand(b, 0, c || null)
} catch (i) {
f = i.description;
d = false
}
d || ("cutcopypaste".indexOf(b) > -1 ? z(a, "For security reasons, your browser does not support the " + b + " command. Try using the keyboard shortcut or context menu instead.", h) : z(a, f ? f : "Error executing the " + b + " command.", h))
}
u(a);
return d
}
function w(a) {
setTimeout(function () {
t(a) ? a.$area.focus() : a.$frame[0].contentWindow.focus();
u(a)
}, 0)
}
function y(a) {
if (l) return J(a).createRange();
return J(a).getRangeAt(0)
}
function J(a) {
if (l) return a.doc.selection;
return a.$frame[0].contentWindow.getSelection()
}
function Q(a) {
var b = /rgba?\((\d+), (\d+), (\d+)/.exec(a),
c = a.split("");
if (b) for (a = (b[1] << 16 | b[2] << 8 | b[3]).toString(16); a.length < 6;) a = "0" + a;
return "#" + (a.length == 6 ? a : c[1] + c[1] + c[2] + c[2] + c[3] + c[3])
}
function r() {
e.each(p, function (a, b) {
e(b).hide().unbind(q).removeData(A)
})
}
function U() {
var a = e("link[href$='jquery.cleditor.css']").attr("href");
return a.substr(0, a.length - 19) + "images/"
}
function K(a) {
var b = a.$main,
c = a.options;
a.$frame && a.$frame.remove();
var d = a.$frame = e('<iframe id="main_iframe" frameborder="0" src="javascript:true;">').hide().appendTo(b),
h = d[0].contentWindow,
f =
a.doc = h.document,
i = e(f);
f.open();
f.write(c.docType + "<html>" + (c.docCSSFile === "" ? "" : '<head><link rel="stylesheet" type="text/css" href="' + c.docCSSFile + '" /></head>') + '<body style="' + c.bodyStyle + '"></body></html>');
f.close();
l && i.click(function () {
w(a)
});
E(a);
if (l) {
i.bind("beforedeactivate beforeactivate selectionchange keypress", function (g) {
if (g.type == "beforedeactivate") a.inactive = true;
else if (g.type == "beforeactivate") {
!a.inactive && a.range && a.range.length > 1 && a.range.shift();
delete a.inactive
} else if (!a.inactive) {
if (!a.range) a.range = [];
for (a.range.unshift(y(a)); a.range.length > 2;) a.range.pop()
}
});
d.focus(function () {
D(a)
})
}(e.browser.mozilla ? i : e(h)).blur(function () {
V(a, true)
});
i.click(r).bind("keyup mouseup", function () {
u(a)
});
L ? a.$area.show() : d.show();
e(function () {
var g = a.$toolbar,
j = g.children("div:last"),
k = b.width();
j = j.offset().top + j.outerHeight() - g.offset().top + 1;
g.height(j);
j = (/%/.test("" + c.height) ? b.height() : parseInt(c.height)) - j;
d.width(k).height(j);
a.$area.width(k).height(ea ? j - 2 : j);
T(a, a.disabled);
u(a)
})
}
function u(a) {
if (!L &&
e.browser.webkit && !a.focused) {
a.$frame[0].contentWindow.focus();
window.focus();
a.focused = true
}
var b = a.doc;
if (l) b = y(a);
var c = t(a);
e.each(a.$toolbar.find("." + W), function (d, h) {
var f = e(h),
i = e.cleditor.buttons[e.data(h, x)],
g = i.command,
j = true;
if (a.disabled) j = false;
else if (i.getEnabled) {
j = i.getEnabled({
editor: a,
button: h,
buttonName: i.name,
popup: p[i.popupName],
popupName: i.popupName,
command: i.command,
useCSS: a.options.useCSS
});
if (j === undefined) j = true
} else if ((c || L) && i.name != "source" || l && (g == "undo" || g == "redo")) j =
false;
else if (g && g != "print") {
if (l && g == "hilitecolor") g = "backcolor";
if (!l || g != "inserthtml") try {
j = b.queryCommandEnabled(g)
} catch (k) {
j = false
}
}
if (j) {
f.removeClass(X);
f.removeAttr(n)
} else {
f.addClass(X);
f.attr(n, n)
}
})
}
function D(a) {
l && a.range && a.range[0].select()
}
function M(a) {
D(a);
if (l) return y(a).text;
return J(a).toString()
}
function z(a, b, c) {
var d = R("msg", a.options, fa);
d.innerHTML = b;
N(a, d, c)
}
function N(a, b, c) {
var d, h, f = e(b);
if (c) {
var i = e(c);
d = i.offset();
h = --d.left;
d = d.top + i.height()
} else {
i = a.$toolbar;
d = i.offset();
h = Math.floor((i.width() - f.width()) / 2) + d.left;
d = d.top + i.height() - 2
}
r();
f.css({
left: h,
top: d
}).show();
if (c) {
e.data(b, A, c);
f.bind(q, {
popup: b
}, e.proxy(ba, a))
}
setTimeout(function () {
f.find(":text,textarea").eq(0).focus().select()
}, 100)
}
function t(a) {
return a.$area.is(":visible")
}
function E(a, b) {
var c = a.$area.val(),
d = a.options,
h = d.updateFrame,
f = e(a.doc.body);
if (h) {
var i = C(c);
if (b && a.areaChecksum == i) return;
a.areaChecksum = i
}
c = h ? h(c) : c;
c = c.replace(/<(?=\/?script)/ig, "&lt;");
if (d.updateTextArea) a.frameChecksum =
C(c);
if (c != f.html()) {
f.html(c);
e(a).triggerHandler(F)
}
}
function V(a, b) {
var c = e(a.doc.body).html(),
d = a.options,
h = d.updateTextArea,
f = a.$area;
if (h) {
var i = C(c);
if (b && a.frameChecksum == i) return;
a.frameChecksum = i
}
c = h ? h(c) : c;
if (d.updateFrame) a.areaChecksum = C(c);
if (c != f.val()) {
f.val(c);
e(a).triggerHandler(F)
}
}
e.cleditor = {
defaultOptions: {
width: 500,
height: 250,
controls: "bold italic underline strikethrough subscript superscript | font size style | color highlight removeformat | bullets numbering | outdent indent | alignleft center alignright justify | undo redo | rule image link unlink | cut copy paste pastetext | print source",
colors: "FFF FCC FC9 FF9 FFC 9F9 9FF CFF CCF FCF CCC F66 F96 FF6 FF3 6F9 3FF 6FF 99F F9F BBB F00 F90 FC6 FF0 3F3 6CC 3CF 66C C6C 999 C00 F60 FC3 FC0 3C0 0CC 36F 63F C3C 666 900 C60 C93 990 090 399 33F 60C 939 333 600 930 963 660 060 366 009 339 636 000 300 630 633 330 030 033 006 309 303",
fonts: "Arial,Arial Black,Comic Sans MS,Courier New,Narrow,Garamond,Georgia,Impact,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",
sizes: "1,2,3,4,5,6,7",
styles: [
["Paragraph", "<p>"],
["Header 1", "<h1>"],
["Header 2", "<h2>"],
["Header 3", "<h3>"],
["Header 4", "<h4>"],
["Header 5", "<h5>"],
["Header 6", "<h6>"]
],
useCSS: false,
docType: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
docCSSFile: "",
bodyStyle: "margin:4px; font:10pt Arial,Verdana; cursor:text"
},
buttons: {
init: "bold,,|italic,,|underline,,|strikethrough,,|subscript,,|superscript,,|font,,fontname,|size,Font Size,fontsize,|style,,formatblock,|color,Font Color,forecolor,|highlight,Text Highlight Color,hilitecolor,color|removeformat,Remove Formatting,|bullets,,insertunorderedlist|numbering,,insertorderedlist|outdent,,|indent,,|alignleft,Align Text Left,justifyleft|center,,justifycenter|alignright,Align Text Right,justifyright|justify,,justifyfull|undo,,|redo,,|rule,Insert Horizontal Rule,inserthorizontalrule|image,Insert Image,insertimage,url|link,Insert Hyperlink,createlink,url|unlink,Remove Hyperlink,|cut,,|copy,,|paste,,|pastetext,Paste as Text,inserthtml,|print,,|source,Show Source"
},
imagesPath: function () {
return U()
}
};
e.fn.cleditor = function (a) {
var b = e([]);
this.each(function (c, d) {
if (d.tagName == "TEXTAREA") {
var h = e.data(d, Y);
h || (h = new cleditor(d, a));
b = b.add(h)
}
});
return b
};
var H = "backgroundColor",
A = "button",
x = "buttonName",
F = "change",
Y = "cleditor",
q = "click",
n = "disabled",
m = "<div>",
I = "unselectable",
W = "cleditorButton",
X = "cleditorDisabled",
ca = "cleditorPopup",
S = "cleditorList",
da = "cleditorColor",
B = "cleditorPrompt",
fa = "cleditorMsg",
l = e.browser.msie,
ea = /msie\s6/i.test(navigator.userAgent),
L = /iphone|ipad|ipod/i.test(navigator.userAgent),
p = {}, Z, s = e.cleditor.buttons;
e.each(s.init.split("|"), function (a, b) {
var c = b.split(","),
d = c[0];
s[d] = {
stripIndex: a,
name: d,
title: c[1] === "" ? d.charAt(0).toUpperCase() + d.substr(1) : c[1],
command: c[2] === "" ? d : c[2],
popupName: c[3] === "" ? d : c[3]
}
});
delete s.init;
cleditor = function (a, b) {
var c = this;
c.options = b = e.extend({}, e.cleditor.defaultOptions, b);
var d = c.$area = e(a).hide().data(Y, c).blur(function () {
E(c, true)
}),
h = c.$main = e(m).addClass("cleditorMain").width(b.width).height(b.height),
f = c.$toolbar = e(m).addClass("cleditorToolbar").appendTo(h),
i = e(m).addClass("cleditorGroup").appendTo(f);
e.each(b.controls.split(" "), function (g, j) {
if (j === "") return true;
if (j == "|") {
e(m).addClass("cleditorDivider").appendTo(i);
i = e(m).addClass("cleditorGroup").appendTo(f)
} else {
var k = s[j],
o = e(m).data(x, k.name).addClass(W).attr("title", k.title).bind(q, e.proxy(aa, c)).appendTo(i).hover(O, P),
G = {};
if (k.css) G = k.css;
else if (k.image) G.backgroundImage = "url(" + U() + k.image + ")";
if (k.stripIndex) G.backgroundPosition =
k.stripIndex * -24;
o.css(G);
l && o.attr(I, "on");
k.popupName && R(k.popupName, b, k.popupClass, k.popupContent, k.popupHover)
}
});
h.insertBefore(d).append(d);
if (!Z) {
e(document).click(function (g) {
g = e(g.target);
g.add(g.parents()).is("." + B) || r()
});
Z = true
}
/auto|%/.test("" + b.width + b.height) && e(window).resize(function () {
K(c)
});
K(c)
};
var $ = cleditor.prototype;
e.each([
["clear", function (a) {
a.$area.val("");
E(a)
}
],
["disable", T],
["execCommand", v],
["focus", w],
["hidePopups", r],
["sourceMode", t, true],
["refresh", K],
["select", function (a) {
setTimeout(function () {
t(a) ? a.$area.select() : v(a, "selectall")
}, 0)
}
],
["selectedHTML", function (a) {
D(a);
a = y(a);
if (l) return a.htmlText;
var b = e("<layer>")[0];
b.appendChild(a.cloneContents());
return b.innerHTML
},
true
],
["selectedText", M, true],
["showMessage", z],
["updateFrame", E],
["updateTextArea", V]
], function (a, b) {
$[b[0]] = function () {
for (var c = [this], d = 0; d < arguments.length; d++) c.push(arguments[d]);
c = b[1].apply(this, c);
if (b[2]) return c;
return this
}
});
$.change = function (a) {
var b = e(this);
return a ? b.bind(F,
a) : b.trigger(F)
}
})(jQuery);

9440
jquery.js vendored Normal file

File diff suppressed because it is too large Load Diff

1
lien.php Normal file
View File

@ -0,0 +1 @@
<a href='https://orderng02.ikoula.com/cp'>Lien</a>

123
list_pm.php Normal file
View File

@ -0,0 +1,123 @@
<?php
//Cette page permet d'afficher la liste des messages personnels d'un membre
include('config.php');
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Messages Personnels</title>
</head>
<body>
<div id="content">
<?php include("menu.php"); ?>
<div class="content">
<?php
if(isset($_SESSION['username']))
{
$req1 = mysql_query('select m1.id, m1.title, m1.timestamp, count(m2.id) as reps, users.id as userid, users.username from pm as m1, pm as m2,users where ((m1.user1="'.$_SESSION['userid'].'" and m1.user1read="no" and users.id=m1.user2) or (m1.user2="'.$_SESSION['userid'].'" and m1.user2read="no" and users.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc');
$req2 = mysql_query('select m1.id, m1.title, m1.timestamp, count(m2.id) as reps, users.id as userid, users.username from pm as m1, pm as m2,users where ((m1.user1="'.$_SESSION['userid'].'" and m1.user1read="yes" and users.id=m1.user2) or (m1.user2="'.$_SESSION['userid'].'" and m1.user2read="yes" and users.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc');
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; Messages Personnels
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="login.php">Déconnexion</a>
</div>
<div class="clean"></div>
</div>
<a href="new_pm.php" class="button">Nouveau message priv&eacute;</a><br />
<h3>Messages non-lus(<?php echo intval(mysql_num_rows($req1)); ?>):</h3>
<table class="list_pm">
<tr>
<th class="title_cell">Titre</th>
<th>Réponses</th>
<th>Expéditeur</th>
<th>Date d'envoi</th>
</tr>
<?php
while($dn1 = mysql_fetch_array($req1))
{
?>
<tr>
<td class="left"><a href="read_pm.php?id=<?php echo $dn1['id']; ?>"><?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo $dn1['reps']-1; ?></td>
<td><a href="profile.php?id=<?php echo $dn1['userid']; ?>"><?php echo htmlentities($dn1['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo date('d/m/Y H:i:s' ,$dn1['timestamp']); ?></td>
</tr>
<?php
}
if(intval(mysql_num_rows($req1))==0)
{
?>
<tr>
<td colspan="4" class="center">Vous n'avez aucun message non-lu.</td>
</tr>
<?php
}
?>
</table>
<br />
<h3>Messages lus(<?php echo intval(mysql_num_rows($req2)); ?>):</h3>
<table class="list_pm">
<tr>
<th class="title_cell">Titre</th>
<th>Réponses</th>
<th>Expéditeur</th>
<th>Date d'envoi</th>
</tr>
<?php
while($dn2 = mysql_fetch_array($req2))
{
?>
<tr>
<td class="left"><a href="read_pm.php?id=<?php echo $dn2['id']; ?>"><?php echo htmlentities($dn2['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo $dn2['reps']-1; ?></td>
<td><a href="profile.php?id=<?php echo $dn2['userid']; ?>"><?php echo htmlentities($dn2['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo date('d/m/Y H:i:s' ,$dn2['timestamp']); ?></td>
</tr>
<?php
}
if(intval(mysql_num_rows($req2))==0)
{
?>
<tr>
<td colspan="4" class="center">Vous n'avez aucun message lu.</td>
</tr>
<?php
}
?>
</table>
<?php
}
else
{
?>
Vous devez &ecirc;tre connect&eacute; pour acc&eacute;der &agrave; cette page.
<div class="box_login">
<form action="login.php" method="post">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<label for="memorize">Se souvenir</label><input type="checkbox" name="memorize" id="memorize" value="yes" />
<div class="center">
<input type="submit" value="Login" /> <input type="button" onclick="javascript:document.location='signup.php';" value="S'inscrire" />
</div>
</form>
</div>
<?php
}
?>
</div>
</body>
</div>
<?php include("bas_de_page.php"); ?>
</html>

127
list_topics.php Normal file
View File

@ -0,0 +1,127 @@
<?php
//Cette page permet d'afficher la liste des sujets d'une categorie de forum
include('config.php');
if(isset($_GET['parent']))
{
$id = intval($_GET['parent']);
$dn1 = mysql_fetch_array(mysql_query('select count(c.id) as nb1, c.name,count(t.id) as topics from categories as c left join topics as t on t.parent="'.$id.'" where c.id="'.$id.'" group by c.id'));
if($dn1['nb1']>0)
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?></title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
</head>
<body>
<div id="content">
<?php include("menu.php"); ?>
<div class="content">
<?php
if(isset($_SESSION['username']))
{
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; <a href="list_topics.php?parent=<?php echo $id; ?>"><?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?></a>
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="forum.php">Déconnexion</a>
</div>
<div class="clean"></div>
</div>
<?php
}
else
{
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; <a href="list_topics.php?parent=<?php echo $id; ?>"><?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?></a>
</div>
<div class="box_right">
<a href="signup.php">Inscription</a> - <a href="forum.php">Connexion</a>
</div>
<div class="clean"></div>
</div>
<?php
}
if(isset($_SESSION['username']))
{
?>
<a href="new_topic.php?parent=<?php echo $id; ?>" class="button" style="margin-bottom: 15px;">Nouveau Sujet</a>
<?php
}
$dn2 = mysql_query('select t.id, t.title, t.authorid, u.username as author, count(r.id) as replies from topics as t left join topics as r on r.parent="'.$id.'" and r.id=t.id and r.id2!=1 left join users as u on u.id=t.authorid where t.parent="'.$id.'" and t.id2=1 group by t.id order by t.timestamp2 desc');
if(mysql_num_rows($dn2)>0)
{
?>
<table class="topics_table">
<tr>
<th class="forum_tops">Sujet</th>
<th class="forum_auth">Auteur</th>
<th class="forum_nrep">Réponses</th>
<?php
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<th class="forum_act">Action</th>
<?php
}
?>
</tr>
<?php
while($dnn2 = mysql_fetch_array($dn2))
{
?>
<tr>
<td class="forum_tops"><a href="read_topic.php?id=<?php echo $dnn2['id']; ?>"><?php echo htmlentities($dnn2['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><a href="profile.php?id=<?php echo $dnn2['authorid']; ?>"><?php echo htmlentities($dnn2['author'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo $dnn2['replies']; ?></td>
<?php
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<td><a href="delete_topic.php?id=<?php echo $dnn2['id']; ?>"><img src="<?php echo $design; ?>/Images/delete.png" alt="Delete" /></a></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>
<?php
}
else
{
?>
<div class="message">Cette catégorie ne contient aucun sujet.</div>
<?php
}
?>
</div>
</div>
</body>
<?php include("bas_de_page.php"); ?>
</html>
<?php
}
else
{
echo '<h2>La catégorie que vous désirez visiter n\'existe pas.</h2>';
}
}
else
{
echo '<h2>L\'identifiant de la catégorie que vous désirez visiter n\'est pas défini.</h2>';
}
?>

61
login.php Normal file
View File

@ -0,0 +1,61 @@
<?php
//Cette page permet aux utilisateurs de se connecter ou de se deconnecter
include('config.php');
if(isset($_SESSION['username']))
{
unset($_SESSION['username'], $_SESSION['userid']);
setcookie('username', '', time()-100);
setcookie('password', '', time()-100);
}
else
{
$ousername = '';
if(isset($_POST['username'], $_POST['password']))
{
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
if($dn['password']==$password and mysql_num_rows($req)>0)
{
$form = false;
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
if(isset($_POST['memorize']) and $_POST['memorize']=='yes')
{
$one_year = time()+(60*60*24*365);
setcookie('username', $_POST['username'], $one_year);
setcookie('password', sha1($password), $one_year);
}
}
else
{
$form = true;
}
}
else
{
$form = true;
}
if($form)
{
if(isset($message))
{
echo '<div class="message">'.$message.'</div>';
}
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
}
}
echo '<script language="Javascript">document.location.replace("forum.php");</script>';
?>

2343
mail.php Normal file

File diff suppressed because it is too large Load Diff

96
menu.css Normal file
View File

@ -0,0 +1,96 @@
@font-face {
font-family: 'Navig';
src: url('Polices/Action_Man/Action_Man-webfont.eot');
src: url('Polices/Action_Man/Action_Man-webfont.eot?#iefix') format('embedded-opentype'),
url('Polices/Action_Man/Action_Man-webfont.woff') format('woff'),
url('Polices/Action_Man/Action_Man-webfont.ttf') format('truetype'),
url('Polices/Action_Man/Action_Man-webfont.svg#ActionManRegular') format('svg');
font-weight: normal;
font-style: normal;
}
#menus
{
text-align: center;
}
#banniere
{
margin-top: 45px;
height: 155px;
}
#navigation
{
margin-top: 15px;
margin-bottom: 40px;
height: 35px;
}
.onglet
{
position: absolute;
top: 216px;
z-index: 1;
}
#onglet1
{
left: 65px;
}
#onglet2
{
left: 215px;
}
#onglet3
{
left: 365px;
}
#onglet4
{
left: 515px;
}
#onglet5
{
left: 665px;
}
.Ecriture_onglet
{
max-width: 200px;
font-family: Navig, Arial;
font-size: 20px;
text-align: left;
position: absolute;
z-index: 2;
top: 196px;
}
#Ecriture_onglet1
{
left: 72px;
}
#Ecriture_onglet2
{
left: 247px;
}
#Ecriture_onglet3
{
left: 410px;
}
#Ecriture_onglet4
{
left: 569px;
}
#Ecriture_onglet5
{
left: 699px;
}

25
menu.php Normal file
View File

@ -0,0 +1,25 @@
<!--[if lt IE 9]>
<?php echo '<script language="Javascript">document.location.replace("ie8.php");</script>'; ?>
<![endif]-->
<span id="menus">
<header>
<link rel="stylesheet" href="menu.css" />
<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match('/iPhone/i',$agent) || preg_match('/Mac/i',$agent) || preg_match('/Linux/i',$agent))
echo '<script src="safari.js"></script>';
?>
<p id="banniere"><img alt="Bannière Festiv'Algo" title="Festiv'Algo - l'algorithmique enfin accessible à tous !" src="Images/Banniere.png"/></p>
</header>
<nav>
<p id="navigation"><img src="Images/Navigation.png"/></p>
<h1><a href="/festivalgo"><p class="Ecriture_onglet" id="Ecriture_onglet1">Programmation</p></a></h1>
<h1><a href="exemples.php"><p class="Ecriture_onglet" id="Ecriture_onglet2">Exemples</p></a></h1>
<h1><a href="forum.php"><p class="Ecriture_onglet" id="Ecriture_onglet3">Forum</p></a></h1>
<h1><a href="aide.php#top"><p class="Ecriture_onglet" id="Ecriture_onglet4">Aide</p></a></h1>
<h1><a href="a_propos.php"><p class="Ecriture_onglet" id="Ecriture_onglet5">A propos</p></a></h1>
</nav>
<span/>

48
menus.js Normal file
View File

@ -0,0 +1,48 @@
$(document).ready(function() {
function hide_onglet() {
$('nav').append("<img class='onglet' id='onglet1' src='Images/Onglet.png'/><img class='onglet' id='onglet2' src='Images/Onglet.png'/><img class='onglet' id='onglet3' src='Images/Onglet.png'/><img class='onglet' id='onglet4' src='Images/Onglet.png'/><img class='onglet' id='onglet5' src='Images/Onglet.png'/>");
$('#onglet1').hide();
$('#onglet2').hide();
$('#onglet3').hide();
$('#onglet4').hide();
$('#onglet5').hide();
}
function colore_onglet()
{
$('#Ecriture_onglet1').mouseenter(function() {
$('#onglet1').show();
});
$('#Ecriture_onglet1').mouseleave(function() {
$('#onglet1').hide();
});
$('#Ecriture_onglet2').mouseenter(function() {
$('#onglet2').show();
});
$('#Ecriture_onglet2').mouseleave(function() {
$('#onglet2').hide();
});
$('#Ecriture_onglet3').mouseenter(function() {
$('#onglet3').show();
});
$('#Ecriture_onglet3').mouseleave(function() {
$('#onglet3').hide();
});
$('#Ecriture_onglet4').mouseenter(function() {
$('#onglet4').show();
});
$('#Ecriture_onglet4').mouseleave(function() {
$('#onglet4').hide();
});
$('#Ecriture_onglet5').mouseenter(function() {
$('#onglet5').show();
});
$('#Ecriture_onglet5').mouseleave(function() {
$('#onglet5').hide();
});
}
hide_onglet();
colore_onglet();
});

36
message_envoye.php Normal file
View File

@ -0,0 +1,36 @@
<?php
include('config.php');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<script src="jquery.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Contact</title>
</head>
<body>
<div id="content">
<?php include("menu.php");?>
<div id="contenu">
<?php
if(isset($_POST['nom'], $_POST['mail'], $_POST['objet'], $_POST['message']) && $_POST['nom'] != "" && $_POST['mail'] != "" && $_POST['objet'] != "" && $_POST['message'] != "")
{
mail('contact@festivalgo.fr', $_POST['objet']." - ".$_POST['nom'], $_POST['nom']."\n".$_POST['mail']."\n\n".$_POST['message']."\n\n".$_POST['description']."\n\n".$_POST['code']."\n\n>>> https://vmheb49238.ikoula.com:8443/smb/email-address/list# <<<");
echo "<div class='message'>Votre Message à été envoyé.<br />Vous recevrez une réponse par mail.</div>";
}
else
{
echo "<div class='message'>Vous n'avez pas rempli tous les champs du formulaire.</div>";
}
?>
</div>
</div>
<?php include("bas_de_page.php"); ?>
</body>
</html>

64
move_category.php Normal file
View File

@ -0,0 +1,64 @@
<?php
//Cette page permet de modifier l'ordre des categories
include('config.php');
if(isset($_GET['id'], $_GET['action']) and ($_GET['action']=='up' or $_GET['action']=='down'))
{
$id = intval($_GET['id']);
$action = $_GET['action'];
$dn1 = mysql_fetch_array(mysql_query('select count(c.id) as nb1, c.position, count(c2.id) as nb2 from categories as c, categories as c2 where c.id="'.$id.'" group by c.id'));
if($dn1['nb1']>0)
{
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
if($action=='up')
{
if($dn1['position']>1)
{
if(mysql_query('update categories as c, categories as c2 set c.position=c.position-1, c2.position=c2.position+1 where c.id="'.$id.'" and c2.position=c.position-1'))
{
header('Location: '.$url_home);
}
else
{
echo 'Une erreur s\'est produite lors du déplacement de la catégorie.';
}
}
else
{
echo '<h2>L\'action que vous désirez effectuer est impossible.</h2>';
}
}
else
{
if($dn1['position']<$dn1['nb2'])
{
if(mysql_query('update categories as c, categories as c2 set c.position=c.position+1, c2.position=c2.position-1 where c.id="'.$id.'" and c2.position=c.position+1'))
{
header('Location: '.$url_home);
}
else
{
echo 'Une erreur s\'est produite lors du déplacement de la catégorie.';
}
}
else
{
echo '<h2>L\'action que vous désirez effectuer est impossible.</h2>';
}
}
}
else
{
echo '<h2>Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: <a href="login.php">Connexion</a> - <a href="signup.php">Inscription</a></h2>';
}
}
else
{
echo '<h2>La catégorie que vous désirez déplacer n\'existe pas.</h2>';
}
}
else
{
echo '<h2>L\'identifiant de la catégorie ou la direction du déplacement ne sont pas définis.</h2>';
}
?>

78
new_category.php Normal file
View File

@ -0,0 +1,78 @@
<?php
//Cette page permet d'ajouter une categorie
include('config.php');
if(isset($_SESSION['username']) and $_SESSION['username']==$admin)
{
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Nouvelle catégorie - forum</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/Images/logo.png" alt="forum" /></a>
</div>
<div class="content">
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; Nouvelle catégorie
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>
<div class="clean"></div>
</div>
<?php
if(isset($_POST['name'], $_POST['description']) and $_POST['name']!='')
{
$name = $_POST['name'];
$description = $_POST['description'];
if(get_magic_quotes_gpc())
{
$name = stripslashes($name);
$description = stripslashes($description);
}
$name = mysql_real_escape_string($name);
$description = mysql_real_escape_string($description);
if(mysql_query('insert into categories (id, name, description, position) select ifnull(max(id), 0)+1, "'.$name.'", "'.$description.'", count(id)+1 from categories'))
{
?>
<div class="message">La catégorie a bien été créée.<br />
<a href="<?php echo $url_home; ?>">Retourner à l'index du forum</a></div>
<?php
}
else
{
echo 'Une erreur s\'est produite lors de la création de la catégorie.';
}
}
else
{
?>
<form action="new_category.php" method="post">
<label for="name">Nom</label><input type="text" name="name" id="name" /><br />
<label for="description">Description</label>(html accepté)<br />
<textarea name="description" id="description" cols="70" rows="6"></textarea><br />
<input type="submit" value="Créer" />
</form>
<?php
}
?>
</div>
<div class="foot"><a href="http://www.supportduweb.com/scripts_tutoriaux-code-source-89-simple-php-forum-script-forum-en-php-facile-simple-script-code-telecharger-forum-php-gratuit-mysql.html">Simple PHP forum Script</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html>
<?php
}
else
{
echo '<h2>Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: <a href="login.php">Connexion</a> - <a href="signup.php">Inscription</a></h2>';
}
?>

135
new_pm.php Normal file
View File

@ -0,0 +1,135 @@
<?php
//Cette page permet d'envoyer un message privé
include('config.php');
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<script src="jquery.js"></script>
<script src="menus.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="Images/favicon_ie.ico">
<title>Festiv'Algo - Nouveau Message Personnel</title>
</head>
<body>
<div id="content" style="height = 500px">
<?php include("menu.php"); ?>
<?php
if(isset($_SESSION['username']))
{
$form = true;
$otitle = '';
$orecip = '';
$omessage = '';
if(isset($_POST['title'], $_POST['recip'], $_POST['message']))
{
$otitle = $_POST['title'];
$orecip = $_POST['recip'];
$omessage = $_POST['message'];
//On enleve lechappement si get_magic_quotes_gpc est active
if(get_magic_quotes_gpc())
{
$otitle = stripslashes($otitle);
$orecip = stripslashes($orecip);
$omessage = stripslashes($omessage);
}
if($_POST['title']!='' and $_POST['recip']!='' and $_POST['message']!='')
{
$title = mysql_real_escape_string($otitle);
$recip = mysql_real_escape_string($orecip);
$message = mysql_real_escape_string(nl2br(htmlentities($omessage, ENT_QUOTES, 'UTF-8')));
$dn1 = mysql_fetch_array(mysql_query('select count(id) as recip, id as recipid, (select count(*) from pm) as npm from users where username="'.$recip.'"'));
if($dn1['recip']==1)
{
if($dn1['recipid']!=$_SESSION['userid'])
{
$id = $dn1['npm']+1;
if(mysql_query('insert into pm (id, id2, title, user1, user2, message, timestamp, user1read, user2read)values("'.$id.'", "1", "'.$title.'", "'.$_SESSION['userid'].'", "'.$dn1['recipid'].'", "'.$message.'", "'.time().'", "yes", "no")'))
{
?>
<div class="message">Le message a bien &eacute;t&eacute; envoy&eacute;.<br />
<a href="list_pm.php">Liste de mes messages priv&eacute;s</a></div>
<?php
$form = false;
}
else
{
$error = 'Une erreur s\'est produite lors de l\'envoi du message.';
}
}
else
{
$error = 'Vous ne pouvez pas envoyer un message &agrave; vous m&ecirc;me.';
}
}
else
{
$error = 'Le destinataire de votre message n\'existe pas.';
}
}
else
{
$error = 'Un des champs n\'est pas rempli.';
}
}
elseif(isset($_GET['recip']))
{
$orecip = $_GET['recip'];
}
if($form)
{
if(isset($error))
{
echo '<div class="message">'.$error.'</div>';
}
?>
<div class="content">
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du forum</a> &gt; <a href="list_pm.php">Messages Personnels</a> &gt; Nouveau Message
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages (<?php echo $nb_new_pm; ?>)</a> - <a href="login.php">Déconnexion</a>
</div>
<div class="clean"></div>
</div>
<h1>Nouveau message priv&eacute;</h1><br /><br /><br />
<form action="new_pm.php" method="post" style="text-align: left; margin-left: 170px;">
<label for="title">Titre</label><input type="text" value="<?php echo htmlentities($otitle, ENT_QUOTES, 'UTF-8'); ?>" id="title" name="title" /><br />
<label for="recip">Destinataire<span class="small">(Nom d'utilisateur)</span></label><input type="text" value="<?php echo htmlentities($orecip, ENT_QUOTES, 'UTF-8'); ?>" id="recip" name="recip" /><br />
<label for="message">Message</label><textarea cols="60" rows="6" id="message" name="message"><?php echo htmlentities($omessage, ENT_QUOTES, 'UTF-8'); ?></textarea><br />
<input type="submit" value="Envoyer" style="margin-left: 170px;"/>
</form>
</div>
<?php
}
}
else
{
?>
<div class="message">Vous devez &ecirc;tre connect&eacute; pour acc&eacute;der &agrave; cette page.</div>
<div class="box_login">
<form action="login.php" method="post">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<label for="memorize">Se souvenir</label><input type="checkbox" name="memorize" id="memorize" value="yes" />
<div class="center">
<input type="submit" value="Login" /> <input type="button" onclick="javascript:document.location='signup.php';" value="S'inscrire" />
</div>
</form>
</div>
<?php
}
?>
</span>
</span>
</div>
</body>
<?php include("bas_de_page.php"); ?>
</html>

Some files were not shown because too many files have changed in this diff Show More