qr-bills 0.0.1 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5db2878fbbf6ca52e7f5aabc6722e3884a35902e
4
- data.tar.gz: 0018ee9fb3c2b75d039185afdacdd53fa18c4329
2
+ SHA256:
3
+ metadata.gz: c73035ea342d12ac9b26845066e0c9663bcbdd86db0b9c2bbc00f20de0f5ce5b
4
+ data.tar.gz: 726f859dccfb4321bf4e79d0e009a8ba2f0862e009ea1ed0bacafee000fd5ec8
5
5
  SHA512:
6
- metadata.gz: 6ca4f2952a8bd19c6d721c09f298b44163e597c80d11d3ed541729526454be0fa3a2ddb07e94bf9b286027107aae761559580a5d7aee2714ff68059c4dee835a
7
- data.tar.gz: 28df8d75e4dad3592ba7da9e5255b2384b0da07395b69ef393ee5b3a5181404d3e0ea5a93d1422431b1ff0a570b35d9c09ca701ae3794eb8ede85bcfeb31d2d7
6
+ metadata.gz: bf2b307ddb691661be0f774170c7da77e798fc31c3e5c23127a2439c5cc85ad6793a26a1051c1051361812855cf6131ae798644ea3bd776a941f0f7af9e0fb9a
7
+ data.tar.gz: 3d5007f7b999002ea5aeaa9c0e0aaca571fb7a7a44a13d3c19f9b041e32652bd1071a9f39748d9466f79999ba5f02adb8baa916ea57b2d57fd35d5340af22ac8
@@ -0,0 +1,15 @@
1
+ de:
2
+ payment_part: Zahlteil
3
+ account: Konto
4
+ payable_to: Zahlbar an
5
+ reference: Referenz
6
+ additional_information: zusätzliche Informationen
7
+ further_information: weitere Informationen
8
+ currency: Währung
9
+ amount: Betrag
10
+ receipt: Empfangsschein
11
+ acceptance_point: Annahmestelle
12
+ separate_before_paying_in: Vor der Einzahlung abzutrennen
13
+ payable_by: Zahlbar durch
14
+ payable_by_name_addr: Zahlbar durch (Name/Adresse)
15
+ in_favour_of: Zugunsten
@@ -0,0 +1,15 @@
1
+ en:
2
+ payment_part: payment part
3
+ account: account
4
+ payable_to: payable to
5
+ reference: reference
6
+ additional_information: additional information
7
+ further_information: further information
8
+ currency: currency
9
+ amount: amount
10
+ receipt: receipt
11
+ acceptance_point: acceptance point
12
+ separate_before_paying_in: separate before paying in
13
+ payable_by: payable by
14
+ payable_by_name_addr: payable by (name/address)
15
+ in_favour_of: in favour of
@@ -0,0 +1,15 @@
1
+ fr:
2
+ payment_part: section paiement
3
+ account: compte
4
+ payable_to: payable à
5
+ reference: référence
6
+ additional_information: informations additionnelles
7
+ further_information: informations supplémentaires
8
+ currency: monnaie
9
+ amount: montant
10
+ receipt: récépissé
11
+ acceptance_point: èpomt de dépôt
12
+ separate_before_paying_in: à détacher avant le versement
13
+ payable_by: payable par
14
+ payable_by_name_addr: payable par (nom/adresse)
15
+ in_favour_of: en faveur de
@@ -0,0 +1,15 @@
1
+ it:
2
+ payment_part: "sezione pagamento"
3
+ account: conto
4
+ payable_to: "pagabile a"
5
+ reference: riferimento
6
+ additional_information: "informazioni aggiuntive"
7
+ further_information: "informazioni supplementari"
8
+ currency: valuta
9
+ amount: importo
10
+ receipt: ricevuta
11
+ acceptance_point: "punto di accettazione"
12
+ separate_before_paying_in: "da staccare prima del versamento"
13
+ payable_by: pagabile da
14
+ payable_by_name_addr: pagabile da (nome/indirizzo)
15
+ in_favour_of: a favore di
@@ -1,5 +1,54 @@
1
+ require 'i18n'
2
+ require 'qr-bills/qr-exceptions'
3
+ require 'qr-bills/qr-params'
4
+ require 'qr-bills/qr-html-layout'
5
+
1
6
  class QRBills
2
- def self.hi
3
- puts "Hello world!"
7
+ def self.generate(qr_params)
8
+ # init translator sets
9
+ I18n.load_path << "#{File.expand_path("#{File.dirname(__FILE__)}/../config/locales/it.yml")}"
10
+ I18n.load_path << "#{File.expand_path("#{File.dirname(__FILE__)}/../config/locales/en.yml")}"
11
+ I18n.load_path << "#{File.expand_path("#{File.dirname(__FILE__)}/../config/locales/de.yml")}"
12
+ I18n.load_path << "#{File.expand_path("#{File.dirname(__FILE__)}/../config/locales/fr.yml")}"
13
+ I18n.default_locale = :it
14
+
15
+ bill = {
16
+ params: qr_params,
17
+ output: nil
18
+ }
19
+
20
+ if qr_params.has_key?(:bill_type)
21
+
22
+ if !QRParams.valid?(qr_params)
23
+ raise QRExceptions::INVALID_PARAMETERS + ": params validation check failed"
24
+ end
25
+
26
+ if qr_params[:output_params][:format] == "html"
27
+ bill[:output] = QRHTMLLayout.create(qr_params)
28
+ else
29
+ raise QRExceptions::NOT_SUPPORTED + ": html is the only output format supported so far"
30
+ end
31
+
32
+ else
33
+ raise QRExceptions::INVALID_PARAMETERS + ": bill type param not set"
34
+ end
35
+
36
+ return bill
37
+ end
38
+
39
+ def self.get_qr_params
40
+ QRParams.get_qr_params
41
+ end
42
+
43
+ def self.get_qrbill_with_qr_reference_type
44
+ QRParams::QR_BILL_WITH_QR_REFERENCE
45
+ end
46
+
47
+ def self.get_qrbill_with_creditor_reference_type
48
+ QRParams::QR_BILL_WITH_CREDITOR_REFERENCE
49
+ end
50
+
51
+ def self.get_qrbill_without_reference_type
52
+ QRParams::QR_BILL_WITOUTH_REFERENCE
4
53
  end
5
54
  end
@@ -0,0 +1,6 @@
1
+ class QRExceptions
2
+ EXCEPTION_PREFIX = "QR-bill"
3
+
4
+ INVALID_PARAMETERS = EXCEPTION_PREFIX + " invalid parameters"
5
+ NOT_SUPPORTED = EXCEPTION_PREFIX + " not supported"
6
+ end
@@ -0,0 +1,105 @@
1
+ require 'rqrcode'
2
+ require 'RMagick'
3
+ include Magick
4
+
5
+ class QRGenerator
6
+ # payload:
7
+ # "SPC\r\n" + # indicator for swiss qr code: SPC (swiss payments code)
8
+ # "0200\r\n" + # version of the specifications, 0200 = v2.0
9
+ # "1\r\n" + # character set code: 1 = utf-8 restricted to the latin character set
10
+ # "CH4431999123000889012\r\n" + # iban of the creditor (payable to)
11
+ # "S\r\n" + # adress type: S = structured address, K = combined address elements (2 lines)
12
+ # "Robert Schneider AG\r\n" + # creditor's name or company, max 70 characters
13
+ # "Via Casa Postale\r\n" + # structured address: creditor's address street; combined address: address line 1 street and building number
14
+ # "1268/2/22\r\n" + # structured address: creditor's building number; combined address: address line 2 including postal code and town
15
+ # "2501\r\n" + # creditor's postal code
16
+ # "Biel\r\n" + # creditor's town
17
+ # "CH\r\n" + # creditor's country
18
+ # "\r\n" + # optional: ultimate creditor's address type: S/K
19
+ # "\r\n" + # optional: ultimate creditor's name/company
20
+ # "\r\n" + # optional: ultimate creditor's street or address line 1
21
+ # "\r\n" + # optional: ultimate creditor's building number or address line 2
22
+ # "\r\n" + # optional: ultimate creditor's postal code
23
+ # "\r\n" + # optional: ultimate creditor's town
24
+ # "\r\n" + # optional: ultimate creditor's country
25
+ # "123949.75\r\n" + # amount
26
+ # "CHF\r\n" + # currency
27
+ # "S\r\n"+ # debtor's address type (S/K) (payable by)
28
+ # "Pia-Maria Rutschmann-Schnyder\r\n" + # debtor's name / company
29
+ # "Grosse Marktgasse\r\n" + # debtor's street or address line 1
30
+ # "28/5\r\n" + # debtor's building number or address line 2
31
+ # "9400\r\n" + # debtor's postal code
32
+ # "Rorschach\r\n" + # debtor's town
33
+ # "CH\r\n" + # debtor's country
34
+ # "QRR\r\n" + # reference type: QRR = QR reference, SCOR = Creditor reference, NON = without reference
35
+ # "210000000003139471430009017\r\n" + # reference QR Reference: 27 chars check sum modulo 10 recursive, Creditor reference max 25 chars
36
+ # "Beachten sie unsere Sonderangebotswoche bis 23.02.2017!\r\n" + # additional information unstructured message max 140 chars
37
+ # "EPD\r\n" + # fixed indicator for EPD (end payment data)
38
+ # "//S1/10/10201409/11/181105/40/0:30\r\n" + # bill information coded for automated booking of payment, data is not forwarded with the payment
39
+ # "eBill/B/41010560425610173"; # alternative scheme paramaters, max 100 chars
40
+
41
+ def self.create(params, qrcode_path)
42
+ create_qr(params, qrcode_path)
43
+ add_swiss_cross(qrcode_path, qrcode_path)
44
+ end
45
+
46
+ def self.create_qr(params, qrcode_path)
47
+ payload = "SPC\r\n"
48
+ payload += "0200\r\n"
49
+ payload += "1\r\n"
50
+ payload += "#{params[:bill_params][:creditor][:iban].delete(' ')}\r\n"
51
+ payload += "#{params[:bill_params][:creditor][:address][:type]}\r\n"
52
+ payload += "#{params[:bill_params][:creditor][:address][:name]}\r\n"
53
+ payload += "#{params[:bill_params][:creditor][:address][:line1]}\r\n"
54
+ payload += "#{params[:bill_params][:creditor][:address][:line2]}\r\n"
55
+ payload += "#{params[:bill_params][:creditor][:address][:postal_code]}\r\n"
56
+ payload += "#{params[:bill_params][:creditor][:address][:town]}\r\n"
57
+ payload += "#{params[:bill_params][:creditor][:address][:country]}\r\n"
58
+ payload += "\r\n"
59
+ payload += "\r\n"
60
+ payload += "\r\n"
61
+ payload += "\r\n"
62
+ payload += "\r\n"
63
+ payload += "\r\n"
64
+ payload += "\r\n"
65
+ payload += "#{params[:bill_params][:amount]}\r\n"
66
+ payload += "#{params[:bill_params][:currency]}\r\n"
67
+ payload += "#{params[:bill_params][:debtor][:address][:type]}\r\n"
68
+ payload += "#{params[:bill_params][:debtor][:address][:name]}\r\n"
69
+ payload += "#{params[:bill_params][:debtor][:address][:line1]}\r\n"
70
+ payload += "#{params[:bill_params][:debtor][:address][:line2]}\r\n"
71
+ payload += "#{params[:bill_params][:debtor][:address][:postal_code]}\r\n"
72
+ payload += "#{params[:bill_params][:debtor][:address][:town]}\r\n"
73
+ payload += "#{params[:bill_params][:debtor][:address][:country]}\r\n"
74
+ payload += "#{params[:bill_params][:reference_type]}\r\n"
75
+ payload += "#{params[:bill_params][:reference].delete(' ')}\r\n"
76
+ payload += "#{params[:bill_params][:additionally_information]}\r\n"
77
+ payload += "EPD\r\n"
78
+ payload += "#{params[:bill_params][:bill_information_coded]}\r\n"
79
+ payload += "#{params[:bill_params][:alternative_scheme_paramters]}\r\n"
80
+
81
+ qrcode = RQRCode::QRCode.new(payload)
82
+
83
+ png = qrcode.as_png(
84
+ bit_depth: 1,
85
+ border_modules: 0,
86
+ color_mode: ChunkyPNG::COLOR_GRAYSCALE,
87
+ color: 'black',
88
+ file: nil,
89
+ fill: 'white',
90
+ module_px_size: 10,
91
+ resize_exactly_to: false,
92
+ resize_gte_to: false,
93
+ size: 1024,
94
+ )
95
+
96
+ IO.binwrite(qrcode_path, png.to_s)
97
+ end
98
+
99
+ def self.add_swiss_cross(qrcode_path, final_path)
100
+ qr_image = Image.read(qrcode_path)[0]
101
+ swiss_cross = Image.read(File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/images/swiss_cross.png"))[0]
102
+ final_qr = qr_image.composite(swiss_cross, CenterGravity, OverCompositeOp)
103
+ final_qr.write(final_path)
104
+ end
105
+ end
@@ -0,0 +1,235 @@
1
+ require 'qr-bills/qr-generator'
2
+
3
+ class QRHTMLLayout
4
+
5
+ def self.create(params)
6
+ QRGenerator.create(params, params[:qrcode_filepath])
7
+ return html_layout(params)
8
+ end
9
+
10
+ def self.html_layout(params)
11
+ layout = "<div class=\"bill_container\">\n"
12
+ layout += " <div class=\"receipt_section\">\n"
13
+ layout += " <div class=\"title\">#{I18n.t(:receipt).capitalize}</div>\n"
14
+ layout += " <div class=\"subtitle payable_to\">#{I18n.t(:account).capitalize} / #{I18n.t(:payable_to).capitalize}</div>\n"
15
+ layout += " <div class=\"qrcontent\">\n"
16
+ layout += " #{params[:bill_params][:creditor][:iban]}<br/>\n"
17
+ layout += " #{params[:bill_params][:creditor][:address][:name]}<br/>\n"
18
+ layout += " #{params[:bill_params][:creditor][:address][:line1]} #{params[:bill_params][:creditor][:address][:line2]}<br/>\n"
19
+ layout += " #{params[:bill_params][:creditor][:address][:postal_code]} #{params[:bill_params][:creditor][:address][:town]}<br/>\n"
20
+ layout += " </div>"
21
+ layout += " <div><br/></div>"
22
+
23
+ if !params[:bill_params][:reference].nil? && !params[:bill_params][:reference].empty?
24
+ layout += " <div class=\"subtitle reference\">#{I18n.t(:reference).capitalize}</div>\n"
25
+ layout += " <div class=\"reference\">\n"
26
+ layout += " #{params[:bill_params][:reference]}<br/>\n"
27
+ layout += " </div>\n"
28
+ layout += " <div><br/></div>\n"
29
+ end
30
+
31
+ layout += " <div class=\"subtitle payable_by\">#{I18n.t(:payable_by).capitalize}</div>\n"
32
+ layout += " <div class=\"payable_by\">\n"
33
+ layout += " #{params[:bill_params][:debtor][:address][:name]}<br/>\n"
34
+ layout += " #{params[:bill_params][:debtor][:address][:line1]} #{params[:bill_params][:debtor][:address][:line2]}<br/>\n"
35
+ layout += " #{params[:bill_params][:debtor][:address][:postal_code]} #{params[:bill_params][:debtor][:address][:town]}<br/>\n"
36
+ layout += " </div>\n"
37
+
38
+ layout += " <div class=\"amount\">\n"
39
+ layout += " <div class=\"currency\">\n"
40
+ layout += " <span class=\"amount_header subtitle\">#{I18n.t(:currency).capitalize}</span><br/>\n"
41
+ layout += " #{params[:bill_params][:currency]}<br/>\n"
42
+ layout += " </div>\n"
43
+
44
+ layout += " <div class=\"amount_value\">\n"
45
+ layout += " <span class=\"amount_header subtitle\">#{I18n.t(:amount).capitalize}</span><br/>\n"
46
+ layout += " #{params[:bill_params][:amount]}<br/>\n"
47
+ layout += " </div>\n"
48
+ layout += " </div>\n"
49
+
50
+ layout += " <div class=\"acceptance_point\">\n"
51
+ layout += " #{I18n.t(:acceptance_point).capitalize}<br/>\n"
52
+ layout += " </div>\n"
53
+
54
+ layout += " </div>\n"
55
+ layout += " <div class=\"payment_section\">\n"
56
+ layout += " <div class=\"left_column\">\n"
57
+ layout += " <div class=\"title\">#{I18n.t(:payment_part).capitalize}</div>\n"
58
+ layout += " <div class=\"qr_code\"><img src=\"#{params[:qrcode_filepath]}\" /></div>\n"
59
+ layout += " <div class=\"amount\">\n"
60
+ layout += " <div class=\"currency\">\n"
61
+ layout += " <span class=\"amount_header subtitle\">#{I18n.t(:currency).capitalize}</span><br/>\n"
62
+ layout += " #{params[:bill_params][:currency]}<br/>\n"
63
+ layout += " </div>\n"
64
+
65
+ layout += " <div class=\"amount_value\">\n"
66
+ layout += " <span class=\"amount_header subtitle\">#{I18n.t(:amount).capitalize}</span><br/>\n"
67
+ layout += " #{params[:bill_params][:amount]}<br/>\n"
68
+ layout += " </div>\n"
69
+ layout += " </div>\n"
70
+
71
+ layout += " <div class=\"further_information\">\n"
72
+
73
+ if !params[:bill_params][:bill_information_coded].nil? && !params[:bill_params][:bill_information_coded].empty?
74
+ layout += " <span class=\"finfo_header\">Name AV1:</span> #{params[:bill_params][:bill_information_coded]}\n"
75
+ end
76
+
77
+ if !params[:bill_params][:alternative_scheme_paramters].nil? && !params[:bill_params][:alternative_scheme_paramters].empty?
78
+ layout += " <span class=\"finfo_header\">Name AV2:</span> #{params[:bill_params][:alternative_scheme_paramters]}\n"
79
+ end
80
+
81
+ layout += " </div>\n"
82
+ layout += " </div>\n"
83
+ layout += " <div class=\"right_column\">\n"
84
+ layout += " <div class=\"subtitle payable_to\">#{I18n.t(:account).capitalize} / #{I18n.t(:payable_to).capitalize}</div>\n"
85
+ layout += " <div class=\"qrcontent\">\n"
86
+ layout += " #{params[:bill_params][:creditor][:iban]}<br/>\n"
87
+ layout += " #{params[:bill_params][:creditor][:address][:name]}<br/>\n"
88
+ layout += " #{params[:bill_params][:creditor][:address][:line1]} #{params[:bill_params][:creditor][:address][:line2]}<br/>\n"
89
+ layout += " #{params[:bill_params][:creditor][:address][:postal_code]} #{params[:bill_params][:creditor][:address][:town]}<br/>\n"
90
+ layout += " </div>\n"
91
+ layout += " <div><br/></div>\n"
92
+
93
+ if !params[:bill_params][:reference].nil? && !params[:bill_params][:reference].empty?
94
+ layout += " <div class=\"subtitle reference\">#{I18n.t(:reference).capitalize}</div>\n"
95
+ layout += " <div class=\"reference\">\n"
96
+ layout += " #{params[:bill_params][:reference]}<br/>\n"
97
+ layout += " </div>\n"
98
+ layout += " <div><br/></div>\n"
99
+ end
100
+
101
+ if !params[:bill_params][:additionally_information].nil? && !params[:bill_params][:additionally_information].empty?
102
+ layout += " <div class=\"subtitle additional_information\">#{I18n.t(:additional_information).capitalize}</div>\n"
103
+ layout += " <div class=\"additional_information\">\n"
104
+ layout += " #{params[:bill_params][:additionally_information]}<br/>\n"
105
+ layout += " </div>\n"
106
+ layout += " <div><br/></div>\n"
107
+ end
108
+
109
+ layout += " <div class=\"subtitle payable_by\">#{I18n.t(:payable_by).capitalize}</div>\n"
110
+ layout += " <div class=\"payable_by\">\n"
111
+ layout += " #{params[:bill_params][:debtor][:address][:name]}<br/>\n"
112
+ layout += " #{params[:bill_params][:debtor][:address][:line1]} #{params[:bill_params][:debtor][:address][:line2]}<br/>\n"
113
+ layout += " #{params[:bill_params][:debtor][:address][:postal_code]} #{params[:bill_params][:debtor][:address][:town]}<br/>\n"
114
+ layout += " </div>\n"
115
+ layout += " </div>\n"
116
+ layout += " </div>\n"
117
+ layout += "</div>\n"
118
+
119
+ layout += "<style>\n"
120
+ layout += " @font-face{ \n"
121
+ layout += " font-family: \"liberation_sansregular\";\n"
122
+ layout += " src: url(\"#{params[:fonts][:eot]}\");\n"
123
+ layout += " src: url(\"#{params[:fonts][:eot]}?#iefix\") format(\"embedded-opentype\"),\n"
124
+ layout += " url(\"#{params[:fonts][:woff]}\") format(\"woff\"),\n"
125
+ layout += " url(\"#{params[:fonts][:ttf]}\") format(\"truetype\"),\n"
126
+ layout += " url(\"#{params[:fonts][:svg]}#liberation_sansregular\") format(\"svg\");\n"
127
+ layout += " font-weight: normal;\n"
128
+ layout += " font-style: normal;\n"
129
+ layout += " }\n"
130
+
131
+ layout += " .bill_container {\n"
132
+ layout += " width: 210mm;\n"
133
+ layout += " height: 105mm;\n"
134
+ layout += " font-family: \"liberation_sansregular\";\n"
135
+ layout += " border: 1px solid #ccc;\n"
136
+ layout += " }\n"
137
+
138
+ layout += " .bill_container:after {\n"
139
+ layout += " content: \"\";\n"
140
+ layout += " display: table;\n"
141
+ layout += " clear: both;\n"
142
+ layout += " }\n"
143
+
144
+ layout += " .receipt_section {\n"
145
+ layout += " width: 52mm;\n"
146
+ layout += " height: 95mm;\n"
147
+ layout += " padding: 5mm;\n"
148
+ layout += " float: left;\n"
149
+ layout += " font-size: 8pt;\n"
150
+ layout += " border-right: 1px dotted #ccc;\n"
151
+ layout += " }\n"
152
+
153
+ layout += " .payment_section {\n"
154
+ layout += " width: 157mm;\n"
155
+ layout += " height: 95mm;\n"
156
+ layout += " float: left;\n"
157
+ layout += " padding: 5mm;\n"
158
+ layout += " font-size: 10pt;\n"
159
+ layout += " }\n"
160
+
161
+ layout += " .payment_section .left_column {\n"
162
+ layout += " height: 95mm;\n"
163
+ layout += " width: 46mm;\n"
164
+ layout += " float: left;\n"
165
+ layout += " margin-right: 5mm;\n"
166
+ layout += " }\n"
167
+
168
+ layout += " .payment_section .right_column {\n"
169
+ layout += " height: 95mm;\n"
170
+ layout += " width: 86mm;\n"
171
+ layout += " float: left;\n"
172
+ layout += " }\n"
173
+
174
+ layout += " .qr_code {\n"
175
+ layout += " padding: 5mm 0mm 5mm 0mm;\n"
176
+ layout += " height: 46mm;\n"
177
+ layout += " width: 46mm;\n"
178
+ layout += " }\n"
179
+
180
+ layout += " .qr_code img {\n"
181
+ layout += " height: 46mm;\n"
182
+ layout += " width: 46mm;\n"
183
+ layout += " }\n"
184
+
185
+ layout += " .amount {\n"
186
+ layout += " margin-top: 15px;\n"
187
+ layout += " }\n"
188
+
189
+ layout += " .amount .currency {\n"
190
+ layout += " float: left;\n"
191
+ layout += " margin-right: 15px;\n"
192
+ layout += " }\n"
193
+
194
+ layout += " .title {\n"
195
+ layout += " font-weight: bold;\n"
196
+ layout += " font-size: 11pt;\n"
197
+ layout += " }\n"
198
+
199
+ layout += " .receipt_section .subtitle {\n"
200
+ layout += " font-weight: bold;\n"
201
+ layout += " font-size: 6pt;\n"
202
+ layout += " line-height: 9pt;\n"
203
+ layout += " }\n"
204
+
205
+ layout += " .receipt_section .acceptance_point {\n"
206
+ layout += " font-weight: bold;\n"
207
+ layout += " text-align: right;\n"
208
+ layout += " font-size: 6pt;\n"
209
+ layout += " line-height: 8pt;\n"
210
+ layout += " padding-top: 5mm;\n"
211
+ layout += " }\n"
212
+
213
+ layout += " .payment_section .subtitle {\n"
214
+ layout += " font-weight: bold;\n"
215
+ layout += " font-size: 8pt;\n"
216
+ layout += " line-height: 11pt;\n"
217
+ layout += " }\n"
218
+
219
+ layout += " .payment_section .amount {\n"
220
+ layout += " height: 22mm;\n"
221
+ layout += " margin-top: 40px;\n"
222
+ layout += " }\n"
223
+
224
+ layout += " .payment_section .further_information {\n"
225
+ layout += " font-size: 7pt;\n"
226
+ layout += " }\n"
227
+
228
+ layout += " .payment_section .finfo_header {\n"
229
+ layout += " font-weight: bold;\n"
230
+ layout += " } \n"
231
+ layout += "</style>\n"
232
+
233
+ return layout
234
+ end
235
+ end
@@ -0,0 +1,95 @@
1
+ class QRParams
2
+ QR_BILL_WITH_QR_REFERENCE = "orange_with_reference"
3
+ QR_BILL_WITH_CREDITOR_REFERENCE = "red_with_reference"
4
+ QR_BILL_WITOUTH_REFERENCE = "red_without_reference"
5
+
6
+ def self.get_qr_params
7
+ {
8
+ bill_type: "", # see global variables / README
9
+ qrcode_filepath: "", # where to store the qrcode, i.e. : /tmp/qrcode_1234.png
10
+ fonts: {
11
+ eot: File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/fonts/LiberationSans-Regular.eot"),
12
+ woff: File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/fonts/LiberationSans-Regular.woff"),
13
+ ttf: File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/fonts/LiberationSans-Regular.ttf"),
14
+ svg: File.expand_path("#{File.dirname(__FILE__)}/../../web/assets/fonts/LiberationSans-Regular.svg")
15
+ },
16
+ bill_params: {
17
+ language: "it",
18
+ amount: 0.0,
19
+ currency: "CHF",
20
+ reference_type: "", # QRR = QR reference, SCOR = Creditor reference, NON = without reference
21
+ reference: "", # qr reference or creditor reference (iso-11649)
22
+ additionally_information: "",
23
+ bill_information_coded: "",
24
+ alternative_scheme_paramters: "",
25
+ creditor: {
26
+ address: {
27
+ type: "S",
28
+ name: "",
29
+ line1: "",
30
+ line2: "",
31
+ postal_code: "",
32
+ town: "",
33
+ country: "",
34
+ iban: ""
35
+ },
36
+ },
37
+ debtor: {
38
+ address: {
39
+ type: "S",
40
+ name: "",
41
+ line1: "",
42
+ line2: "",
43
+ postal_code: "",
44
+ town: "",
45
+ country: "",
46
+ },
47
+ }
48
+ },
49
+ output_params: {
50
+ format: "html"
51
+ }
52
+ }
53
+ end
54
+
55
+ def self.valid?(params)
56
+ if params.has_key?(:bill_type)
57
+
58
+ if !QRParams.base_params_valid?(params)
59
+ return false
60
+ end
61
+
62
+ if params[:bill_type] == QR_BILL_WITH_QR_REFERENCE
63
+ return QRParams.qr_bill_with_qr_reference_valid?(params)
64
+ elsif params[:bill_type] == QR_BILL_WITH_CREDITOR_REFERENCE
65
+ return QRParams.qr_bill_with_creditor_reference_valid?(params)
66
+ elsif params[:bill_type] == QR_BILL_WITOUTH_REFERENCE
67
+ return QRParams.qr_bill_without_reference_valid?(params)
68
+ else
69
+ return false
70
+ end
71
+ else
72
+ return false
73
+ end
74
+ end
75
+
76
+ def self.base_params_valid?(params)
77
+ # todo
78
+ return true
79
+ end
80
+
81
+ def self.qr_bill_with_qr_reference_valid?(params)
82
+ # todo
83
+ return true
84
+ end
85
+
86
+ def self.qr_bill_with_creditor_reference_valid?(params)
87
+ # todo
88
+ return true
89
+ end
90
+
91
+ def self.qr_bill_without_reference_valid?(params)
92
+ # todo
93
+ return true
94
+ end
95
+ end
@@ -0,0 +1,356 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
4
+ <metadata></metadata>
5
+ <defs>
6
+ <font id="liberation_sansregular" horiz-adv-x="1139" >
7
+ <font-face units-per-em="2048" ascent="1638" descent="-410" />
8
+ <missing-glyph horiz-adv-x="569" />
9
+ <glyph horiz-adv-x="0" />
10
+ <glyph unicode="&#xd;" horiz-adv-x="569" />
11
+ <glyph unicode=" " horiz-adv-x="569" />
12
+ <glyph unicode="&#x09;" horiz-adv-x="569" />
13
+ <glyph unicode="&#xa0;" horiz-adv-x="569" />
14
+ <glyph unicode="!" horiz-adv-x="569" d="M359 397h-148l-24 1012h196zM185 0v201h194v-201h-194z" />
15
+ <glyph unicode="&#x22;" horiz-adv-x="727" d="M618 966h-142l-20 443h184zM249 966h-141l-21 443h184z" />
16
+ <glyph unicode="#" d="M896 885l-78 -369h260v-108h-283l-88 -408h-110l86 408h-363l-84 -408h-110l84 408h-201v108h225l78 369h-252v108h274l89 408h110l-88 -408h363l88 408h110l-88 -408h211v-108h-233zM425 885l-80 -369h362l78 369h-360z" />
17
+ <glyph unicode="$" d="M518 20q-426 18 -496 359l170 37q25 -119 104.5 -179t221.5 -69v496q-177 44 -244.5 79t-109 80.5t-60 97.5t-18.5 125q0 155 112.5 242.5t319.5 96.5v131h124v-131q187 -9 289 -84.5t144 -235.5l-174 -33q-20 94 -81 146.5t-178 63.5v-445q179 -42 254.5 -77t119.5 -79 t67 -104t23 -141q0 -165 -121 -265t-343 -111v-162h-124v162zM934 394q0 65 -26 107t-75 69.5t-191 64.5v-468q141 9 216.5 67t75.5 160zM258 1048q0 -59 25 -100t74.5 -69t160.5 -56v421q-260 -14 -260 -196z" />
18
+ <glyph unicode="%" horiz-adv-x="1821" d="M1748 434q0 -215 -81 -330.5t-239 -115.5q-156 0 -235.5 112.5t-79.5 333.5q0 228 76.5 339.5t242.5 111.5q164 0 240 -114.5t76 -336.5zM527 0h-155l922 1409h157zM394 1421q159 0 236 -112t77 -334q0 -217 -79.5 -334t-237.5 -117t-237.5 116t-79.5 335q0 223 77 334.5 t244 111.5zM1600 434q0 179 -38.5 259.5t-129.5 80.5t-131.5 -79t-40.5 -261q0 -171 39.5 -253.5t130.5 -82.5q88 0 129 83.5t41 252.5zM560 975q0 176 -38 257t-128 81q-94 0 -134 -79.5t-40 -258.5q0 -173 40 -255.5t132 -82.5q87 0 127.5 84t40.5 254z" />
19
+ <glyph unicode="&#x26;" horiz-adv-x="1366" d="M1193 -12q-177 0 -298 127q-75 -65 -171 -100t-201 -35q-215 0 -333 103.5t-118 287.5q0 278 343 429q-33 62 -57 147t-24 155q0 150 91.5 232.5t259.5 82.5q151 0 243.5 -76t92.5 -208q0 -118 -91.5 -210t-317.5 -182q111 -205 293 -412q113 166 171 410l145 -43 q-63 -249 -212 -469q96 -98 208 -98q71 0 117 16v-135q-56 -22 -141 -22zM869 1133q0 72 -50 117.5t-136 45.5q-96 0 -146 -51.5t-50 -142.5q0 -114 65 -244q131 53 192.5 92t93 84t31.5 99zM795 217q-198 234 -319 457q-236 -100 -236 -301q0 -121 77.5 -191.5t211.5 -70.5 q71 0 142 27.5t124 78.5z" />
20
+ <glyph unicode="'" horiz-adv-x="391" d="M266 966h-141l-21 443h184z" />
21
+ <glyph unicode="(" horiz-adv-x="682" d="M127 532q0 289 90.5 519t278.5 433h174q-187 -208 -274.5 -442t-87.5 -512q0 -277 86.5 -510t275.5 -444h-174q-189 204 -279 434.5t-90 517.5v4z" />
22
+ <glyph unicode=")" horiz-adv-x="682" d="M555 528q0 -289 -90.5 -519t-278.5 -433h-174q188 210 275 442.5t87 511.5t-87.5 512t-274.5 442h174q189 -204 279 -434.5t90 -517.5v-4z" />
23
+ <glyph unicode="*" horiz-adv-x="797" d="M456 1114l264 103l45 -132l-282 -73l185 -250l-119 -72l-150 258l-156 -256l-119 72l189 248l-280 73l45 134l267 -107l-12 297h136z" />
24
+ <glyph unicode="+" horiz-adv-x="1196" d="M671 608v-428h-147v428h-424v146h424v428h147v-428h424v-146h-424z" />
25
+ <glyph unicode="," horiz-adv-x="569" d="M385 219v-168q0 -106 -19 -177t-59 -136h-123q94 136 94 262h-88v219h195z" />
26
+ <glyph unicode="-" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
27
+ <glyph unicode="." horiz-adv-x="569" d="M187 0v219h195v-219h-195z" />
28
+ <glyph unicode="/" horiz-adv-x="569" d="M0 -20l411 1504h158l-407 -1504h-162z" />
29
+ <glyph unicode="0" d="M1059 705q0 -353 -124.5 -539t-367.5 -186t-365 185t-122 540q0 363 118.5 544t374.5 181q249 0 367.5 -183t118.5 -542zM876 705q0 305 -70.5 442t-232.5 137q-166 0 -238.5 -135t-72.5 -444q0 -300 73.5 -439t233.5 -139q159 0 233 142t74 436z" />
30
+ <glyph unicode="1" d="M156 0v153h359v1084l-318 -227v170l333 229h166v-1256h343v-153h-883z" />
31
+ <glyph unicode="2" d="M103 0v127q51 117 124.5 206.5t154.5 162t160.5 134.5t143.5 124t103.5 130t39.5 154q0 116 -68 180t-189 64q-115 0 -189.5 -62.5t-87.5 -175.5l-184 17q20 169 143.5 269t317.5 100q213 0 327.5 -100.5t114.5 -285.5q0 -82 -37.5 -163t-111.5 -162t-283 -251 q-115 -94 -183 -169.5t-98 -145.5h735v-153h-933z" />
32
+ <glyph unicode="3" d="M1049 389q0 -195 -124 -302t-354 -107q-214 0 -341.5 96.5t-151.5 285.5l186 17q36 -250 307 -250q136 0 213.5 67t77.5 199q0 115 -88.5 179.5t-255.5 64.5h-102v156h98q148 0 229.5 64.5t81.5 178.5q0 113 -66.5 178.5t-197.5 65.5q-119 0 -192.5 -61t-85.5 -172 l-181 14q20 173 143.5 270t317.5 97q212 0 329.5 -98.5t117.5 -274.5q0 -135 -75.5 -219.5t-219.5 -114.5v-4q158 -17 246 -106t88 -224z" />
33
+ <glyph unicode="4" d="M881 319v-319h-170v319h-664v140l645 950h189v-948h198v-142h-198zM711 1206q-2 -6 -28 -53t-39 -66l-361 -532l-54 -74l-16 -20h498v745z" />
34
+ <glyph unicode="5" d="M1053 459q0 -223 -132.5 -351t-367.5 -128q-197 0 -318 86t-153 249l182 21q57 -209 293 -209q145 0 227 87.5t82 240.5q0 133 -82.5 215t-222.5 82q-73 0 -136 -23t-126 -78h-176l47 758h801v-153h-637l-27 -447q117 90 291 90q208 0 331.5 -122t123.5 -318z" />
35
+ <glyph unicode="6" d="M1049 461q0 -223 -121 -352t-334 -129q-238 0 -364 177t-126 515q0 366 131 562t373 196q319 0 402 -287l-172 -31q-53 172 -232 172q-154 0 -238.5 -143.5t-84.5 -415.5q49 91 138 138.5t204 47.5q195 0 309.5 -122t114.5 -328zM866 453q0 153 -75 236t-209 83 q-126 0 -203.5 -73.5t-77.5 -202.5q0 -163 80.5 -267t206.5 -104q130 0 204 87.5t74 240.5z" />
36
+ <glyph unicode="7" d="M1036 1263q-216 -330 -305 -517t-133.5 -369t-44.5 -377h-188q0 270 114.5 568.5t382.5 687.5h-757v153h931v-146z" />
37
+ <glyph unicode="8" d="M1050 393q0 -195 -124 -304t-356 -109q-226 0 -353.5 107t-127.5 304q0 138 79 232t202 114v4q-115 27 -181.5 117t-66.5 211q0 161 120.5 261t323.5 100q208 0 328.5 -98t120.5 -265q0 -121 -67 -211t-183 -113v-4q135 -22 210 -114.5t75 -231.5zM828 1057 q0 239 -262 239q-127 0 -193.5 -60t-66.5 -179q0 -121 68.5 -184.5t193.5 -63.5q127 0 193.5 58.5t66.5 189.5zM863 410q0 131 -78 197.5t-219 66.5q-137 0 -214 -71.5t-77 -196.5q0 -291 297 -291q147 0 219 70.5t72 224.5z" />
38
+ <glyph unicode="9" d="M1042 733q0 -363 -132.5 -558t-377.5 -195q-165 0 -264.5 69.5t-142.5 224.5l172 27q54 -176 238 -176q155 0 240 144t89 411q-40 -90 -137 -144.5t-213 -54.5q-190 0 -304 130t-114 345q0 221 124 347.5t345 126.5q235 0 356 -174t121 -523zM846 907q0 170 -78 273.5 t-209 103.5q-130 0 -205 -88.5t-75 -239.5q0 -154 75 -243.5t203 -89.5q78 0 145 35.5t105.5 100.5t38.5 148z" />
39
+ <glyph unicode=":" horiz-adv-x="569" d="M187 875v207h195v-207h-195zM187 0v207h195v-207h-195z" />
40
+ <glyph unicode=";" horiz-adv-x="569" d="M385 207v-156q0 -106 -19 -177t-59 -136h-123q94 136 94 262h-88v207h195zM190 875v207h195v-207h-195z" />
41
+ <glyph unicode="&#x3c;" horiz-adv-x="1196" d="M101 571v205l995 418v-154l-858 -366l858 -367v-153z" />
42
+ <glyph unicode="=" horiz-adv-x="1196" d="M100 856v148h995v-148h-995zM100 344v148h995v-148h-995z" />
43
+ <glyph unicode="&#x3e;" horiz-adv-x="1196" d="M101 154v153l858 367l-858 366v154l995 -418v-205z" />
44
+ <glyph unicode="?" d="M1063 1032q0 -75 -22 -134t-63 -109t-134 -118l-80 -59q-72 -52 -107 -109.5t-36 -125.5h-175q2 69 21.5 121t50.5 92t70 71.5t79 60t78.5 57t68.5 63.5t48.5 79t18.5 103q0 114 -77.5 180t-217.5 66t-222 -70t-96 -192l-184 12q26 198 156 304t344 106q223 0 351 -105.5 t128 -292.5zM438 0v201h195v-201h-195z" />
45
+ <glyph unicode="@" horiz-adv-x="2079" d="M1902 755q0 -186 -57.5 -336.5t-160 -232.5t-229.5 -82q-99 0 -153 44t-54 132l3 70h-6q-66 -123 -163.5 -184.5t-210.5 -61.5q-157 0 -243.5 102t-86.5 283q0 164 64.5 305t180.5 224t257 83q219 0 301 -182h6l39 160h156l-116 -506q-37 -164 -37 -253q0 -94 81 -94 q80 0 147.5 69t106.5 190t39 268q0 179 -77 317.5t-222 213t-339 74.5q-242 0 -428 -107t-292 -308.5t-106 -451.5q0 -193 78.5 -340.5t227 -226.5t346.5 -79q145 0 294 37.5t309 124.5l55 -112q-145 -87 -314.5 -132.5t-343.5 -45.5q-241 0 -421.5 95.5t-276 272 t-95.5 406.5q0 280 124.5 509t345.5 356.5t495 127.5q241 0 416 -90.5t267.5 -255.5t92.5 -383zM1296 747q0 102 -66 164.5t-176 62.5q-101 0 -179.5 -63.5t-123.5 -176t-45 -243.5q0 -120 47.5 -188t146.5 -68q125 0 229 105t144 262q23 92 23 145z" />
46
+ <glyph unicode="A" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156z" />
47
+ <glyph unicode="B" horiz-adv-x="1366" d="M1258 397q0 -188 -137 -292.5t-381 -104.5h-572v1409h512q496 0 496 -342q0 -125 -70 -210t-198 -114q168 -20 259 -112.5t91 -233.5zM984 1044q0 114 -78 163t-226 49h-321v-446h321q153 0 228.5 57.5t75.5 176.5zM1065 412q0 249 -350 249h-356v-508h371q175 0 255 65 t80 194z" />
48
+ <glyph unicode="C" horiz-adv-x="1479" d="M792 1274q-234 0 -364 -150.5t-130 -412.5q0 -259 135.5 -416.5t366.5 -157.5q296 0 445 293l156 -78q-87 -182 -244.5 -277t-365.5 -95q-213 0 -368.5 88.5t-237 253t-81.5 389.5q0 337 182 528t504 191q225 0 376 -88t222 -261l-181 -60q-49 123 -157.5 188t-257.5 65z " />
49
+ <glyph unicode="D" horiz-adv-x="1479" d="M1381 719q0 -218 -85 -381.5t-241 -250.5t-360 -87h-527v1409h466q358 0 552.5 -179.5t194.5 -510.5zM1189 719q0 262 -143.5 399.5t-415.5 137.5h-271v-1103h314q155 0 272.5 68t180.5 196t63 302z" />
50
+ <glyph unicode="E" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110z" />
51
+ <glyph unicode="F" horiz-adv-x="1251" d="M359 1253v-524h786v-158h-786v-571h-191v1409h1001v-156h-810z" />
52
+ <glyph unicode="G" horiz-adv-x="1593" d="M103 711q0 343 184 531t517 188q234 0 380 -79t225 -253l-182 -54q-60 120 -165.5 175t-262.5 55q-244 0 -373 -147.5t-129 -415.5q0 -267 137 -421.5t379 -154.5q138 0 257.5 42t193.5 114v254h-421v160h597v-486q-112 -114 -274.5 -176.5t-352.5 -62.5q-221 0 -381 88 t-244.5 253.5t-84.5 389.5z" />
53
+ <glyph unicode="H" horiz-adv-x="1479" d="M1121 0v653h-762v-653h-191v1409h191v-596h762v596h191v-1409h-191z" />
54
+ <glyph unicode="I" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191z" />
55
+ <glyph unicode="J" horiz-adv-x="1024" d="M457 -20q-358 0 -425 370l187 31q18 -116 81 -181t158 -65q104 0 164 71.5t60 209.5v837h-271v156h461v-989q0 -205 -111 -322.5t-304 -117.5z" />
56
+ <glyph unicode="K" horiz-adv-x="1366" d="M1106 0l-563 680l-184 -140v-540h-191v1409h191v-706l679 706h225l-600 -612l680 -797h-237z" />
57
+ <glyph unicode="L" d="M168 0v1409h191v-1253h712v-156h-903z" />
58
+ <glyph unicode="M" horiz-adv-x="1706" d="M1366 0v940q0 156 9 300q-49 -179 -88 -280l-364 -960h-134l-369 960l-56 170l-33 110l3 -111l4 -189v-940h-170v1409h251l375 -977q20 -59 38.5 -126.5t24.5 -97.5q8 40 33.5 121.5t34.5 102.5l368 977h245v-1409h-172z" />
59
+ <glyph unicode="N" horiz-adv-x="1479" d="M1082 0l-754 1200l5 -97l5 -167v-936h-170v1409h222l762 -1208q-12 196 -12 284v924h172v-1409h-230z" />
60
+ <glyph unicode="O" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5z" />
61
+ <glyph unicode="P" horiz-adv-x="1366" d="M1258 985q0 -200 -130.5 -318t-354.5 -118h-414v-549h-191v1409h593q237 0 367 -111t130 -313zM1066 983q0 273 -328 273h-379v-556h387q320 0 320 283z" />
62
+ <glyph unicode="Q" horiz-adv-x="1593" d="M1495 711q0 -298 -150 -490t-417 -227q41 -126 107.5 -182t168.5 -56q55 0 115 13v-134q-93 -22 -178 -22q-151 0 -248.5 85.5t-159.5 285.5q-198 10 -341.5 100.5t-219 252t-75.5 374.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711 q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5q244 0 374.5 150.5t130.5 425.5z" />
63
+ <glyph unicode="R" horiz-adv-x="1479" d="M1164 0l-366 585h-439v-585h-191v1409h663q238 0 367.5 -106.5t129.5 -296.5q0 -157 -91.5 -264t-252.5 -135l400 -607h-220zM1136 1004q0 123 -83.5 187.5t-240.5 64.5h-453v-520h461q151 0 233.5 70.5t82.5 197.5z" />
64
+ <glyph unicode="S" horiz-adv-x="1366" d="M1272 389q0 -195 -152.5 -302t-429.5 -107q-515 0 -597 358l185 37q32 -127 136 -186.5t283 -59.5q185 0 285.5 63.5t100.5 186.5q0 69 -31.5 112t-88.5 71t-136 47t-175 41q-167 37 -253.5 74t-136.5 82.5t-76.5 106.5t-26.5 140q0 181 138.5 279t396.5 98 q240 0 367 -73.5t178 -250.5l-188 -33q-31 112 -118 162.5t-241 50.5q-169 0 -258 -56t-89 -167q0 -65 34.5 -107.5t99.5 -72t259 -72.5q65 -15 129.5 -30.5t123.5 -37t110.5 -50.5t89.5 -71t59.5 -99t21.5 -134z" />
65
+ <glyph unicode="T" horiz-adv-x="1251" d="M720 1253v-1253h-190v1253h-484v156h1158v-156h-484z" />
66
+ <glyph unicode="U" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5z" />
67
+ <glyph unicode="V" horiz-adv-x="1366" d="M782 0h-198l-575 1409h201l390 -992l84 -249l84 249l388 992h201z" />
68
+ <glyph unicode="W" horiz-adv-x="1933" d="M1511 0h-228l-244 895q-24 84 -70 301q-26 -116 -44 -194t-273 -1002h-228l-415 1409h199l253 -895q45 -168 83 -346q24 110 55.5 240t277.5 1001h183l245 -877q56 -215 88 -364l9 35q27 115 44 187.5t281 1018.5h199z" />
69
+ <glyph unicode="X" horiz-adv-x="1366" d="M1112 0l-423 616l-432 -616h-211l536 732l-495 677h211l392 -553l381 553h211l-482 -670l523 -739h-211z" />
70
+ <glyph unicode="Y" horiz-adv-x="1366" d="M777 584v-584h-190v584l-542 825h210l429 -671l427 671h210z" />
71
+ <glyph unicode="Z" horiz-adv-x="1251" d="M1187 0h-1122v143l858 1110h-785v156h1002v-139l-858 -1114h905v-156z" />
72
+ <glyph unicode="[" horiz-adv-x="569" d="M146 -425v1909h407v-129h-233v-1651h233v-129h-407z" />
73
+ <glyph unicode="\" horiz-adv-x="569" d="M407 -20l-407 1504h158l411 -1504h-162z" />
74
+ <glyph unicode="]" horiz-adv-x="569" d="M16 -425v129h233v1651h-233v129h407v-1909h-407z" />
75
+ <glyph unicode="^" horiz-adv-x="961" d="M787 673l-309 633l-306 -633h-162l368 736h203l370 -736h-164z" />
76
+ <glyph unicode="_" d="M-31 -407v130h1193v-130h-1193z" />
77
+ <glyph unicode="`" horiz-adv-x="682" d="M436 1201l-330 278v29h207l217 -287v-20h-94z" />
78
+ <glyph unicode="a" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48z" />
79
+ <glyph unicode="b" d="M1053 546q0 -566 -398 -566q-123 0 -204.5 44.5t-132.5 143.5h-2q0 -31 -4 -94.5t-6 -73.5h-174q6 54 6 223v1261h180v-423q0 -65 -4 -153h4q50 104 132.5 149t204.5 45q205 0 301.5 -138t96.5 -418zM864 540q0 227 -60 325t-195 98q-152 0 -221.5 -104t-69.5 -330 q0 -213 68 -314.5t221 -101.5q136 0 196.5 100.5t60.5 326.5z" />
80
+ <glyph unicode="c" horiz-adv-x="1024" d="M275 546q0 -216 68 -320t205 -104q96 0 160.5 52t79.5 160l182 -12q-21 -156 -133 -249t-284 -93q-227 0 -346.5 143.5t-119.5 418.5q0 273 120 416.5t344 143.5q166 0 275.5 -86t137.5 -237l-185 -14q-14 90 -71 143t-162 53q-143 0 -207 -95t-64 -320z" />
81
+ <glyph unicode="d" d="M821 174q-50 -104 -132.5 -149t-204.5 -45q-205 0 -301.5 138t-96.5 418q0 566 398 566q123 0 205 -45t132 -143h2l-2 121v449h180v-1261q0 -169 6 -223h-172q-3 16 -6.5 74t-3.5 100h-4zM275 542q0 -227 60 -325t195 -98q153 0 222 106t69 329q0 215 -69 315t-220 100 q-136 0 -196.5 -100.5t-60.5 -326.5z" />
82
+ <glyph unicode="e" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584z" />
83
+ <glyph unicode="f" horiz-adv-x="569" d="M361 951v-951h-180v951h-152v131h152v122q0 148 65 213t199 65q75 0 127 -12v-137q-45 8 -80 8q-69 0 -100 -35t-31 -127v-97h211v-131h-211z" />
84
+ <glyph unicode="g" d="M548 -425q-177 0 -282 69.5t-135 197.5l181 26q18 -75 79.5 -115.5t161.5 -40.5q269 0 269 315v174h-2q-51 -104 -140 -156.5t-208 -52.5q-199 0 -292.5 132t-93.5 415q0 287 100.5 423.5t305.5 136.5q115 0 199.5 -52.5t130.5 -149.5h2q0 30 4 104t8 81h171 q-6 -54 -6 -224v-827q0 -456 -453 -456zM822 541q0 132 -36 227.5t-101.5 146t-148.5 50.5q-138 0 -201 -100t-63 -324q0 -222 59 -319t202 -97q85 0 151 50t102 143.5t36 222.5z" />
85
+ <glyph unicode="h" d="M317 897q58 106 139.5 155.5t206.5 49.5q176 0 259.5 -87.5t83.5 -293.5v-721h-181v686q0 114 -21 169.5t-69 81.5t-133 26q-127 0 -203.5 -88t-76.5 -237v-638h-180v1484h180v-386q0 -61 -3.5 -126t-4.5 -75h3z" />
86
+ <glyph unicode="i" horiz-adv-x="455" d="M137 1312v172h180v-172h-180zM137 0v1082h180v-1082h-180z" />
87
+ <glyph unicode="j" horiz-adv-x="455" d="M137 1312v172h180v-172h-180zM317 -134q0 -153 -60 -222t-180 -69q-77 0 -127 9v139l62 -6q69 0 97 36t28 140v1189h180v-1216z" />
88
+ <glyph unicode="k" horiz-adv-x="1024" d="M816 0l-366 494l-132 -109v-385h-180v1484h180v-927l475 525h211l-439 -465l462 -617h-211z" />
89
+ <glyph unicode="l" horiz-adv-x="455" d="M138 0v1484h180v-1484h-180z" />
90
+ <glyph unicode="m" horiz-adv-x="1706" d="M768 0v686q0 157 -43 217t-155 60q-115 0 -182 -88t-67 -248v-627h-179v851q0 189 -6 231h170q1 -5 2 -27t2.5 -50.5t3.5 -107.5h3q58 115 133 160t183 45q123 0 194.5 -49t99.5 -156h3q56 109 135.5 157t192.5 48q164 0 238.5 -89t74.5 -292v-721h-178v686 q0 157 -43 217t-155 60q-118 0 -183.5 -87.5t-65.5 -248.5v-627h-178z" />
91
+ <glyph unicode="n" d="M825 0v686q0 107 -21 166t-67 85t-135 26q-130 0 -205 -89t-75 -247v-627h-180v851q0 189 -6 231h170q1 -5 2 -27t2.5 -50.5t3.5 -107.5h3q62 112 143.5 158.5t202.5 46.5q178 0 260.5 -88.5t82.5 -292.5v-721h-181z" />
92
+ <glyph unicode="o" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325z" />
93
+ <glyph unicode="p" d="M1053 546q0 -566 -398 -566q-250 0 -336 188h-5q4 -8 4 -170v-423h-180v1286q0 167 -6 221h174q1 -4 3 -28.5t4.5 -75.5t2.5 -70h4q48 100 127 146.5t208 46.5q200 0 299 -134t99 -421zM864 542q0 226 -61 323t-194 97q-107 0 -167.5 -45t-92 -140.5t-31.5 -248.5 q0 -213 68 -314t221 -101q134 0 195.5 98.5t61.5 330.5z" />
94
+ <glyph unicode="q" d="M484 -20q-206 0 -302 139t-96 417q0 566 398 566q123 0 203 -43.5t134 -144.5h2q0 30 4 103.5t8 78.5h173q-7 -59 -7 -295v-1226h-180v439l4 164h-2q-54 -107 -133 -152.5t-206 -45.5zM821 554q0 211 -69 313t-220 102q-137 0 -197 -102t-60 -325q0 -227 60.5 -325 t194.5 -98q153 0 222 109t69 326z" />
95
+ <glyph unicode="r" horiz-adv-x="682" d="M142 0v830q0 114 -6 252h170q8 -184 8 -221h4q43 139 99 190t158 51q36 0 73 -10v-165q-36 10 -96 10q-112 0 -171 -96.5t-59 -276.5v-564h-180z" />
96
+ <glyph unicode="s" horiz-adv-x="1024" d="M950 299q0 -153 -115.5 -236t-323.5 -83q-202 0 -311.5 66.5t-142.5 207.5l159 31q23 -87 95 -127.5t200 -40.5q137 0 200.5 42t63.5 126q0 64 -44 104t-142 66l-129 34q-155 40 -220.5 78.5t-102.5 93.5t-37 135q0 148 105.5 225.5t307.5 77.5q179 0 284.5 -63 t133.5 -202l-162 -20q-15 72 -80.5 110.5t-175.5 38.5q-122 0 -180 -37t-58 -112q0 -46 24 -76t71 -51t198 -58q143 -36 206 -66.5t99.5 -67.5t56.5 -85.5t20 -110.5z" />
97
+ <glyph unicode="t" horiz-adv-x="569" d="M554 8q-89 -24 -182 -24q-216 0 -216 245v722h-125v131h132l53 242h120v-242h200v-131h-200v-683q0 -78 25.5 -109.5t88.5 -31.5q36 0 104 14v-133z" />
98
+ <glyph unicode="u" d="M314 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181z" />
99
+ <glyph unicode="v" horiz-adv-x="1024" d="M613 0h-213l-393 1082h192l238 -704q13 -40 69 -237l35 117l39 118l246 706h191z" />
100
+ <glyph unicode="w" horiz-adv-x="1479" d="M1174 0h-209l-189 765l-36 169q-9 -45 -28 -129.5t-204 -804.5h-208l-303 1082h178l183 -735q7 -24 43 -198l17 74l226 859h193l189 -743l46 -190l31 139l205 794h176z" />
101
+ <glyph unicode="x" horiz-adv-x="1024" d="M801 0l-291 444l-293 -444h-194l385 556l-367 526h199l270 -421l268 421h201l-367 -524l390 -558h-201z" />
102
+ <glyph unicode="y" horiz-adv-x="1024" d="M191 -425q-74 0 -124 11v135q38 -6 84 -6q168 0 266 247l17 43l-429 1077h192l228 -598q5 -14 12 -33.5t45 -130.5t41 -124l70 197l237 689h190l-416 -1082q-67 -173 -125 -257.5t-128.5 -126t-159.5 -41.5z" />
103
+ <glyph unicode="z" horiz-adv-x="1024" d="M83 0v137l605 806h-571v139h784v-137l-606 -806h627v-139h-839z" />
104
+ <glyph unicode="{" horiz-adv-x="684" d="M513 -425q-127 0 -195.5 77t-68.5 216v361q0 117 -52.5 174.5t-162.5 62.5v127q109 4 162 61.5t53 174.5v362q0 141 66.5 217t197.5 76h135v-129h-63q-91 0 -129.5 -53.5t-38.5 -161.5v-356q0 -94 -53 -162.5t-141 -89.5v-2q89 -21 141.5 -89t52.5 -165v-357 q0 -106 38.5 -160.5t129.5 -54.5h63v-129h-135z" />
105
+ <glyph unicode="|" horiz-adv-x="532" d="M183 -434v1918h166v-1918h-166z" />
106
+ <glyph unicode="}" horiz-adv-x="684" d="M94 -296q91 0 130.5 54.5t39.5 160.5v357q0 98 52 166t141 88v2q-86 20 -139.5 87.5t-53.5 164.5v356q0 108 -39.5 161.5t-130.5 53.5h-60v129h132q131 0 197.5 -76t66.5 -217v-362q0 -116 53 -174t164 -62v-127q-112 -4 -164.5 -62t-52.5 -175v-361q0 -138 -68.5 -215.5 t-195.5 -77.5h-132v129h60z" />
107
+ <glyph unicode="~" horiz-adv-x="1196" d="M844 553q-69 0 -141.5 22t-145.5 48q-129 45 -217 45q-67 0 -125 -20.5t-123 -67.5v143q111 84 263 84q52 0 115.5 -13t193.5 -59q31 -12 91 -28.5t105 -16.5q130 0 244 92v-149q-58 -42 -116.5 -61t-143.5 -19z" />
108
+ <glyph unicode="&#xa1;" horiz-adv-x="682" d="M266 685h148l24 -1012h-196zM440 1082v-201h-194v201h194z" />
109
+ <glyph unicode="&#xa2;" d="M596 277q96 0 160.5 52t79.5 160l182 -12q-19 -144 -114 -235t-242 -105v-168h-124v168q-199 18 -301 160.5t-102 399.5q0 253 102 396.5t301 160.5v155h124v-155q143 -15 233 -98t117 -222l-185 -14q-14 90 -71 143t-162 53q-143 0 -207 -95t-64 -320q0 -216 68 -320 t205 -104z" />
110
+ <glyph unicode="&#xa3;" d="M1104 311q-17 -150 -105 -230.5t-232 -80.5h-698v154q89 46 132 126t43 201v144h-186v129h186v280q0 195 103 295.5t299 100.5q147 0 247 -60.5t134 -169.5l-174 -57q-21 64 -76.5 101.5t-126.5 37.5q-114 0 -170 -57.5t-56 -182.5v-288h408v-129h-408v-126 q0 -119 -46 -212t-123 -134h483q174 0 203 176z" />
111
+ <glyph unicode="&#xa4;" d="M137 684q0 138 78 252l-100 100l104 103l99 -101q114 82 254 82q137 0 251 -80l97 97l104 -105l-96 -96q80 -117 80 -252q0 -138 -82 -252l100 -100l-102 -105l-101 101q-114 -78 -251 -78q-143 0 -252 80l-105 -105l-102 105l102 102q-78 114 -78 252zM291 686 q0 -117 83 -198.5t198 -81.5q114 0 197 81t83 199q0 117 -83.5 199t-196.5 82t-197 -81.5t-84 -199.5z" />
112
+ <glyph unicode="&#xa5;" d="M720 709h321v-125h-383v-154h383v-127h-383v-303h-178v303h-381v127h381l2 154h-383v125h320l-421 700h199l371 -647l375 647h199z" />
113
+ <glyph unicode="&#xa6;" horiz-adv-x="532" d="M183 706v778h166v-778h-166zM183 -434v779h166v-779h-166z" />
114
+ <glyph unicode="&#xa7;" d="M588 1484q173 0 279.5 -66.5t133.5 -193.5l-161 -20q-27 150 -252 150q-125 0 -189.5 -39.5t-64.5 -110.5q0 -48 30 -83t85.5 -61t185.5 -57q147 -35 225 -76.5t121 -100.5t43 -140q0 -99 -59.5 -174t-159.5 -99q112 -48 162.5 -112.5t50.5 -155.5q0 -148 -115.5 -232.5 t-325.5 -84.5q-209 0 -318.5 66.5t-143.5 205.5l161 31q20 -90 88 -131t213 -41q136 0 208.5 44t72.5 126q0 57 -33 95.5t-94.5 67.5t-212.5 66q-194 45 -279.5 123t-85.5 190q0 89 61.5 163t166.5 104q-96 32 -151.5 99t-55.5 153q0 139 105.5 216.5t308.5 77.5zM866 663 q0 72 -69.5 124t-245.5 93q-109 -6 -173.5 -59t-64.5 -137q0 -49 29.5 -85.5t85 -63.5t184.5 -60q119 2 186.5 52.5t67.5 135.5z" />
115
+ <glyph unicode="&#xa8;" horiz-adv-x="682" d="M439 1219v184h163v-184h-163zM45 1219v184h165v-184h-165z" />
116
+ <glyph unicode="&#xa9;" horiz-adv-x="1509" d="M1477 707q0 -193 -96.5 -361.5t-265 -265t-361.5 -96.5q-197 0 -366.5 100.5t-263 267t-93.5 355.5q0 193 97 361t265 265t361 97q194 0 362.5 -97.5t264.5 -264.5t96 -361zM1385 707q0 169 -84 313.5t-230.5 229.5t-316.5 85q-168 0 -314 -84.5t-230 -230.5t-84 -313 q0 -169 84.5 -315t229.5 -230t314 -84t316 84t231 230t84 315zM498 709q0 -155 71 -240.5t196 -85.5q158 0 233 156l115 -35q-62 -121 -146.5 -173t-201.5 -52q-188 0 -292 113t-104 317q0 203 100 313.5t289 110.5q244 0 340 -209l-114 -33q-32 69 -90 103t-134 34 q-127 0 -194.5 -80.5t-67.5 -238.5z" />
117
+ <glyph unicode="&#xaa;" horiz-adv-x="758" d="M260 651q-108 0 -171 58t-63 161q0 116 78.5 178t233.5 64l178 4v60q0 81 -35 118t-116 37q-67 0 -107.5 -29.5t-49.5 -105.5l-149 10q16 106 95.5 166t208.5 60q145 0 220.5 -62.5t75.5 -187.5v-308q0 -58 14 -83t49 -25q19 0 43 8v-104q-49 -13 -83 -13 q-73 0 -113.5 38t-44.5 103h-4q-73 -147 -260 -147zM299 762q90 0 153.5 59t63.5 138v65l-138 -4q-118 -6 -160 -39t-42 -98q0 -121 123 -121z" />
118
+ <glyph unicode="&#xab;" d="M886 141l-338 365v63l338 371h168v-31l-338 -372l340 -367v-29h-170zM419 141l-336 365v63l336 371h167v-31l-335 -372l337 -367v-29h-169z" />
119
+ <glyph unicode="&#xac;" horiz-adv-x="1196" d="M950 180v428h-850v146h995v-574h-145z" />
120
+ <glyph unicode="&#xad;" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
121
+ <glyph unicode="&#xae;" horiz-adv-x="1509" d="M1477 707q0 -193 -96.5 -361.5t-265 -265t-361.5 -96.5q-197 0 -366.5 100.5t-263 267t-93.5 355.5q0 193 97 361t265 265t361 97q194 0 362.5 -97.5t264.5 -264.5t96 -361zM1385 707q0 169 -84 313.5t-230.5 229.5t-316.5 85q-168 0 -314 -84.5t-230 -230.5t-84 -313 q0 -169 84.5 -315t229.5 -230t314 -84t316 84t231 230t84 315zM955 289l-199 336h-161v-336h-127v831h307q142 0 217.5 -63t75.5 -174q0 -102 -52 -163.5t-137 -80.5l221 -350h-145zM941 881q0 69 -47.5 105t-128.5 36h-170v-301h182q80 0 122 42.5t42 117.5z" />
122
+ <glyph unicode="&#xaf;" horiz-adv-x="1131" d="M1148 1452h-1165v94h1165v-94z" />
123
+ <glyph unicode="&#xb0;" horiz-adv-x="819" d="M696 1145q0 -119 -84.5 -202t-202.5 -83t-202.5 84t-84.5 201t83.5 201t203.5 84t203.5 -83t83.5 -202zM587 1145q0 76 -51.5 128t-126.5 52t-126.5 -53t-51.5 -127t52.5 -127t125.5 -53q74 0 126 52.5t52 127.5z" />
124
+ <glyph unicode="&#xb1;" horiz-adv-x="1124" d="M636 680v-395h-147v395h-424v145h424v394h147v-394h424v-145h-424zM65 0v145h995v-145h-995z" />
125
+ <glyph unicode="&#xb2;" horiz-adv-x="682" d="M43 563l-2 103q31 69 95.5 134.5t171.5 139.5q97 68 141 124t44 114q0 62 -35.5 99.5t-109.5 37.5q-68 0 -112 -36.5t-52 -104.5l-133 8q13 107 93.5 173t209.5 66q127 0 201.5 -61.5t74.5 -171.5q0 -147 -188 -285q-122 -90 -172 -136t-70 -91h443v-113h-600z" />
126
+ <glyph unicode="&#xb3;" horiz-adv-x="682" d="M642 795q0 -116 -77.5 -180t-219.5 -64q-286 0 -318 227l136 13q18 -136 182 -136q160 0 160 148q0 137 -189 137h-61v109h57q80 0 126 36t46 101q0 60 -37 94.5t-108 34.5q-68 0 -110 -35t-48 -100l-135 12q13 109 91.5 169t205.5 60q130 0 204 -59.5t74 -157.5 q0 -75 -43 -130t-133 -75v-2q91 -9 144 -61.5t53 -140.5z" />
127
+ <glyph unicode="&#xb4;" horiz-adv-x="682" d="M72 1201v20l217 287h207v-29l-330 -278h-94z" />
128
+ <glyph unicode="&#xb5;" horiz-adv-x="1180" d="M140 -425v1507h181v-686q0 -138 53.5 -207.5t172.5 -69.5q128 0 201 87t73 249v627h180v-816q0 -76 18 -110.5t60 -34.5q25 0 54 8v-129q-65 -20 -113 -20q-91 0 -138.5 47t-52.5 147h-3q-106 -194 -299 -194q-67 0 -121.5 20.5t-85.5 58.5v-484h-180z" />
129
+ <glyph unicode="&#xb6;" horiz-adv-x="1100" d="M884 1307v-1571h-112v1571h-217v-1571h-113v958q-168 0 -265 92.5t-97 262.5q0 169 98.5 264.5t271.5 95.5h563v-102h-129z" />
130
+ <glyph unicode="&#xb7;" horiz-adv-x="682" d="M243 446v220h195v-220h-195z" />
131
+ <glyph unicode="&#xb8;" horiz-adv-x="682" d="M483 -253q0 -181 -274 -181q-57 0 -90 4v98q49 -6 86 -6q147 0 147 81q0 77 -133 77q-43 0 -57 -2l65 182h107l-39 -100q94 -3 141 -43.5t47 -109.5z" />
132
+ <glyph unicode="&#xb9;" horiz-adv-x="682" d="M80 563v107h211v620l-202 -138v120l210 137h123v-739h215v-107h-557z" />
133
+ <glyph unicode="&#xba;" horiz-adv-x="748" d="M723 1042q0 -188 -88 -289.5t-263 -101.5q-168 0 -256.5 100.5t-88.5 290.5q0 189 89 289.5t260 100.5q347 0 347 -390zM574 1042q0 154 -45.5 219.5t-149.5 65.5q-108 0 -154 -67.5t-46 -217.5q0 -145 45.5 -215.5t146.5 -70.5q111 0 157 69t46 217z" />
134
+ <glyph unicode="&#xbb;" d="M718 141h-168v29l338 367l-336 372v31h166l338 -371v-63zM253 141h-170v29l338 367l-336 372v31h168l335 -371v-63z" />
135
+ <glyph unicode="&#xbc;" horiz-adv-x="1708" d="M56 563v107h211v620l-202 -138v120l210 137h123v-739h215v-107h-557zM493 0h-148l881 1409h145zM1503 180v-178h-131v178h-406v111l386 557h151v-555h111v-113h-111zM1374 715q-21 -40 -82 -135l-199 -287h279v360z" />
136
+ <glyph unicode="&#xbd;" horiz-adv-x="1708" d="M56 563v107h211v620l-202 -138v120l210 137h123v-739h215v-107h-557zM493 0h-148l881 1409h145zM1053 2l-2 103q31 69 95.5 134.5t171.5 139.5q97 68 141 124t44 114q0 62 -35.5 99.5t-109.5 37.5q-68 0 -112 -36.5t-52 -104.5l-133 8q13 107 93.5 173t209.5 66 q127 0 201.5 -61.5t74.5 -171.5q0 -147 -188 -285q-122 -90 -172 -136t-70 -91h443v-113h-600z" />
137
+ <glyph unicode="&#xbe;" horiz-adv-x="1708" d="M513 0h-148l881 1409h145zM1503 180v-178h-131v178h-406v111l386 557h151v-555h111v-113h-111zM1374 715q-21 -40 -82 -135l-199 -287h279v360zM688 795q0 -116 -77.5 -180t-219.5 -64q-286 0 -318 227l136 13q18 -136 182 -136q160 0 160 148q0 137 -189 137h-61v109h57 q80 0 126 36t46 101q0 60 -37 94.5t-108 34.5q-68 0 -110 -35t-48 -100l-135 12q13 109 91.5 169t205.5 60q130 0 204 -59.5t74 -157.5q0 -75 -43 -130t-133 -75v-2q91 -9 144 -61.5t53 -140.5z" />
138
+ <glyph unicode="&#xbf;" horiz-adv-x="1251" d="M131 50q0 75 22 134t63 109t134 118l81 59q71 52 106 109.5t36 125.5h175q-2 -69 -21.5 -121t-50.5 -92t-70 -71.5t-79 -60t-78.5 -57t-68.5 -63.5t-48.5 -79t-18.5 -103q0 -114 77.5 -180t217.5 -66t222 70t96 192l184 -12q-26 -198 -156 -304t-344 -106 q-223 0 -351 105.5t-128 292.5zM756 1082v-201h-195v201h195z" />
139
+ <glyph unicode="&#xc0;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM750 1530l-310 217v29h207l217 -226v-20h-114z" />
140
+ <glyph unicode="&#xc1;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM547 1530v20l217 226h207v-29l-310 -217h-114z" />
141
+ <glyph unicode="&#xc2;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM1014 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
142
+ <glyph unicode="&#xc3;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM842 1530q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5 q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
143
+ <glyph unicode="&#xc4;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM803 1530v184h163v-184h-163zM409 1530v184h165v-184h-165z" />
144
+ <glyph unicode="&#xc5;" horiz-adv-x="1366" d="M1167 0l-161 412h-642l-162 -412h-198l575 1409h217l566 -1409h-195zM685 1265l-9 -28q-25 -83 -74 -213l-180 -463h527l-181 465q-28 69 -56 156zM928 1546q0 -100 -71 -171t-171 -71t-171 71t-71 171q0 101 71 171t171 70q99 0 170.5 -70.5t71.5 -170.5zM820 1546 q0 56 -39 95t-95 39q-57 0 -96 -39t-39 -95q0 -55 38 -96t97 -41q58 0 96 40.5t38 96.5z" />
145
+ <glyph unicode="&#xc6;" horiz-adv-x="2048" d="M969 0v412h-548l-198 -412h-199l686 1409h1209v-156h-759v-452h699v-154h-699v-491h800v-156h-991zM969 1262h-151l-28 -63l-299 -638h478v701z" />
146
+ <glyph unicode="&#xc7;" horiz-adv-x="1479" d="M792 1274q-234 0 -364 -150.5t-130 -412.5q0 -259 135.5 -416.5t366.5 -157.5q296 0 445 293l156 -78q-87 -182 -244.5 -277t-365.5 -95q-213 0 -368.5 88.5t-237 253t-81.5 389.5q0 337 182 528t504 191q225 0 376 -88t222 -261l-181 -60q-49 123 -157.5 188t-257.5 65z M993 -253q0 -181 -274 -181q-57 0 -90 4v98q49 -6 86 -6q147 0 147 81q0 77 -133 77q-43 0 -57 -2l65 182h107l-39 -100q94 -3 141 -43.5t47 -109.5z" />
147
+ <glyph unicode="&#xc8;" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110zM735 1530l-310 217v29h207l217 -226v-20h-114z" />
148
+ <glyph unicode="&#xc9;" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110zM551 1530v20l217 226h207v-29l-310 -217h-114z" />
149
+ <glyph unicode="&#xca;" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110zM1037 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
150
+ <glyph unicode="&#xcb;" horiz-adv-x="1366" d="M168 0v1409h1069v-156h-878v-452h818v-154h-818v-491h919v-156h-1110zM816 1530v184h163v-184h-163zM422 1530v184h165v-184h-165z" />
151
+ <glyph unicode="&#xcc;" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191zM319 1530l-310 217v29h207l217 -226v-20h-114z" />
152
+ <glyph unicode="&#xcd;" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191zM142 1530v20l217 226h207v-29l-310 -217h-114z" />
153
+ <glyph unicode="&#xce;" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191zM616 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
154
+ <glyph unicode="&#xcf;" horiz-adv-x="569" d="M189 0v1409h191v-1409h-191zM401 1530v184h163v-184h-163zM7 1530v184h165v-184h-165z" />
155
+ <glyph unicode="&#xd0;" horiz-adv-x="1479" d="M14 801h154v608h466q358 0 552.5 -179.5t194.5 -510.5q0 -218 -85 -381.5t-241 -250.5t-360 -87h-527v647h-154v154zM1189 719q0 262 -143.5 399.5t-415.5 137.5h-271v-455h406v-154h-406v-494h314q155 0 272.5 68t180.5 196t63 302z" />
156
+ <glyph unicode="&#xd1;" horiz-adv-x="1479" d="M1082 0l-754 1200l5 -97l5 -167v-936h-170v1409h222l762 -1208q-12 196 -12 284v924h172v-1409h-230zM909 1530q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5 q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
157
+ <glyph unicode="&#xd2;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM854 1530l-310 217v29h207l217 -226v-20h-114z" />
158
+ <glyph unicode="&#xd3;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM621 1530v20l217 226h207v-29l-310 -217h-114z" />
159
+ <glyph unicode="&#xd4;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM1131 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
160
+ <glyph unicode="&#xd5;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM941 1530q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
161
+ <glyph unicode="&#xd6;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-217 0 -374.5 88t-240.5 254.5t-83 388.5q0 338 185 528.5t515 190.5q215 0 373 -85.5t241.5 -248.5t83.5 -385zM1300 711q0 263 -131.5 413t-371.5 150q-242 0 -374 -148t-132 -415q0 -265 133.5 -420.5t370.5 -155.5 q244 0 374.5 150.5t130.5 425.5zM910 1530v184h163v-184h-163zM516 1530v184h165v-184h-165z" />
162
+ <glyph unicode="&#xd7;" horiz-adv-x="1196" d="M142 330l354 354l-352 352l104 103l350 -353l350 351l105 -105l-350 -348l352 -352l-102 -105l-353 353l-356 -355z" />
163
+ <glyph unicode="&#xd8;" horiz-adv-x="1593" d="M1495 711q0 -221 -84.5 -387t-242.5 -255t-373 -89q-246 0 -414 112l-120 -145h-190l200 241q-174 192 -174 523q0 338 185 528.5t515 190.5q247 0 414 -110l121 146h192l-201 -242q172 -190 172 -513zM1300 711q0 224 -98 368l-709 -853q122 -91 302 -91 q244 0 374.5 150.5t130.5 425.5zM291 711q0 -229 101 -378l707 853q-124 88 -302 88q-242 0 -374 -148t-132 -415z" />
164
+ <glyph unicode="&#xd9;" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5zM813 1530l-310 217v29h207l217 -226v-20h-114z" />
165
+ <glyph unicode="&#xda;" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5zM565 1530v20l217 226h207v-29l-310 -217h-114z" />
166
+ <glyph unicode="&#xdb;" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5zM1070 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
167
+ <glyph unicode="&#xdc;" horiz-adv-x="1479" d="M731 -20q-173 0 -302 63t-200 183t-71 286v897h191v-881q0 -193 98 -293t283 -100q190 0 295.5 103.5t105.5 302.5v868h190v-879q0 -171 -72.5 -295t-205 -189.5t-312.5 -65.5zM853 1530v184h163v-184h-163zM459 1530v184h165v-184h-165z" />
168
+ <glyph unicode="&#xdd;" horiz-adv-x="1366" d="M777 584v-584h-190v584l-542 825h210l429 -671l427 671h210zM536 1530v20l217 226h207v-29l-310 -217h-114z" />
169
+ <glyph unicode="&#xde;" horiz-adv-x="1366" d="M1258 735q0 -128 -58 -227.5t-167.5 -155t-259.5 -55.5h-414v-297h-191v1409h191v-252h402q239 0 368 -111t129 -311zM1066 731q0 134 -82 208.5t-246 74.5h-379v-576h387q153 0 236.5 77.5t83.5 215.5z" />
170
+ <glyph unicode="&#xdf;" horiz-adv-x="1251" d="M1167 295q0 -150 -94 -232.5t-264 -82.5q-171 0 -283 49l-2 164q52 -29 132 -49t149 -20q92 0 141 43t49 122q0 64 -42.5 115t-139.5 109q-92 54 -137.5 120t-45.5 152q0 61 28.5 111t82.5 95q58 48 84.5 90t26.5 92q0 77 -67 123.5t-176 46.5q-148 0 -217.5 -80 t-69.5 -242v-1021h-180v1027q0 227 117.5 342t349.5 115q190 0 302.5 -80.5t112.5 -216.5q0 -143 -113 -246q-79 -72 -96 -96.5t-17 -53.5q0 -38 27.5 -67.5t68.5 -58t89 -60.5q184 -124 184 -310z" />
171
+ <glyph unicode="&#xe0;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM624 1201l-330 278v29h207l217 -287v-20h-94z" />
172
+ <glyph unicode="&#xe1;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM412 1201v20l217 287h207v-29l-330 -278h-94z" />
173
+ <glyph unicode="&#xe2;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM880 1221v-20h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
174
+ <glyph unicode="&#xe3;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM737 1201q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91 q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
175
+ <glyph unicode="&#xe4;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM674 1219v184h163v-184h-163zM280 1219v184h165v-184h-165z" />
176
+ <glyph unicode="&#xe5;" d="M414 -20q-163 0 -245 86t-82 236q0 168 110.5 258t356.5 96l243 4v59q0 132 -56 189t-176 57q-121 0 -176 -41t-66 -131l-188 17q46 292 434 292q204 0 307 -93.5t103 -270.5v-466q0 -80 21 -120.5t80 -40.5q26 0 59 7v-112q-68 -16 -139 -16q-100 0 -145.5 52.5 t-51.5 164.5h-6q-69 -124 -160.5 -175.5t-222.5 -51.5zM455 115q99 0 176 45t121.5 123.5t44.5 161.5v89l-197 -4q-127 -2 -192.5 -26t-100.5 -74t-35 -131q0 -88 47.5 -136t135.5 -48zM799 1410q0 -100 -71 -171t-171 -71t-171 71t-71 171q0 101 71 171t171 70 q99 0 170.5 -70.5t71.5 -170.5zM691 1410q0 56 -39 95t-95 39q-57 0 -96 -39t-39 -95q0 -55 38 -96t97 -41q58 0 96 40.5t38 96.5z" />
177
+ <glyph unicode="&#xe6;" horiz-adv-x="1821" d="M968 503v-17q2 -181 77 -276t215 -95q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-321 0 -423 257q-79 -140 -184 -198.5t-251 -58.5q-167 0 -251.5 86t-84.5 236q0 174 119 262t361 92l240 4v59q0 135 -55.5 190.5t-176.5 55.5q-126 0 -182.5 -40t-69.5 -132 l-188 17q46 292 444 292q250 0 349 -139q118 139 346 139q477 0 477 -575v-24h-762zM786 534l-195 -4q-133 -3 -203.5 -29.5t-103.5 -77t-33 -124.5q0 -87 50 -135.5t143 -48.5q102 0 178.5 44.5t120 122t43.5 163.5v89zM1544 641q-15 171 -87 249.5t-207 78.5 q-127 0 -200.5 -85.5t-79.5 -242.5h574z" />
178
+ <glyph unicode="&#xe7;" horiz-adv-x="1024" d="M275 546q0 -216 68 -320t205 -104q96 0 160.5 52t79.5 160l182 -12q-21 -156 -133 -249t-284 -93q-227 0 -346.5 143.5t-119.5 418.5q0 273 120 416.5t344 143.5q166 0 275.5 -86t137.5 -237l-185 -14q-14 90 -71 143t-162 53q-143 0 -207 -95t-64 -320zM751 -253 q0 -181 -274 -181q-57 0 -90 4v98q49 -6 86 -6q147 0 147 81q0 77 -133 77q-43 0 -57 -2l65 182h107l-39 -100q94 -3 141 -43.5t47 -109.5z" />
179
+ <glyph unicode="&#xe8;" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584zM657 1201 l-330 278v29h207l217 -287v-20h-94z" />
180
+ <glyph unicode="&#xe9;" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584zM440 1201v20 l217 287h207v-29l-330 -278h-94z" />
181
+ <glyph unicode="&#xea;" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584zM907 1221v-20 h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
182
+ <glyph unicode="&#xeb;" d="M276 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-240 0 -365.5 143t-125.5 425q0 268 125.5 411t358.5 143q477 0 477 -575v-24h-772zM862 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584zM687 1219v184 h163v-184h-163zM293 1219v184h165v-184h-165z" />
183
+ <glyph unicode="&#xec;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180zM340 1201l-330 278v29h207l217 -287v-20h-94z" />
184
+ <glyph unicode="&#xed;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180zM135 1201v20l217 287h207v-29l-330 -278h-94z" />
185
+ <glyph unicode="&#xee;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180zM617 1221v-20h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
186
+ <glyph unicode="&#xef;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180zM402 1219v184h163v-184h-163zM8 1219v184h165v-184h-165z" />
187
+ <glyph unicode="&#xf0;" d="M566 -20q-232 0 -356 129t-124 372q0 244 124 371t363 127q137 0 231 -59q-109 217 -234 331l-301 -133v114l218 94q-109 87 -242 158h209q80 -36 170 -102l306 132l-1 -112l-211 -92q171 -156 258 -359t87 -435v-6q0 -261 -124.5 -395.5t-372.5 -134.5zM874 481 q0 192 -70.5 278.5t-226.5 86.5q-157 0 -229.5 -87t-72.5 -278q0 -190 72 -279t217 -89q161 0 235.5 87.5t74.5 280.5z" />
188
+ <glyph unicode="&#xf1;" d="M829 0v686q0 107 -21 166t-67 85t-135 26q-130 0 -205 -89t-75 -247v-627h-180v851q0 189 -6 231h170q1 -5 2 -27t2.5 -50.5t3.5 -107.5h3q62 112 143.5 158.5t202.5 46.5q178 0 260.5 -88.5t82.5 -292.5v-721h-181zM737 1201q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5 q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
189
+ <glyph unicode="&#xf2;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM659 1201 l-330 278v29h207l217 -287v-20h-94z" />
190
+ <glyph unicode="&#xf3;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM431 1201v20 l217 287h207v-29l-330 -278h-94z" />
191
+ <glyph unicode="&#xf4;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM902 1221 v-20h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
192
+ <glyph unicode="&#xf5;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM739 1201 q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
193
+ <glyph unicode="&#xf6;" d="M1053 542q0 -284 -125 -423t-363 -139q-237 0 -358 144.5t-121 417.5q0 560 485 560q248 0 365 -136.5t117 -423.5zM864 542q0 224 -66.5 325.5t-223.5 101.5q-158 0 -228.5 -103.5t-70.5 -323.5q0 -214 69.5 -321.5t218.5 -107.5q162 0 231.5 104t69.5 325zM689 1219 v184h163v-184h-163zM295 1219v184h165v-184h-165z" />
194
+ <glyph unicode="&#xf7;" horiz-adv-x="1124" d="M478 958v183h168v-183h-168zM65 608v146h995v-146h-995zM478 223v183h168v-183h-168z" />
195
+ <glyph unicode="&#xf8;" horiz-adv-x="1251" d="M1112 542q0 -284 -125 -423t-363 -139q-195 0 -313 98l-100 -116h-167l184 214q-83 138 -83 366q0 560 485 560q201 0 316 -91l91 105h167l-173 -201q81 -133 81 -373zM923 542q0 129 -23 221l-483 -562q68 -88 205 -88q162 0 231.5 104t69.5 325zM334 542 q0 -130 24 -215l482 561q-67 81 -207 81q-158 0 -228.5 -103.5t-70.5 -323.5z" />
196
+ <glyph unicode="&#xf9;" d="M320 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181zM672 1201l-330 278v29h207l217 -287v-20h-94z " />
197
+ <glyph unicode="&#xfa;" d="M320 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181zM415 1201v20l217 287h207v-29l-330 -278h-94z " />
198
+ <glyph unicode="&#xfb;" d="M320 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181zM901 1221v-20h-105l-219 169h-2l-232 -169 h-104v20l234 270h204z" />
199
+ <glyph unicode="&#xfc;" d="M320 1082v-686q0 -107 21 -166t67 -85t135 -26q130 0 205 89t75 247v627h180v-851q0 -189 6 -231h-170q-1 5 -2 27t-2.5 50.5t-3.5 107.5h-3q-62 -112 -143.5 -158.5t-202.5 -46.5q-178 0 -260.5 88.5t-82.5 292.5v721h181zM676 1219v184h163v-184h-163zM282 1219v184 h165v-184h-165z" />
200
+ <glyph unicode="&#xfd;" horiz-adv-x="1024" d="M191 -425q-74 0 -124 11v135q38 -6 84 -6q168 0 266 247l17 43l-429 1077h192l228 -598q5 -14 12 -33.5t45 -130.5t41 -124l70 197l237 689h190l-416 -1082q-67 -173 -125 -257.5t-128.5 -126t-159.5 -41.5zM355 1201v20l217 287h207v-29l-330 -278h-94z" />
201
+ <glyph unicode="&#xfe;" d="M138 1484h180v-423q0 -65 -4 -153h6q48 100 127 146.5t208 46.5q200 0 299 -134t99 -421q0 -566 -398 -566q-250 0 -336 188h-5q4 -8 4 -170v-423h-180v1909zM864 542q0 226 -61 323t-194 97q-107 0 -167.5 -45t-92 -140.5t-31.5 -248.5q0 -213 68 -314t221 -101 q134 0 195.5 98.5t61.5 330.5z" />
202
+ <glyph unicode="&#xff;" horiz-adv-x="1024" d="M191 -425q-74 0 -124 11v135q38 -6 84 -6q168 0 266 247l17 43l-429 1077h192l228 -598q5 -14 12 -33.5t45 -130.5t41 -124l70 197l237 689h190l-416 -1082q-67 -173 -125 -257.5t-128.5 -126t-159.5 -41.5zM626 1219v184h163v-184h-163zM232 1219v184h165v-184h-165z " />
203
+ <glyph unicode="&#x131;" horiz-adv-x="569" d="M194 0v1082h180v-1082h-180z" />
204
+ <glyph unicode="&#x152;" horiz-adv-x="2048" d="M999 0q-67 -10 -210 -10q-323 0 -507.5 193t-184.5 528q0 332 184 520.5t510 188.5q107 0 212 -11h914v-156h-803v-452h743v-154h-743v-491h844v-156h-959zM789 145q82 0 134 4v1111q-44 4 -80.5 4h-51.5q-245 0 -372.5 -143t-127.5 -410q0 -268 131.5 -417t366.5 -149z " />
205
+ <glyph unicode="&#x153;" horiz-adv-x="1933" d="M1070 503q0 -186 77 -287t225 -101q117 0 187.5 47t95.5 119l158 -45q-97 -256 -441 -256q-275 0 -396 183q-124 -183 -401 -183q-238 0 -363.5 144.5t-125.5 417.5q0 279 126.5 419.5t368.5 140.5q281 0 398 -177q126 177 386 177q477 0 477 -575v-24h-772zM881 542 q0 219 -69 323t-228 104q-162 0 -235.5 -106.5t-73.5 -320.5q0 -429 298 -429q164 0 236 104t72 325zM1656 641q-15 171 -87 249.5t-207 78.5q-131 0 -207.5 -87.5t-82.5 -240.5h584z" />
206
+ <glyph unicode="&#x178;" horiz-adv-x="1366" d="M777 584v-584h-190v584l-542 825h210l429 -671l427 671h210zM799 1530v184h163v-184h-163zM405 1530v184h165v-184h-165z" />
207
+ <glyph unicode="&#x2c6;" horiz-adv-x="682" d="M662 1221v-20h-105l-219 169h-2l-232 -169h-104v20l234 270h204z" />
208
+ <glyph unicode="&#x2da;" horiz-adv-x="682" d="M535 1410q0 -100 -71 -171t-171 -71t-171 71t-71 171q0 101 71 171t171 70q99 0 170.5 -70.5t71.5 -170.5zM427 1410q0 56 -39 95t-95 39q-57 0 -96 -39t-39 -95q0 -55 38 -96t97 -41q58 0 96 40.5t38 96.5z" />
209
+ <glyph unicode="&#x2dc;" horiz-adv-x="682" d="M492 1201q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
210
+ <glyph unicode="&#x2000;" horiz-adv-x="899" />
211
+ <glyph unicode="&#x2001;" horiz-adv-x="1798" />
212
+ <glyph unicode="&#x2002;" horiz-adv-x="899" />
213
+ <glyph unicode="&#x2003;" horiz-adv-x="1798" />
214
+ <glyph unicode="&#x2004;" horiz-adv-x="599" />
215
+ <glyph unicode="&#x2005;" horiz-adv-x="449" />
216
+ <glyph unicode="&#x2006;" horiz-adv-x="299" />
217
+ <glyph unicode="&#x2007;" horiz-adv-x="299" />
218
+ <glyph unicode="&#x2008;" horiz-adv-x="224" />
219
+ <glyph unicode="&#x2009;" horiz-adv-x="359" />
220
+ <glyph unicode="&#x200a;" horiz-adv-x="99" />
221
+ <glyph unicode="&#x2010;" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
222
+ <glyph unicode="&#x2011;" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
223
+ <glyph unicode="&#x2012;" horiz-adv-x="682" d="M91 464v160h500v-160h-500z" />
224
+ <glyph unicode="&#x2013;" d="M0 451v137h1138v-137h-1138z" />
225
+ <glyph unicode="&#x2014;" horiz-adv-x="2048" d="M0 451v137h2048v-137h-2048z" />
226
+ <glyph unicode="&#x2018;" horiz-adv-x="455" d="M127 952v146q0 97 18.5 170.5t61.5 140.5h121q-95 -137 -95 -262h89v-195h-195z" />
227
+ <glyph unicode="&#x2019;" horiz-adv-x="455" d="M328 1264q0 -105 -19 -176.5t-59 -135.5h-123q94 136 94 260h-88v197h195v-145z" />
228
+ <glyph unicode="&#x201a;" horiz-adv-x="455" d="M328 51q0 -106 -19 -177t-59 -136h-123q94 136 94 262h-88v195h195v-144z" />
229
+ <glyph unicode="&#x201c;" horiz-adv-x="682" d="M407 952v146q0 95 18 169.5t60 141.5h122q-94 -136 -94 -262h88v-195h-194zM75 952v146q0 97 18.5 170.5t61.5 140.5h121q-95 -137 -95 -262h89v-195h-195z" />
230
+ <glyph unicode="&#x201d;" horiz-adv-x="682" d="M607 1264q0 -93 -17 -166t-62 -146h-121q94 136 94 262h-88v195h194v-145zM276 1264q0 -105 -19 -176.5t-59 -135.5h-123q94 136 94 262h-88v195h195v-145z" />
231
+ <glyph unicode="&#x201e;" horiz-adv-x="682" d="M607 51q0 -95 -17.5 -168.5t-61.5 -144.5h-121q94 136 94 262h-88v195h194v-144zM276 51q0 -106 -19 -177t-59 -136h-123q94 136 94 262h-88v195h195v-144z" />
232
+ <glyph unicode="&#x2022;" horiz-adv-x="717" d="M636 682q0 -113 -81.5 -197t-199.5 -84q-113 0 -193.5 83t-80.5 198t81 194.5t193 79.5q116 0 198.5 -80.5t82.5 -193.5z" />
233
+ <glyph unicode="&#x2026;" horiz-adv-x="2048" d="M1576 0v219h194v-219h-194zM929 0v219h192v-219h-192zM278 0v219h195v-219h-195z" />
234
+ <glyph unicode="&#x202f;" horiz-adv-x="359" />
235
+ <glyph unicode="&#x2039;" horiz-adv-x="682" d="M424 141l-336 365v63l336 371h167v-31l-335 -372l337 -367v-29h-169z" />
236
+ <glyph unicode="&#x203a;" horiz-adv-x="682" d="M257 141h-168v29l338 367l-336 372v31h166l337 -371v-63z" />
237
+ <glyph unicode="&#x2044;" horiz-adv-x="342" d="M-268 0h-148l881 1409h145z" />
238
+ <glyph unicode="&#x205f;" horiz-adv-x="449" />
239
+ <glyph unicode="&#x2074;" horiz-adv-x="682" d="M551 741v-178h-131v178h-406v111l386 557h151v-555h111v-113h-111zM422 1276q-21 -40 -82 -135l-199 -287h279v360z" />
240
+ <glyph unicode="&#x20ac;" d="M691 126q100 0 160 50t74 141l185 -14q-30 -155 -139.5 -239t-283.5 -84q-217 0 -343.5 131t-156.5 391h-171l40 129h120l-3 78l3 86h-160l40 127h129q32 257 156 382.5t343 125.5q175 0 284.5 -84.5t138.5 -238.5l-185 -14q-14 91 -74.5 141t-166.5 50 q-142 0 -217.5 -87t-96.5 -275h446l-40 -127h-413q-3 -24 -3 -86q0 -40 4 -78h452l-40 -129h-404q22 -195 103 -285.5t219 -90.5z" />
241
+ <glyph unicode="&#x2122;" horiz-adv-x="2048" d="M1691 634v619l-9 -22l-11 -32l-230 -565h-108l-163 413l-77 206l-1 -20l-1 -17v-582h-128v775h190l223 -563l15 -42l74 192l168 413h184v-775h-126zM577 1298v-664h-134v664h-255v111h650v-111h-261z" />
242
+ <glyph unicode="&#x2219;" horiz-adv-x="569" d="M187 446v220h195v-220h-195z" />
243
+ <glyph unicode="&#x25fc;" horiz-adv-x="1080" d="M0 1080h1080v-1080h-1080v1080z" />
244
+ <glyph unicode="&#xfb01;" horiz-adv-x="1024" d="M361 951v-951h-180v951h-152v131h152v122q0 148 65 213t199 65q75 0 127 -12v-137q-45 8 -80 8q-69 0 -100 -35t-31 -127v-97h211v-131h-211zM706 1312v172h180v-172h-180zM706 0v1082h180v-1082h-180z" />
245
+ <glyph unicode="&#xfb02;" horiz-adv-x="1024" d="M361 951v-951h-180v951h-152v131h152v122q0 148 65 213t199 65q75 0 127 -12v-137q-45 8 -80 8q-69 0 -100 -35t-31 -127v-97h211v-131h-211zM707 0v1484h180v-1484h-180z" />
246
+ <glyph horiz-adv-x="602" d="M416 1530l-310 217v29h207l217 -226v-20h-114z" />
247
+ <glyph horiz-adv-x="602" d="M72 1530v20l217 226h207v-29l-310 -217h-114z" />
248
+ <glyph horiz-adv-x="664" d="M662 1550v-20h-105l-219 139h-2l-232 -139h-104v20l234 240h204z" />
249
+ <glyph horiz-adv-x="647" d="M439 1530v184h163v-184h-163zM45 1530v184h165v-184h-165z" />
250
+ <glyph horiz-adv-x="672" d="M492 1530q-42 0 -84 18.5t-81 41t-74.5 41t-66.5 18.5q-55 0 -82 -31t-36 -88h-91q11 102 35 154.5t64.5 83t103.5 30.5q44 0 86 -18.5t81 -41t73.5 -41t64.5 -18.5q100 0 117 119h92q-17 -148 -67 -208t-135 -60z" />
251
+ <hkern u1="&#x20;" u2="Y" k="37" />
252
+ <hkern u1="&#x20;" u2="T" k="37" />
253
+ <hkern u1="&#x20;" u2="A" k="113" />
254
+ <hkern u1="&#x31;" u2="&#x31;" k="152" />
255
+ <hkern u1="A" u2="&#x2019;" k="152" />
256
+ <hkern u1="A" u2="y" k="37" />
257
+ <hkern u1="A" u2="w" k="37" />
258
+ <hkern u1="A" u2="v" k="37" />
259
+ <hkern u1="A" u2="Y" k="152" />
260
+ <hkern u1="A" u2="W" k="76" />
261
+ <hkern u1="A" u2="V" k="152" />
262
+ <hkern u1="A" u2="T" k="152" />
263
+ <hkern u1="A" u2="&#x20;" k="113" />
264
+ <hkern u1="F" u2="A" k="113" />
265
+ <hkern u1="F" u2="&#x2e;" k="227" />
266
+ <hkern u1="F" u2="&#x2c;" k="227" />
267
+ <hkern u1="L" u2="&#x2019;" k="113" />
268
+ <hkern u1="L" u2="y" k="76" />
269
+ <hkern u1="L" u2="Y" k="152" />
270
+ <hkern u1="L" u2="W" k="152" />
271
+ <hkern u1="L" u2="V" k="152" />
272
+ <hkern u1="L" u2="T" k="152" />
273
+ <hkern u1="L" u2="&#x20;" k="76" />
274
+ <hkern u1="P" u2="A" k="152" />
275
+ <hkern u1="P" u2="&#x2e;" k="264" />
276
+ <hkern u1="P" u2="&#x2c;" k="264" />
277
+ <hkern u1="P" u2="&#x20;" k="37" />
278
+ <hkern u1="R" u2="Y" k="37" />
279
+ <hkern u1="R" u2="W" k="37" />
280
+ <hkern u1="R" u2="V" k="37" />
281
+ <hkern u1="R" u2="T" k="37" />
282
+ <hkern u1="T" u2="y" k="113" />
283
+ <hkern u1="T" u2="w" k="113" />
284
+ <hkern u1="T" u2="u" k="76" />
285
+ <hkern u1="T" u2="s" k="227" />
286
+ <hkern u1="T" u2="r" k="76" />
287
+ <hkern u1="T" u2="o" k="227" />
288
+ <hkern u1="T" u2="i" k="76" />
289
+ <hkern u1="T" u2="e" k="227" />
290
+ <hkern u1="T" u2="c" k="227" />
291
+ <hkern u1="T" u2="a" k="227" />
292
+ <hkern u1="T" u2="O" k="37" />
293
+ <hkern u1="T" u2="A" k="152" />
294
+ <hkern u1="T" u2="&#x3b;" k="227" />
295
+ <hkern u1="T" u2="&#x3a;" k="227" />
296
+ <hkern u1="T" u2="&#x2e;" k="227" />
297
+ <hkern u1="T" u2="&#x2d;" k="113" />
298
+ <hkern u1="T" u2="&#x2c;" k="227" />
299
+ <hkern u1="T" u2="&#x20;" k="37" />
300
+ <hkern u1="V" u2="y" k="76" />
301
+ <hkern u1="V" u2="u" k="76" />
302
+ <hkern u1="V" u2="r" k="76" />
303
+ <hkern u1="V" u2="o" k="113" />
304
+ <hkern u1="V" u2="i" k="37" />
305
+ <hkern u1="V" u2="e" k="113" />
306
+ <hkern u1="V" u2="a" k="152" />
307
+ <hkern u1="V" u2="A" k="152" />
308
+ <hkern u1="V" u2="&#x3b;" k="76" />
309
+ <hkern u1="V" u2="&#x3a;" k="76" />
310
+ <hkern u1="V" u2="&#x2e;" k="188" />
311
+ <hkern u1="V" u2="&#x2d;" k="113" />
312
+ <hkern u1="V" u2="&#x2c;" k="188" />
313
+ <hkern u1="W" u2="y" k="18" />
314
+ <hkern u1="W" u2="u" k="37" />
315
+ <hkern u1="W" u2="r" k="37" />
316
+ <hkern u1="W" u2="o" k="37" />
317
+ <hkern u1="W" u2="e" k="37" />
318
+ <hkern u1="W" u2="a" k="76" />
319
+ <hkern u1="W" u2="A" k="76" />
320
+ <hkern u1="W" u2="&#x3b;" k="37" />
321
+ <hkern u1="W" u2="&#x3a;" k="37" />
322
+ <hkern u1="W" u2="&#x2e;" k="113" />
323
+ <hkern u1="W" u2="&#x2d;" k="37" />
324
+ <hkern u1="W" u2="&#x2c;" k="113" />
325
+ <hkern u1="Y" u2="v" k="113" />
326
+ <hkern u1="Y" u2="u" k="113" />
327
+ <hkern u1="Y" u2="q" k="188" />
328
+ <hkern u1="Y" u2="p" k="152" />
329
+ <hkern u1="Y" u2="o" k="188" />
330
+ <hkern u1="Y" u2="i" k="76" />
331
+ <hkern u1="Y" u2="e" k="188" />
332
+ <hkern u1="Y" u2="a" k="152" />
333
+ <hkern u1="Y" u2="A" k="152" />
334
+ <hkern u1="Y" u2="&#x3b;" k="133" />
335
+ <hkern u1="Y" u2="&#x3a;" k="113" />
336
+ <hkern u1="Y" u2="&#x2e;" k="264" />
337
+ <hkern u1="Y" u2="&#x2d;" k="188" />
338
+ <hkern u1="Y" u2="&#x2c;" k="264" />
339
+ <hkern u1="Y" u2="&#x20;" k="37" />
340
+ <hkern u1="f" u2="&#x2019;" k="-37" />
341
+ <hkern u1="f" u2="f" k="37" />
342
+ <hkern u1="r" u2="&#x2019;" k="-76" />
343
+ <hkern u1="r" u2="&#x2e;" k="113" />
344
+ <hkern u1="r" u2="&#x2c;" k="113" />
345
+ <hkern u1="v" u2="&#x2e;" k="152" />
346
+ <hkern u1="v" u2="&#x2c;" k="152" />
347
+ <hkern u1="w" u2="&#x2e;" k="113" />
348
+ <hkern u1="w" u2="&#x2c;" k="113" />
349
+ <hkern u1="y" u2="&#x2e;" k="152" />
350
+ <hkern u1="y" u2="&#x2c;" k="152" />
351
+ <hkern u1="&#x2018;" u2="&#x2018;" k="37" />
352
+ <hkern u1="&#x2019;" u2="&#x2019;" k="37" />
353
+ <hkern u1="&#x2019;" u2="s" k="37" />
354
+ <hkern u1="&#x2019;" u2="&#x20;" k="76" />
355
+ </font>
356
+ </defs></svg>
metadata CHANGED
@@ -1,26 +1,137 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qr-bills
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damiano Radice
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-24 00:00:00.000000000 Z
12
- dependencies: []
13
- description: ''
14
- email: damoiser@gmail.com
11
+ date: 2020-07-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: i18n
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.8.3
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 1.8.3
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rqrcode
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.1.2
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '2'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.1.2
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '2'
53
+ - !ruby/object:Gem::Dependency
54
+ name: rmagick
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 4.1.2
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '5'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 4.1.2
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '5'
73
+ - !ruby/object:Gem::Dependency
74
+ name: rspec
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '3.9'
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '3.9'
87
+ - !ruby/object:Gem::Dependency
88
+ name: rake
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '13.0'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '13.0'
101
+ description: 'QR-bills support for swiss payments, for full documentation please refer
102
+ to github repo: https://github.com/damoiser/qr-bills'
103
+ email: damoiser+qrbill@gmail.com
15
104
  executables: []
16
105
  extensions: []
17
106
  extra_rdoc_files: []
18
107
  files:
108
+ - config/locales/de.yml
109
+ - config/locales/en.yml
110
+ - config/locales/fr.yml
111
+ - config/locales/it.yml
19
112
  - lib/qr-bills.rb
20
- homepage: https://rubygems.org/gems/qr-bills
113
+ - lib/qr-bills/qr-exceptions.rb
114
+ - lib/qr-bills/qr-generator.rb
115
+ - lib/qr-bills/qr-html-layout.rb
116
+ - lib/qr-bills/qr-params.rb
117
+ - web/assets/fonts/LiberationSans-Regular.eot
118
+ - web/assets/fonts/LiberationSans-Regular.svg
119
+ - web/assets/fonts/LiberationSans-Regular.ttf
120
+ - web/assets/fonts/LiberationSans-Regular.woff
121
+ - web/assets/images/amoint_40x15mm.png
122
+ - web/assets/images/payable_by_65x25mm.png
123
+ - web/assets/images/scissors_symbol.png
124
+ - web/assets/images/swiss_cross.png
125
+ homepage: https://github.com/damoiser/qr-bills
21
126
  licenses:
22
127
  - MIT
23
- metadata: {}
128
+ metadata:
129
+ bug_tracker_uri: https://github.com/damoiser/qr-bills/issues
130
+ changelog_uri: https://github.com/damoiser/qr-bills/CHANGELOG.md
131
+ documentation_uri: https://github.com/damoiser/qr-bills/README.md
132
+ homepage_uri: https://github.com/damoiser/qr-bills
133
+ source_code_uri: https://github.com/damoiser/qr-bills
134
+ wiki_uri: https://github.com/damoiser/qr-bills
24
135
  post_install_message:
25
136
  rdoc_options: []
26
137
  require_paths:
@@ -29,15 +140,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
29
140
  requirements:
30
141
  - - ">="
31
142
  - !ruby/object:Gem::Version
32
- version: '0'
143
+ version: 2.7.1
33
144
  required_rubygems_version: !ruby/object:Gem::Requirement
34
145
  requirements:
35
146
  - - ">="
36
147
  - !ruby/object:Gem::Version
37
148
  version: '0'
38
149
  requirements: []
39
- rubyforge_project:
40
- rubygems_version: 2.4.5
150
+ rubygems_version: 3.1.2
41
151
  signing_key:
42
152
  specification_version: 4
43
153
  summary: QR-bills support for swiss payments