1 /*---------------------------------------------------------------------------*
2   Source File
3  *---------------------------------------------------------------------------*/
4 
5 #include <nitro.h>
6 #include <nitro/prc/types.h>
7 
8 #include "patterns.h"
9 
10 PRCPoint PrototypeListPointArray[PDIC_WHOLE_POINT_NUM] =
11 {
12     {7, 9},
13     {54, 48},
14     {-1, -1},
15     {51, 9},
16     {13, 53},
17     {-1, -1},
18     {29, 0},
19     {33, 62},
20     {-1, -1},
21     {0, 31},
22     {60, 32},
23     {-1, -1},
24     {29, 0},
25     {31, 62},
26     {-1, -1},
27     {34, 0},
28     {38, 63},
29     {-1, -1},
30     {6, 32},
31     {52, 26},
32     {-1, -1},
33     {1, 32},
34     {62, 32},
35     {-1, -1},
36     {24, 1},
37     {11, 15},
38     {17, 52},
39     {36, 63},
40     {51, 37},
41     {43, 3},
42     {24, 0},
43     {-1, -1},
44     {32, 1},
45     {43, 8},
46     {50, 27},
47     {42, 62},
48     {26, 61},
49     {14, 39},
50     {12, 19},
51     {28, 3},
52     {-1, -1},
53     {31, 4},
54     {17, 22},
55     {19, 50},
56     {32, 59},
57     {45, 50},
58     {44, 11},
59     {32, 2},
60     {-1, -1},
61     {48, 0},
62     {15, 62},
63     {-1, -1},
64     {31, 0},
65     {32, 62},
66     {-1, -1},
67     {22, 10},
68     {36, 0},
69     {40, 63},
70     {-1, -1},
71     {18, 17},
72     {33, 0},
73     {33, 54},
74     {-1, -1},
75     {24, 63},
76     {42, 63},
77     {-1, -1},
78     {18, 19},
79     {13, 7},
80     {30, 0},
81     {47, 21},
82     {13, 63},
83     {50, 62},
84     {-1, -1},
85     {16, 11},
86     {24, 0},
87     {44, 5},
88     {46, 24},
89     {26, 28},
90     {51, 50},
91     {32, 63},
92     {11, 52},
93     {-1, -1},
94     {33, 0},
95     {12, 44},
96     {50, 44},
97     {-1, -1},
98     {34, 9},
99     {36, 63},
100     {-1, -1},
101     {57, 38},
102     {4, 40},
103     {29, 0},
104     {37, 63},
105     {-1, -1},
106     {14, 0},
107     {15, 35},
108     {33, 30},
109     {48, 45},
110     {37, 63},
111     {17, 55},
112     {-1, -1},
113     {16, 12},
114     {44, 12},
115     {-1, -1},
116     {15, 2},
117     {49, 0},
118     {-1, -1},
119     {12, 2},
120     {16, 31},
121     {34, 28},
122     {50, 44},
123     {36, 63},
124     {14, 57},
125     {-1, -1},
126     {29, 0},
127     {19, 30},
128     {20, 55},
129     {29, 63},
130     {44, 51},
131     {37, 36},
132     {19, 38},
133     {-1, -1},
134     {42, 9},
135     {37, 0},
136     {20, 4},
137     {14, 44},
138     {31, 63},
139     {49, 54},
140     {43, 34},
141     {18, 36},
142     {-1, -1},
143     {13, 0},
144     {15, 17},
145     {-1, -1},
146     {19, 4},
147     {50, 3},
148     {34, 63},
149     {-1, -1},
150     {10, 1},
151     {53, 0},
152     {25, 62},
153     {-1, -1},
154     {14, 1},
155     {49, 1},
156     {24, 62},
157     {-1, -1},
158     {25, 28},
159     {39, 37},
160     {-1, -1},
161     {39, 11},
162     {23, 0},
163     {14, 16},
164     {44, 37},
165     {48, 53},
166     {37, 63},
167     {19, 58},
168     {16, 38},
169     {43, 17},
170     {-1, -1},
171     {39, 21},
172     {45, 12},
173     {39, 1},
174     {20, 7},
175     {21, 23},
176     {44, 46},
177     {40, 62},
178     {28, 61},
179     {22, 42},
180     {40, 19},
181     {-1, -1},
182     {24, 27},
183     {16, 12},
184     {20, 1},
185     {35, 4},
186     {39, 17},
187     {20, 37},
188     {23, 62},
189     {46, 52},
190     {31, 30},
191     {-1, -1},
192     {46, 16},
193     {32, 0},
194     {15, 12},
195     {24, 31},
196     {46, 19},
197     {36, 61},
198     {-1, -1},
199     {46, 15},
200     {43, 28},
201     {29, 29},
202     {18, 22},
203     {15, 8},
204     {33, 0},
205     {45, 10},
206     {38, 62},
207     {-1, -1},
208     {61, 11},
209     {0, 31},
210     {61, 50},
211     {-1, -1},
212     {0, 21},
213     {61, 19},
214     {-1, -1},
215     {0, 43},
216     {60, 42},
217     {-1, -1},
218     {0, 8},
219     {63, 30},
220     {0, 54},
221     {-1, -1},
222     {45, 18},
223     {34, 0},
224     {15, 5},
225     {6, 20},
226     {4, 49},
227     {10, 60},
228     {25, 59},
229     {41, 24},
230     {42, 39},
231     {58, 62},
232     {-1, -1},
233     {15, 0},
234     {18, 58},
235     {16, 44},
236     {29, 33},
237     {39, 36},
238     {47, 52},
239     {32, 63},
240     {17, 56},
241     {-1, -1},
242     {19, 0},
243     {22, 60},
244     {-1, -1},
245     {22, 36},
246     {43, 45},
247     {36, 62},
248     {23, 61},
249     {-1, -1},
250     {12, 56},
251     {29, 40},
252     {34, 0},
253     {23, 53},
254     {29, 63},
255     {35, 58},
256     {32, 46},
257     {49, 52},
258     {-1, -1},
259     {55, 18},
260     {44, 4},
261     {23, 0},
262     {7, 15},
263     {6, 34},
264     {16, 54},
265     {35, 63},
266     {56, 49},
267     {-1, -1},
268     {35, 41},
269     {21, 26},
270     {7, 38},
271     {20, 63},
272     {32, 52},
273     {35, 0},
274     {40, 55},
275     {52, 60},
276     {-1, -1},
277     {40, 28},
278     {19, 25},
279     {10, 41},
280     {27, 56},
281     {41, 46},
282     {-1, -1},
283     {46, 0},
284     {42, 44},
285     {52, 61},
286     {-1, -1},
287     {10, 31},
288     {51, 27},
289     {52, 14},
290     {40, 3},
291     {23, 2},
292     {7, 16},
293     {5, 44},
294     {26, 62},
295     {59, 56},
296     {-1, -1},
297     {46, 22},
298     {39, 2},
299     {25, 5},
300     {36, 49},
301     {28, 62},
302     {-1, -1},
303     {14, 35},
304     {43, 36},
305     {-1, -1},
306     {18, 39},
307     {40, 19},
308     {39, 0},
309     {28, 56},
310     {37, 62},
311     {32, 33},
312     {43, 34},
313     {-1, -1},
314     {39, 13},
315     {36, 2},
316     {24, 0},
317     {15, 16},
318     {24, 24},
319     {41, 9},
320     {38, 56},
321     {24, 62},
322     {23, 44},
323     {46, 26},
324     {-1, -1},
325     {28, 0},
326     {34, 5},
327     {15, 13},
328     {16, 27},
329     {38, 25},
330     {47, 16},
331     {41, 8},
332     {-1, -1},
333     {24, 32},
334     {20, 40},
335     {47, 42},
336     {51, 54},
337     {21, 62},
338     {11, 51},
339     {21, 42},
340     {-1, -1},
341     {17, 0},
342     {19, 62},
343     {25, 33},
344     {32, 34},
345     {34, 53},
346     {43, 62},
347     {-1, -1},
348     {26, 0},
349     {33, 5},
350     {-1, -1},
351     {31, 20},
352     {35, 60},
353     {-1, -1},
354     {31, 21},
355     {31, 62},
356     {-1, -1},
357     {26, 0},
358     {37, 9},
359     {-1, -1},
360     {19, 24},
361     {34, 14},
362     {29, 56},
363     {36, 63},
364     {44, 51},
365     {-1, -1},
366     {29, 1},
367     {40, 10},
368     {-1, -1},
369     {25, 0},
370     {33, 6},
371     {-1, -1},
372     {19, 22},
373     {29, 19},
374     {28, 57},
375     {41, 60},
376     {-1, -1},
377     {12, 60},
378     {40, 16},
379     {32, 54},
380     {40, 63},
381     {51, 54},
382     {-1, -1},
383     {41, 1},
384     {48, 6},
385     {-1, -1},
386     {32, 0},
387     {38, 6},
388     {-1, -1},
389     {38, 17},
390     {40, 57},
391     {28, 62},
392     {20, 52},
393     {-1, -1},
394     {23, 18},
395     {36, 11},
396     {37, 40},
397     {31, 63},
398     {21, 60},
399     {21, 44},
400     {43, 30},
401     {-1, -1},
402     {26, 0},
403     {40, 8},
404     {-1, -1},
405     {26, 0},
406     {35, 5},
407     {-1, -1},
408     {20, 19},
409     {35, 20},
410     {38, 52},
411     {29, 63},
412     {27, 47},
413     {42, 33},
414     {-1, -1},
415     {21, 0},
416     {22, 60},
417     {-1, -1},
418     {41, 30},
419     {18, 42},
420     {43, 60},
421     {-1, -1},
422     {17, 0},
423     {18, 60},
424     {-1, -1},
425     {35, 31},
426     {17, 50},
427     {-1, -1},
428     {27, 46},
429     {47, 63},
430     {-1, -1},
431     {8, 27},
432     {32, 18},
433     {34, 1},
434     {23, 3},
435     {20, 13},
436     {22, 63},
437     {21, 36},
438     {39, 25},
439     {41, 36},
440     {22, 39},
441     {39, 58},
442     {53, 57},
443     {-1, -1},
444     {17, 61},
445     {38, 20},
446     {33, 0},
447     {29, 47},
448     {44, 62},
449     {-1, -1},
450     {2, 0},
451     {4, 62},
452     {8, 23},
453     {20, 5},
454     {27, 17},
455     {27, 55},
456     {29, 23},
457     {43, 4},
458     {58, 59},
459     {-1, -1},
460     {0, 21},
461     {4, 8},
462     {16, 9},
463     {18, 53},
464     {18, 21},
465     {30, 11},
466     {38, 56},
467     {35, 25},
468     {48, 12},
469     {58, 51},
470     {63, 50},
471     {-1, -1},
472     {3, 2},
473     {9, 62},
474     {13, 21},
475     {38, 0},
476     {48, 6},
477     {58, 58},
478     {-1, -1},
479     {0, 18},
480     {3, 3},
481     {19, 7},
482     {17, 59},
483     {29, 13},
484     {44, 10},
485     {50, 53},
486     {63, 58},
487     {-1, -1},
488     {29, 0},
489     {10, 9},
490     {1, 30},
491     {5, 45},
492     {25, 63},
493     {51, 56},
494     {61, 36},
495     {47, 9},
496     {29, 0},
497     {19, 9},
498     {26, 22},
499     {59, 17},
500     {-1, -1},
501     {31, 12},
502     {3, 20},
503     {0, 34},
504     {11, 47},
505     {44, 51},
506     {63, 31},
507     {54, 16},
508     {31, 10},
509     {-1, -1},
510     {19, 0},
511     {29, 60},
512     {-1, -1},
513     {22, 9},
514     {24, 3},
515     {36, 6},
516     {44, 19},
517     {34, 30},
518     {21, 30},
519     {-1, -1},
520     {17, 0},
521     {26, 63},
522     {20, 20},
523     {36, 3},
524     {45, 10},
525     {36, 34},
526     {21, 33},
527     {-1, -1},
528     {39, 16},
529     {37, 1},
530     {27, 0},
531     {17, 21},
532     {27, 26},
533     {36, 18},
534     {29, 37},
535     {34, 62},
536     {41, 63},
537     {44, 53},
538     {36, 32},
539     {44, 32},
540     {-1, -1},
541     {40, 11},
542     {24, 0},
543     {9, 16},
544     {21, 30},
545     {41, 26},
546     {-1, -1},
547     {44, 7},
548     {51, 63},
549     {-1, -1},
550     {9, 0},
551     {15, 63},
552     {21, 15},
553     {36, 10},
554     {53, 15},
555     {-1, -1},
556     {0, 57},
557     {9, 52},
558     {33, 2},
559     {32, 19},
560     {50, 27},
561     {46, 54},
562     {63, 57},
563     {-1, -1},
564     {47, 18},
565     {41, 2},
566     {19, 1},
567     {12, 13},
568     {16, 26},
569     {44, 35},
570     {49, 48},
571     {34, 63},
572     {17, 60},
573     {12, 48},
574     {-1, -1},
575     {0, 56},
576     {34, 4},
577     {29, 24},
578     {47, 30},
579     {52, 46},
580     {38, 57},
581     {13, 51},
582     {24, 58},
583     {62, 53},
584     {-1, -1},
585     {11, 20},
586     {49, 13},
587     {-1, -1},
588     {35, 0},
589     {27, 45},
590     {32, 59},
591     {42, 63},
592     {48, 56},
593     {-1, -1},
594     {32, 0},
595     {23, 56},
596     {34, 63},
597     {51, 49},
598     {-1, -1},
599     {12, 23},
600     {47, 21},
601     {-1, -1},
602     {11, 62},
603     {33, 21},
604     {36, 0},
605     {29, 50},
606     {35, 62},
607     {55, 53},
608     {-1, -1},
609     {6, 23},
610     {52, 22},
611     {-1, -1},
612     {6, 0},
613     {8, 52},
614     {22, 62},
615     {30, 57},
616     {46, 1},
617     {48, 46},
618     {59, 60},
619     {-1, -1},
620     {1, 20},
621     {2, 4},
622     {17, 2},
623     {14, 54},
624     {28, 61},
625     {52, 1},
626     {45, 38},
627     {49, 52},
628     {62, 58},
629     {-1, -1},
630     {6, 5},
631     {36, 62},
632     {55, 0},
633     {-1, -1},
634     {0, 21},
635     {12, 15},
636     {25, 51},
637     {61, 11},
638     {-1, -1},
639     {0, 7},
640     {24, 54},
641     {32, 10},
642     {54, 56},
643     {60, 7},
644     {-1, -1},
645     {6, 4},
646     {0, 30},
647     {10, 56},
648     {22, 48},
649     {25, 32},
650     {36, 53},
651     {53, 54},
652     {62, 30},
653     {47, 10},
654     {-1, -1},
655     {0, 18},
656     {7, 11},
657     {13, 15},
658     {10, 40},
659     {21, 52},
660     {32, 40},
661     {33, 23},
662     {40, 47},
663     {57, 46},
664     {61, 32},
665     {53, 10},
666     {63, 14},
667     {-1, -1},
668     {4, 0},
669     {55, 49},
670     {-1, -1},
671     {49, 1},
672     {13, 59},
673     {-1, -1},
674     {49, 1},
675     {14, 60},
676     {-1, -1},
677     {4, 7},
678     {55, 61},
679     {-1, -1},
680     {0, 3},
681     {18, 8},
682     {32, 25},
683     {31, 38},
684     {3, 56},
685     {-1, -1},
686     {51, 6},
687     {30, 32},
688     {31, 50},
689     {41, 57},
690     {62, 53},
691     {-1, -1},
692     {17, 0},
693     {33, 23},
694     {-1, -1},
695     {45, 4},
696     {18, 63},
697     {-1, -1},
698     {49, 0},
699     {16, 62},
700     {-1, -1},
701     {13, 5},
702     {33, 28},
703     {-1, -1},
704     {11, 9},
705     {15, 0},
706     {23, 4},
707     {29, 32},
708     {44, 13},
709     {46, 55},
710     {34, 63},
711     {21, 60},
712     {28, 44},
713     {52, 30},
714     {-1, -1},
715     {8, 3},
716     {54, 0},
717     {9, 59},
718     {53, 61},
719     {-1, -1},
720     {20, 27},
721     {41, 43},
722     {-1, -1},
723     {16, 4},
724     {34, 3},
725     {25, 23},
726     {34, 22},
727     {38, 33},
728     {32, 56},
729     {22, 62},
730     {24, 43},
731     {45, 26},
732     {-1, -1},
733     {34, 0},
734     {11, 63},
735     {61, 25},
736     {1, 25},
737     {60, 60},
738     {32, 1},
739     {-1, -1},
740     {0, 35},
741     {4, 20},
742     {19, 18},
743     {49, 47},
744     {63, 34},
745     {57, 18},
746     {42, 18},
747     {15, 44},
748     {2, 36},
749     {-1, -1},
750     {31, 0},
751     {35, 40},
752     {-1, -1},
753     {26, 55},
754     {33, 60},
755     {-1, -1},
756     {0, 21},
757     {61, 19},
758     {-1, -1},
759     {0, 43},
760     {60, 42},
761     {-1, -1},
762     {19, 0},
763     {21, 61},
764     {-1, -1},
765     {42, 0},
766     {43, 60},
767     {-1, -1},
768     {19, 0},
769     {21, 61},
770     {-1, -1},
771     {42, 0},
772     {43, 60},
773     {-1, -1},
774     {0, 21},
775     {61, 19},
776     {-1, -1},
777     {0, 43},
778     {60, 42},
779     {-1, -1},
780     {16, 11},
781     {24, 0},
782     {44, 5},
783     {46, 24},
784     {31, 31},
785     {32, 47},
786     {31, 60},
787     {-1, -1},
788     {51, 57},
789     {8, 10},
790     {23, 4},
791     {36, 14},
792     {11, 40},
793     {24, 49},
794     {52, 41},
795     {-1, -1},
796     {8, 10},
797     {23, 4},
798     {36, 14},
799     {11, 40},
800     {24, 49},
801     {52, 41},
802     {-1, -1},
803     {8, 10},
804     {51, 57},
805     {-1, -1},
806     {47, 23},
807     {41, 7},
808     {19, 6},
809     {12, 18},
810     {16, 26},
811     {44, 35},
812     {49, 43},
813     {34, 58},
814     {17, 55},
815     {12, 43},
816     {-1, -1},
817     {24, 0},
818     {26, 61},
819     {-1, -1},
820     {37, 0},
821     {38, 60},
822     {-1, -1},
823     {47, 23},
824     {41, 7},
825     {19, 6},
826     {12, 18},
827     {16, 26},
828     {44, 35},
829     {49, 43},
830     {34, 58},
831     {17, 55},
832     {12, 43},
833     {-1, -1},
834     {30, 0},
835     {31, 61},
836     {-1, -1},
837     {53, 5},
838     {7, 57},
839     {-1, -1},
840     {16, 9},
841     {25, 18},
842     {17, 27},
843     {8, 19},
844     {16, 9},
845     {-1, -1},
846     {44, 36},
847     {53, 46},
848     {45, 55},
849     {35, 47},
850     {44, 36},
851     {-1, -1},
852 };
853 
854 PRCPrototypeEntry PrototypeListEntries[PDIC_PATTERN_NUM] =
855 {
856     {
857         TRUE, 4, 0, 0, NULL,        // '*'
858         0, 9, 3
859     },
860     {
861         TRUE, 4, 1, 0, NULL,        // '+'
862         9, 6, 2
863     },
864     {
865         TRUE, 4, 1, 0, NULL,        // '+' Different stroke order
866         15, 6, 2
867     },
868     {
869         TRUE, 4, 2, 0, NULL,        // '-'
870         21, 3, 1
871     },
872     {
873         TRUE, 1, 3, 0, NULL,        // '0'
874         24, 8, 1
875     },
876     {
877         TRUE, 1, 3, 0, NULL,        // '0' Counterclockwise
878         32, 9, 1
879     },
880     {
881         TRUE, 1, 3, 0, NULL,        // '0' With slash
882         41, 11, 2
883     },
884     {
885         TRUE, 1, 4, 0, NULL,        // '1' Vertical bar
886         52, 3, 1
887     },
888     {
889         TRUE, 1, 4, 0, NULL,        // '1' Serif
890         55, 4, 1
891     },
892     {
893         TRUE, 1, 4, 0, NULL,        // '1' 2 strokes
894         59, 7, 2
895     },
896     {
897         TRUE, 1, 5, 0, NULL,        // '2'
898         66, 7, 1
899     },
900     {
901         TRUE, 1, 6, 0, NULL,        // '3'
902         73, 9, 1
903     },
904     {
905         TRUE, 1, 7, 0, NULL,        // '4'
906         82, 7, 2
907     },
908     {
909         TRUE, 1, 7, 0, NULL,        // '4' 1 stroke
910         89, 5, 1
911     },
912     {
913         TRUE, 1, 8, 0, NULL,        // '5'
914         94, 10, 2
915     },
916     {
917         TRUE, 1, 8, 0, NULL,        // '5' Different stroke order
918         104, 10, 2
919     },
920     {
921         TRUE, 1, 9, 0, NULL,        // '6'
922         114, 8, 1
923     },
924     {
925         TRUE, 1, 9, 0, NULL,        // '6' Typeface variation
926         122, 9, 1
927     },
928     {
929         TRUE, 1, 10, 0, NULL,        // '7'
930         131, 7, 2
931     },
932     {
933         TRUE, 1, 10, 0, NULL,        // '7' 1 stroke
934         138, 4, 1
935     },
936     {
937         TRUE, 1, 10, 0, NULL,        // '7' With slash
938         142, 7, 2
939     },
940     {
941         TRUE, 1, 11, 0, NULL,        // '8'
942         149, 10, 1
943     },
944     {
945         TRUE, 1, 11, 0, NULL,        // '8' Difference in starting position
946         159, 11, 1
947     },
948     {
949         TRUE, 1, 11, 0, NULL,        // '8' Counterclockwise
950         170, 10, 1
951     },
952     {
953         TRUE, 1, 12, 0, NULL,        // '9'
954         180, 7, 1
955     },
956     {
957         TRUE, 1, 12, 0, NULL,        // '9' Different stroke order
958         187, 9, 1
959     },
960     {
961         TRUE, 4, 13, 0, NULL,        // '<'
962         196, 4, 1
963     },
964     {
965         TRUE, 4, 14, 0, NULL,        // '='
966         200, 6, 2
967     },
968     {
969         TRUE, 4, 15, 0, NULL,        // '>'
970         206, 4, 1
971     },
972     {
973         TRUE, 2, 16, 0, NULL,        // 'a'
974         210, 11, 1
975     },
976     {
977         TRUE, 2, 17, 0, NULL,        // 'b'
978         221, 9, 1
979     },
980     {
981         TRUE, 2, 17, 0, NULL,        // 'b' 2 strokes
982         230, 8, 2
983     },
984     {
985         TRUE, 2, 17, 0, NULL,        // 'b' Cursive
986         238, 9, 1
987     },
988     {
989         TRUE, 2, 18, 0, NULL,        // 'c'
990         247, 9, 1
991     },
992     {
993         TRUE, 2, 19, 0, NULL,        // 'd'
994         256, 9, 1
995     },
996     {
997         TRUE, 2, 19, 0, NULL,        // 'd' 2 strokes
998         265, 10, 2
999     },
1000     {
1001         TRUE, 2, 20, 0, NULL,        // 'e'
1002         275, 10, 1
1003     },
1004     {
1005         TRUE, 2, 21, 0, NULL,        // 'f'
1006         285, 9, 2
1007     },
1008     {
1009         TRUE, 2, 21, 0, NULL,        // 'f' Cursive
1010         294, 8, 1
1011     },
1012     {
1013         TRUE, 2, 22, 0, NULL,        // 'g'
1014         302, 11, 1
1015     },
1016     {
1017         TRUE, 2, 22, 0, NULL,        // 'g' 2 strokes
1018         313, 16, 2
1019     },
1020     {
1021         TRUE, 2, 23, 0, NULL,        // 'h'
1022         329, 7, 1
1023     },
1024     {
1025         TRUE, 2, 24, 0, NULL,        // 'i'
1026         336, 6, 2
1027     },
1028     {
1029         TRUE, 2, 24, 0, NULL,        // 'i' Different stroke order
1030         342, 6, 2
1031     },
1032     {
1033         TRUE, 2, 24, 0, NULL,        // 'i' Serif
1034         348, 9, 2
1035     },
1036     {
1037         TRUE, 2, 24, 0, NULL,        // 'i' Serif, different stroke order
1038         357, 8, 2
1039     },
1040     {
1041         TRUE, 2, 24, 0, NULL,        // 'i' Cursive
1042         365, 9, 2
1043     },
1044     {
1045         TRUE, 2, 25, 0, NULL,        // 'j'
1046         374, 8, 2
1047     },
1048     {
1049         TRUE, 2, 25, 0, NULL,        // 'j' Serif
1050         382, 11, 2
1051     },
1052     {
1053         TRUE, 2, 25, 0, NULL,        // 'j' Serif, different stroke order
1054         393, 10, 2
1055     },
1056     {
1057         TRUE, 2, 26, 0, NULL,        // 'k'
1058         403, 7, 2
1059     },
1060     {
1061         TRUE, 2, 26, 0, NULL,        // 'k' 3 strokes
1062         410, 9, 3
1063     },
1064     {
1065         TRUE, 2, 26, 0, NULL,        // 'k' Cursive
1066         419, 13, 1
1067     },
1068     {
1069         TRUE, 2, 27, 0, NULL,        // 'l'
1070         432, 6, 1
1071     },
1072     {
1073         TRUE, 2, 28, 0, NULL,        // 'm'
1074         438, 10, 1
1075     },
1076     {
1077         TRUE, 2, 28, 0, NULL,        // 'm' Serif
1078         448, 12, 1
1079     },
1080     {
1081         TRUE, 2, 29, 0, NULL,        // 'n'
1082         460, 7, 1
1083     },
1084     {
1085         TRUE, 2, 29, 0, NULL,        // 'n' Serif
1086         467, 9, 1
1087     },
1088     {
1089         TRUE, 2, 30, 0, NULL,        // 'o' Serif
1090         476, 13, 1
1091     },
1092     {
1093         TRUE, 2, 30, 0, NULL,        // 'o' Wide
1094         489, 9, 1
1095     },
1096     {
1097         TRUE, 2, 31, 0, NULL,        // 'p'
1098         498, 10, 2
1099     },
1100     {
1101         TRUE, 2, 31, 0, NULL,        // 'p' 1 stroke
1102         508, 8, 1
1103     },
1104     {
1105         TRUE, 2, 32, 0, NULL,        // 'q'
1106         516, 13, 1
1107     },
1108     {
1109         TRUE, 2, 32, 0, NULL,        // 'q' 2 strokes
1110         529, 9, 2
1111     },
1112     {
1113         TRUE, 2, 33, 0, NULL,        // 'r'
1114         538, 6, 1
1115     },
1116     {
1117         TRUE, 2, 33, 0, NULL,        // 'r' Cursive
1118         544, 8, 1
1119     },
1120     {
1121         TRUE, 2, 34, 0, NULL,        // 's'
1122         552, 11, 1
1123     },
1124     {
1125         TRUE, 2, 34, 0, NULL,        // 's' Cursive
1126         563, 10, 1
1127     },
1128     {
1129         TRUE, 2, 35, 0, NULL,        // 't'
1130         573, 9, 2
1131     },
1132     {
1133         TRUE, 2, 35, 0, NULL,        // 't' Different stroke order
1134         582, 8, 2
1135     },
1136     {
1137         TRUE, 2, 35, 0, NULL,        // 't' Cursive
1138         590, 10, 2
1139     },
1140     {
1141         TRUE, 2, 36, 0, NULL,        // 'u'
1142         600, 8, 1
1143     },
1144     {
1145         TRUE, 2, 36, 0, NULL,        // 'u' Serif
1146         608, 10, 1
1147     },
1148     {
1149         TRUE, 2, 37, 0, NULL,        // 'v'
1150         618, 4, 1
1151     },
1152     {
1153         TRUE, 2, 37, 0, NULL,        // 'v' Cursive
1154         622, 5, 1
1155     },
1156     {
1157         TRUE, 2, 38, 0, NULL,        // 'w'
1158         627, 6, 1
1159     },
1160     {
1161         TRUE, 2, 38, 0, NULL,        // 'w' Soft
1162         633, 10, 1
1163     },
1164     {
1165         TRUE, 2, 38, 0, NULL,        // 'w' Cursive
1166         643, 13, 1
1167     },
1168     {
1169         TRUE, 2, 39, 0, NULL,        // 'x'
1170         656, 6, 2
1171     },
1172     {
1173         TRUE, 2, 39, 0, NULL,        // 'x' Different stroke order
1174         662, 6, 2
1175     },
1176     {
1177         TRUE, 2, 39, 0, NULL,        // 'x' Cursive
1178         668, 12, 2
1179     },
1180     {
1181         TRUE, 2, 40, 0, NULL,        // 'y'
1182         680, 6, 2
1183     },
1184     {
1185         TRUE, 2, 40, 0, NULL,        // 'y' Different stroke order
1186         686, 6, 2
1187     },
1188     {
1189         TRUE, 2, 40, 0, NULL,        // 'y' Cursive
1190         692, 11, 1
1191     },
1192     {
1193         TRUE, 2, 41, 0, NULL,        // 'z' With slash
1194         703, 8, 2
1195     },
1196     {
1197         TRUE, 2, 41, 0, NULL,        // 'z' Cursive
1198         711, 10, 1
1199     },
1200     {
1201         TRUE, 16, 42, 0, NULL,        // '��'
1202         721, 7, 1
1203     },
1204     {
1205         TRUE, 16, 43, 0, NULL,        // '��'
1206         728, 10, 1
1207     },
1208     {
1209         TRUE, 4, 44, 0, NULL,        // '!'
1210         738, 6, 2
1211     },
1212     {
1213         TRUE, 4, 45, 0, NULL,        // '#'
1214         744, 12, 4
1215     },
1216     {
1217         TRUE, 4, 45, 0, NULL,        // '#' Different stroke order
1218         756, 12, 4
1219     },
1220     {
1221         TRUE, 4, 46, 0, NULL,        // '?'
1222         768, 8, 1
1223     },
1224     {
1225         TRUE, 4, 47, 0, NULL,        // '&'
1226         776, 8, 1
1227     },
1228     {
1229         TRUE, 4, 47, 0, NULL,        // '&' Different stroke order
1230         784, 10, 2
1231     },
1232     {
1233         TRUE, 4, 48, 0, NULL,        // '$'
1234         794, 17, 3
1235     },
1236     {
1237         TRUE, 4, 48, 0, NULL,        // '$' One bar
1238         811, 14, 2
1239     },
1240     {
1241         TRUE, 4, 49, 0, NULL,        // '%'
1242         825, 15, 3
1243     },
1244 };
1245 
1246 PRCPrototypeList PrototypeList =
1247 {
1248     PrototypeListEntries,              /* entries */
1249     PDIC_PATTERN_NUM,                  /* entrySize */
1250     PrototypeListPointArray,           /* pointArray */
1251     PDIC_WHOLE_POINT_NUM,              /* pointArraySize */
1252 
1253     PDIC_NORMALIZE_SIZE,               /* normalizeSize */
1254 };
1255 
1256 char *PatternName[PDIC_CODE_NUM] =
1257 {
1258     "*",
1259     "+",
1260     "-",
1261     "0",
1262     "1",
1263     "2",
1264     "3",
1265     "4",
1266     "5",
1267     "6",
1268     "7",
1269     "8",
1270     "9",
1271     "<",
1272     "=",
1273     ">",
1274     "a",
1275     "b",
1276     "c",
1277     "d",
1278     "e",
1279     "f",
1280     "g",
1281     "h",
1282     "i",
1283     "j",
1284     "k",
1285     "l",
1286     "m",
1287     "n",
1288     "o",
1289     "p",
1290     "q",
1291     "r",
1292     "s",
1293     "t",
1294     "u",
1295     "v",
1296     "w",
1297     "x",
1298     "y",
1299     "z",
1300     "STAR",
1301     "INF",
1302     "!",
1303     "#",
1304     "?",
1305     "&",
1306     "$",
1307     "%",
1308 };
1309 
1310 /*---------------------------------------------------------------------------*
1311   End of File
1312  *---------------------------------------------------------------------------*/
1313