PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.8.2
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.8.2
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / vendor / tecnickcom / tcpdf / include / barcodes / pdf417.php
matomo / app / vendor / tecnickcom / tcpdf / include / barcodes Last commit date
datamatrix.php 2 years ago pdf417.php 2 years ago qrcode.php 2 years ago
pdf417.php
4833 lines
1 <?php
2
3 namespace {
4 //============================================================+
5 // File name : pdf417.php
6 // Version : 1.0.005
7 // Begin : 2010-06-03
8 // Last Update : 2014-04-25
9 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
10 // License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
11 // -------------------------------------------------------------------
12 // Copyright (C) 2010-2013 Nicola Asuni - Tecnick.com LTD
13 //
14 // This file is part of TCPDF software library.
15 //
16 // TCPDF is free software: you can redistribute it and/or modify it
17 // under the terms of the GNU Lesser General Public License as
18 // published by the Free Software Foundation, either version 3 of the
19 // License, or (at your option) any later version.
20 //
21 // TCPDF is distributed in the hope that it will be useful, but
22 // WITHOUT ANY WARRANTY; without even the implied warranty of
23 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24 // See the GNU Lesser General Public License for more details.
25 //
26 // You should have received a copy of the GNU Lesser General Public License
27 // along with TCPDF. If not, see <http://www.gnu.org/licenses/>.
28 //
29 // See LICENSE.TXT file for more information.
30 // -------------------------------------------------------------------
31 //
32 // DESCRIPTION :
33 //
34 // Class to create PDF417 barcode arrays for TCPDF class.
35 // PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991.
36 // It is one of the most popular 2D codes because of its ability to be read with slightly modified handheld laser or linear CCD scanners.
37 // TECHNICAL DATA / FEATURES OF PDF417:
38 // Encodable Character Set: All 128 ASCII Characters (including extended)
39 // Code Type: Continuous, Multi-Row
40 // Symbol Height: 3 - 90 Rows
41 // Symbol Width: 90X - 583X
42 // Bidirectional Decoding: Yes
43 // Error Correction Characters: 2 - 512
44 // Maximum Data Characters: 1850 text, 2710 digits, 1108 bytes
45 //
46 //============================================================+
47 /**
48 * @file
49 * Class to create PDF417 barcode arrays for TCPDF class.
50 * PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991.
51 * (requires PHP bcmath extension)
52 * @package com.tecnick.tcpdf
53 * @author Nicola Asuni
54 * @version 1.0.005
55 */
56 // definitions
57 if (!\defined('PDF417DEFS')) {
58 /**
59 * Indicate that definitions for this class are set
60 */
61 \define('PDF417DEFS', \true);
62 // -----------------------------------------------------
63 /**
64 * Row height respect X dimension of single module
65 */
66 \define('ROWHEIGHT', 4);
67 /**
68 * Horizontal quiet zone in modules
69 */
70 \define('QUIETH', 2);
71 /**
72 * Vertical quiet zone in modules
73 */
74 \define('QUIETV', 2);
75 }
76 // end of definitions
77 // #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
78 /**
79 * @class PDF417
80 * Class to create PDF417 barcode arrays for TCPDF class.
81 * PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991.
82 * @package com.tecnick.tcpdf
83 * @author Nicola Asuni
84 * @version 1.0.003
85 */
86 class PDF417
87 {
88 /**
89 * Barcode array to be returned which is readable by TCPDF.
90 * @protected
91 */
92 protected $barcode_array = array();
93 /**
94 * Start pattern.
95 * @protected
96 */
97 protected $start_pattern = '11111111010101000';
98 /**
99 * Stop pattern.
100 * @protected
101 */
102 protected $stop_pattern = '111111101000101001';
103 /**
104 * Array of text Compaction Sub-Modes (values 0xFB - 0xFF are used for submode changers).
105 * @protected
106 */
107 protected $textsubmodes = array(
108 array(0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x20, 0xfd, 0xfe, 0xff),
109 // Alpha
110 array(0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0xfd, 0xfe, 0xff),
111 // Lower
112 array(0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x26, 0xd, 0x9, 0x2c, 0x3a, 0x23, 0x2d, 0x2e, 0x24, 0x2f, 0x2b, 0x25, 0x2a, 0x3d, 0x5e, 0xfb, 0x20, 0xfd, 0xfe, 0xff),
113 // Mixed
114 array(0x3b, 0x3c, 0x3e, 0x40, 0x5b, 0x5c, 0x5d, 0x5f, 0x60, 0x7e, 0x21, 0xd, 0x9, 0x2c, 0x3a, 0xa, 0x2d, 0x2e, 0x24, 0x2f, 0x22, 0x7c, 0x2a, 0x28, 0x29, 0x3f, 0x7b, 0x7d, 0x27, 0xff),
115 );
116 /**
117 * Array of switching codes for Text Compaction Sub-Modes.
118 * @protected
119 */
120 protected $textlatch = array(
121 '01' => array(27),
122 '02' => array(28),
123 '03' => array(28, 25),
124 //
125 '10' => array(28, 28),
126 '12' => array(28),
127 '13' => array(28, 25),
128 //
129 '20' => array(28),
130 '21' => array(27),
131 '23' => array(25),
132 //
133 '30' => array(29),
134 '31' => array(29, 27),
135 '32' => array(29, 28),
136 );
137 /**
138 * Clusters of codewords (0, 3, 6)<br/>
139 * Values are hex equivalents of binary representation of bars (1 = bar, 0 = space).<br/>
140 * The codewords numbered from 900 to 928 have special meaning, some enable to switch between modes in order to optimise the code:<ul>
141 * <li>900 : Switch to "Text" mode</li>
142 * <li>901 : Switch to "Byte" mode</li>
143 * <li>902 : Switch to "Numeric" mode</li>
144 * <li>903 - 912 : Reserved</li>
145 * <li>913 : Switch to "Octet" only for the next codeword</li>
146 * <li>914 - 920 : Reserved</li>
147 * <li>921 : Initialization</li>
148 * <li>922 : Terminator codeword for Macro PDF control block</li>
149 * <li>923 : Sequence tag to identify the beginning of optional fields in the Macro PDF control block</li>
150 * <li>924 : Switch to "Byte" mode (If the total number of byte is multiple of 6)</li>
151 * <li>925 : Identifier for a user defined Extended Channel Interpretation (ECI)</li>
152 * <li>926 : Identifier for a general purpose ECI format</li>
153 * <li>927 : Identifier for an ECI of a character set or code page</li>
154 * <li>928 : Macro marker codeword to indicate the beginning of a Macro PDF Control Block</li>
155 * </ul>
156 * @protected
157 */
158 protected $clusters = array(
159 array(
160 // cluster 0 -----------------------------------------------------------------------
161 0x1d5c0,
162 0x1eaf0,
163 0x1f57c,
164 0x1d4e0,
165 0x1ea78,
166 0x1f53e,
167 0x1a8c0,
168 0x1d470,
169 0x1a860,
170 0x15040,
171 // 10
172 0x1a830,
173 0x15020,
174 0x1adc0,
175 0x1d6f0,
176 0x1eb7c,
177 0x1ace0,
178 0x1d678,
179 0x1eb3e,
180 0x158c0,
181 0x1ac70,
182 // 20
183 0x15860,
184 0x15dc0,
185 0x1aef0,
186 0x1d77c,
187 0x15ce0,
188 0x1ae78,
189 0x1d73e,
190 0x15c70,
191 0x1ae3c,
192 0x15ef0,
193 // 30
194 0x1af7c,
195 0x15e78,
196 0x1af3e,
197 0x15f7c,
198 0x1f5fa,
199 0x1d2e0,
200 0x1e978,
201 0x1f4be,
202 0x1a4c0,
203 0x1d270,
204 // 40
205 0x1e93c,
206 0x1a460,
207 0x1d238,
208 0x14840,
209 0x1a430,
210 0x1d21c,
211 0x14820,
212 0x1a418,
213 0x14810,
214 0x1a6e0,
215 // 50
216 0x1d378,
217 0x1e9be,
218 0x14cc0,
219 0x1a670,
220 0x1d33c,
221 0x14c60,
222 0x1a638,
223 0x1d31e,
224 0x14c30,
225 0x1a61c,
226 // 60
227 0x14ee0,
228 0x1a778,
229 0x1d3be,
230 0x14e70,
231 0x1a73c,
232 0x14e38,
233 0x1a71e,
234 0x14f78,
235 0x1a7be,
236 0x14f3c,
237 // 70
238 0x14f1e,
239 0x1a2c0,
240 0x1d170,
241 0x1e8bc,
242 0x1a260,
243 0x1d138,
244 0x1e89e,
245 0x14440,
246 0x1a230,
247 0x1d11c,
248 // 80
249 0x14420,
250 0x1a218,
251 0x14410,
252 0x14408,
253 0x146c0,
254 0x1a370,
255 0x1d1bc,
256 0x14660,
257 0x1a338,
258 0x1d19e,
259 // 90
260 0x14630,
261 0x1a31c,
262 0x14618,
263 0x1460c,
264 0x14770,
265 0x1a3bc,
266 0x14738,
267 0x1a39e,
268 0x1471c,
269 0x147bc,
270 // 100
271 0x1a160,
272 0x1d0b8,
273 0x1e85e,
274 0x14240,
275 0x1a130,
276 0x1d09c,
277 0x14220,
278 0x1a118,
279 0x1d08e,
280 0x14210,
281 // 110
282 0x1a10c,
283 0x14208,
284 0x1a106,
285 0x14360,
286 0x1a1b8,
287 0x1d0de,
288 0x14330,
289 0x1a19c,
290 0x14318,
291 0x1a18e,
292 // 120
293 0x1430c,
294 0x14306,
295 0x1a1de,
296 0x1438e,
297 0x14140,
298 0x1a0b0,
299 0x1d05c,
300 0x14120,
301 0x1a098,
302 0x1d04e,
303 // 130
304 0x14110,
305 0x1a08c,
306 0x14108,
307 0x1a086,
308 0x14104,
309 0x141b0,
310 0x14198,
311 0x1418c,
312 0x140a0,
313 0x1d02e,
314 // 140
315 0x1a04c,
316 0x1a046,
317 0x14082,
318 0x1cae0,
319 0x1e578,
320 0x1f2be,
321 0x194c0,
322 0x1ca70,
323 0x1e53c,
324 0x19460,
325 // 150
326 0x1ca38,
327 0x1e51e,
328 0x12840,
329 0x19430,
330 0x12820,
331 0x196e0,
332 0x1cb78,
333 0x1e5be,
334 0x12cc0,
335 0x19670,
336 // 160
337 0x1cb3c,
338 0x12c60,
339 0x19638,
340 0x12c30,
341 0x12c18,
342 0x12ee0,
343 0x19778,
344 0x1cbbe,
345 0x12e70,
346 0x1973c,
347 // 170
348 0x12e38,
349 0x12e1c,
350 0x12f78,
351 0x197be,
352 0x12f3c,
353 0x12fbe,
354 0x1dac0,
355 0x1ed70,
356 0x1f6bc,
357 0x1da60,
358 // 180
359 0x1ed38,
360 0x1f69e,
361 0x1b440,
362 0x1da30,
363 0x1ed1c,
364 0x1b420,
365 0x1da18,
366 0x1ed0e,
367 0x1b410,
368 0x1da0c,
369 // 190
370 0x192c0,
371 0x1c970,
372 0x1e4bc,
373 0x1b6c0,
374 0x19260,
375 0x1c938,
376 0x1e49e,
377 0x1b660,
378 0x1db38,
379 0x1ed9e,
380 // 200
381 0x16c40,
382 0x12420,
383 0x19218,
384 0x1c90e,
385 0x16c20,
386 0x1b618,
387 0x16c10,
388 0x126c0,
389 0x19370,
390 0x1c9bc,
391 // 210
392 0x16ec0,
393 0x12660,
394 0x19338,
395 0x1c99e,
396 0x16e60,
397 0x1b738,
398 0x1db9e,
399 0x16e30,
400 0x12618,
401 0x16e18,
402 // 220
403 0x12770,
404 0x193bc,
405 0x16f70,
406 0x12738,
407 0x1939e,
408 0x16f38,
409 0x1b79e,
410 0x16f1c,
411 0x127bc,
412 0x16fbc,
413 // 230
414 0x1279e,
415 0x16f9e,
416 0x1d960,
417 0x1ecb8,
418 0x1f65e,
419 0x1b240,
420 0x1d930,
421 0x1ec9c,
422 0x1b220,
423 0x1d918,
424 // 240
425 0x1ec8e,
426 0x1b210,
427 0x1d90c,
428 0x1b208,
429 0x1b204,
430 0x19160,
431 0x1c8b8,
432 0x1e45e,
433 0x1b360,
434 0x19130,
435 // 250
436 0x1c89c,
437 0x16640,
438 0x12220,
439 0x1d99c,
440 0x1c88e,
441 0x16620,
442 0x12210,
443 0x1910c,
444 0x16610,
445 0x1b30c,
446 // 260
447 0x19106,
448 0x12204,
449 0x12360,
450 0x191b8,
451 0x1c8de,
452 0x16760,
453 0x12330,
454 0x1919c,
455 0x16730,
456 0x1b39c,
457 // 270
458 0x1918e,
459 0x16718,
460 0x1230c,
461 0x12306,
462 0x123b8,
463 0x191de,
464 0x167b8,
465 0x1239c,
466 0x1679c,
467 0x1238e,
468 // 280
469 0x1678e,
470 0x167de,
471 0x1b140,
472 0x1d8b0,
473 0x1ec5c,
474 0x1b120,
475 0x1d898,
476 0x1ec4e,
477 0x1b110,
478 0x1d88c,
479 // 290
480 0x1b108,
481 0x1d886,
482 0x1b104,
483 0x1b102,
484 0x12140,
485 0x190b0,
486 0x1c85c,
487 0x16340,
488 0x12120,
489 0x19098,
490 // 300
491 0x1c84e,
492 0x16320,
493 0x1b198,
494 0x1d8ce,
495 0x16310,
496 0x12108,
497 0x19086,
498 0x16308,
499 0x1b186,
500 0x16304,
501 // 310
502 0x121b0,
503 0x190dc,
504 0x163b0,
505 0x12198,
506 0x190ce,
507 0x16398,
508 0x1b1ce,
509 0x1638c,
510 0x12186,
511 0x16386,
512 // 320
513 0x163dc,
514 0x163ce,
515 0x1b0a0,
516 0x1d858,
517 0x1ec2e,
518 0x1b090,
519 0x1d84c,
520 0x1b088,
521 0x1d846,
522 0x1b084,
523 // 330
524 0x1b082,
525 0x120a0,
526 0x19058,
527 0x1c82e,
528 0x161a0,
529 0x12090,
530 0x1904c,
531 0x16190,
532 0x1b0cc,
533 0x19046,
534 // 340
535 0x16188,
536 0x12084,
537 0x16184,
538 0x12082,
539 0x120d8,
540 0x161d8,
541 0x161cc,
542 0x161c6,
543 0x1d82c,
544 0x1d826,
545 // 350
546 0x1b042,
547 0x1902c,
548 0x12048,
549 0x160c8,
550 0x160c4,
551 0x160c2,
552 0x18ac0,
553 0x1c570,
554 0x1e2bc,
555 0x18a60,
556 // 360
557 0x1c538,
558 0x11440,
559 0x18a30,
560 0x1c51c,
561 0x11420,
562 0x18a18,
563 0x11410,
564 0x11408,
565 0x116c0,
566 0x18b70,
567 // 370
568 0x1c5bc,
569 0x11660,
570 0x18b38,
571 0x1c59e,
572 0x11630,
573 0x18b1c,
574 0x11618,
575 0x1160c,
576 0x11770,
577 0x18bbc,
578 // 380
579 0x11738,
580 0x18b9e,
581 0x1171c,
582 0x117bc,
583 0x1179e,
584 0x1cd60,
585 0x1e6b8,
586 0x1f35e,
587 0x19a40,
588 0x1cd30,
589 // 390
590 0x1e69c,
591 0x19a20,
592 0x1cd18,
593 0x1e68e,
594 0x19a10,
595 0x1cd0c,
596 0x19a08,
597 0x1cd06,
598 0x18960,
599 0x1c4b8,
600 // 400
601 0x1e25e,
602 0x19b60,
603 0x18930,
604 0x1c49c,
605 0x13640,
606 0x11220,
607 0x1cd9c,
608 0x1c48e,
609 0x13620,
610 0x19b18,
611 // 410
612 0x1890c,
613 0x13610,
614 0x11208,
615 0x13608,
616 0x11360,
617 0x189b8,
618 0x1c4de,
619 0x13760,
620 0x11330,
621 0x1cdde,
622 // 420
623 0x13730,
624 0x19b9c,
625 0x1898e,
626 0x13718,
627 0x1130c,
628 0x1370c,
629 0x113b8,
630 0x189de,
631 0x137b8,
632 0x1139c,
633 // 430
634 0x1379c,
635 0x1138e,
636 0x113de,
637 0x137de,
638 0x1dd40,
639 0x1eeb0,
640 0x1f75c,
641 0x1dd20,
642 0x1ee98,
643 0x1f74e,
644 // 440
645 0x1dd10,
646 0x1ee8c,
647 0x1dd08,
648 0x1ee86,
649 0x1dd04,
650 0x19940,
651 0x1ccb0,
652 0x1e65c,
653 0x1bb40,
654 0x19920,
655 // 450
656 0x1eedc,
657 0x1e64e,
658 0x1bb20,
659 0x1dd98,
660 0x1eece,
661 0x1bb10,
662 0x19908,
663 0x1cc86,
664 0x1bb08,
665 0x1dd86,
666 // 460
667 0x19902,
668 0x11140,
669 0x188b0,
670 0x1c45c,
671 0x13340,
672 0x11120,
673 0x18898,
674 0x1c44e,
675 0x17740,
676 0x13320,
677 // 470
678 0x19998,
679 0x1ccce,
680 0x17720,
681 0x1bb98,
682 0x1ddce,
683 0x18886,
684 0x17710,
685 0x13308,
686 0x19986,
687 0x17708,
688 // 480
689 0x11102,
690 0x111b0,
691 0x188dc,
692 0x133b0,
693 0x11198,
694 0x188ce,
695 0x177b0,
696 0x13398,
697 0x199ce,
698 0x17798,
699 // 490
700 0x1bbce,
701 0x11186,
702 0x13386,
703 0x111dc,
704 0x133dc,
705 0x111ce,
706 0x177dc,
707 0x133ce,
708 0x1dca0,
709 0x1ee58,
710 // 500
711 0x1f72e,
712 0x1dc90,
713 0x1ee4c,
714 0x1dc88,
715 0x1ee46,
716 0x1dc84,
717 0x1dc82,
718 0x198a0,
719 0x1cc58,
720 0x1e62e,
721 // 510
722 0x1b9a0,
723 0x19890,
724 0x1ee6e,
725 0x1b990,
726 0x1dccc,
727 0x1cc46,
728 0x1b988,
729 0x19884,
730 0x1b984,
731 0x19882,
732 // 520
733 0x1b982,
734 0x110a0,
735 0x18858,
736 0x1c42e,
737 0x131a0,
738 0x11090,
739 0x1884c,
740 0x173a0,
741 0x13190,
742 0x198cc,
743 // 530
744 0x18846,
745 0x17390,
746 0x1b9cc,
747 0x11084,
748 0x17388,
749 0x13184,
750 0x11082,
751 0x13182,
752 0x110d8,
753 0x1886e,
754 // 540
755 0x131d8,
756 0x110cc,
757 0x173d8,
758 0x131cc,
759 0x110c6,
760 0x173cc,
761 0x131c6,
762 0x110ee,
763 0x173ee,
764 0x1dc50,
765 // 550
766 0x1ee2c,
767 0x1dc48,
768 0x1ee26,
769 0x1dc44,
770 0x1dc42,
771 0x19850,
772 0x1cc2c,
773 0x1b8d0,
774 0x19848,
775 0x1cc26,
776 // 560
777 0x1b8c8,
778 0x1dc66,
779 0x1b8c4,
780 0x19842,
781 0x1b8c2,
782 0x11050,
783 0x1882c,
784 0x130d0,
785 0x11048,
786 0x18826,
787 // 570
788 0x171d0,
789 0x130c8,
790 0x19866,
791 0x171c8,
792 0x1b8e6,
793 0x11042,
794 0x171c4,
795 0x130c2,
796 0x171c2,
797 0x130ec,
798 // 580
799 0x171ec,
800 0x171e6,
801 0x1ee16,
802 0x1dc22,
803 0x1cc16,
804 0x19824,
805 0x19822,
806 0x11028,
807 0x13068,
808 0x170e8,
809 // 590
810 0x11022,
811 0x13062,
812 0x18560,
813 0x10a40,
814 0x18530,
815 0x10a20,
816 0x18518,
817 0x1c28e,
818 0x10a10,
819 0x1850c,
820 // 600
821 0x10a08,
822 0x18506,
823 0x10b60,
824 0x185b8,
825 0x1c2de,
826 0x10b30,
827 0x1859c,
828 0x10b18,
829 0x1858e,
830 0x10b0c,
831 // 610
832 0x10b06,
833 0x10bb8,
834 0x185de,
835 0x10b9c,
836 0x10b8e,
837 0x10bde,
838 0x18d40,
839 0x1c6b0,
840 0x1e35c,
841 0x18d20,
842 // 620
843 0x1c698,
844 0x18d10,
845 0x1c68c,
846 0x18d08,
847 0x1c686,
848 0x18d04,
849 0x10940,
850 0x184b0,
851 0x1c25c,
852 0x11b40,
853 // 630
854 0x10920,
855 0x1c6dc,
856 0x1c24e,
857 0x11b20,
858 0x18d98,
859 0x1c6ce,
860 0x11b10,
861 0x10908,
862 0x18486,
863 0x11b08,
864 // 640
865 0x18d86,
866 0x10902,
867 0x109b0,
868 0x184dc,
869 0x11bb0,
870 0x10998,
871 0x184ce,
872 0x11b98,
873 0x18dce,
874 0x11b8c,
875 // 650
876 0x10986,
877 0x109dc,
878 0x11bdc,
879 0x109ce,
880 0x11bce,
881 0x1cea0,
882 0x1e758,
883 0x1f3ae,
884 0x1ce90,
885 0x1e74c,
886 // 660
887 0x1ce88,
888 0x1e746,
889 0x1ce84,
890 0x1ce82,
891 0x18ca0,
892 0x1c658,
893 0x19da0,
894 0x18c90,
895 0x1c64c,
896 0x19d90,
897 // 670
898 0x1cecc,
899 0x1c646,
900 0x19d88,
901 0x18c84,
902 0x19d84,
903 0x18c82,
904 0x19d82,
905 0x108a0,
906 0x18458,
907 0x119a0,
908 // 680
909 0x10890,
910 0x1c66e,
911 0x13ba0,
912 0x11990,
913 0x18ccc,
914 0x18446,
915 0x13b90,
916 0x19dcc,
917 0x10884,
918 0x13b88,
919 // 690
920 0x11984,
921 0x10882,
922 0x11982,
923 0x108d8,
924 0x1846e,
925 0x119d8,
926 0x108cc,
927 0x13bd8,
928 0x119cc,
929 0x108c6,
930 // 700
931 0x13bcc,
932 0x119c6,
933 0x108ee,
934 0x119ee,
935 0x13bee,
936 0x1ef50,
937 0x1f7ac,
938 0x1ef48,
939 0x1f7a6,
940 0x1ef44,
941 // 710
942 0x1ef42,
943 0x1ce50,
944 0x1e72c,
945 0x1ded0,
946 0x1ef6c,
947 0x1e726,
948 0x1dec8,
949 0x1ef66,
950 0x1dec4,
951 0x1ce42,
952 // 720
953 0x1dec2,
954 0x18c50,
955 0x1c62c,
956 0x19cd0,
957 0x18c48,
958 0x1c626,
959 0x1bdd0,
960 0x19cc8,
961 0x1ce66,
962 0x1bdc8,
963 // 730
964 0x1dee6,
965 0x18c42,
966 0x1bdc4,
967 0x19cc2,
968 0x1bdc2,
969 0x10850,
970 0x1842c,
971 0x118d0,
972 0x10848,
973 0x18426,
974 // 740
975 0x139d0,
976 0x118c8,
977 0x18c66,
978 0x17bd0,
979 0x139c8,
980 0x19ce6,
981 0x10842,
982 0x17bc8,
983 0x1bde6,
984 0x118c2,
985 // 750
986 0x17bc4,
987 0x1086c,
988 0x118ec,
989 0x10866,
990 0x139ec,
991 0x118e6,
992 0x17bec,
993 0x139e6,
994 0x17be6,
995 0x1ef28,
996 // 760
997 0x1f796,
998 0x1ef24,
999 0x1ef22,
1000 0x1ce28,
1001 0x1e716,
1002 0x1de68,
1003 0x1ef36,
1004 0x1de64,
1005 0x1ce22,
1006 0x1de62,
1007 // 770
1008 0x18c28,
1009 0x1c616,
1010 0x19c68,
1011 0x18c24,
1012 0x1bce8,
1013 0x19c64,
1014 0x18c22,
1015 0x1bce4,
1016 0x19c62,
1017 0x1bce2,
1018 // 780
1019 0x10828,
1020 0x18416,
1021 0x11868,
1022 0x18c36,
1023 0x138e8,
1024 0x11864,
1025 0x10822,
1026 0x179e8,
1027 0x138e4,
1028 0x11862,
1029 // 790
1030 0x179e4,
1031 0x138e2,
1032 0x179e2,
1033 0x11876,
1034 0x179f6,
1035 0x1ef12,
1036 0x1de34,
1037 0x1de32,
1038 0x19c34,
1039 0x1bc74,
1040 // 800
1041 0x1bc72,
1042 0x11834,
1043 0x13874,
1044 0x178f4,
1045 0x178f2,
1046 0x10540,
1047 0x10520,
1048 0x18298,
1049 0x10510,
1050 0x10508,
1051 // 810
1052 0x10504,
1053 0x105b0,
1054 0x10598,
1055 0x1058c,
1056 0x10586,
1057 0x105dc,
1058 0x105ce,
1059 0x186a0,
1060 0x18690,
1061 0x1c34c,
1062 // 820
1063 0x18688,
1064 0x1c346,
1065 0x18684,
1066 0x18682,
1067 0x104a0,
1068 0x18258,
1069 0x10da0,
1070 0x186d8,
1071 0x1824c,
1072 0x10d90,
1073 // 830
1074 0x186cc,
1075 0x10d88,
1076 0x186c6,
1077 0x10d84,
1078 0x10482,
1079 0x10d82,
1080 0x104d8,
1081 0x1826e,
1082 0x10dd8,
1083 0x186ee,
1084 // 840
1085 0x10dcc,
1086 0x104c6,
1087 0x10dc6,
1088 0x104ee,
1089 0x10dee,
1090 0x1c750,
1091 0x1c748,
1092 0x1c744,
1093 0x1c742,
1094 0x18650,
1095 // 850
1096 0x18ed0,
1097 0x1c76c,
1098 0x1c326,
1099 0x18ec8,
1100 0x1c766,
1101 0x18ec4,
1102 0x18642,
1103 0x18ec2,
1104 0x10450,
1105 0x10cd0,
1106 // 860
1107 0x10448,
1108 0x18226,
1109 0x11dd0,
1110 0x10cc8,
1111 0x10444,
1112 0x11dc8,
1113 0x10cc4,
1114 0x10442,
1115 0x11dc4,
1116 0x10cc2,
1117 // 870
1118 0x1046c,
1119 0x10cec,
1120 0x10466,
1121 0x11dec,
1122 0x10ce6,
1123 0x11de6,
1124 0x1e7a8,
1125 0x1e7a4,
1126 0x1e7a2,
1127 0x1c728,
1128 // 880
1129 0x1cf68,
1130 0x1e7b6,
1131 0x1cf64,
1132 0x1c722,
1133 0x1cf62,
1134 0x18628,
1135 0x1c316,
1136 0x18e68,
1137 0x1c736,
1138 0x19ee8,
1139 // 890
1140 0x18e64,
1141 0x18622,
1142 0x19ee4,
1143 0x18e62,
1144 0x19ee2,
1145 0x10428,
1146 0x18216,
1147 0x10c68,
1148 0x18636,
1149 0x11ce8,
1150 // 900
1151 0x10c64,
1152 0x10422,
1153 0x13de8,
1154 0x11ce4,
1155 0x10c62,
1156 0x13de4,
1157 0x11ce2,
1158 0x10436,
1159 0x10c76,
1160 0x11cf6,
1161 // 910
1162 0x13df6,
1163 0x1f7d4,
1164 0x1f7d2,
1165 0x1e794,
1166 0x1efb4,
1167 0x1e792,
1168 0x1efb2,
1169 0x1c714,
1170 0x1cf34,
1171 0x1c712,
1172 // 920
1173 0x1df74,
1174 0x1cf32,
1175 0x1df72,
1176 0x18614,
1177 0x18e34,
1178 0x18612,
1179 0x19e74,
1180 0x18e32,
1181 0x1bef4,
1182 ),
1183 // 929
1184 array(
1185 // cluster 3 -----------------------------------------------------------------------
1186 0x1f560,
1187 0x1fab8,
1188 0x1ea40,
1189 0x1f530,
1190 0x1fa9c,
1191 0x1ea20,
1192 0x1f518,
1193 0x1fa8e,
1194 0x1ea10,
1195 0x1f50c,
1196 // 10
1197 0x1ea08,
1198 0x1f506,
1199 0x1ea04,
1200 0x1eb60,
1201 0x1f5b8,
1202 0x1fade,
1203 0x1d640,
1204 0x1eb30,
1205 0x1f59c,
1206 0x1d620,
1207 // 20
1208 0x1eb18,
1209 0x1f58e,
1210 0x1d610,
1211 0x1eb0c,
1212 0x1d608,
1213 0x1eb06,
1214 0x1d604,
1215 0x1d760,
1216 0x1ebb8,
1217 0x1f5de,
1218 // 30
1219 0x1ae40,
1220 0x1d730,
1221 0x1eb9c,
1222 0x1ae20,
1223 0x1d718,
1224 0x1eb8e,
1225 0x1ae10,
1226 0x1d70c,
1227 0x1ae08,
1228 0x1d706,
1229 // 40
1230 0x1ae04,
1231 0x1af60,
1232 0x1d7b8,
1233 0x1ebde,
1234 0x15e40,
1235 0x1af30,
1236 0x1d79c,
1237 0x15e20,
1238 0x1af18,
1239 0x1d78e,
1240 // 50
1241 0x15e10,
1242 0x1af0c,
1243 0x15e08,
1244 0x1af06,
1245 0x15f60,
1246 0x1afb8,
1247 0x1d7de,
1248 0x15f30,
1249 0x1af9c,
1250 0x15f18,
1251 // 60
1252 0x1af8e,
1253 0x15f0c,
1254 0x15fb8,
1255 0x1afde,
1256 0x15f9c,
1257 0x15f8e,
1258 0x1e940,
1259 0x1f4b0,
1260 0x1fa5c,
1261 0x1e920,
1262 // 70
1263 0x1f498,
1264 0x1fa4e,
1265 0x1e910,
1266 0x1f48c,
1267 0x1e908,
1268 0x1f486,
1269 0x1e904,
1270 0x1e902,
1271 0x1d340,
1272 0x1e9b0,
1273 // 80
1274 0x1f4dc,
1275 0x1d320,
1276 0x1e998,
1277 0x1f4ce,
1278 0x1d310,
1279 0x1e98c,
1280 0x1d308,
1281 0x1e986,
1282 0x1d304,
1283 0x1d302,
1284 // 90
1285 0x1a740,
1286 0x1d3b0,
1287 0x1e9dc,
1288 0x1a720,
1289 0x1d398,
1290 0x1e9ce,
1291 0x1a710,
1292 0x1d38c,
1293 0x1a708,
1294 0x1d386,
1295 // 100
1296 0x1a704,
1297 0x1a702,
1298 0x14f40,
1299 0x1a7b0,
1300 0x1d3dc,
1301 0x14f20,
1302 0x1a798,
1303 0x1d3ce,
1304 0x14f10,
1305 0x1a78c,
1306 // 110
1307 0x14f08,
1308 0x1a786,
1309 0x14f04,
1310 0x14fb0,
1311 0x1a7dc,
1312 0x14f98,
1313 0x1a7ce,
1314 0x14f8c,
1315 0x14f86,
1316 0x14fdc,
1317 // 120
1318 0x14fce,
1319 0x1e8a0,
1320 0x1f458,
1321 0x1fa2e,
1322 0x1e890,
1323 0x1f44c,
1324 0x1e888,
1325 0x1f446,
1326 0x1e884,
1327 0x1e882,
1328 // 130
1329 0x1d1a0,
1330 0x1e8d8,
1331 0x1f46e,
1332 0x1d190,
1333 0x1e8cc,
1334 0x1d188,
1335 0x1e8c6,
1336 0x1d184,
1337 0x1d182,
1338 0x1a3a0,
1339 // 140
1340 0x1d1d8,
1341 0x1e8ee,
1342 0x1a390,
1343 0x1d1cc,
1344 0x1a388,
1345 0x1d1c6,
1346 0x1a384,
1347 0x1a382,
1348 0x147a0,
1349 0x1a3d8,
1350 // 150
1351 0x1d1ee,
1352 0x14790,
1353 0x1a3cc,
1354 0x14788,
1355 0x1a3c6,
1356 0x14784,
1357 0x14782,
1358 0x147d8,
1359 0x1a3ee,
1360 0x147cc,
1361 // 160
1362 0x147c6,
1363 0x147ee,
1364 0x1e850,
1365 0x1f42c,
1366 0x1e848,
1367 0x1f426,
1368 0x1e844,
1369 0x1e842,
1370 0x1d0d0,
1371 0x1e86c,
1372 // 170
1373 0x1d0c8,
1374 0x1e866,
1375 0x1d0c4,
1376 0x1d0c2,
1377 0x1a1d0,
1378 0x1d0ec,
1379 0x1a1c8,
1380 0x1d0e6,
1381 0x1a1c4,
1382 0x1a1c2,
1383 // 180
1384 0x143d0,
1385 0x1a1ec,
1386 0x143c8,
1387 0x1a1e6,
1388 0x143c4,
1389 0x143c2,
1390 0x143ec,
1391 0x143e6,
1392 0x1e828,
1393 0x1f416,
1394 // 190
1395 0x1e824,
1396 0x1e822,
1397 0x1d068,
1398 0x1e836,
1399 0x1d064,
1400 0x1d062,
1401 0x1a0e8,
1402 0x1d076,
1403 0x1a0e4,
1404 0x1a0e2,
1405 // 200
1406 0x141e8,
1407 0x1a0f6,
1408 0x141e4,
1409 0x141e2,
1410 0x1e814,
1411 0x1e812,
1412 0x1d034,
1413 0x1d032,
1414 0x1a074,
1415 0x1a072,
1416 // 210
1417 0x1e540,
1418 0x1f2b0,
1419 0x1f95c,
1420 0x1e520,
1421 0x1f298,
1422 0x1f94e,
1423 0x1e510,
1424 0x1f28c,
1425 0x1e508,
1426 0x1f286,
1427 // 220
1428 0x1e504,
1429 0x1e502,
1430 0x1cb40,
1431 0x1e5b0,
1432 0x1f2dc,
1433 0x1cb20,
1434 0x1e598,
1435 0x1f2ce,
1436 0x1cb10,
1437 0x1e58c,
1438 // 230
1439 0x1cb08,
1440 0x1e586,
1441 0x1cb04,
1442 0x1cb02,
1443 0x19740,
1444 0x1cbb0,
1445 0x1e5dc,
1446 0x19720,
1447 0x1cb98,
1448 0x1e5ce,
1449 // 240
1450 0x19710,
1451 0x1cb8c,
1452 0x19708,
1453 0x1cb86,
1454 0x19704,
1455 0x19702,
1456 0x12f40,
1457 0x197b0,
1458 0x1cbdc,
1459 0x12f20,
1460 // 250
1461 0x19798,
1462 0x1cbce,
1463 0x12f10,
1464 0x1978c,
1465 0x12f08,
1466 0x19786,
1467 0x12f04,
1468 0x12fb0,
1469 0x197dc,
1470 0x12f98,
1471 // 260
1472 0x197ce,
1473 0x12f8c,
1474 0x12f86,
1475 0x12fdc,
1476 0x12fce,
1477 0x1f6a0,
1478 0x1fb58,
1479 0x16bf0,
1480 0x1f690,
1481 0x1fb4c,
1482 // 270
1483 0x169f8,
1484 0x1f688,
1485 0x1fb46,
1486 0x168fc,
1487 0x1f684,
1488 0x1f682,
1489 0x1e4a0,
1490 0x1f258,
1491 0x1f92e,
1492 0x1eda0,
1493 // 280
1494 0x1e490,
1495 0x1fb6e,
1496 0x1ed90,
1497 0x1f6cc,
1498 0x1f246,
1499 0x1ed88,
1500 0x1e484,
1501 0x1ed84,
1502 0x1e482,
1503 0x1ed82,
1504 // 290
1505 0x1c9a0,
1506 0x1e4d8,
1507 0x1f26e,
1508 0x1dba0,
1509 0x1c990,
1510 0x1e4cc,
1511 0x1db90,
1512 0x1edcc,
1513 0x1e4c6,
1514 0x1db88,
1515 // 300
1516 0x1c984,
1517 0x1db84,
1518 0x1c982,
1519 0x1db82,
1520 0x193a0,
1521 0x1c9d8,
1522 0x1e4ee,
1523 0x1b7a0,
1524 0x19390,
1525 0x1c9cc,
1526 // 310
1527 0x1b790,
1528 0x1dbcc,
1529 0x1c9c6,
1530 0x1b788,
1531 0x19384,
1532 0x1b784,
1533 0x19382,
1534 0x1b782,
1535 0x127a0,
1536 0x193d8,
1537 // 320
1538 0x1c9ee,
1539 0x16fa0,
1540 0x12790,
1541 0x193cc,
1542 0x16f90,
1543 0x1b7cc,
1544 0x193c6,
1545 0x16f88,
1546 0x12784,
1547 0x16f84,
1548 // 330
1549 0x12782,
1550 0x127d8,
1551 0x193ee,
1552 0x16fd8,
1553 0x127cc,
1554 0x16fcc,
1555 0x127c6,
1556 0x16fc6,
1557 0x127ee,
1558 0x1f650,
1559 // 340
1560 0x1fb2c,
1561 0x165f8,
1562 0x1f648,
1563 0x1fb26,
1564 0x164fc,
1565 0x1f644,
1566 0x1647e,
1567 0x1f642,
1568 0x1e450,
1569 0x1f22c,
1570 // 350
1571 0x1ecd0,
1572 0x1e448,
1573 0x1f226,
1574 0x1ecc8,
1575 0x1f666,
1576 0x1ecc4,
1577 0x1e442,
1578 0x1ecc2,
1579 0x1c8d0,
1580 0x1e46c,
1581 // 360
1582 0x1d9d0,
1583 0x1c8c8,
1584 0x1e466,
1585 0x1d9c8,
1586 0x1ece6,
1587 0x1d9c4,
1588 0x1c8c2,
1589 0x1d9c2,
1590 0x191d0,
1591 0x1c8ec,
1592 // 370
1593 0x1b3d0,
1594 0x191c8,
1595 0x1c8e6,
1596 0x1b3c8,
1597 0x1d9e6,
1598 0x1b3c4,
1599 0x191c2,
1600 0x1b3c2,
1601 0x123d0,
1602 0x191ec,
1603 // 380
1604 0x167d0,
1605 0x123c8,
1606 0x191e6,
1607 0x167c8,
1608 0x1b3e6,
1609 0x167c4,
1610 0x123c2,
1611 0x167c2,
1612 0x123ec,
1613 0x167ec,
1614 // 390
1615 0x123e6,
1616 0x167e6,
1617 0x1f628,
1618 0x1fb16,
1619 0x162fc,
1620 0x1f624,
1621 0x1627e,
1622 0x1f622,
1623 0x1e428,
1624 0x1f216,
1625 // 400
1626 0x1ec68,
1627 0x1f636,
1628 0x1ec64,
1629 0x1e422,
1630 0x1ec62,
1631 0x1c868,
1632 0x1e436,
1633 0x1d8e8,
1634 0x1c864,
1635 0x1d8e4,
1636 // 410
1637 0x1c862,
1638 0x1d8e2,
1639 0x190e8,
1640 0x1c876,
1641 0x1b1e8,
1642 0x1d8f6,
1643 0x1b1e4,
1644 0x190e2,
1645 0x1b1e2,
1646 0x121e8,
1647 // 420
1648 0x190f6,
1649 0x163e8,
1650 0x121e4,
1651 0x163e4,
1652 0x121e2,
1653 0x163e2,
1654 0x121f6,
1655 0x163f6,
1656 0x1f614,
1657 0x1617e,
1658 // 430
1659 0x1f612,
1660 0x1e414,
1661 0x1ec34,
1662 0x1e412,
1663 0x1ec32,
1664 0x1c834,
1665 0x1d874,
1666 0x1c832,
1667 0x1d872,
1668 0x19074,
1669 // 440
1670 0x1b0f4,
1671 0x19072,
1672 0x1b0f2,
1673 0x120f4,
1674 0x161f4,
1675 0x120f2,
1676 0x161f2,
1677 0x1f60a,
1678 0x1e40a,
1679 0x1ec1a,
1680 // 450
1681 0x1c81a,
1682 0x1d83a,
1683 0x1903a,
1684 0x1b07a,
1685 0x1e2a0,
1686 0x1f158,
1687 0x1f8ae,
1688 0x1e290,
1689 0x1f14c,
1690 0x1e288,
1691 // 460
1692 0x1f146,
1693 0x1e284,
1694 0x1e282,
1695 0x1c5a0,
1696 0x1e2d8,
1697 0x1f16e,
1698 0x1c590,
1699 0x1e2cc,
1700 0x1c588,
1701 0x1e2c6,
1702 // 470
1703 0x1c584,
1704 0x1c582,
1705 0x18ba0,
1706 0x1c5d8,
1707 0x1e2ee,
1708 0x18b90,
1709 0x1c5cc,
1710 0x18b88,
1711 0x1c5c6,
1712 0x18b84,
1713 // 480
1714 0x18b82,
1715 0x117a0,
1716 0x18bd8,
1717 0x1c5ee,
1718 0x11790,
1719 0x18bcc,
1720 0x11788,
1721 0x18bc6,
1722 0x11784,
1723 0x11782,
1724 // 490
1725 0x117d8,
1726 0x18bee,
1727 0x117cc,
1728 0x117c6,
1729 0x117ee,
1730 0x1f350,
1731 0x1f9ac,
1732 0x135f8,
1733 0x1f348,
1734 0x1f9a6,
1735 // 500
1736 0x134fc,
1737 0x1f344,
1738 0x1347e,
1739 0x1f342,
1740 0x1e250,
1741 0x1f12c,
1742 0x1e6d0,
1743 0x1e248,
1744 0x1f126,
1745 0x1e6c8,
1746 // 510
1747 0x1f366,
1748 0x1e6c4,
1749 0x1e242,
1750 0x1e6c2,
1751 0x1c4d0,
1752 0x1e26c,
1753 0x1cdd0,
1754 0x1c4c8,
1755 0x1e266,
1756 0x1cdc8,
1757 // 520
1758 0x1e6e6,
1759 0x1cdc4,
1760 0x1c4c2,
1761 0x1cdc2,
1762 0x189d0,
1763 0x1c4ec,
1764 0x19bd0,
1765 0x189c8,
1766 0x1c4e6,
1767 0x19bc8,
1768 // 530
1769 0x1cde6,
1770 0x19bc4,
1771 0x189c2,
1772 0x19bc2,
1773 0x113d0,
1774 0x189ec,
1775 0x137d0,
1776 0x113c8,
1777 0x189e6,
1778 0x137c8,
1779 // 540
1780 0x19be6,
1781 0x137c4,
1782 0x113c2,
1783 0x137c2,
1784 0x113ec,
1785 0x137ec,
1786 0x113e6,
1787 0x137e6,
1788 0x1fba8,
1789 0x175f0,
1790 // 550
1791 0x1bafc,
1792 0x1fba4,
1793 0x174f8,
1794 0x1ba7e,
1795 0x1fba2,
1796 0x1747c,
1797 0x1743e,
1798 0x1f328,
1799 0x1f996,
1800 0x132fc,
1801 // 560
1802 0x1f768,
1803 0x1fbb6,
1804 0x176fc,
1805 0x1327e,
1806 0x1f764,
1807 0x1f322,
1808 0x1767e,
1809 0x1f762,
1810 0x1e228,
1811 0x1f116,
1812 // 570
1813 0x1e668,
1814 0x1e224,
1815 0x1eee8,
1816 0x1f776,
1817 0x1e222,
1818 0x1eee4,
1819 0x1e662,
1820 0x1eee2,
1821 0x1c468,
1822 0x1e236,
1823 // 580
1824 0x1cce8,
1825 0x1c464,
1826 0x1dde8,
1827 0x1cce4,
1828 0x1c462,
1829 0x1dde4,
1830 0x1cce2,
1831 0x1dde2,
1832 0x188e8,
1833 0x1c476,
1834 // 590
1835 0x199e8,
1836 0x188e4,
1837 0x1bbe8,
1838 0x199e4,
1839 0x188e2,
1840 0x1bbe4,
1841 0x199e2,
1842 0x1bbe2,
1843 0x111e8,
1844 0x188f6,
1845 // 600
1846 0x133e8,
1847 0x111e4,
1848 0x177e8,
1849 0x133e4,
1850 0x111e2,
1851 0x177e4,
1852 0x133e2,
1853 0x177e2,
1854 0x111f6,
1855 0x133f6,
1856 // 610
1857 0x1fb94,
1858 0x172f8,
1859 0x1b97e,
1860 0x1fb92,
1861 0x1727c,
1862 0x1723e,
1863 0x1f314,
1864 0x1317e,
1865 0x1f734,
1866 0x1f312,
1867 // 620
1868 0x1737e,
1869 0x1f732,
1870 0x1e214,
1871 0x1e634,
1872 0x1e212,
1873 0x1ee74,
1874 0x1e632,
1875 0x1ee72,
1876 0x1c434,
1877 0x1cc74,
1878 // 630
1879 0x1c432,
1880 0x1dcf4,
1881 0x1cc72,
1882 0x1dcf2,
1883 0x18874,
1884 0x198f4,
1885 0x18872,
1886 0x1b9f4,
1887 0x198f2,
1888 0x1b9f2,
1889 // 640
1890 0x110f4,
1891 0x131f4,
1892 0x110f2,
1893 0x173f4,
1894 0x131f2,
1895 0x173f2,
1896 0x1fb8a,
1897 0x1717c,
1898 0x1713e,
1899 0x1f30a,
1900 // 650
1901 0x1f71a,
1902 0x1e20a,
1903 0x1e61a,
1904 0x1ee3a,
1905 0x1c41a,
1906 0x1cc3a,
1907 0x1dc7a,
1908 0x1883a,
1909 0x1987a,
1910 0x1b8fa,
1911 // 660
1912 0x1107a,
1913 0x130fa,
1914 0x171fa,
1915 0x170be,
1916 0x1e150,
1917 0x1f0ac,
1918 0x1e148,
1919 0x1f0a6,
1920 0x1e144,
1921 0x1e142,
1922 // 670
1923 0x1c2d0,
1924 0x1e16c,
1925 0x1c2c8,
1926 0x1e166,
1927 0x1c2c4,
1928 0x1c2c2,
1929 0x185d0,
1930 0x1c2ec,
1931 0x185c8,
1932 0x1c2e6,
1933 // 680
1934 0x185c4,
1935 0x185c2,
1936 0x10bd0,
1937 0x185ec,
1938 0x10bc8,
1939 0x185e6,
1940 0x10bc4,
1941 0x10bc2,
1942 0x10bec,
1943 0x10be6,
1944 // 690
1945 0x1f1a8,
1946 0x1f8d6,
1947 0x11afc,
1948 0x1f1a4,
1949 0x11a7e,
1950 0x1f1a2,
1951 0x1e128,
1952 0x1f096,
1953 0x1e368,
1954 0x1e124,
1955 // 700
1956 0x1e364,
1957 0x1e122,
1958 0x1e362,
1959 0x1c268,
1960 0x1e136,
1961 0x1c6e8,
1962 0x1c264,
1963 0x1c6e4,
1964 0x1c262,
1965 0x1c6e2,
1966 // 710
1967 0x184e8,
1968 0x1c276,
1969 0x18de8,
1970 0x184e4,
1971 0x18de4,
1972 0x184e2,
1973 0x18de2,
1974 0x109e8,
1975 0x184f6,
1976 0x11be8,
1977 // 720
1978 0x109e4,
1979 0x11be4,
1980 0x109e2,
1981 0x11be2,
1982 0x109f6,
1983 0x11bf6,
1984 0x1f9d4,
1985 0x13af8,
1986 0x19d7e,
1987 0x1f9d2,
1988 // 730
1989 0x13a7c,
1990 0x13a3e,
1991 0x1f194,
1992 0x1197e,
1993 0x1f3b4,
1994 0x1f192,
1995 0x13b7e,
1996 0x1f3b2,
1997 0x1e114,
1998 0x1e334,
1999 // 740
2000 0x1e112,
2001 0x1e774,
2002 0x1e332,
2003 0x1e772,
2004 0x1c234,
2005 0x1c674,
2006 0x1c232,
2007 0x1cef4,
2008 0x1c672,
2009 0x1cef2,
2010 // 750
2011 0x18474,
2012 0x18cf4,
2013 0x18472,
2014 0x19df4,
2015 0x18cf2,
2016 0x19df2,
2017 0x108f4,
2018 0x119f4,
2019 0x108f2,
2020 0x13bf4,
2021 // 760
2022 0x119f2,
2023 0x13bf2,
2024 0x17af0,
2025 0x1bd7c,
2026 0x17a78,
2027 0x1bd3e,
2028 0x17a3c,
2029 0x17a1e,
2030 0x1f9ca,
2031 0x1397c,
2032 // 770
2033 0x1fbda,
2034 0x17b7c,
2035 0x1393e,
2036 0x17b3e,
2037 0x1f18a,
2038 0x1f39a,
2039 0x1f7ba,
2040 0x1e10a,
2041 0x1e31a,
2042 0x1e73a,
2043 // 780
2044 0x1ef7a,
2045 0x1c21a,
2046 0x1c63a,
2047 0x1ce7a,
2048 0x1defa,
2049 0x1843a,
2050 0x18c7a,
2051 0x19cfa,
2052 0x1bdfa,
2053 0x1087a,
2054 // 790
2055 0x118fa,
2056 0x139fa,
2057 0x17978,
2058 0x1bcbe,
2059 0x1793c,
2060 0x1791e,
2061 0x138be,
2062 0x179be,
2063 0x178bc,
2064 0x1789e,
2065 // 800
2066 0x1785e,
2067 0x1e0a8,
2068 0x1e0a4,
2069 0x1e0a2,
2070 0x1c168,
2071 0x1e0b6,
2072 0x1c164,
2073 0x1c162,
2074 0x182e8,
2075 0x1c176,
2076 // 810
2077 0x182e4,
2078 0x182e2,
2079 0x105e8,
2080 0x182f6,
2081 0x105e4,
2082 0x105e2,
2083 0x105f6,
2084 0x1f0d4,
2085 0x10d7e,
2086 0x1f0d2,
2087 // 820
2088 0x1e094,
2089 0x1e1b4,
2090 0x1e092,
2091 0x1e1b2,
2092 0x1c134,
2093 0x1c374,
2094 0x1c132,
2095 0x1c372,
2096 0x18274,
2097 0x186f4,
2098 // 830
2099 0x18272,
2100 0x186f2,
2101 0x104f4,
2102 0x10df4,
2103 0x104f2,
2104 0x10df2,
2105 0x1f8ea,
2106 0x11d7c,
2107 0x11d3e,
2108 0x1f0ca,
2109 // 840
2110 0x1f1da,
2111 0x1e08a,
2112 0x1e19a,
2113 0x1e3ba,
2114 0x1c11a,
2115 0x1c33a,
2116 0x1c77a,
2117 0x1823a,
2118 0x1867a,
2119 0x18efa,
2120 // 850
2121 0x1047a,
2122 0x10cfa,
2123 0x11dfa,
2124 0x13d78,
2125 0x19ebe,
2126 0x13d3c,
2127 0x13d1e,
2128 0x11cbe,
2129 0x13dbe,
2130 0x17d70,
2131 // 860
2132 0x1bebc,
2133 0x17d38,
2134 0x1be9e,
2135 0x17d1c,
2136 0x17d0e,
2137 0x13cbc,
2138 0x17dbc,
2139 0x13c9e,
2140 0x17d9e,
2141 0x17cb8,
2142 // 870
2143 0x1be5e,
2144 0x17c9c,
2145 0x17c8e,
2146 0x13c5e,
2147 0x17cde,
2148 0x17c5c,
2149 0x17c4e,
2150 0x17c2e,
2151 0x1c0b4,
2152 0x1c0b2,
2153 // 880
2154 0x18174,
2155 0x18172,
2156 0x102f4,
2157 0x102f2,
2158 0x1e0da,
2159 0x1c09a,
2160 0x1c1ba,
2161 0x1813a,
2162 0x1837a,
2163 0x1027a,
2164 // 890
2165 0x106fa,
2166 0x10ebe,
2167 0x11ebc,
2168 0x11e9e,
2169 0x13eb8,
2170 0x19f5e,
2171 0x13e9c,
2172 0x13e8e,
2173 0x11e5e,
2174 0x13ede,
2175 // 900
2176 0x17eb0,
2177 0x1bf5c,
2178 0x17e98,
2179 0x1bf4e,
2180 0x17e8c,
2181 0x17e86,
2182 0x13e5c,
2183 0x17edc,
2184 0x13e4e,
2185 0x17ece,
2186 // 910
2187 0x17e58,
2188 0x1bf2e,
2189 0x17e4c,
2190 0x17e46,
2191 0x13e2e,
2192 0x17e6e,
2193 0x17e2c,
2194 0x17e26,
2195 0x10f5e,
2196 0x11f5c,
2197 // 920
2198 0x11f4e,
2199 0x13f58,
2200 0x19fae,
2201 0x13f4c,
2202 0x13f46,
2203 0x11f2e,
2204 0x13f6e,
2205 0x13f2c,
2206 0x13f26,
2207 ),
2208 // 929
2209 array(
2210 // cluster 6 -----------------------------------------------------------------------
2211 0x1abe0,
2212 0x1d5f8,
2213 0x153c0,
2214 0x1a9f0,
2215 0x1d4fc,
2216 0x151e0,
2217 0x1a8f8,
2218 0x1d47e,
2219 0x150f0,
2220 0x1a87c,
2221 // 10
2222 0x15078,
2223 0x1fad0,
2224 0x15be0,
2225 0x1adf8,
2226 0x1fac8,
2227 0x159f0,
2228 0x1acfc,
2229 0x1fac4,
2230 0x158f8,
2231 0x1ac7e,
2232 // 20
2233 0x1fac2,
2234 0x1587c,
2235 0x1f5d0,
2236 0x1faec,
2237 0x15df8,
2238 0x1f5c8,
2239 0x1fae6,
2240 0x15cfc,
2241 0x1f5c4,
2242 0x15c7e,
2243 // 30
2244 0x1f5c2,
2245 0x1ebd0,
2246 0x1f5ec,
2247 0x1ebc8,
2248 0x1f5e6,
2249 0x1ebc4,
2250 0x1ebc2,
2251 0x1d7d0,
2252 0x1ebec,
2253 0x1d7c8,
2254 // 40
2255 0x1ebe6,
2256 0x1d7c4,
2257 0x1d7c2,
2258 0x1afd0,
2259 0x1d7ec,
2260 0x1afc8,
2261 0x1d7e6,
2262 0x1afc4,
2263 0x14bc0,
2264 0x1a5f0,
2265 // 50
2266 0x1d2fc,
2267 0x149e0,
2268 0x1a4f8,
2269 0x1d27e,
2270 0x148f0,
2271 0x1a47c,
2272 0x14878,
2273 0x1a43e,
2274 0x1483c,
2275 0x1fa68,
2276 // 60
2277 0x14df0,
2278 0x1a6fc,
2279 0x1fa64,
2280 0x14cf8,
2281 0x1a67e,
2282 0x1fa62,
2283 0x14c7c,
2284 0x14c3e,
2285 0x1f4e8,
2286 0x1fa76,
2287 // 70
2288 0x14efc,
2289 0x1f4e4,
2290 0x14e7e,
2291 0x1f4e2,
2292 0x1e9e8,
2293 0x1f4f6,
2294 0x1e9e4,
2295 0x1e9e2,
2296 0x1d3e8,
2297 0x1e9f6,
2298 // 80
2299 0x1d3e4,
2300 0x1d3e2,
2301 0x1a7e8,
2302 0x1d3f6,
2303 0x1a7e4,
2304 0x1a7e2,
2305 0x145e0,
2306 0x1a2f8,
2307 0x1d17e,
2308 0x144f0,
2309 // 90
2310 0x1a27c,
2311 0x14478,
2312 0x1a23e,
2313 0x1443c,
2314 0x1441e,
2315 0x1fa34,
2316 0x146f8,
2317 0x1a37e,
2318 0x1fa32,
2319 0x1467c,
2320 // 100
2321 0x1463e,
2322 0x1f474,
2323 0x1477e,
2324 0x1f472,
2325 0x1e8f4,
2326 0x1e8f2,
2327 0x1d1f4,
2328 0x1d1f2,
2329 0x1a3f4,
2330 0x1a3f2,
2331 // 110
2332 0x142f0,
2333 0x1a17c,
2334 0x14278,
2335 0x1a13e,
2336 0x1423c,
2337 0x1421e,
2338 0x1fa1a,
2339 0x1437c,
2340 0x1433e,
2341 0x1f43a,
2342 // 120
2343 0x1e87a,
2344 0x1d0fa,
2345 0x14178,
2346 0x1a0be,
2347 0x1413c,
2348 0x1411e,
2349 0x141be,
2350 0x140bc,
2351 0x1409e,
2352 0x12bc0,
2353 // 130
2354 0x195f0,
2355 0x1cafc,
2356 0x129e0,
2357 0x194f8,
2358 0x1ca7e,
2359 0x128f0,
2360 0x1947c,
2361 0x12878,
2362 0x1943e,
2363 0x1283c,
2364 // 140
2365 0x1f968,
2366 0x12df0,
2367 0x196fc,
2368 0x1f964,
2369 0x12cf8,
2370 0x1967e,
2371 0x1f962,
2372 0x12c7c,
2373 0x12c3e,
2374 0x1f2e8,
2375 // 150
2376 0x1f976,
2377 0x12efc,
2378 0x1f2e4,
2379 0x12e7e,
2380 0x1f2e2,
2381 0x1e5e8,
2382 0x1f2f6,
2383 0x1e5e4,
2384 0x1e5e2,
2385 0x1cbe8,
2386 // 160
2387 0x1e5f6,
2388 0x1cbe4,
2389 0x1cbe2,
2390 0x197e8,
2391 0x1cbf6,
2392 0x197e4,
2393 0x197e2,
2394 0x1b5e0,
2395 0x1daf8,
2396 0x1ed7e,
2397 // 170
2398 0x169c0,
2399 0x1b4f0,
2400 0x1da7c,
2401 0x168e0,
2402 0x1b478,
2403 0x1da3e,
2404 0x16870,
2405 0x1b43c,
2406 0x16838,
2407 0x1b41e,
2408 // 180
2409 0x1681c,
2410 0x125e0,
2411 0x192f8,
2412 0x1c97e,
2413 0x16de0,
2414 0x124f0,
2415 0x1927c,
2416 0x16cf0,
2417 0x1b67c,
2418 0x1923e,
2419 // 190
2420 0x16c78,
2421 0x1243c,
2422 0x16c3c,
2423 0x1241e,
2424 0x16c1e,
2425 0x1f934,
2426 0x126f8,
2427 0x1937e,
2428 0x1fb74,
2429 0x1f932,
2430 // 200
2431 0x16ef8,
2432 0x1267c,
2433 0x1fb72,
2434 0x16e7c,
2435 0x1263e,
2436 0x16e3e,
2437 0x1f274,
2438 0x1277e,
2439 0x1f6f4,
2440 0x1f272,
2441 // 210
2442 0x16f7e,
2443 0x1f6f2,
2444 0x1e4f4,
2445 0x1edf4,
2446 0x1e4f2,
2447 0x1edf2,
2448 0x1c9f4,
2449 0x1dbf4,
2450 0x1c9f2,
2451 0x1dbf2,
2452 // 220
2453 0x193f4,
2454 0x193f2,
2455 0x165c0,
2456 0x1b2f0,
2457 0x1d97c,
2458 0x164e0,
2459 0x1b278,
2460 0x1d93e,
2461 0x16470,
2462 0x1b23c,
2463 // 230
2464 0x16438,
2465 0x1b21e,
2466 0x1641c,
2467 0x1640e,
2468 0x122f0,
2469 0x1917c,
2470 0x166f0,
2471 0x12278,
2472 0x1913e,
2473 0x16678,
2474 // 240
2475 0x1b33e,
2476 0x1663c,
2477 0x1221e,
2478 0x1661e,
2479 0x1f91a,
2480 0x1237c,
2481 0x1fb3a,
2482 0x1677c,
2483 0x1233e,
2484 0x1673e,
2485 // 250
2486 0x1f23a,
2487 0x1f67a,
2488 0x1e47a,
2489 0x1ecfa,
2490 0x1c8fa,
2491 0x1d9fa,
2492 0x191fa,
2493 0x162e0,
2494 0x1b178,
2495 0x1d8be,
2496 // 260
2497 0x16270,
2498 0x1b13c,
2499 0x16238,
2500 0x1b11e,
2501 0x1621c,
2502 0x1620e,
2503 0x12178,
2504 0x190be,
2505 0x16378,
2506 0x1213c,
2507 // 270
2508 0x1633c,
2509 0x1211e,
2510 0x1631e,
2511 0x121be,
2512 0x163be,
2513 0x16170,
2514 0x1b0bc,
2515 0x16138,
2516 0x1b09e,
2517 0x1611c,
2518 // 280
2519 0x1610e,
2520 0x120bc,
2521 0x161bc,
2522 0x1209e,
2523 0x1619e,
2524 0x160b8,
2525 0x1b05e,
2526 0x1609c,
2527 0x1608e,
2528 0x1205e,
2529 // 290
2530 0x160de,
2531 0x1605c,
2532 0x1604e,
2533 0x115e0,
2534 0x18af8,
2535 0x1c57e,
2536 0x114f0,
2537 0x18a7c,
2538 0x11478,
2539 0x18a3e,
2540 // 300
2541 0x1143c,
2542 0x1141e,
2543 0x1f8b4,
2544 0x116f8,
2545 0x18b7e,
2546 0x1f8b2,
2547 0x1167c,
2548 0x1163e,
2549 0x1f174,
2550 0x1177e,
2551 // 310
2552 0x1f172,
2553 0x1e2f4,
2554 0x1e2f2,
2555 0x1c5f4,
2556 0x1c5f2,
2557 0x18bf4,
2558 0x18bf2,
2559 0x135c0,
2560 0x19af0,
2561 0x1cd7c,
2562 // 320
2563 0x134e0,
2564 0x19a78,
2565 0x1cd3e,
2566 0x13470,
2567 0x19a3c,
2568 0x13438,
2569 0x19a1e,
2570 0x1341c,
2571 0x1340e,
2572 0x112f0,
2573 // 330
2574 0x1897c,
2575 0x136f0,
2576 0x11278,
2577 0x1893e,
2578 0x13678,
2579 0x19b3e,
2580 0x1363c,
2581 0x1121e,
2582 0x1361e,
2583 0x1f89a,
2584 // 340
2585 0x1137c,
2586 0x1f9ba,
2587 0x1377c,
2588 0x1133e,
2589 0x1373e,
2590 0x1f13a,
2591 0x1f37a,
2592 0x1e27a,
2593 0x1e6fa,
2594 0x1c4fa,
2595 // 350
2596 0x1cdfa,
2597 0x189fa,
2598 0x1bae0,
2599 0x1dd78,
2600 0x1eebe,
2601 0x174c0,
2602 0x1ba70,
2603 0x1dd3c,
2604 0x17460,
2605 0x1ba38,
2606 // 360
2607 0x1dd1e,
2608 0x17430,
2609 0x1ba1c,
2610 0x17418,
2611 0x1ba0e,
2612 0x1740c,
2613 0x132e0,
2614 0x19978,
2615 0x1ccbe,
2616 0x176e0,
2617 // 370
2618 0x13270,
2619 0x1993c,
2620 0x17670,
2621 0x1bb3c,
2622 0x1991e,
2623 0x17638,
2624 0x1321c,
2625 0x1761c,
2626 0x1320e,
2627 0x1760e,
2628 // 380
2629 0x11178,
2630 0x188be,
2631 0x13378,
2632 0x1113c,
2633 0x17778,
2634 0x1333c,
2635 0x1111e,
2636 0x1773c,
2637 0x1331e,
2638 0x1771e,
2639 // 390
2640 0x111be,
2641 0x133be,
2642 0x177be,
2643 0x172c0,
2644 0x1b970,
2645 0x1dcbc,
2646 0x17260,
2647 0x1b938,
2648 0x1dc9e,
2649 0x17230,
2650 // 400
2651 0x1b91c,
2652 0x17218,
2653 0x1b90e,
2654 0x1720c,
2655 0x17206,
2656 0x13170,
2657 0x198bc,
2658 0x17370,
2659 0x13138,
2660 0x1989e,
2661 // 410
2662 0x17338,
2663 0x1b99e,
2664 0x1731c,
2665 0x1310e,
2666 0x1730e,
2667 0x110bc,
2668 0x131bc,
2669 0x1109e,
2670 0x173bc,
2671 0x1319e,
2672 // 420
2673 0x1739e,
2674 0x17160,
2675 0x1b8b8,
2676 0x1dc5e,
2677 0x17130,
2678 0x1b89c,
2679 0x17118,
2680 0x1b88e,
2681 0x1710c,
2682 0x17106,
2683 // 430
2684 0x130b8,
2685 0x1985e,
2686 0x171b8,
2687 0x1309c,
2688 0x1719c,
2689 0x1308e,
2690 0x1718e,
2691 0x1105e,
2692 0x130de,
2693 0x171de,
2694 // 440
2695 0x170b0,
2696 0x1b85c,
2697 0x17098,
2698 0x1b84e,
2699 0x1708c,
2700 0x17086,
2701 0x1305c,
2702 0x170dc,
2703 0x1304e,
2704 0x170ce,
2705 // 450
2706 0x17058,
2707 0x1b82e,
2708 0x1704c,
2709 0x17046,
2710 0x1302e,
2711 0x1706e,
2712 0x1702c,
2713 0x17026,
2714 0x10af0,
2715 0x1857c,
2716 // 460
2717 0x10a78,
2718 0x1853e,
2719 0x10a3c,
2720 0x10a1e,
2721 0x10b7c,
2722 0x10b3e,
2723 0x1f0ba,
2724 0x1e17a,
2725 0x1c2fa,
2726 0x185fa,
2727 // 470
2728 0x11ae0,
2729 0x18d78,
2730 0x1c6be,
2731 0x11a70,
2732 0x18d3c,
2733 0x11a38,
2734 0x18d1e,
2735 0x11a1c,
2736 0x11a0e,
2737 0x10978,
2738 // 480
2739 0x184be,
2740 0x11b78,
2741 0x1093c,
2742 0x11b3c,
2743 0x1091e,
2744 0x11b1e,
2745 0x109be,
2746 0x11bbe,
2747 0x13ac0,
2748 0x19d70,
2749 // 490
2750 0x1cebc,
2751 0x13a60,
2752 0x19d38,
2753 0x1ce9e,
2754 0x13a30,
2755 0x19d1c,
2756 0x13a18,
2757 0x19d0e,
2758 0x13a0c,
2759 0x13a06,
2760 // 500
2761 0x11970,
2762 0x18cbc,
2763 0x13b70,
2764 0x11938,
2765 0x18c9e,
2766 0x13b38,
2767 0x1191c,
2768 0x13b1c,
2769 0x1190e,
2770 0x13b0e,
2771 // 510
2772 0x108bc,
2773 0x119bc,
2774 0x1089e,
2775 0x13bbc,
2776 0x1199e,
2777 0x13b9e,
2778 0x1bd60,
2779 0x1deb8,
2780 0x1ef5e,
2781 0x17a40,
2782 // 520
2783 0x1bd30,
2784 0x1de9c,
2785 0x17a20,
2786 0x1bd18,
2787 0x1de8e,
2788 0x17a10,
2789 0x1bd0c,
2790 0x17a08,
2791 0x1bd06,
2792 0x17a04,
2793 // 530
2794 0x13960,
2795 0x19cb8,
2796 0x1ce5e,
2797 0x17b60,
2798 0x13930,
2799 0x19c9c,
2800 0x17b30,
2801 0x1bd9c,
2802 0x19c8e,
2803 0x17b18,
2804 // 540
2805 0x1390c,
2806 0x17b0c,
2807 0x13906,
2808 0x17b06,
2809 0x118b8,
2810 0x18c5e,
2811 0x139b8,
2812 0x1189c,
2813 0x17bb8,
2814 0x1399c,
2815 // 550
2816 0x1188e,
2817 0x17b9c,
2818 0x1398e,
2819 0x17b8e,
2820 0x1085e,
2821 0x118de,
2822 0x139de,
2823 0x17bde,
2824 0x17940,
2825 0x1bcb0,
2826 // 560
2827 0x1de5c,
2828 0x17920,
2829 0x1bc98,
2830 0x1de4e,
2831 0x17910,
2832 0x1bc8c,
2833 0x17908,
2834 0x1bc86,
2835 0x17904,
2836 0x17902,
2837 // 570
2838 0x138b0,
2839 0x19c5c,
2840 0x179b0,
2841 0x13898,
2842 0x19c4e,
2843 0x17998,
2844 0x1bcce,
2845 0x1798c,
2846 0x13886,
2847 0x17986,
2848 // 580
2849 0x1185c,
2850 0x138dc,
2851 0x1184e,
2852 0x179dc,
2853 0x138ce,
2854 0x179ce,
2855 0x178a0,
2856 0x1bc58,
2857 0x1de2e,
2858 0x17890,
2859 // 590
2860 0x1bc4c,
2861 0x17888,
2862 0x1bc46,
2863 0x17884,
2864 0x17882,
2865 0x13858,
2866 0x19c2e,
2867 0x178d8,
2868 0x1384c,
2869 0x178cc,
2870 // 600
2871 0x13846,
2872 0x178c6,
2873 0x1182e,
2874 0x1386e,
2875 0x178ee,
2876 0x17850,
2877 0x1bc2c,
2878 0x17848,
2879 0x1bc26,
2880 0x17844,
2881 // 610
2882 0x17842,
2883 0x1382c,
2884 0x1786c,
2885 0x13826,
2886 0x17866,
2887 0x17828,
2888 0x1bc16,
2889 0x17824,
2890 0x17822,
2891 0x13816,
2892 // 620
2893 0x17836,
2894 0x10578,
2895 0x182be,
2896 0x1053c,
2897 0x1051e,
2898 0x105be,
2899 0x10d70,
2900 0x186bc,
2901 0x10d38,
2902 0x1869e,
2903 // 630
2904 0x10d1c,
2905 0x10d0e,
2906 0x104bc,
2907 0x10dbc,
2908 0x1049e,
2909 0x10d9e,
2910 0x11d60,
2911 0x18eb8,
2912 0x1c75e,
2913 0x11d30,
2914 // 640
2915 0x18e9c,
2916 0x11d18,
2917 0x18e8e,
2918 0x11d0c,
2919 0x11d06,
2920 0x10cb8,
2921 0x1865e,
2922 0x11db8,
2923 0x10c9c,
2924 0x11d9c,
2925 // 650
2926 0x10c8e,
2927 0x11d8e,
2928 0x1045e,
2929 0x10cde,
2930 0x11dde,
2931 0x13d40,
2932 0x19eb0,
2933 0x1cf5c,
2934 0x13d20,
2935 0x19e98,
2936 // 660
2937 0x1cf4e,
2938 0x13d10,
2939 0x19e8c,
2940 0x13d08,
2941 0x19e86,
2942 0x13d04,
2943 0x13d02,
2944 0x11cb0,
2945 0x18e5c,
2946 0x13db0,
2947 // 670
2948 0x11c98,
2949 0x18e4e,
2950 0x13d98,
2951 0x19ece,
2952 0x13d8c,
2953 0x11c86,
2954 0x13d86,
2955 0x10c5c,
2956 0x11cdc,
2957 0x10c4e,
2958 // 680
2959 0x13ddc,
2960 0x11cce,
2961 0x13dce,
2962 0x1bea0,
2963 0x1df58,
2964 0x1efae,
2965 0x1be90,
2966 0x1df4c,
2967 0x1be88,
2968 0x1df46,
2969 // 690
2970 0x1be84,
2971 0x1be82,
2972 0x13ca0,
2973 0x19e58,
2974 0x1cf2e,
2975 0x17da0,
2976 0x13c90,
2977 0x19e4c,
2978 0x17d90,
2979 0x1becc,
2980 // 700
2981 0x19e46,
2982 0x17d88,
2983 0x13c84,
2984 0x17d84,
2985 0x13c82,
2986 0x17d82,
2987 0x11c58,
2988 0x18e2e,
2989 0x13cd8,
2990 0x11c4c,
2991 // 710
2992 0x17dd8,
2993 0x13ccc,
2994 0x11c46,
2995 0x17dcc,
2996 0x13cc6,
2997 0x17dc6,
2998 0x10c2e,
2999 0x11c6e,
3000 0x13cee,
3001 0x17dee,
3002 // 720
3003 0x1be50,
3004 0x1df2c,
3005 0x1be48,
3006 0x1df26,
3007 0x1be44,
3008 0x1be42,
3009 0x13c50,
3010 0x19e2c,
3011 0x17cd0,
3012 0x13c48,
3013 // 730
3014 0x19e26,
3015 0x17cc8,
3016 0x1be66,
3017 0x17cc4,
3018 0x13c42,
3019 0x17cc2,
3020 0x11c2c,
3021 0x13c6c,
3022 0x11c26,
3023 0x17cec,
3024 // 740
3025 0x13c66,
3026 0x17ce6,
3027 0x1be28,
3028 0x1df16,
3029 0x1be24,
3030 0x1be22,
3031 0x13c28,
3032 0x19e16,
3033 0x17c68,
3034 0x13c24,
3035 // 750
3036 0x17c64,
3037 0x13c22,
3038 0x17c62,
3039 0x11c16,
3040 0x13c36,
3041 0x17c76,
3042 0x1be14,
3043 0x1be12,
3044 0x13c14,
3045 0x17c34,
3046 // 760
3047 0x13c12,
3048 0x17c32,
3049 0x102bc,
3050 0x1029e,
3051 0x106b8,
3052 0x1835e,
3053 0x1069c,
3054 0x1068e,
3055 0x1025e,
3056 0x106de,
3057 // 770
3058 0x10eb0,
3059 0x1875c,
3060 0x10e98,
3061 0x1874e,
3062 0x10e8c,
3063 0x10e86,
3064 0x1065c,
3065 0x10edc,
3066 0x1064e,
3067 0x10ece,
3068 // 780
3069 0x11ea0,
3070 0x18f58,
3071 0x1c7ae,
3072 0x11e90,
3073 0x18f4c,
3074 0x11e88,
3075 0x18f46,
3076 0x11e84,
3077 0x11e82,
3078 0x10e58,
3079 // 790
3080 0x1872e,
3081 0x11ed8,
3082 0x18f6e,
3083 0x11ecc,
3084 0x10e46,
3085 0x11ec6,
3086 0x1062e,
3087 0x10e6e,
3088 0x11eee,
3089 0x19f50,
3090 // 800
3091 0x1cfac,
3092 0x19f48,
3093 0x1cfa6,
3094 0x19f44,
3095 0x19f42,
3096 0x11e50,
3097 0x18f2c,
3098 0x13ed0,
3099 0x19f6c,
3100 0x18f26,
3101 // 810
3102 0x13ec8,
3103 0x11e44,
3104 0x13ec4,
3105 0x11e42,
3106 0x13ec2,
3107 0x10e2c,
3108 0x11e6c,
3109 0x10e26,
3110 0x13eec,
3111 0x11e66,
3112 // 820
3113 0x13ee6,
3114 0x1dfa8,
3115 0x1efd6,
3116 0x1dfa4,
3117 0x1dfa2,
3118 0x19f28,
3119 0x1cf96,
3120 0x1bf68,
3121 0x19f24,
3122 0x1bf64,
3123 // 830
3124 0x19f22,
3125 0x1bf62,
3126 0x11e28,
3127 0x18f16,
3128 0x13e68,
3129 0x11e24,
3130 0x17ee8,
3131 0x13e64,
3132 0x11e22,
3133 0x17ee4,
3134 // 840
3135 0x13e62,
3136 0x17ee2,
3137 0x10e16,
3138 0x11e36,
3139 0x13e76,
3140 0x17ef6,
3141 0x1df94,
3142 0x1df92,
3143 0x19f14,
3144 0x1bf34,
3145 // 850
3146 0x19f12,
3147 0x1bf32,
3148 0x11e14,
3149 0x13e34,
3150 0x11e12,
3151 0x17e74,
3152 0x13e32,
3153 0x17e72,
3154 0x1df8a,
3155 0x19f0a,
3156 // 860
3157 0x1bf1a,
3158 0x11e0a,
3159 0x13e1a,
3160 0x17e3a,
3161 0x1035c,
3162 0x1034e,
3163 0x10758,
3164 0x183ae,
3165 0x1074c,
3166 0x10746,
3167 // 870
3168 0x1032e,
3169 0x1076e,
3170 0x10f50,
3171 0x187ac,
3172 0x10f48,
3173 0x187a6,
3174 0x10f44,
3175 0x10f42,
3176 0x1072c,
3177 0x10f6c,
3178 // 880
3179 0x10726,
3180 0x10f66,
3181 0x18fa8,
3182 0x1c7d6,
3183 0x18fa4,
3184 0x18fa2,
3185 0x10f28,
3186 0x18796,
3187 0x11f68,
3188 0x18fb6,
3189 // 890
3190 0x11f64,
3191 0x10f22,
3192 0x11f62,
3193 0x10716,
3194 0x10f36,
3195 0x11f76,
3196 0x1cfd4,
3197 0x1cfd2,
3198 0x18f94,
3199 0x19fb4,
3200 // 900
3201 0x18f92,
3202 0x19fb2,
3203 0x10f14,
3204 0x11f34,
3205 0x10f12,
3206 0x13f74,
3207 0x11f32,
3208 0x13f72,
3209 0x1cfca,
3210 0x18f8a,
3211 // 910
3212 0x19f9a,
3213 0x10f0a,
3214 0x11f1a,
3215 0x13f3a,
3216 0x103ac,
3217 0x103a6,
3218 0x107a8,
3219 0x183d6,
3220 0x107a4,
3221 0x107a2,
3222 // 920
3223 0x10396,
3224 0x107b6,
3225 0x187d4,
3226 0x187d2,
3227 0x10794,
3228 0x10fb4,
3229 0x10792,
3230 0x10fb2,
3231 0x1c7ea,
3232 ),
3233 );
3234 // end of $clusters array
3235 /**
3236 * Array of factors of the Reed-Solomon polynomial equations used for error correction; one sub array for each correction level (0-8).
3237 * @protected
3238 */
3239 protected $rsfactors = array(
3240 array(
3241 // ECL 0 (2 factors) -------------------------------------------------------------------------------
3242 0x1b,
3243 0x395,
3244 ),
3245 // 2
3246 array(
3247 // ECL 1 (4 factors) -------------------------------------------------------------------------------
3248 0x20a,
3249 0x238,
3250 0x2d3,
3251 0x329,
3252 ),
3253 // 4
3254 array(
3255 // ECL 2 (8 factors) -------------------------------------------------------------------------------
3256 0xed,
3257 0x134,
3258 0x1b4,
3259 0x11c,
3260 0x286,
3261 0x28d,
3262 0x1ac,
3263 0x17b,
3264 ),
3265 // 8
3266 array(
3267 // ECL 3 (16 factors) ------------------------------------------------------------------------------
3268 0x112,
3269 0x232,
3270 0xe8,
3271 0x2f3,
3272 0x257,
3273 0x20c,
3274 0x321,
3275 0x84,
3276 0x127,
3277 0x74,
3278 0x1ba,
3279 0x1ac,
3280 0x127,
3281 0x2a,
3282 0xb0,
3283 0x41,
3284 ),
3285 // 16
3286 array(
3287 // ECL 4 (32 factors) ------------------------------------------------------------------------------
3288 0x169,
3289 0x23f,
3290 0x39a,
3291 0x20d,
3292 0xb0,
3293 0x24a,
3294 0x280,
3295 0x141,
3296 0x218,
3297 0x2e6,
3298 0x2a5,
3299 0x2e6,
3300 0x2af,
3301 0x11c,
3302 0xc1,
3303 0x205,
3304 // 16
3305 0x111,
3306 0x1ee,
3307 0x107,
3308 0x93,
3309 0x251,
3310 0x320,
3311 0x23b,
3312 0x140,
3313 0x323,
3314 0x85,
3315 0xe7,
3316 0x186,
3317 0x2ad,
3318 0x14a,
3319 0x3f,
3320 0x19a,
3321 ),
3322 // 32
3323 array(
3324 // ECL 5 (64 factors) ------------------------------------------------------------------------------
3325 0x21b,
3326 0x1a6,
3327 0x6,
3328 0x5d,
3329 0x35e,
3330 0x303,
3331 0x1c5,
3332 0x6a,
3333 0x262,
3334 0x11f,
3335 0x6b,
3336 0x1f9,
3337 0x2dd,
3338 0x36d,
3339 0x17d,
3340 0x264,
3341 // 16
3342 0x2d3,
3343 0x1dc,
3344 0x1ce,
3345 0xac,
3346 0x1ae,
3347 0x261,
3348 0x35a,
3349 0x336,
3350 0x21f,
3351 0x178,
3352 0x1ff,
3353 0x190,
3354 0x2a0,
3355 0x2fa,
3356 0x11b,
3357 0xb8,
3358 // 32
3359 0x1b8,
3360 0x23,
3361 0x207,
3362 0x1f,
3363 0x1cc,
3364 0x252,
3365 0xe1,
3366 0x217,
3367 0x205,
3368 0x160,
3369 0x25d,
3370 0x9e,
3371 0x28b,
3372 0xc9,
3373 0x1e8,
3374 0x1f6,
3375 // 48
3376 0x288,
3377 0x2dd,
3378 0x2cd,
3379 0x53,
3380 0x194,
3381 0x61,
3382 0x118,
3383 0x303,
3384 0x348,
3385 0x275,
3386 0x4,
3387 0x17d,
3388 0x34b,
3389 0x26f,
3390 0x108,
3391 0x21f,
3392 ),
3393 // 64
3394 array(
3395 // ECL 6 (128 factors) -----------------------------------------------------------------------------
3396 0x209,
3397 0x136,
3398 0x360,
3399 0x223,
3400 0x35a,
3401 0x244,
3402 0x128,
3403 0x17b,
3404 0x35,
3405 0x30b,
3406 0x381,
3407 0x1bc,
3408 0x190,
3409 0x39d,
3410 0x2ed,
3411 0x19f,
3412 // 16
3413 0x336,
3414 0x5d,
3415 0xd9,
3416 0xd0,
3417 0x3a0,
3418 0xf4,
3419 0x247,
3420 0x26c,
3421 0xf6,
3422 0x94,
3423 0x1bf,
3424 0x277,
3425 0x124,
3426 0x38c,
3427 0x1ea,
3428 0x2c0,
3429 // 32
3430 0x204,
3431 0x102,
3432 0x1c9,
3433 0x38b,
3434 0x252,
3435 0x2d3,
3436 0x2a2,
3437 0x124,
3438 0x110,
3439 0x60,
3440 0x2ac,
3441 0x1b0,
3442 0x2ae,
3443 0x25e,
3444 0x35c,
3445 0x239,
3446 // 48
3447 0xc1,
3448 0xdb,
3449 0x81,
3450 0xba,
3451 0xec,
3452 0x11f,
3453 0xc0,
3454 0x307,
3455 0x116,
3456 0xad,
3457 0x28,
3458 0x17b,
3459 0x2c8,
3460 0x1cf,
3461 0x286,
3462 0x308,
3463 // 64
3464 0xab,
3465 0x1eb,
3466 0x129,
3467 0x2fb,
3468 0x9c,
3469 0x2dc,
3470 0x5f,
3471 0x10e,
3472 0x1bf,
3473 0x5a,
3474 0x1fb,
3475 0x30,
3476 0xe4,
3477 0x335,
3478 0x328,
3479 0x382,
3480 // 80
3481 0x310,
3482 0x297,
3483 0x273,
3484 0x17a,
3485 0x17e,
3486 0x106,
3487 0x17c,
3488 0x25a,
3489 0x2f2,
3490 0x150,
3491 0x59,
3492 0x266,
3493 0x57,
3494 0x1b0,
3495 0x29e,
3496 0x268,
3497 // 96
3498 0x9d,
3499 0x176,
3500 0xf2,
3501 0x2d6,
3502 0x258,
3503 0x10d,
3504 0x177,
3505 0x382,
3506 0x34d,
3507 0x1c6,
3508 0x162,
3509 0x82,
3510 0x32e,
3511 0x24b,
3512 0x324,
3513 0x22,
3514 // 112
3515 0xd3,
3516 0x14a,
3517 0x21b,
3518 0x129,
3519 0x33b,
3520 0x361,
3521 0x25,
3522 0x205,
3523 0x342,
3524 0x13b,
3525 0x226,
3526 0x56,
3527 0x321,
3528 0x4,
3529 0x6c,
3530 0x21b,
3531 ),
3532 // 128
3533 array(
3534 // ECL 7 (256 factors) -----------------------------------------------------------------------------
3535 0x20c,
3536 0x37e,
3537 0x4b,
3538 0x2fe,
3539 0x372,
3540 0x359,
3541 0x4a,
3542 0xcc,
3543 0x52,
3544 0x24a,
3545 0x2c4,
3546 0xfa,
3547 0x389,
3548 0x312,
3549 0x8a,
3550 0x2d0,
3551 // 16
3552 0x35a,
3553 0xc2,
3554 0x137,
3555 0x391,
3556 0x113,
3557 0xbe,
3558 0x177,
3559 0x352,
3560 0x1b6,
3561 0x2dd,
3562 0xc2,
3563 0x118,
3564 0xc9,
3565 0x118,
3566 0x33c,
3567 0x2f5,
3568 // 32
3569 0x2c6,
3570 0x32e,
3571 0x397,
3572 0x59,
3573 0x44,
3574 0x239,
3575 0xb,
3576 0xcc,
3577 0x31c,
3578 0x25d,
3579 0x21c,
3580 0x391,
3581 0x321,
3582 0x2bc,
3583 0x31f,
3584 0x89,
3585 // 48
3586 0x1b7,
3587 0x1a2,
3588 0x250,
3589 0x29c,
3590 0x161,
3591 0x35b,
3592 0x172,
3593 0x2b6,
3594 0x145,
3595 0xf0,
3596 0xd8,
3597 0x101,
3598 0x11c,
3599 0x225,
3600 0xd1,
3601 0x374,
3602 // 64
3603 0x13b,
3604 0x46,
3605 0x149,
3606 0x319,
3607 0x1ea,
3608 0x112,
3609 0x36d,
3610 0xa2,
3611 0x2ed,
3612 0x32c,
3613 0x2ac,
3614 0x1cd,
3615 0x14e,
3616 0x178,
3617 0x351,
3618 0x209,
3619 // 80
3620 0x133,
3621 0x123,
3622 0x323,
3623 0x2c8,
3624 0x13,
3625 0x166,
3626 0x18f,
3627 0x38c,
3628 0x67,
3629 0x1ff,
3630 0x33,
3631 0x8,
3632 0x205,
3633 0xe1,
3634 0x121,
3635 0x1d6,
3636 // 96
3637 0x27d,
3638 0x2db,
3639 0x42,
3640 0xff,
3641 0x395,
3642 0x10d,
3643 0x1cf,
3644 0x33e,
3645 0x2da,
3646 0x1b1,
3647 0x350,
3648 0x249,
3649 0x88,
3650 0x21a,
3651 0x38a,
3652 0x5a,
3653 // 112
3654 0x2,
3655 0x122,
3656 0x2e7,
3657 0xc7,
3658 0x28f,
3659 0x387,
3660 0x149,
3661 0x31,
3662 0x322,
3663 0x244,
3664 0x163,
3665 0x24c,
3666 0xbc,
3667 0x1ce,
3668 0xa,
3669 0x86,
3670 // 128
3671 0x274,
3672 0x140,
3673 0x1df,
3674 0x82,
3675 0x2e3,
3676 0x47,
3677 0x107,
3678 0x13e,
3679 0x176,
3680 0x259,
3681 0xc0,
3682 0x25d,
3683 0x8e,
3684 0x2a1,
3685 0x2af,
3686 0xea,
3687 // 144
3688 0x2d2,
3689 0x180,
3690 0xb1,
3691 0x2f0,
3692 0x25f,
3693 0x280,
3694 0x1c7,
3695 0xc1,
3696 0x2b1,
3697 0x2c3,
3698 0x325,
3699 0x281,
3700 0x30,
3701 0x3c,
3702 0x2dc,
3703 0x26d,
3704 // 160
3705 0x37f,
3706 0x220,
3707 0x105,
3708 0x354,
3709 0x28f,
3710 0x135,
3711 0x2b9,
3712 0x2f3,
3713 0x2f4,
3714 0x3c,
3715 0xe7,
3716 0x305,
3717 0x1b2,
3718 0x1a5,
3719 0x2d6,
3720 0x210,
3721 // 176
3722 0x1f7,
3723 0x76,
3724 0x31,
3725 0x31b,
3726 0x20,
3727 0x90,
3728 0x1f4,
3729 0xee,
3730 0x344,
3731 0x18a,
3732 0x118,
3733 0x236,
3734 0x13f,
3735 0x9,
3736 0x287,
3737 0x226,
3738 // 192
3739 0x49,
3740 0x392,
3741 0x156,
3742 0x7e,
3743 0x20,
3744 0x2a9,
3745 0x14b,
3746 0x318,
3747 0x26c,
3748 0x3c,
3749 0x261,
3750 0x1b9,
3751 0xb4,
3752 0x317,
3753 0x37d,
3754 0x2f2,
3755 // 208
3756 0x25d,
3757 0x17f,
3758 0xe4,
3759 0x2ed,
3760 0x2f8,
3761 0xd5,
3762 0x36,
3763 0x129,
3764 0x86,
3765 0x36,
3766 0x342,
3767 0x12b,
3768 0x39a,
3769 0xbf,
3770 0x38e,
3771 0x214,
3772 // 224
3773 0x261,
3774 0x33d,
3775 0xbd,
3776 0x14,
3777 0xa7,
3778 0x1d,
3779 0x368,
3780 0x1c1,
3781 0x53,
3782 0x192,
3783 0x29,
3784 0x290,
3785 0x1f9,
3786 0x243,
3787 0x1e1,
3788 0xad,
3789 // 240
3790 0x194,
3791 0xfb,
3792 0x2b0,
3793 0x5f,
3794 0x1f1,
3795 0x22b,
3796 0x282,
3797 0x21f,
3798 0x133,
3799 0x9f,
3800 0x39c,
3801 0x22e,
3802 0x288,
3803 0x37,
3804 0x1f1,
3805 0xa,
3806 ),
3807 // 256
3808 array(
3809 // ECL 8 (512 factors) -----------------------------------------------------------------------------
3810 0x160,
3811 0x4d,
3812 0x175,
3813 0x1f8,
3814 0x23,
3815 0x257,
3816 0x1ac,
3817 0xcf,
3818 0x199,
3819 0x23e,
3820 0x76,
3821 0x1f2,
3822 0x11d,
3823 0x17c,
3824 0x15e,
3825 0x1ec,
3826 // 16
3827 0xc5,
3828 0x109,
3829 0x398,
3830 0x9b,
3831 0x392,
3832 0x12b,
3833 0xe5,
3834 0x283,
3835 0x126,
3836 0x367,
3837 0x132,
3838 0x58,
3839 0x57,
3840 0xc1,
3841 0x160,
3842 0x30d,
3843 // 32
3844 0x34e,
3845 0x4b,
3846 0x147,
3847 0x208,
3848 0x1b3,
3849 0x21f,
3850 0xcb,
3851 0x29a,
3852 0xf9,
3853 0x15a,
3854 0x30d,
3855 0x26d,
3856 0x280,
3857 0x10c,
3858 0x31a,
3859 0x216,
3860 // 48
3861 0x21b,
3862 0x30d,
3863 0x198,
3864 0x186,
3865 0x284,
3866 0x66,
3867 0x1dc,
3868 0x1f3,
3869 0x122,
3870 0x278,
3871 0x221,
3872 0x25,
3873 0x35a,
3874 0x394,
3875 0x228,
3876 0x29,
3877 // 64
3878 0x21e,
3879 0x121,
3880 0x7a,
3881 0x110,
3882 0x17f,
3883 0x320,
3884 0x1e5,
3885 0x62,
3886 0x2f0,
3887 0x1d8,
3888 0x2f9,
3889 0x6b,
3890 0x310,
3891 0x35c,
3892 0x292,
3893 0x2e5,
3894 // 80
3895 0x122,
3896 0xcc,
3897 0x2a9,
3898 0x197,
3899 0x357,
3900 0x55,
3901 0x63,
3902 0x3e,
3903 0x1e2,
3904 0xb4,
3905 0x14,
3906 0x129,
3907 0x1c3,
3908 0x251,
3909 0x391,
3910 0x8e,
3911 // 96
3912 0x328,
3913 0x2ac,
3914 0x11f,
3915 0x218,
3916 0x231,
3917 0x4c,
3918 0x28d,
3919 0x383,
3920 0x2d9,
3921 0x237,
3922 0x2e8,
3923 0x186,
3924 0x201,
3925 0xc0,
3926 0x204,
3927 0x102,
3928 // 112
3929 0xf0,
3930 0x206,
3931 0x31a,
3932 0x18b,
3933 0x300,
3934 0x350,
3935 0x33,
3936 0x262,
3937 0x180,
3938 0xa8,
3939 0xbe,
3940 0x33a,
3941 0x148,
3942 0x254,
3943 0x312,
3944 0x12f,
3945 // 128
3946 0x23a,
3947 0x17d,
3948 0x19f,
3949 0x281,
3950 0x9c,
3951 0xed,
3952 0x97,
3953 0x1ad,
3954 0x213,
3955 0xcf,
3956 0x2a4,
3957 0x2c6,
3958 0x59,
3959 0xa8,
3960 0x130,
3961 0x192,
3962 // 144
3963 0x28,
3964 0x2c4,
3965 0x23f,
3966 0xa2,
3967 0x360,
3968 0xe5,
3969 0x41,
3970 0x35d,
3971 0x349,
3972 0x200,
3973 0xa4,
3974 0x1dd,
3975 0xdd,
3976 0x5c,
3977 0x166,
3978 0x311,
3979 // 160
3980 0x120,
3981 0x165,
3982 0x352,
3983 0x344,
3984 0x33b,
3985 0x2e0,
3986 0x2c3,
3987 0x5e,
3988 0x8,
3989 0x1ee,
3990 0x72,
3991 0x209,
3992 0x2,
3993 0x1f3,
3994 0x353,
3995 0x21f,
3996 // 176
3997 0x98,
3998 0x2d9,
3999 0x303,
4000 0x5f,
4001 0xf8,
4002 0x169,
4003 0x242,
4004 0x143,
4005 0x358,
4006 0x31d,
4007 0x121,
4008 0x33,
4009 0x2ac,
4010 0x1d2,
4011 0x215,
4012 0x334,
4013 // 192
4014 0x29d,
4015 0x2d,
4016 0x386,
4017 0x1c4,
4018 0xa7,
4019 0x156,
4020 0xf4,
4021 0xad,
4022 0x23,
4023 0x1cf,
4024 0x28b,
4025 0x33,
4026 0x2bb,
4027 0x24f,
4028 0x1c4,
4029 0x242,
4030 // 208
4031 0x25,
4032 0x7c,
4033 0x12a,
4034 0x14c,
4035 0x228,
4036 0x2b,
4037 0x1ab,
4038 0x77,
4039 0x296,
4040 0x309,
4041 0x1db,
4042 0x352,
4043 0x2fc,
4044 0x16c,
4045 0x242,
4046 0x38f,
4047 // 224
4048 0x11b,
4049 0x2c7,
4050 0x1d8,
4051 0x1a4,
4052 0xf5,
4053 0x120,
4054 0x252,
4055 0x18a,
4056 0x1ff,
4057 0x147,
4058 0x24d,
4059 0x309,
4060 0x2bb,
4061 0x2b0,
4062 0x2b,
4063 0x198,
4064 // 240
4065 0x34a,
4066 0x17f,
4067 0x2d1,
4068 0x209,
4069 0x230,
4070 0x284,
4071 0x2ca,
4072 0x22f,
4073 0x3e,
4074 0x91,
4075 0x369,
4076 0x297,
4077 0x2c9,
4078 0x9f,
4079 0x2a0,
4080 0x2d9,
4081 // 256
4082 0x270,
4083 0x3b,
4084 0xc1,
4085 0x1a1,
4086 0x9e,
4087 0xd1,
4088 0x233,
4089 0x234,
4090 0x157,
4091 0x2b5,
4092 0x6d,
4093 0x260,
4094 0x233,
4095 0x16d,
4096 0xb5,
4097 0x304,
4098 // 272
4099 0x2a5,
4100 0x136,
4101 0xf8,
4102 0x161,
4103 0x2c4,
4104 0x19a,
4105 0x243,
4106 0x366,
4107 0x269,
4108 0x349,
4109 0x278,
4110 0x35c,
4111 0x121,
4112 0x218,
4113 0x23,
4114 0x309,
4115 // 288
4116 0x26a,
4117 0x24a,
4118 0x1a8,
4119 0x341,
4120 0x4d,
4121 0x255,
4122 0x15a,
4123 0x10d,
4124 0x2f5,
4125 0x278,
4126 0x2b7,
4127 0x2ef,
4128 0x14b,
4129 0xf7,
4130 0xb8,
4131 0x2d,
4132 // 304
4133 0x313,
4134 0x2a8,
4135 0x12,
4136 0x42,
4137 0x197,
4138 0x171,
4139 0x36,
4140 0x1ec,
4141 0xe4,
4142 0x265,
4143 0x33e,
4144 0x39a,
4145 0x1b5,
4146 0x207,
4147 0x284,
4148 0x389,
4149 // 320
4150 0x315,
4151 0x1a4,
4152 0x131,
4153 0x1b9,
4154 0xcf,
4155 0x12c,
4156 0x37c,
4157 0x33b,
4158 0x8d,
4159 0x219,
4160 0x17d,
4161 0x296,
4162 0x201,
4163 0x38,
4164 0xfc,
4165 0x155,
4166 // 336
4167 0xf2,
4168 0x31d,
4169 0x346,
4170 0x345,
4171 0x2d0,
4172 0xe0,
4173 0x133,
4174 0x277,
4175 0x3d,
4176 0x57,
4177 0x230,
4178 0x136,
4179 0x2f4,
4180 0x299,
4181 0x18d,
4182 0x328,
4183 // 352
4184 0x353,
4185 0x135,
4186 0x1d9,
4187 0x31b,
4188 0x17a,
4189 0x1f,
4190 0x287,
4191 0x393,
4192 0x1cb,
4193 0x326,
4194 0x24e,
4195 0x2db,
4196 0x1a9,
4197 0xd8,
4198 0x224,
4199 0xf9,
4200 // 368
4201 0x141,
4202 0x371,
4203 0x2bb,
4204 0x217,
4205 0x2a1,
4206 0x30e,
4207 0xd2,
4208 0x32f,
4209 0x389,
4210 0x12f,
4211 0x34b,
4212 0x39a,
4213 0x119,
4214 0x49,
4215 0x1d5,
4216 0x317,
4217 // 384
4218 0x294,
4219 0xa2,
4220 0x1f2,
4221 0x134,
4222 0x9b,
4223 0x1a6,
4224 0x38b,
4225 0x331,
4226 0xbb,
4227 0x3e,
4228 0x10,
4229 0x1a9,
4230 0x217,
4231 0x150,
4232 0x11e,
4233 0x1b5,
4234 // 400
4235 0x177,
4236 0x111,
4237 0x262,
4238 0x128,
4239 0xb7,
4240 0x39b,
4241 0x74,
4242 0x29b,
4243 0x2ef,
4244 0x161,
4245 0x3e,
4246 0x16e,
4247 0x2b3,
4248 0x17b,
4249 0x2af,
4250 0x34a,
4251 // 416
4252 0x25,
4253 0x165,
4254 0x2d0,
4255 0x2e6,
4256 0x14a,
4257 0x5,
4258 0x27,
4259 0x39b,
4260 0x137,
4261 0x1a8,
4262 0xf2,
4263 0x2ed,
4264 0x141,
4265 0x36,
4266 0x29d,
4267 0x13c,
4268 // 432
4269 0x156,
4270 0x12b,
4271 0x216,
4272 0x69,
4273 0x29b,
4274 0x1e8,
4275 0x280,
4276 0x2a0,
4277 0x240,
4278 0x21c,
4279 0x13c,
4280 0x1e6,
4281 0x2d1,
4282 0x262,
4283 0x2e,
4284 0x290,
4285 // 448
4286 0x1bf,
4287 0xab,
4288 0x268,
4289 0x1d0,
4290 0xbe,
4291 0x213,
4292 0x129,
4293 0x141,
4294 0x2fa,
4295 0x2f0,
4296 0x215,
4297 0xaf,
4298 0x86,
4299 0xe,
4300 0x17d,
4301 0x1b1,
4302 // 464
4303 0x2cd,
4304 0x2d,
4305 0x6f,
4306 0x14,
4307 0x254,
4308 0x11c,
4309 0x2e0,
4310 0x8a,
4311 0x286,
4312 0x19b,
4313 0x36d,
4314 0x29d,
4315 0x8d,
4316 0x397,
4317 0x2d,
4318 0x30c,
4319 // 480
4320 0x197,
4321 0xa4,
4322 0x14c,
4323 0x383,
4324 0xa5,
4325 0x2d6,
4326 0x258,
4327 0x145,
4328 0x1f2,
4329 0x28f,
4330 0x165,
4331 0x2f0,
4332 0x300,
4333 0xdf,
4334 0x351,
4335 0x287,
4336 // 496
4337 0x3f,
4338 0x136,
4339 0x35f,
4340 0xfb,
4341 0x16e,
4342 0x130,
4343 0x11a,
4344 0x2e2,
4345 0x2a3,
4346 0x19a,
4347 0x185,
4348 0xf4,
4349 0x1f,
4350 0x79,
4351 0x12f,
4352 0x107,
4353 ),
4354 );
4355 /**
4356 * This is the class constructor.
4357 * Creates a PDF417 object
4358 * @param string $code code to represent using PDF417
4359 * @param int $ecl error correction level (0-8); default -1 = automatic correction level
4360 * @param float $aspectratio the width to height of the symbol (excluding quiet zones)
4361 * @param array $macro information for macro block
4362 * @public
4363 */
4364 public function __construct($code, $ecl = -1, $aspectratio = 2, $macro = array())
4365 {
4366 $barcode_array = array();
4367 if (\is_null($code) or $code == '\\0' or $code == '') {
4368 return \false;
4369 }
4370 // get the input sequence array
4371 $sequence = $this->getInputSequences($code);
4372 $codewords = array();
4373 // array of code-words
4374 foreach ($sequence as $seq) {
4375 $cw = $this->getCompaction($seq[0], $seq[1], \true);
4376 $codewords = \array_merge($codewords, $cw);
4377 }
4378 if ($codewords[0] == 900) {
4379 // Text Alpha is the default mode, so remove the first code
4380 \array_shift($codewords);
4381 }
4382 // count number of codewords
4383 $numcw = \count($codewords);
4384 if ($numcw > 925) {
4385 // reached maximum data codeword capacity
4386 return \false;
4387 }
4388 // build macro control block codewords
4389 if (!empty($macro)) {
4390 $macrocw = array();
4391 // beginning of macro control block
4392 $macrocw[] = 928;
4393 // segment index
4394 $cw = $this->getCompaction(902, \sprintf('%05d', $macro['segment_index']), \false);
4395 $macrocw = \array_merge($macrocw, $cw);
4396 // file ID
4397 $cw = $this->getCompaction(900, $macro['file_id'], \false);
4398 $macrocw = \array_merge($macrocw, $cw);
4399 // optional fields
4400 $optmodes = array(900, 902, 902, 900, 900, 902, 902);
4401 $optsize = array(-1, 2, 4, -1, -1, -1, 2);
4402 foreach ($optmodes as $k => $omode) {
4403 if (isset($macro['option_' . $k])) {
4404 $macrocw[] = 923;
4405 $macrocw[] = $k;
4406 if ($optsize[$k] == 2) {
4407 $macro['option_' . $k] = \sprintf('%05d', $macro['option_' . $k]);
4408 } elseif ($optsize[$k] == 4) {
4409 $macro['option_' . $k] = \sprintf('%010d', $macro['option_' . $k]);
4410 }
4411 $cw = $this->getCompaction($omode, $macro['option_' . $k], \false);
4412 $macrocw = \array_merge($macrocw, $cw);
4413 }
4414 }
4415 if ($macro['segment_index'] == $macro['segment_total'] - 1) {
4416 // end of control block
4417 $macrocw[] = 922;
4418 }
4419 // update total codewords
4420 $numcw += \count($macrocw);
4421 }
4422 // set error correction level
4423 $ecl = $this->getErrorCorrectionLevel($ecl, $numcw);
4424 // number of codewords for error correction
4425 $errsize = 2 << $ecl;
4426 // calculate number of columns (number of codewords per row) and rows
4427 $nce = $numcw + $errsize + 1;
4428 $cols = \round((\sqrt(4761 + 68 * $aspectratio * \ROWHEIGHT * $nce) - 69) / 34);
4429 // adjust cols
4430 if ($cols < 1) {
4431 $cols = 1;
4432 } elseif ($cols > 30) {
4433 $cols = 30;
4434 }
4435 $rows = \ceil($nce / $cols);
4436 $size = $cols * $rows;
4437 // adjust rows
4438 if ($rows < 3 or $rows > 90) {
4439 if ($rows < 3) {
4440 $rows = 3;
4441 } elseif ($rows > 90) {
4442 $rows = 90;
4443 }
4444 $cols = \ceil($size / $rows);
4445 $size = $cols * $rows;
4446 }
4447 if ($size > 928) {
4448 // set dimensions to get maximum capacity
4449 if (\abs($aspectratio - 17 * 29 / 32) < \abs($aspectratio - 17 * 16 / 58)) {
4450 $cols = 29;
4451 $rows = 32;
4452 } else {
4453 $cols = 16;
4454 $rows = 58;
4455 }
4456 $size = 928;
4457 }
4458 // calculate padding
4459 $pad = $size - $nce;
4460 if ($pad > 0) {
4461 if ($size - $rows == $nce) {
4462 --$rows;
4463 $size -= $rows;
4464 } else {
4465 // add pading
4466 $codewords = \array_merge($codewords, \array_fill(0, $pad, 900));
4467 }
4468 }
4469 if (!empty($macro)) {
4470 // add macro section
4471 $codewords = \array_merge($codewords, $macrocw);
4472 }
4473 // Symbol Length Descriptor (number of data codewords including Symbol Length Descriptor and pad codewords)
4474 $sld = $size - $errsize;
4475 // add symbol length description
4476 \array_unshift($codewords, $sld);
4477 // calculate error correction
4478 $ecw = $this->getErrorCorrection($codewords, $ecl);
4479 // add error correction codewords
4480 $codewords = \array_merge($codewords, $ecw);
4481 // add horizontal quiet zones to start and stop patterns
4482 $pstart = \str_repeat('0', \QUIETH) . $this->start_pattern;
4483 $pstop = $this->stop_pattern . \str_repeat('0', \QUIETH);
4484 $barcode_array['num_rows'] = $rows * \ROWHEIGHT + 2 * \QUIETV;
4485 $barcode_array['num_cols'] = ($cols + 2) * 17 + 35 + 2 * \QUIETH;
4486 $barcode_array['bcode'] = array();
4487 // build rows for vertical quiet zone
4488 if (\QUIETV > 0) {
4489 $empty_row = \array_fill(0, $barcode_array['num_cols'], 0);
4490 for ($i = 0; $i < \QUIETV; ++$i) {
4491 // add vertical quiet rows
4492 $barcode_array['bcode'][] = $empty_row;
4493 }
4494 }
4495 $k = 0;
4496 // codeword index
4497 $cid = 0;
4498 // initial cluster
4499 // for each row
4500 for ($r = 0; $r < $rows; ++$r) {
4501 // row start code
4502 $row = $pstart;
4503 switch ($cid) {
4504 case 0:
4505 $L = 30 * \intval($r / 3) + \intval(($rows - 1) / 3);
4506 break;
4507 case 1:
4508 $L = 30 * \intval($r / 3) + $ecl * 3 + ($rows - 1) % 3;
4509 break;
4510 case 2:
4511 $L = 30 * \intval($r / 3) + ($cols - 1);
4512 break;
4513 }
4514 // left row indicator
4515 $row .= \sprintf('%17b', $this->clusters[$cid][$L]);
4516 // for each column
4517 for ($c = 0; $c < $cols; ++$c) {
4518 $row .= \sprintf('%17b', $this->clusters[$cid][$codewords[$k]]);
4519 ++$k;
4520 }
4521 switch ($cid) {
4522 case 0:
4523 $L = 30 * \intval($r / 3) + ($cols - 1);
4524 break;
4525 case 1:
4526 $L = 30 * \intval($r / 3) + \intval(($rows - 1) / 3);
4527 break;
4528 case 2:
4529 $L = 30 * \intval($r / 3) + $ecl * 3 + ($rows - 1) % 3;
4530 break;
4531 }
4532 // right row indicator
4533 $row .= \sprintf('%17b', $this->clusters[$cid][$L]);
4534 // row stop code
4535 $row .= $pstop;
4536 // convert the string to array
4537 $arow = \preg_split('//', $row, -1, \PREG_SPLIT_NO_EMPTY);
4538 // duplicate row to get the desired height
4539 for ($h = 0; $h < \ROWHEIGHT; ++$h) {
4540 $barcode_array['bcode'][] = $arow;
4541 }
4542 ++$cid;
4543 if ($cid > 2) {
4544 $cid = 0;
4545 }
4546 }
4547 if (\QUIETV > 0) {
4548 for ($i = 0; $i < \QUIETV; ++$i) {
4549 // add vertical quiet rows
4550 $barcode_array['bcode'][] = $empty_row;
4551 }
4552 }
4553 $this->barcode_array = $barcode_array;
4554 }
4555 /**
4556 * Returns a barcode array which is readable by TCPDF
4557 * @return array barcode array readable by TCPDF;
4558 * @public
4559 */
4560 public function getBarcodeArray()
4561 {
4562 return $this->barcode_array;
4563 }
4564 /**
4565 * Returns the error correction level (0-8) to be used
4566 * @param int $ecl error correction level
4567 * @param int $numcw number of data codewords
4568 * @return int error correction level
4569 * @protected
4570 */
4571 protected function getErrorCorrectionLevel($ecl, $numcw)
4572 {
4573 $maxecl = 8;
4574 // starting error level
4575 // check for automatic levels
4576 if ($ecl < 0 or $ecl > 8) {
4577 if ($numcw < 41) {
4578 $ecl = 2;
4579 } elseif ($numcw < 161) {
4580 $ecl = 3;
4581 } elseif ($numcw < 321) {
4582 $ecl = 4;
4583 } elseif ($numcw < 864) {
4584 $ecl = 5;
4585 } else {
4586 $ecl = $maxecl;
4587 }
4588 }
4589 // get maximum correction level
4590 $maxerrsize = 928 - $numcw;
4591 // available codewords for error
4592 while ($maxecl > 0) {
4593 $errsize = 2 << $ecl;
4594 if ($maxerrsize >= $errsize) {
4595 break;
4596 }
4597 --$maxecl;
4598 }
4599 if ($ecl > $maxecl) {
4600 $ecl = $maxecl;
4601 }
4602 return $ecl;
4603 }
4604 /**
4605 * Returns the error correction codewords
4606 * @param array $cw array of codewords including Symbol Length Descriptor and pad
4607 * @param int $ecl error correction level 0-8
4608 * @return array of error correction codewords
4609 * @protected
4610 */
4611 protected function getErrorCorrection($cw, $ecl)
4612 {
4613 // get error correction coefficients
4614 $ecc = $this->rsfactors[$ecl];
4615 // number of error correction factors
4616 $eclsize = 2 << $ecl;
4617 // maximum index for $rsfactors[$ecl]
4618 $eclmaxid = $eclsize - 1;
4619 // initialize array of error correction codewords
4620 $ecw = \array_fill(0, $eclsize, 0);
4621 // for each data codeword
4622 foreach ($cw as $k => $d) {
4623 $t1 = ($d + $ecw[$eclmaxid]) % 929;
4624 for ($j = $eclmaxid; $j > 0; --$j) {
4625 $t2 = $t1 * $ecc[$j] % 929;
4626 $t3 = 929 - $t2;
4627 $ecw[$j] = ($ecw[$j - 1] + $t3) % 929;
4628 }
4629 $t2 = $t1 * $ecc[0] % 929;
4630 $t3 = 929 - $t2;
4631 $ecw[0] = $t3 % 929;
4632 }
4633 foreach ($ecw as $j => $e) {
4634 if ($e != 0) {
4635 $ecw[$j] = 929 - $e;
4636 }
4637 }
4638 $ecw = \array_reverse($ecw);
4639 return $ecw;
4640 }
4641 /**
4642 * Create array of sequences from input
4643 * @param string $code code
4644 * @return array bi-dimensional array containing characters and classification
4645 * @protected
4646 */
4647 protected function getInputSequences($code)
4648 {
4649 $sequence_array = array();
4650 // array to be returned
4651 $numseq = array();
4652 // get numeric sequences
4653 \preg_match_all('/([0-9]{13,44})/', $code, $numseq, \PREG_OFFSET_CAPTURE);
4654 $numseq[1][] = array('', \strlen($code));
4655 $offset = 0;
4656 foreach ($numseq[1] as $seq) {
4657 $seqlen = \strlen($seq[0]);
4658 if ($seq[1] > 0) {
4659 // extract text sequence before the number sequence
4660 $prevseq = \substr($code, $offset, $seq[1] - $offset);
4661 $textseq = array();
4662 // get text sequences
4663 \preg_match_all('/([\\x09\\x0a\\x0d\\x20-\\x7e]{5,})/', $prevseq, $textseq, \PREG_OFFSET_CAPTURE);
4664 $textseq[1][] = array('', \strlen($prevseq));
4665 $txtoffset = 0;
4666 foreach ($textseq[1] as $txtseq) {
4667 $txtseqlen = \strlen($txtseq[0]);
4668 if ($txtseq[1] > 0) {
4669 // extract byte sequence before the text sequence
4670 $prevtxtseq = \substr($prevseq, $txtoffset, $txtseq[1] - $txtoffset);
4671 if (\strlen($prevtxtseq) > 0) {
4672 // add BYTE sequence
4673 if (\strlen($prevtxtseq) == 1 and (\count($sequence_array) > 0 and $sequence_array[\count($sequence_array) - 1][0] == 900)) {
4674 $sequence_array[] = array(913, $prevtxtseq);
4675 } elseif (\strlen($prevtxtseq) % 6 == 0) {
4676 $sequence_array[] = array(924, $prevtxtseq);
4677 } else {
4678 $sequence_array[] = array(901, $prevtxtseq);
4679 }
4680 }
4681 }
4682 if ($txtseqlen > 0) {
4683 // add numeric sequence
4684 $sequence_array[] = array(900, $txtseq[0]);
4685 }
4686 $txtoffset = $txtseq[1] + $txtseqlen;
4687 }
4688 }
4689 if ($seqlen > 0) {
4690 // add numeric sequence
4691 $sequence_array[] = array(902, $seq[0]);
4692 }
4693 $offset = $seq[1] + $seqlen;
4694 }
4695 return $sequence_array;
4696 }
4697 /**
4698 * Compact data by mode.
4699 * @param int $mode compaction mode number
4700 * @param string $code data to compact
4701 * @param boolean $addmode if true add the mode codeword at first position
4702 * @return array of codewords
4703 * @protected
4704 */
4705 protected function getCompaction($mode, $code, $addmode = \true)
4706 {
4707 $cw = array();
4708 // array of codewords to return
4709 switch ($mode) {
4710 case 900:
4711 // Text Compaction mode latch
4712 $submode = 0;
4713 // default Alpha sub-mode
4714 $txtarr = array();
4715 // array of characters and sub-mode switching characters
4716 $codelen = \strlen($code);
4717 for ($i = 0; $i < $codelen; ++$i) {
4718 $chval = \ord($code[$i]);
4719 if (($k = \array_search($chval, $this->textsubmodes[$submode])) !== \false) {
4720 // we are on the same sub-mode
4721 $txtarr[] = $k;
4722 } else {
4723 // the sub-mode is changed
4724 for ($s = 0; $s < 4; ++$s) {
4725 // search new sub-mode
4726 if ($s != $submode and ($k = \array_search($chval, $this->textsubmodes[$s])) !== \false) {
4727 // $s is the new submode
4728 if (($i + 1 == $codelen or $i + 1 < $codelen and \array_search(\ord($code[$i + 1]), $this->textsubmodes[$submode]) !== \false) and ($s == 3 or $s == 0 and $submode == 1)) {
4729 // shift (temporary change only for this char)
4730 if ($s == 3) {
4731 // shift to puntuaction
4732 $txtarr[] = 29;
4733 } else {
4734 // shift from lower to alpha
4735 $txtarr[] = 27;
4736 }
4737 } else {
4738 // latch
4739 $txtarr = \array_merge($txtarr, $this->textlatch['' . $submode . $s]);
4740 // set new submode
4741 $submode = $s;
4742 }
4743 // add characted code to array
4744 $txtarr[] = $k;
4745 break;
4746 }
4747 }
4748 }
4749 }
4750 $txtarrlen = \count($txtarr);
4751 if ($txtarrlen % 2 != 0) {
4752 // add padding
4753 $txtarr[] = 29;
4754 ++$txtarrlen;
4755 }
4756 // calculate codewords
4757 for ($i = 0; $i < $txtarrlen; $i += 2) {
4758 $cw[] = 30 * $txtarr[$i] + $txtarr[$i + 1];
4759 }
4760 break;
4761 case 901:
4762 case 924:
4763 // Byte Compaction mode latch
4764 while (($codelen = \strlen($code)) > 0) {
4765 if ($codelen > 6) {
4766 $rest = \substr($code, 6);
4767 $code = \substr($code, 0, 6);
4768 $sublen = 6;
4769 } else {
4770 $rest = '';
4771 $sublen = \strlen($code);
4772 }
4773 if ($sublen == 6) {
4774 $t = \bcmul('' . \ord($code[0]), '1099511627776');
4775 $t = \bcadd($t, \bcmul('' . \ord($code[1]), '4294967296'));
4776 $t = \bcadd($t, \bcmul('' . \ord($code[2]), '16777216'));
4777 $t = \bcadd($t, \bcmul('' . \ord($code[3]), '65536'));
4778 $t = \bcadd($t, \bcmul('' . \ord($code[4]), '256'));
4779 $t = \bcadd($t, '' . \ord($code[5]));
4780 // tmp array for the 6 bytes block
4781 $cw6 = array();
4782 do {
4783 $d = \bcmod($t, '900', 0);
4784 $t = \bcdiv($t, '900', 0);
4785 // prepend the value to the beginning of the array
4786 \array_unshift($cw6, $d);
4787 } while ($t != '0');
4788 // append the result array at the end
4789 $cw = \array_merge($cw, $cw6);
4790 } else {
4791 for ($i = 0; $i < $sublen; ++$i) {
4792 $cw[] = \ord($code[$i]);
4793 }
4794 }
4795 $code = $rest;
4796 }
4797 break;
4798 case 902:
4799 // Numeric Compaction mode latch
4800 while (($codelen = \strlen($code)) > 0) {
4801 if ($codelen > 44) {
4802 $rest = \substr($code, 44);
4803 $code = \substr($code, 0, 44);
4804 } else {
4805 $rest = '';
4806 }
4807 $t = '1' . $code;
4808 do {
4809 $d = \bcmod($t, '900', 0);
4810 $t = \bcdiv($t, '900', 0);
4811 \array_unshift($cw, $d);
4812 } while ($t != '0');
4813 $code = $rest;
4814 }
4815 break;
4816 case 913:
4817 // Byte Compaction mode shift
4818 $cw[] = \ord($code);
4819 break;
4820 }
4821 if ($addmode) {
4822 // add the compaction mode codeword at the beginning
4823 \array_unshift($cw, $mode);
4824 }
4825 return $cw;
4826 }
4827 }
4828 // end PDF417 class
4829 //============================================================+
4830 // END OF FILE
4831 //============================================================+
4832 }
4833