File Coverage

blib/lib/Locale/CLDR/Plurals.pm
Criterion Covered Total %
statement 33 33 100.0
branch 8 8 100.0
condition 6 10 60.0
subroutine 9 9 100.0
pod 0 2 0.0
total 56 62 90.3


line stmt bran cond sub pod time code
1             package Locale::CLDR::Plurals;
2             # This file auto generated from Data\common\supplemental\ordinals.xml
3             # on Mon 6 Apr 3:14:51 pm GMT
4             # XML file generated 2014-02-13 11:57:02 -0600 (Thu, 13 Feb 2014)
5              
6 20     20   12965 use version;
  20         29  
  20         95  
7              
8             our $VERSION = version->declare('v0.27.0');
9              
10 20     20   1528 use v5.10;
  20         58  
  20         593  
11 20     20   73 use mro 'c3';
  20         28  
  20         100  
12 20     20   506 use utf8;
  20         24  
  20         93  
13 20     20   516 use if $^V ge v5.12.0, feature => 'unicode_strings';
  20         25  
  20         341  
14              
15 20     20   1590 use Moose::Role;
  20         31  
  20         104  
16              
17             my %_plurals = (
18             cardinal => {
19             af => {
20             one => sub {
21            
22             my $number = shift;
23             my $n = abs($number);
24             my $i = int($n);
25             my ($f) = $number =~ /\.(.*)$/;
26             $f //= '';
27             my $t = length $f ? $f + 0 : '';
28             my $v = length $f;
29             my $w = length $t;
30              
31             return scalar (grep {$n == $_} (1)) ;
32             },
33             },
34             ak => {
35             one => sub {
36            
37             my $number = shift;
38             my $n = abs($number);
39             my $i = int($n);
40             my ($f) = $number =~ /\.(.*)$/;
41             $f //= '';
42             my $t = length $f ? $f + 0 : '';
43             my $v = length $f;
44             my $w = length $t;
45              
46             return scalar (grep {$n == $_} (0..1)) ;
47             },
48             },
49             am => {
50             one => sub {
51            
52             my $number = shift;
53             my $n = abs($number);
54             my $i = int($n);
55             my ($f) = $number =~ /\.(.*)$/;
56             $f //= '';
57             my $t = length $f ? $f + 0 : '';
58             my $v = length $f;
59             my $w = length $t;
60              
61             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
62             },
63             },
64             ar => {
65             few => sub {
66            
67             my $number = shift;
68             my $n = abs($number);
69             my $i = int($n);
70             my ($f) = $number =~ /\.(.*)$/;
71             $f //= '';
72             my $t = length $f ? $f + 0 : '';
73             my $v = length $f;
74             my $w = length $t;
75              
76             return scalar (grep {$n % 100 == $_} (3..10)) ;
77             },
78             many => sub {
79            
80             my $number = shift;
81             my $n = abs($number);
82             my $i = int($n);
83             my ($f) = $number =~ /\.(.*)$/;
84             $f //= '';
85             my $t = length $f ? $f + 0 : '';
86             my $v = length $f;
87             my $w = length $t;
88              
89             return scalar (grep {$n % 100 == $_} (11..99)) ;
90             },
91             one => sub {
92            
93             my $number = shift;
94             my $n = abs($number);
95             my $i = int($n);
96             my ($f) = $number =~ /\.(.*)$/;
97             $f //= '';
98             my $t = length $f ? $f + 0 : '';
99             my $v = length $f;
100             my $w = length $t;
101              
102             return scalar (grep {$n == $_} (1)) ;
103             },
104             two => sub {
105            
106             my $number = shift;
107             my $n = abs($number);
108             my $i = int($n);
109             my ($f) = $number =~ /\.(.*)$/;
110             $f //= '';
111             my $t = length $f ? $f + 0 : '';
112             my $v = length $f;
113             my $w = length $t;
114              
115             return scalar (grep {$n == $_} (2)) ;
116             },
117             zero => sub {
118            
119             my $number = shift;
120             my $n = abs($number);
121             my $i = int($n);
122             my ($f) = $number =~ /\.(.*)$/;
123             $f //= '';
124             my $t = length $f ? $f + 0 : '';
125             my $v = length $f;
126             my $w = length $t;
127              
128             return scalar (grep {$n == $_} (0)) ;
129             },
130             },
131             as => {
132             one => sub {
133            
134             my $number = shift;
135             my $n = abs($number);
136             my $i = int($n);
137             my ($f) = $number =~ /\.(.*)$/;
138             $f //= '';
139             my $t = length $f ? $f + 0 : '';
140             my $v = length $f;
141             my $w = length $t;
142              
143             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
144             },
145             },
146             asa => {
147             one => sub {
148            
149             my $number = shift;
150             my $n = abs($number);
151             my $i = int($n);
152             my ($f) = $number =~ /\.(.*)$/;
153             $f //= '';
154             my $t = length $f ? $f + 0 : '';
155             my $v = length $f;
156             my $w = length $t;
157              
158             return scalar (grep {$n == $_} (1)) ;
159             },
160             },
161             ast => {
162             one => sub {
163            
164             my $number = shift;
165             my $n = abs($number);
166             my $i = int($n);
167             my ($f) = $number =~ /\.(.*)$/;
168             $f //= '';
169             my $t = length $f ? $f + 0 : '';
170             my $v = length $f;
171             my $w = length $t;
172              
173             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
174             },
175             },
176             az => {
177             one => sub {
178            
179             my $number = shift;
180             my $n = abs($number);
181             my $i = int($n);
182             my ($f) = $number =~ /\.(.*)$/;
183             $f //= '';
184             my $t = length $f ? $f + 0 : '';
185             my $v = length $f;
186             my $w = length $t;
187              
188             return scalar (grep {$n == $_} (1)) ;
189             },
190             },
191             be => {
192             few => sub {
193            
194             my $number = shift;
195             my $n = abs($number);
196             my $i = int($n);
197             my ($f) = $number =~ /\.(.*)$/;
198             $f //= '';
199             my $t = length $f ? $f + 0 : '';
200             my $v = length $f;
201             my $w = length $t;
202              
203             return scalar (grep {$n % 10 == $_} (2..4)) && ! scalar (grep {$n % 100 == $_} (12..14)) ;
204             },
205             many => sub {
206            
207             my $number = shift;
208             my $n = abs($number);
209             my $i = int($n);
210             my ($f) = $number =~ /\.(.*)$/;
211             $f //= '';
212             my $t = length $f ? $f + 0 : '';
213             my $v = length $f;
214             my $w = length $t;
215              
216             return scalar (grep {$n % 10 == $_} (0)) || scalar (grep {$n % 10 == $_} (5..9)) || scalar (grep {$n % 100 == $_} (11..14)) ;
217             },
218             one => sub {
219            
220             my $number = shift;
221             my $n = abs($number);
222             my $i = int($n);
223             my ($f) = $number =~ /\.(.*)$/;
224             $f //= '';
225             my $t = length $f ? $f + 0 : '';
226             my $v = length $f;
227             my $w = length $t;
228              
229             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) ;
230             },
231             },
232             bem => {
233             one => sub {
234            
235             my $number = shift;
236             my $n = abs($number);
237             my $i = int($n);
238             my ($f) = $number =~ /\.(.*)$/;
239             $f //= '';
240             my $t = length $f ? $f + 0 : '';
241             my $v = length $f;
242             my $w = length $t;
243              
244             return scalar (grep {$n == $_} (1)) ;
245             },
246             },
247             bez => {
248             one => sub {
249            
250             my $number = shift;
251             my $n = abs($number);
252             my $i = int($n);
253             my ($f) = $number =~ /\.(.*)$/;
254             $f //= '';
255             my $t = length $f ? $f + 0 : '';
256             my $v = length $f;
257             my $w = length $t;
258              
259             return scalar (grep {$n == $_} (1)) ;
260             },
261             },
262             bg => {
263             one => sub {
264            
265             my $number = shift;
266             my $n = abs($number);
267             my $i = int($n);
268             my ($f) = $number =~ /\.(.*)$/;
269             $f //= '';
270             my $t = length $f ? $f + 0 : '';
271             my $v = length $f;
272             my $w = length $t;
273              
274             return scalar (grep {$n == $_} (1)) ;
275             },
276             },
277             bh => {
278             one => sub {
279            
280             my $number = shift;
281             my $n = abs($number);
282             my $i = int($n);
283             my ($f) = $number =~ /\.(.*)$/;
284             $f //= '';
285             my $t = length $f ? $f + 0 : '';
286             my $v = length $f;
287             my $w = length $t;
288              
289             return scalar (grep {$n == $_} (0..1)) ;
290             },
291             },
292             bn => {
293             one => sub {
294            
295             my $number = shift;
296             my $n = abs($number);
297             my $i = int($n);
298             my ($f) = $number =~ /\.(.*)$/;
299             $f //= '';
300             my $t = length $f ? $f + 0 : '';
301             my $v = length $f;
302             my $w = length $t;
303              
304             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
305             },
306             },
307             br => {
308             few => sub {
309            
310             my $number = shift;
311             my $n = abs($number);
312             my $i = int($n);
313             my ($f) = $number =~ /\.(.*)$/;
314             $f //= '';
315             my $t = length $f ? $f + 0 : '';
316             my $v = length $f;
317             my $w = length $t;
318              
319             return scalar (grep {$n % 10 == $_} (3..4,9)) && ! scalar (grep {$n % 100 == $_} (10..19,70..79,90..99)) ;
320             },
321             many => sub {
322            
323             my $number = shift;
324             my $n = abs($number);
325             my $i = int($n);
326             my ($f) = $number =~ /\.(.*)$/;
327             $f //= '';
328             my $t = length $f ? $f + 0 : '';
329             my $v = length $f;
330             my $w = length $t;
331              
332             return ! scalar (grep {$n == $_} (0)) && scalar (grep {$n % 1000000 == $_} (0)) ;
333             },
334             one => sub {
335            
336             my $number = shift;
337             my $n = abs($number);
338             my $i = int($n);
339             my ($f) = $number =~ /\.(.*)$/;
340             $f //= '';
341             my $t = length $f ? $f + 0 : '';
342             my $v = length $f;
343             my $w = length $t;
344              
345             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11,71,91)) ;
346             },
347             two => sub {
348            
349             my $number = shift;
350             my $n = abs($number);
351             my $i = int($n);
352             my ($f) = $number =~ /\.(.*)$/;
353             $f //= '';
354             my $t = length $f ? $f + 0 : '';
355             my $v = length $f;
356             my $w = length $t;
357              
358             return scalar (grep {$n % 10 == $_} (2)) && ! scalar (grep {$n % 100 == $_} (12,72,92)) ;
359             },
360             },
361             brx => {
362             one => sub {
363            
364             my $number = shift;
365             my $n = abs($number);
366             my $i = int($n);
367             my ($f) = $number =~ /\.(.*)$/;
368             $f //= '';
369             my $t = length $f ? $f + 0 : '';
370             my $v = length $f;
371             my $w = length $t;
372              
373             return scalar (grep {$n == $_} (1)) ;
374             },
375             },
376             bs => {
377             few => sub {
378            
379             my $number = shift;
380             my $n = abs($number);
381             my $i = int($n);
382             my ($f) = $number =~ /\.(.*)$/;
383             $f //= '';
384             my $t = length $f ? $f + 0 : '';
385             my $v = length $f;
386             my $w = length $t;
387              
388             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) || scalar (grep {$f % 10 == $_} (2..4)) && ! scalar (grep {$f % 100 == $_} (12..14)) ;
389             },
390             one => sub {
391            
392             my $number = shift;
393             my $n = abs($number);
394             my $i = int($n);
395             my ($f) = $number =~ /\.(.*)$/;
396             $f //= '';
397             my $t = length $f ? $f + 0 : '';
398             my $v = length $f;
399             my $w = length $t;
400              
401             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) ;
402             },
403             },
404             ca => {
405             one => sub {
406            
407             my $number = shift;
408             my $n = abs($number);
409             my $i = int($n);
410             my ($f) = $number =~ /\.(.*)$/;
411             $f //= '';
412             my $t = length $f ? $f + 0 : '';
413             my $v = length $f;
414             my $w = length $t;
415              
416             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
417             },
418             },
419             ce => {
420             one => sub {
421            
422             my $number = shift;
423             my $n = abs($number);
424             my $i = int($n);
425             my ($f) = $number =~ /\.(.*)$/;
426             $f //= '';
427             my $t = length $f ? $f + 0 : '';
428             my $v = length $f;
429             my $w = length $t;
430              
431             return scalar (grep {$n == $_} (1)) ;
432             },
433             },
434             cgg => {
435             one => sub {
436            
437             my $number = shift;
438             my $n = abs($number);
439             my $i = int($n);
440             my ($f) = $number =~ /\.(.*)$/;
441             $f //= '';
442             my $t = length $f ? $f + 0 : '';
443             my $v = length $f;
444             my $w = length $t;
445              
446             return scalar (grep {$n == $_} (1)) ;
447             },
448             },
449             chr => {
450             one => sub {
451            
452             my $number = shift;
453             my $n = abs($number);
454             my $i = int($n);
455             my ($f) = $number =~ /\.(.*)$/;
456             $f //= '';
457             my $t = length $f ? $f + 0 : '';
458             my $v = length $f;
459             my $w = length $t;
460              
461             return scalar (grep {$n == $_} (1)) ;
462             },
463             },
464             ckb => {
465             one => sub {
466            
467             my $number = shift;
468             my $n = abs($number);
469             my $i = int($n);
470             my ($f) = $number =~ /\.(.*)$/;
471             $f //= '';
472             my $t = length $f ? $f + 0 : '';
473             my $v = length $f;
474             my $w = length $t;
475              
476             return scalar (grep {$n == $_} (1)) ;
477             },
478             },
479             cs => {
480             few => sub {
481            
482             my $number = shift;
483             my $n = abs($number);
484             my $i = int($n);
485             my ($f) = $number =~ /\.(.*)$/;
486             $f //= '';
487             my $t = length $f ? $f + 0 : '';
488             my $v = length $f;
489             my $w = length $t;
490              
491             return scalar (grep {$i == $_} (2..4)) && scalar (grep {$v == $_} (0)) ;
492             },
493             many => sub {
494            
495             my $number = shift;
496             my $n = abs($number);
497             my $i = int($n);
498             my ($f) = $number =~ /\.(.*)$/;
499             $f //= '';
500             my $t = length $f ? $f + 0 : '';
501             my $v = length $f;
502             my $w = length $t;
503              
504             return ! scalar (grep {$v == $_} (0)) ;
505             },
506             one => sub {
507            
508             my $number = shift;
509             my $n = abs($number);
510             my $i = int($n);
511             my ($f) = $number =~ /\.(.*)$/;
512             $f //= '';
513             my $t = length $f ? $f + 0 : '';
514             my $v = length $f;
515             my $w = length $t;
516              
517             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
518             },
519             },
520             cy => {
521             few => sub {
522            
523             my $number = shift;
524             my $n = abs($number);
525             my $i = int($n);
526             my ($f) = $number =~ /\.(.*)$/;
527             $f //= '';
528             my $t = length $f ? $f + 0 : '';
529             my $v = length $f;
530             my $w = length $t;
531              
532             return scalar (grep {$n == $_} (3)) ;
533             },
534             many => sub {
535            
536             my $number = shift;
537             my $n = abs($number);
538             my $i = int($n);
539             my ($f) = $number =~ /\.(.*)$/;
540             $f //= '';
541             my $t = length $f ? $f + 0 : '';
542             my $v = length $f;
543             my $w = length $t;
544              
545             return scalar (grep {$n == $_} (6)) ;
546             },
547             one => sub {
548            
549             my $number = shift;
550             my $n = abs($number);
551             my $i = int($n);
552             my ($f) = $number =~ /\.(.*)$/;
553             $f //= '';
554             my $t = length $f ? $f + 0 : '';
555             my $v = length $f;
556             my $w = length $t;
557              
558             return scalar (grep {$n == $_} (1)) ;
559             },
560             two => sub {
561            
562             my $number = shift;
563             my $n = abs($number);
564             my $i = int($n);
565             my ($f) = $number =~ /\.(.*)$/;
566             $f //= '';
567             my $t = length $f ? $f + 0 : '';
568             my $v = length $f;
569             my $w = length $t;
570              
571             return scalar (grep {$n == $_} (2)) ;
572             },
573             zero => sub {
574            
575             my $number = shift;
576             my $n = abs($number);
577             my $i = int($n);
578             my ($f) = $number =~ /\.(.*)$/;
579             $f //= '';
580             my $t = length $f ? $f + 0 : '';
581             my $v = length $f;
582             my $w = length $t;
583              
584             return scalar (grep {$n == $_} (0)) ;
585             },
586             },
587             da => {
588             one => sub {
589            
590             my $number = shift;
591             my $n = abs($number);
592             my $i = int($n);
593             my ($f) = $number =~ /\.(.*)$/;
594             $f //= '';
595             my $t = length $f ? $f + 0 : '';
596             my $v = length $f;
597             my $w = length $t;
598              
599             return scalar (grep {$n == $_} (1)) || ! scalar (grep {$t == $_} (0)) && scalar (grep {$i == $_} (0,1)) ;
600             },
601             },
602             de => {
603             one => sub {
604            
605             my $number = shift;
606             my $n = abs($number);
607             my $i = int($n);
608             my ($f) = $number =~ /\.(.*)$/;
609             $f //= '';
610             my $t = length $f ? $f + 0 : '';
611             my $v = length $f;
612             my $w = length $t;
613              
614             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
615             },
616             },
617             dsb => {
618             few => sub {
619            
620             my $number = shift;
621             my $n = abs($number);
622             my $i = int($n);
623             my ($f) = $number =~ /\.(.*)$/;
624             $f //= '';
625             my $t = length $f ? $f + 0 : '';
626             my $v = length $f;
627             my $w = length $t;
628              
629             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (3..4)) || scalar (grep {$f % 100 == $_} (3..4)) ;
630             },
631             one => sub {
632            
633             my $number = shift;
634             my $n = abs($number);
635             my $i = int($n);
636             my ($f) = $number =~ /\.(.*)$/;
637             $f //= '';
638             my $t = length $f ? $f + 0 : '';
639             my $v = length $f;
640             my $w = length $t;
641              
642             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (1)) || scalar (grep {$f % 100 == $_} (1)) ;
643             },
644             two => sub {
645            
646             my $number = shift;
647             my $n = abs($number);
648             my $i = int($n);
649             my ($f) = $number =~ /\.(.*)$/;
650             $f //= '';
651             my $t = length $f ? $f + 0 : '';
652             my $v = length $f;
653             my $w = length $t;
654              
655             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (2)) || scalar (grep {$f % 100 == $_} (2)) ;
656             },
657             },
658             dv => {
659             one => sub {
660            
661             my $number = shift;
662             my $n = abs($number);
663             my $i = int($n);
664             my ($f) = $number =~ /\.(.*)$/;
665             $f //= '';
666             my $t = length $f ? $f + 0 : '';
667             my $v = length $f;
668             my $w = length $t;
669              
670             return scalar (grep {$n == $_} (1)) ;
671             },
672             },
673             ee => {
674             one => sub {
675            
676             my $number = shift;
677             my $n = abs($number);
678             my $i = int($n);
679             my ($f) = $number =~ /\.(.*)$/;
680             $f //= '';
681             my $t = length $f ? $f + 0 : '';
682             my $v = length $f;
683             my $w = length $t;
684              
685             return scalar (grep {$n == $_} (1)) ;
686             },
687             },
688             el => {
689             one => sub {
690            
691             my $number = shift;
692             my $n = abs($number);
693             my $i = int($n);
694             my ($f) = $number =~ /\.(.*)$/;
695             $f //= '';
696             my $t = length $f ? $f + 0 : '';
697             my $v = length $f;
698             my $w = length $t;
699              
700             return scalar (grep {$n == $_} (1)) ;
701             },
702             },
703             en => {
704             one => sub {
705            
706             my $number = shift;
707             my $n = abs($number);
708             my $i = int($n);
709             my ($f) = $number =~ /\.(.*)$/;
710             $f //= '';
711             my $t = length $f ? $f + 0 : '';
712             my $v = length $f;
713             my $w = length $t;
714              
715             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
716             },
717             },
718             eo => {
719             one => sub {
720            
721             my $number = shift;
722             my $n = abs($number);
723             my $i = int($n);
724             my ($f) = $number =~ /\.(.*)$/;
725             $f //= '';
726             my $t = length $f ? $f + 0 : '';
727             my $v = length $f;
728             my $w = length $t;
729              
730             return scalar (grep {$n == $_} (1)) ;
731             },
732             },
733             es => {
734             one => sub {
735            
736             my $number = shift;
737             my $n = abs($number);
738             my $i = int($n);
739             my ($f) = $number =~ /\.(.*)$/;
740             $f //= '';
741             my $t = length $f ? $f + 0 : '';
742             my $v = length $f;
743             my $w = length $t;
744              
745             return scalar (grep {$n == $_} (1)) ;
746             },
747             },
748             et => {
749             one => sub {
750            
751             my $number = shift;
752             my $n = abs($number);
753             my $i = int($n);
754             my ($f) = $number =~ /\.(.*)$/;
755             $f //= '';
756             my $t = length $f ? $f + 0 : '';
757             my $v = length $f;
758             my $w = length $t;
759              
760             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
761             },
762             },
763             eu => {
764             one => sub {
765            
766             my $number = shift;
767             my $n = abs($number);
768             my $i = int($n);
769             my ($f) = $number =~ /\.(.*)$/;
770             $f //= '';
771             my $t = length $f ? $f + 0 : '';
772             my $v = length $f;
773             my $w = length $t;
774              
775             return scalar (grep {$n == $_} (1)) ;
776             },
777             },
778             fa => {
779             one => sub {
780            
781             my $number = shift;
782             my $n = abs($number);
783             my $i = int($n);
784             my ($f) = $number =~ /\.(.*)$/;
785             $f //= '';
786             my $t = length $f ? $f + 0 : '';
787             my $v = length $f;
788             my $w = length $t;
789              
790             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
791             },
792             },
793             ff => {
794             one => sub {
795            
796             my $number = shift;
797             my $n = abs($number);
798             my $i = int($n);
799             my ($f) = $number =~ /\.(.*)$/;
800             $f //= '';
801             my $t = length $f ? $f + 0 : '';
802             my $v = length $f;
803             my $w = length $t;
804              
805             return scalar (grep {$i == $_} (0,1)) ;
806             },
807             },
808             fi => {
809             one => sub {
810            
811             my $number = shift;
812             my $n = abs($number);
813             my $i = int($n);
814             my ($f) = $number =~ /\.(.*)$/;
815             $f //= '';
816             my $t = length $f ? $f + 0 : '';
817             my $v = length $f;
818             my $w = length $t;
819              
820             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
821             },
822             },
823             fil => {
824             one => sub {
825            
826             my $number = shift;
827             my $n = abs($number);
828             my $i = int($n);
829             my ($f) = $number =~ /\.(.*)$/;
830             $f //= '';
831             my $t = length $f ? $f + 0 : '';
832             my $v = length $f;
833             my $w = length $t;
834              
835             return scalar (grep {$v == $_} (0)) && scalar (grep {$i == $_} (1,2,3)) || scalar (grep {$v == $_} (0)) && ! scalar (grep {$i % 10 == $_} (4,6,9)) || ! scalar (grep {$v == $_} (0)) && ! scalar (grep {$f % 10 == $_} (4,6,9)) ;
836             },
837             },
838             fo => {
839             one => sub {
840            
841             my $number = shift;
842             my $n = abs($number);
843             my $i = int($n);
844             my ($f) = $number =~ /\.(.*)$/;
845             $f //= '';
846             my $t = length $f ? $f + 0 : '';
847             my $v = length $f;
848             my $w = length $t;
849              
850             return scalar (grep {$n == $_} (1)) ;
851             },
852             },
853             fr => {
854             one => sub {
855            
856             my $number = shift;
857             my $n = abs($number);
858             my $i = int($n);
859             my ($f) = $number =~ /\.(.*)$/;
860             $f //= '';
861             my $t = length $f ? $f + 0 : '';
862             my $v = length $f;
863             my $w = length $t;
864              
865             return scalar (grep {$i == $_} (0,1)) ;
866             },
867             },
868             fur => {
869             one => sub {
870            
871             my $number = shift;
872             my $n = abs($number);
873             my $i = int($n);
874             my ($f) = $number =~ /\.(.*)$/;
875             $f //= '';
876             my $t = length $f ? $f + 0 : '';
877             my $v = length $f;
878             my $w = length $t;
879              
880             return scalar (grep {$n == $_} (1)) ;
881             },
882             },
883             fy => {
884             one => sub {
885            
886             my $number = shift;
887             my $n = abs($number);
888             my $i = int($n);
889             my ($f) = $number =~ /\.(.*)$/;
890             $f //= '';
891             my $t = length $f ? $f + 0 : '';
892             my $v = length $f;
893             my $w = length $t;
894              
895             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
896             },
897             },
898             ga => {
899             few => sub {
900            
901             my $number = shift;
902             my $n = abs($number);
903             my $i = int($n);
904             my ($f) = $number =~ /\.(.*)$/;
905             $f //= '';
906             my $t = length $f ? $f + 0 : '';
907             my $v = length $f;
908             my $w = length $t;
909              
910             return scalar (grep {$n == $_} (3..6)) ;
911             },
912             many => sub {
913            
914             my $number = shift;
915             my $n = abs($number);
916             my $i = int($n);
917             my ($f) = $number =~ /\.(.*)$/;
918             $f //= '';
919             my $t = length $f ? $f + 0 : '';
920             my $v = length $f;
921             my $w = length $t;
922              
923             return scalar (grep {$n == $_} (7..10)) ;
924             },
925             one => sub {
926            
927             my $number = shift;
928             my $n = abs($number);
929             my $i = int($n);
930             my ($f) = $number =~ /\.(.*)$/;
931             $f //= '';
932             my $t = length $f ? $f + 0 : '';
933             my $v = length $f;
934             my $w = length $t;
935              
936             return scalar (grep {$n == $_} (1)) ;
937             },
938             two => sub {
939            
940             my $number = shift;
941             my $n = abs($number);
942             my $i = int($n);
943             my ($f) = $number =~ /\.(.*)$/;
944             $f //= '';
945             my $t = length $f ? $f + 0 : '';
946             my $v = length $f;
947             my $w = length $t;
948              
949             return scalar (grep {$n == $_} (2)) ;
950             },
951             },
952             gd => {
953             few => sub {
954            
955             my $number = shift;
956             my $n = abs($number);
957             my $i = int($n);
958             my ($f) = $number =~ /\.(.*)$/;
959             $f //= '';
960             my $t = length $f ? $f + 0 : '';
961             my $v = length $f;
962             my $w = length $t;
963              
964             return scalar (grep {$n == $_} (3..10,13..19)) ;
965             },
966             one => sub {
967            
968             my $number = shift;
969             my $n = abs($number);
970             my $i = int($n);
971             my ($f) = $number =~ /\.(.*)$/;
972             $f //= '';
973             my $t = length $f ? $f + 0 : '';
974             my $v = length $f;
975             my $w = length $t;
976              
977             return scalar (grep {$n == $_} (1,11)) ;
978             },
979             two => sub {
980            
981             my $number = shift;
982             my $n = abs($number);
983             my $i = int($n);
984             my ($f) = $number =~ /\.(.*)$/;
985             $f //= '';
986             my $t = length $f ? $f + 0 : '';
987             my $v = length $f;
988             my $w = length $t;
989              
990             return scalar (grep {$n == $_} (2,12)) ;
991             },
992             },
993             gl => {
994             one => sub {
995            
996             my $number = shift;
997             my $n = abs($number);
998             my $i = int($n);
999             my ($f) = $number =~ /\.(.*)$/;
1000             $f //= '';
1001             my $t = length $f ? $f + 0 : '';
1002             my $v = length $f;
1003             my $w = length $t;
1004              
1005             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1006             },
1007             },
1008             gsw => {
1009             one => sub {
1010            
1011             my $number = shift;
1012             my $n = abs($number);
1013             my $i = int($n);
1014             my ($f) = $number =~ /\.(.*)$/;
1015             $f //= '';
1016             my $t = length $f ? $f + 0 : '';
1017             my $v = length $f;
1018             my $w = length $t;
1019              
1020             return scalar (grep {$n == $_} (1)) ;
1021             },
1022             },
1023             gu => {
1024             one => sub {
1025            
1026             my $number = shift;
1027             my $n = abs($number);
1028             my $i = int($n);
1029             my ($f) = $number =~ /\.(.*)$/;
1030             $f //= '';
1031             my $t = length $f ? $f + 0 : '';
1032             my $v = length $f;
1033             my $w = length $t;
1034              
1035             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
1036             },
1037             },
1038             guw => {
1039             one => sub {
1040            
1041             my $number = shift;
1042             my $n = abs($number);
1043             my $i = int($n);
1044             my ($f) = $number =~ /\.(.*)$/;
1045             $f //= '';
1046             my $t = length $f ? $f + 0 : '';
1047             my $v = length $f;
1048             my $w = length $t;
1049              
1050             return scalar (grep {$n == $_} (0..1)) ;
1051             },
1052             },
1053             gv => {
1054             few => sub {
1055            
1056             my $number = shift;
1057             my $n = abs($number);
1058             my $i = int($n);
1059             my ($f) = $number =~ /\.(.*)$/;
1060             $f //= '';
1061             my $t = length $f ? $f + 0 : '';
1062             my $v = length $f;
1063             my $w = length $t;
1064              
1065             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (0,20,40,60,80)) ;
1066             },
1067             many => sub {
1068            
1069             my $number = shift;
1070             my $n = abs($number);
1071             my $i = int($n);
1072             my ($f) = $number =~ /\.(.*)$/;
1073             $f //= '';
1074             my $t = length $f ? $f + 0 : '';
1075             my $v = length $f;
1076             my $w = length $t;
1077              
1078             return ! scalar (grep {$v == $_} (0)) ;
1079             },
1080             one => sub {
1081            
1082             my $number = shift;
1083             my $n = abs($number);
1084             my $i = int($n);
1085             my ($f) = $number =~ /\.(.*)$/;
1086             $f //= '';
1087             my $t = length $f ? $f + 0 : '';
1088             my $v = length $f;
1089             my $w = length $t;
1090              
1091             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) ;
1092             },
1093             two => sub {
1094            
1095             my $number = shift;
1096             my $n = abs($number);
1097             my $i = int($n);
1098             my ($f) = $number =~ /\.(.*)$/;
1099             $f //= '';
1100             my $t = length $f ? $f + 0 : '';
1101             my $v = length $f;
1102             my $w = length $t;
1103              
1104             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2)) ;
1105             },
1106             },
1107             ha => {
1108             one => sub {
1109            
1110             my $number = shift;
1111             my $n = abs($number);
1112             my $i = int($n);
1113             my ($f) = $number =~ /\.(.*)$/;
1114             $f //= '';
1115             my $t = length $f ? $f + 0 : '';
1116             my $v = length $f;
1117             my $w = length $t;
1118              
1119             return scalar (grep {$n == $_} (1)) ;
1120             },
1121             },
1122             haw => {
1123             one => sub {
1124            
1125             my $number = shift;
1126             my $n = abs($number);
1127             my $i = int($n);
1128             my ($f) = $number =~ /\.(.*)$/;
1129             $f //= '';
1130             my $t = length $f ? $f + 0 : '';
1131             my $v = length $f;
1132             my $w = length $t;
1133              
1134             return scalar (grep {$n == $_} (1)) ;
1135             },
1136             },
1137             he => {
1138             many => sub {
1139            
1140             my $number = shift;
1141             my $n = abs($number);
1142             my $i = int($n);
1143             my ($f) = $number =~ /\.(.*)$/;
1144             $f //= '';
1145             my $t = length $f ? $f + 0 : '';
1146             my $v = length $f;
1147             my $w = length $t;
1148              
1149             return scalar (grep {$v == $_} (0)) && ! scalar (grep {$n == $_} (0..10)) && scalar (grep {$n % 10 == $_} (0)) ;
1150             },
1151             one => sub {
1152            
1153             my $number = shift;
1154             my $n = abs($number);
1155             my $i = int($n);
1156             my ($f) = $number =~ /\.(.*)$/;
1157             $f //= '';
1158             my $t = length $f ? $f + 0 : '';
1159             my $v = length $f;
1160             my $w = length $t;
1161              
1162             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1163             },
1164             two => sub {
1165            
1166             my $number = shift;
1167             my $n = abs($number);
1168             my $i = int($n);
1169             my ($f) = $number =~ /\.(.*)$/;
1170             $f //= '';
1171             my $t = length $f ? $f + 0 : '';
1172             my $v = length $f;
1173             my $w = length $t;
1174              
1175             return scalar (grep {$i == $_} (2)) && scalar (grep {$v == $_} (0)) ;
1176             },
1177             },
1178             hi => {
1179             one => sub {
1180            
1181             my $number = shift;
1182             my $n = abs($number);
1183             my $i = int($n);
1184             my ($f) = $number =~ /\.(.*)$/;
1185             $f //= '';
1186             my $t = length $f ? $f + 0 : '';
1187             my $v = length $f;
1188             my $w = length $t;
1189              
1190             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
1191             },
1192             },
1193             hr => {
1194             few => sub {
1195            
1196             my $number = shift;
1197             my $n = abs($number);
1198             my $i = int($n);
1199             my ($f) = $number =~ /\.(.*)$/;
1200             $f //= '';
1201             my $t = length $f ? $f + 0 : '';
1202             my $v = length $f;
1203             my $w = length $t;
1204              
1205             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) || scalar (grep {$f % 10 == $_} (2..4)) && ! scalar (grep {$f % 100 == $_} (12..14)) ;
1206             },
1207             one => sub {
1208            
1209             my $number = shift;
1210             my $n = abs($number);
1211             my $i = int($n);
1212             my ($f) = $number =~ /\.(.*)$/;
1213             $f //= '';
1214             my $t = length $f ? $f + 0 : '';
1215             my $v = length $f;
1216             my $w = length $t;
1217              
1218             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) ;
1219             },
1220             },
1221             hsb => {
1222             few => sub {
1223            
1224             my $number = shift;
1225             my $n = abs($number);
1226             my $i = int($n);
1227             my ($f) = $number =~ /\.(.*)$/;
1228             $f //= '';
1229             my $t = length $f ? $f + 0 : '';
1230             my $v = length $f;
1231             my $w = length $t;
1232              
1233             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (3..4)) || scalar (grep {$f % 100 == $_} (3..4)) ;
1234             },
1235             one => sub {
1236            
1237             my $number = shift;
1238             my $n = abs($number);
1239             my $i = int($n);
1240             my ($f) = $number =~ /\.(.*)$/;
1241             $f //= '';
1242             my $t = length $f ? $f + 0 : '';
1243             my $v = length $f;
1244             my $w = length $t;
1245              
1246             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (1)) || scalar (grep {$f % 100 == $_} (1)) ;
1247             },
1248             two => sub {
1249            
1250             my $number = shift;
1251             my $n = abs($number);
1252             my $i = int($n);
1253             my ($f) = $number =~ /\.(.*)$/;
1254             $f //= '';
1255             my $t = length $f ? $f + 0 : '';
1256             my $v = length $f;
1257             my $w = length $t;
1258              
1259             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (2)) || scalar (grep {$f % 100 == $_} (2)) ;
1260             },
1261             },
1262             hu => {
1263             one => sub {
1264            
1265             my $number = shift;
1266             my $n = abs($number);
1267             my $i = int($n);
1268             my ($f) = $number =~ /\.(.*)$/;
1269             $f //= '';
1270             my $t = length $f ? $f + 0 : '';
1271             my $v = length $f;
1272             my $w = length $t;
1273              
1274             return scalar (grep {$n == $_} (1)) ;
1275             },
1276             },
1277             hy => {
1278             one => sub {
1279            
1280             my $number = shift;
1281             my $n = abs($number);
1282             my $i = int($n);
1283             my ($f) = $number =~ /\.(.*)$/;
1284             $f //= '';
1285             my $t = length $f ? $f + 0 : '';
1286             my $v = length $f;
1287             my $w = length $t;
1288              
1289             return scalar (grep {$i == $_} (0,1)) ;
1290             },
1291             },
1292             is => {
1293             one => sub {
1294            
1295             my $number = shift;
1296             my $n = abs($number);
1297             my $i = int($n);
1298             my ($f) = $number =~ /\.(.*)$/;
1299             $f //= '';
1300             my $t = length $f ? $f + 0 : '';
1301             my $v = length $f;
1302             my $w = length $t;
1303              
1304             return scalar (grep {$t == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || ! scalar (grep {$t == $_} (0)) ;
1305             },
1306             },
1307             it => {
1308             one => sub {
1309            
1310             my $number = shift;
1311             my $n = abs($number);
1312             my $i = int($n);
1313             my ($f) = $number =~ /\.(.*)$/;
1314             $f //= '';
1315             my $t = length $f ? $f + 0 : '';
1316             my $v = length $f;
1317             my $w = length $t;
1318              
1319             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1320             },
1321             },
1322             iu => {
1323             one => sub {
1324            
1325             my $number = shift;
1326             my $n = abs($number);
1327             my $i = int($n);
1328             my ($f) = $number =~ /\.(.*)$/;
1329             $f //= '';
1330             my $t = length $f ? $f + 0 : '';
1331             my $v = length $f;
1332             my $w = length $t;
1333              
1334             return scalar (grep {$n == $_} (1)) ;
1335             },
1336             two => sub {
1337            
1338             my $number = shift;
1339             my $n = abs($number);
1340             my $i = int($n);
1341             my ($f) = $number =~ /\.(.*)$/;
1342             $f //= '';
1343             my $t = length $f ? $f + 0 : '';
1344             my $v = length $f;
1345             my $w = length $t;
1346              
1347             return scalar (grep {$n == $_} (2)) ;
1348             },
1349             },
1350             iw => {
1351             many => sub {
1352            
1353             my $number = shift;
1354             my $n = abs($number);
1355             my $i = int($n);
1356             my ($f) = $number =~ /\.(.*)$/;
1357             $f //= '';
1358             my $t = length $f ? $f + 0 : '';
1359             my $v = length $f;
1360             my $w = length $t;
1361              
1362             return scalar (grep {$v == $_} (0)) && ! scalar (grep {$n == $_} (0..10)) && scalar (grep {$n % 10 == $_} (0)) ;
1363             },
1364             one => sub {
1365            
1366             my $number = shift;
1367             my $n = abs($number);
1368             my $i = int($n);
1369             my ($f) = $number =~ /\.(.*)$/;
1370             $f //= '';
1371             my $t = length $f ? $f + 0 : '';
1372             my $v = length $f;
1373             my $w = length $t;
1374              
1375             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1376             },
1377             two => sub {
1378            
1379             my $number = shift;
1380             my $n = abs($number);
1381             my $i = int($n);
1382             my ($f) = $number =~ /\.(.*)$/;
1383             $f //= '';
1384             my $t = length $f ? $f + 0 : '';
1385             my $v = length $f;
1386             my $w = length $t;
1387              
1388             return scalar (grep {$i == $_} (2)) && scalar (grep {$v == $_} (0)) ;
1389             },
1390             },
1391             jgo => {
1392             one => sub {
1393            
1394             my $number = shift;
1395             my $n = abs($number);
1396             my $i = int($n);
1397             my ($f) = $number =~ /\.(.*)$/;
1398             $f //= '';
1399             my $t = length $f ? $f + 0 : '';
1400             my $v = length $f;
1401             my $w = length $t;
1402              
1403             return scalar (grep {$n == $_} (1)) ;
1404             },
1405             },
1406             ji => {
1407             one => sub {
1408            
1409             my $number = shift;
1410             my $n = abs($number);
1411             my $i = int($n);
1412             my ($f) = $number =~ /\.(.*)$/;
1413             $f //= '';
1414             my $t = length $f ? $f + 0 : '';
1415             my $v = length $f;
1416             my $w = length $t;
1417              
1418             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1419             },
1420             },
1421             jmc => {
1422             one => sub {
1423            
1424             my $number = shift;
1425             my $n = abs($number);
1426             my $i = int($n);
1427             my ($f) = $number =~ /\.(.*)$/;
1428             $f //= '';
1429             my $t = length $f ? $f + 0 : '';
1430             my $v = length $f;
1431             my $w = length $t;
1432              
1433             return scalar (grep {$n == $_} (1)) ;
1434             },
1435             },
1436             ka => {
1437             one => sub {
1438            
1439             my $number = shift;
1440             my $n = abs($number);
1441             my $i = int($n);
1442             my ($f) = $number =~ /\.(.*)$/;
1443             $f //= '';
1444             my $t = length $f ? $f + 0 : '';
1445             my $v = length $f;
1446             my $w = length $t;
1447              
1448             return scalar (grep {$n == $_} (1)) ;
1449             },
1450             },
1451             kab => {
1452             one => sub {
1453            
1454             my $number = shift;
1455             my $n = abs($number);
1456             my $i = int($n);
1457             my ($f) = $number =~ /\.(.*)$/;
1458             $f //= '';
1459             my $t = length $f ? $f + 0 : '';
1460             my $v = length $f;
1461             my $w = length $t;
1462              
1463             return scalar (grep {$i == $_} (0,1)) ;
1464             },
1465             },
1466             kaj => {
1467             one => sub {
1468            
1469             my $number = shift;
1470             my $n = abs($number);
1471             my $i = int($n);
1472             my ($f) = $number =~ /\.(.*)$/;
1473             $f //= '';
1474             my $t = length $f ? $f + 0 : '';
1475             my $v = length $f;
1476             my $w = length $t;
1477              
1478             return scalar (grep {$n == $_} (1)) ;
1479             },
1480             },
1481             kcg => {
1482             one => sub {
1483            
1484             my $number = shift;
1485             my $n = abs($number);
1486             my $i = int($n);
1487             my ($f) = $number =~ /\.(.*)$/;
1488             $f //= '';
1489             my $t = length $f ? $f + 0 : '';
1490             my $v = length $f;
1491             my $w = length $t;
1492              
1493             return scalar (grep {$n == $_} (1)) ;
1494             },
1495             },
1496             kk => {
1497             one => sub {
1498            
1499             my $number = shift;
1500             my $n = abs($number);
1501             my $i = int($n);
1502             my ($f) = $number =~ /\.(.*)$/;
1503             $f //= '';
1504             my $t = length $f ? $f + 0 : '';
1505             my $v = length $f;
1506             my $w = length $t;
1507              
1508             return scalar (grep {$n == $_} (1)) ;
1509             },
1510             },
1511             kkj => {
1512             one => sub {
1513            
1514             my $number = shift;
1515             my $n = abs($number);
1516             my $i = int($n);
1517             my ($f) = $number =~ /\.(.*)$/;
1518             $f //= '';
1519             my $t = length $f ? $f + 0 : '';
1520             my $v = length $f;
1521             my $w = length $t;
1522              
1523             return scalar (grep {$n == $_} (1)) ;
1524             },
1525             },
1526             kl => {
1527             one => sub {
1528            
1529             my $number = shift;
1530             my $n = abs($number);
1531             my $i = int($n);
1532             my ($f) = $number =~ /\.(.*)$/;
1533             $f //= '';
1534             my $t = length $f ? $f + 0 : '';
1535             my $v = length $f;
1536             my $w = length $t;
1537              
1538             return scalar (grep {$n == $_} (1)) ;
1539             },
1540             },
1541             kn => {
1542             one => sub {
1543            
1544             my $number = shift;
1545             my $n = abs($number);
1546             my $i = int($n);
1547             my ($f) = $number =~ /\.(.*)$/;
1548             $f //= '';
1549             my $t = length $f ? $f + 0 : '';
1550             my $v = length $f;
1551             my $w = length $t;
1552              
1553             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
1554             },
1555             },
1556             ks => {
1557             one => sub {
1558            
1559             my $number = shift;
1560             my $n = abs($number);
1561             my $i = int($n);
1562             my ($f) = $number =~ /\.(.*)$/;
1563             $f //= '';
1564             my $t = length $f ? $f + 0 : '';
1565             my $v = length $f;
1566             my $w = length $t;
1567              
1568             return scalar (grep {$n == $_} (1)) ;
1569             },
1570             },
1571             ksb => {
1572             one => sub {
1573            
1574             my $number = shift;
1575             my $n = abs($number);
1576             my $i = int($n);
1577             my ($f) = $number =~ /\.(.*)$/;
1578             $f //= '';
1579             my $t = length $f ? $f + 0 : '';
1580             my $v = length $f;
1581             my $w = length $t;
1582              
1583             return scalar (grep {$n == $_} (1)) ;
1584             },
1585             },
1586             ksh => {
1587             one => sub {
1588            
1589             my $number = shift;
1590             my $n = abs($number);
1591             my $i = int($n);
1592             my ($f) = $number =~ /\.(.*)$/;
1593             $f //= '';
1594             my $t = length $f ? $f + 0 : '';
1595             my $v = length $f;
1596             my $w = length $t;
1597              
1598             return scalar (grep {$n == $_} (1)) ;
1599             },
1600             zero => sub {
1601            
1602             my $number = shift;
1603             my $n = abs($number);
1604             my $i = int($n);
1605             my ($f) = $number =~ /\.(.*)$/;
1606             $f //= '';
1607             my $t = length $f ? $f + 0 : '';
1608             my $v = length $f;
1609             my $w = length $t;
1610              
1611             return scalar (grep {$n == $_} (0)) ;
1612             },
1613             },
1614             ku => {
1615             one => sub {
1616            
1617             my $number = shift;
1618             my $n = abs($number);
1619             my $i = int($n);
1620             my ($f) = $number =~ /\.(.*)$/;
1621             $f //= '';
1622             my $t = length $f ? $f + 0 : '';
1623             my $v = length $f;
1624             my $w = length $t;
1625              
1626             return scalar (grep {$n == $_} (1)) ;
1627             },
1628             },
1629             kw => {
1630             one => sub {
1631            
1632             my $number = shift;
1633             my $n = abs($number);
1634             my $i = int($n);
1635             my ($f) = $number =~ /\.(.*)$/;
1636             $f //= '';
1637             my $t = length $f ? $f + 0 : '';
1638             my $v = length $f;
1639             my $w = length $t;
1640              
1641             return scalar (grep {$n == $_} (1)) ;
1642             },
1643             two => sub {
1644            
1645             my $number = shift;
1646             my $n = abs($number);
1647             my $i = int($n);
1648             my ($f) = $number =~ /\.(.*)$/;
1649             $f //= '';
1650             my $t = length $f ? $f + 0 : '';
1651             my $v = length $f;
1652             my $w = length $t;
1653              
1654             return scalar (grep {$n == $_} (2)) ;
1655             },
1656             },
1657             ky => {
1658             one => sub {
1659            
1660             my $number = shift;
1661             my $n = abs($number);
1662             my $i = int($n);
1663             my ($f) = $number =~ /\.(.*)$/;
1664             $f //= '';
1665             my $t = length $f ? $f + 0 : '';
1666             my $v = length $f;
1667             my $w = length $t;
1668              
1669             return scalar (grep {$n == $_} (1)) ;
1670             },
1671             },
1672             lag => {
1673             one => sub {
1674            
1675             my $number = shift;
1676             my $n = abs($number);
1677             my $i = int($n);
1678             my ($f) = $number =~ /\.(.*)$/;
1679             $f //= '';
1680             my $t = length $f ? $f + 0 : '';
1681             my $v = length $f;
1682             my $w = length $t;
1683              
1684             return scalar (grep {$i == $_} (0,1)) && ! scalar (grep {$n == $_} (0)) ;
1685             },
1686             zero => sub {
1687            
1688             my $number = shift;
1689             my $n = abs($number);
1690             my $i = int($n);
1691             my ($f) = $number =~ /\.(.*)$/;
1692             $f //= '';
1693             my $t = length $f ? $f + 0 : '';
1694             my $v = length $f;
1695             my $w = length $t;
1696              
1697             return scalar (grep {$n == $_} (0)) ;
1698             },
1699             },
1700             lb => {
1701             one => sub {
1702            
1703             my $number = shift;
1704             my $n = abs($number);
1705             my $i = int($n);
1706             my ($f) = $number =~ /\.(.*)$/;
1707             $f //= '';
1708             my $t = length $f ? $f + 0 : '';
1709             my $v = length $f;
1710             my $w = length $t;
1711              
1712             return scalar (grep {$n == $_} (1)) ;
1713             },
1714             },
1715             lg => {
1716             one => sub {
1717            
1718             my $number = shift;
1719             my $n = abs($number);
1720             my $i = int($n);
1721             my ($f) = $number =~ /\.(.*)$/;
1722             $f //= '';
1723             my $t = length $f ? $f + 0 : '';
1724             my $v = length $f;
1725             my $w = length $t;
1726              
1727             return scalar (grep {$n == $_} (1)) ;
1728             },
1729             },
1730             ln => {
1731             one => sub {
1732            
1733             my $number = shift;
1734             my $n = abs($number);
1735             my $i = int($n);
1736             my ($f) = $number =~ /\.(.*)$/;
1737             $f //= '';
1738             my $t = length $f ? $f + 0 : '';
1739             my $v = length $f;
1740             my $w = length $t;
1741              
1742             return scalar (grep {$n == $_} (0..1)) ;
1743             },
1744             },
1745             lt => {
1746             few => sub {
1747            
1748             my $number = shift;
1749             my $n = abs($number);
1750             my $i = int($n);
1751             my ($f) = $number =~ /\.(.*)$/;
1752             $f //= '';
1753             my $t = length $f ? $f + 0 : '';
1754             my $v = length $f;
1755             my $w = length $t;
1756              
1757             return scalar (grep {$n % 10 == $_} (2..9)) && ! scalar (grep {$n % 100 == $_} (11..19)) ;
1758             },
1759             many => sub {
1760            
1761             my $number = shift;
1762             my $n = abs($number);
1763             my $i = int($n);
1764             my ($f) = $number =~ /\.(.*)$/;
1765             $f //= '';
1766             my $t = length $f ? $f + 0 : '';
1767             my $v = length $f;
1768             my $w = length $t;
1769              
1770             return ! scalar (grep {$f == $_} (0)) ;
1771             },
1772             one => sub {
1773            
1774             my $number = shift;
1775             my $n = abs($number);
1776             my $i = int($n);
1777             my ($f) = $number =~ /\.(.*)$/;
1778             $f //= '';
1779             my $t = length $f ? $f + 0 : '';
1780             my $v = length $f;
1781             my $w = length $t;
1782              
1783             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11..19)) ;
1784             },
1785             },
1786             lv => {
1787             one => sub {
1788            
1789             my $number = shift;
1790             my $n = abs($number);
1791             my $i = int($n);
1792             my ($f) = $number =~ /\.(.*)$/;
1793             $f //= '';
1794             my $t = length $f ? $f + 0 : '';
1795             my $v = length $f;
1796             my $w = length $t;
1797              
1798             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) || scalar (grep {$v == $_} (2)) && scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) || ! scalar (grep {$v == $_} (2)) && scalar (grep {$f % 10 == $_} (1)) ;
1799             },
1800             zero => sub {
1801            
1802             my $number = shift;
1803             my $n = abs($number);
1804             my $i = int($n);
1805             my ($f) = $number =~ /\.(.*)$/;
1806             $f //= '';
1807             my $t = length $f ? $f + 0 : '';
1808             my $v = length $f;
1809             my $w = length $t;
1810              
1811             return scalar (grep {$n % 10 == $_} (0)) || scalar (grep {$n % 100 == $_} (11..19)) || scalar (grep {$v == $_} (2)) && scalar (grep {$f % 100 == $_} (11..19)) ;
1812             },
1813             },
1814             mas => {
1815             one => sub {
1816            
1817             my $number = shift;
1818             my $n = abs($number);
1819             my $i = int($n);
1820             my ($f) = $number =~ /\.(.*)$/;
1821             $f //= '';
1822             my $t = length $f ? $f + 0 : '';
1823             my $v = length $f;
1824             my $w = length $t;
1825              
1826             return scalar (grep {$n == $_} (1)) ;
1827             },
1828             },
1829             mg => {
1830             one => sub {
1831            
1832             my $number = shift;
1833             my $n = abs($number);
1834             my $i = int($n);
1835             my ($f) = $number =~ /\.(.*)$/;
1836             $f //= '';
1837             my $t = length $f ? $f + 0 : '';
1838             my $v = length $f;
1839             my $w = length $t;
1840              
1841             return scalar (grep {$n == $_} (0..1)) ;
1842             },
1843             },
1844             mgo => {
1845             one => sub {
1846            
1847             my $number = shift;
1848             my $n = abs($number);
1849             my $i = int($n);
1850             my ($f) = $number =~ /\.(.*)$/;
1851             $f //= '';
1852             my $t = length $f ? $f + 0 : '';
1853             my $v = length $f;
1854             my $w = length $t;
1855              
1856             return scalar (grep {$n == $_} (1)) ;
1857             },
1858             },
1859             mk => {
1860             one => sub {
1861            
1862             my $number = shift;
1863             my $n = abs($number);
1864             my $i = int($n);
1865             my ($f) = $number =~ /\.(.*)$/;
1866             $f //= '';
1867             my $t = length $f ? $f + 0 : '';
1868             my $v = length $f;
1869             my $w = length $t;
1870              
1871             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) || scalar (grep {$f % 10 == $_} (1)) ;
1872             },
1873             },
1874             ml => {
1875             one => sub {
1876            
1877             my $number = shift;
1878             my $n = abs($number);
1879             my $i = int($n);
1880             my ($f) = $number =~ /\.(.*)$/;
1881             $f //= '';
1882             my $t = length $f ? $f + 0 : '';
1883             my $v = length $f;
1884             my $w = length $t;
1885              
1886             return scalar (grep {$n == $_} (1)) ;
1887             },
1888             },
1889             mn => {
1890             one => sub {
1891            
1892             my $number = shift;
1893             my $n = abs($number);
1894             my $i = int($n);
1895             my ($f) = $number =~ /\.(.*)$/;
1896             $f //= '';
1897             my $t = length $f ? $f + 0 : '';
1898             my $v = length $f;
1899             my $w = length $t;
1900              
1901             return scalar (grep {$n == $_} (1)) ;
1902             },
1903             },
1904             mo => {
1905             few => sub {
1906            
1907             my $number = shift;
1908             my $n = abs($number);
1909             my $i = int($n);
1910             my ($f) = $number =~ /\.(.*)$/;
1911             $f //= '';
1912             my $t = length $f ? $f + 0 : '';
1913             my $v = length $f;
1914             my $w = length $t;
1915              
1916             return ! scalar (grep {$v == $_} (0)) || scalar (grep {$n == $_} (0)) || ! scalar (grep {$n == $_} (1)) && scalar (grep {$n % 100 == $_} (1..19)) ;
1917             },
1918             one => sub {
1919            
1920             my $number = shift;
1921             my $n = abs($number);
1922             my $i = int($n);
1923             my ($f) = $number =~ /\.(.*)$/;
1924             $f //= '';
1925             my $t = length $f ? $f + 0 : '';
1926             my $v = length $f;
1927             my $w = length $t;
1928              
1929             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
1930             },
1931             },
1932             mr => {
1933             one => sub {
1934            
1935             my $number = shift;
1936             my $n = abs($number);
1937             my $i = int($n);
1938             my ($f) = $number =~ /\.(.*)$/;
1939             $f //= '';
1940             my $t = length $f ? $f + 0 : '';
1941             my $v = length $f;
1942             my $w = length $t;
1943              
1944             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
1945             },
1946             },
1947             mt => {
1948             few => sub {
1949            
1950             my $number = shift;
1951             my $n = abs($number);
1952             my $i = int($n);
1953             my ($f) = $number =~ /\.(.*)$/;
1954             $f //= '';
1955             my $t = length $f ? $f + 0 : '';
1956             my $v = length $f;
1957             my $w = length $t;
1958              
1959             return scalar (grep {$n == $_} (0)) || scalar (grep {$n % 100 == $_} (2..10)) ;
1960             },
1961             many => sub {
1962            
1963             my $number = shift;
1964             my $n = abs($number);
1965             my $i = int($n);
1966             my ($f) = $number =~ /\.(.*)$/;
1967             $f //= '';
1968             my $t = length $f ? $f + 0 : '';
1969             my $v = length $f;
1970             my $w = length $t;
1971              
1972             return scalar (grep {$n % 100 == $_} (11..19)) ;
1973             },
1974             one => sub {
1975            
1976             my $number = shift;
1977             my $n = abs($number);
1978             my $i = int($n);
1979             my ($f) = $number =~ /\.(.*)$/;
1980             $f //= '';
1981             my $t = length $f ? $f + 0 : '';
1982             my $v = length $f;
1983             my $w = length $t;
1984              
1985             return scalar (grep {$n == $_} (1)) ;
1986             },
1987             },
1988             nah => {
1989             one => sub {
1990            
1991             my $number = shift;
1992             my $n = abs($number);
1993             my $i = int($n);
1994             my ($f) = $number =~ /\.(.*)$/;
1995             $f //= '';
1996             my $t = length $f ? $f + 0 : '';
1997             my $v = length $f;
1998             my $w = length $t;
1999              
2000             return scalar (grep {$n == $_} (1)) ;
2001             },
2002             },
2003             naq => {
2004             one => sub {
2005            
2006             my $number = shift;
2007             my $n = abs($number);
2008             my $i = int($n);
2009             my ($f) = $number =~ /\.(.*)$/;
2010             $f //= '';
2011             my $t = length $f ? $f + 0 : '';
2012             my $v = length $f;
2013             my $w = length $t;
2014              
2015             return scalar (grep {$n == $_} (1)) ;
2016             },
2017             two => sub {
2018            
2019             my $number = shift;
2020             my $n = abs($number);
2021             my $i = int($n);
2022             my ($f) = $number =~ /\.(.*)$/;
2023             $f //= '';
2024             my $t = length $f ? $f + 0 : '';
2025             my $v = length $f;
2026             my $w = length $t;
2027              
2028             return scalar (grep {$n == $_} (2)) ;
2029             },
2030             },
2031             nb => {
2032             one => sub {
2033            
2034             my $number = shift;
2035             my $n = abs($number);
2036             my $i = int($n);
2037             my ($f) = $number =~ /\.(.*)$/;
2038             $f //= '';
2039             my $t = length $f ? $f + 0 : '';
2040             my $v = length $f;
2041             my $w = length $t;
2042              
2043             return scalar (grep {$n == $_} (1)) ;
2044             },
2045             },
2046             nd => {
2047             one => sub {
2048            
2049             my $number = shift;
2050             my $n = abs($number);
2051             my $i = int($n);
2052             my ($f) = $number =~ /\.(.*)$/;
2053             $f //= '';
2054             my $t = length $f ? $f + 0 : '';
2055             my $v = length $f;
2056             my $w = length $t;
2057              
2058             return scalar (grep {$n == $_} (1)) ;
2059             },
2060             },
2061             ne => {
2062             one => sub {
2063            
2064             my $number = shift;
2065             my $n = abs($number);
2066             my $i = int($n);
2067             my ($f) = $number =~ /\.(.*)$/;
2068             $f //= '';
2069             my $t = length $f ? $f + 0 : '';
2070             my $v = length $f;
2071             my $w = length $t;
2072              
2073             return scalar (grep {$n == $_} (1)) ;
2074             },
2075             },
2076             nl => {
2077             one => sub {
2078            
2079             my $number = shift;
2080             my $n = abs($number);
2081             my $i = int($n);
2082             my ($f) = $number =~ /\.(.*)$/;
2083             $f //= '';
2084             my $t = length $f ? $f + 0 : '';
2085             my $v = length $f;
2086             my $w = length $t;
2087              
2088             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2089             },
2090             },
2091             nn => {
2092             one => sub {
2093            
2094             my $number = shift;
2095             my $n = abs($number);
2096             my $i = int($n);
2097             my ($f) = $number =~ /\.(.*)$/;
2098             $f //= '';
2099             my $t = length $f ? $f + 0 : '';
2100             my $v = length $f;
2101             my $w = length $t;
2102              
2103             return scalar (grep {$n == $_} (1)) ;
2104             },
2105             },
2106             nnh => {
2107             one => sub {
2108            
2109             my $number = shift;
2110             my $n = abs($number);
2111             my $i = int($n);
2112             my ($f) = $number =~ /\.(.*)$/;
2113             $f //= '';
2114             my $t = length $f ? $f + 0 : '';
2115             my $v = length $f;
2116             my $w = length $t;
2117              
2118             return scalar (grep {$n == $_} (1)) ;
2119             },
2120             },
2121             no => {
2122             one => sub {
2123            
2124             my $number = shift;
2125             my $n = abs($number);
2126             my $i = int($n);
2127             my ($f) = $number =~ /\.(.*)$/;
2128             $f //= '';
2129             my $t = length $f ? $f + 0 : '';
2130             my $v = length $f;
2131             my $w = length $t;
2132              
2133             return scalar (grep {$n == $_} (1)) ;
2134             },
2135             },
2136             nr => {
2137             one => sub {
2138            
2139             my $number = shift;
2140             my $n = abs($number);
2141             my $i = int($n);
2142             my ($f) = $number =~ /\.(.*)$/;
2143             $f //= '';
2144             my $t = length $f ? $f + 0 : '';
2145             my $v = length $f;
2146             my $w = length $t;
2147              
2148             return scalar (grep {$n == $_} (1)) ;
2149             },
2150             },
2151             nso => {
2152             one => sub {
2153            
2154             my $number = shift;
2155             my $n = abs($number);
2156             my $i = int($n);
2157             my ($f) = $number =~ /\.(.*)$/;
2158             $f //= '';
2159             my $t = length $f ? $f + 0 : '';
2160             my $v = length $f;
2161             my $w = length $t;
2162              
2163             return scalar (grep {$n == $_} (0..1)) ;
2164             },
2165             },
2166             ny => {
2167             one => sub {
2168            
2169             my $number = shift;
2170             my $n = abs($number);
2171             my $i = int($n);
2172             my ($f) = $number =~ /\.(.*)$/;
2173             $f //= '';
2174             my $t = length $f ? $f + 0 : '';
2175             my $v = length $f;
2176             my $w = length $t;
2177              
2178             return scalar (grep {$n == $_} (1)) ;
2179             },
2180             },
2181             nyn => {
2182             one => sub {
2183            
2184             my $number = shift;
2185             my $n = abs($number);
2186             my $i = int($n);
2187             my ($f) = $number =~ /\.(.*)$/;
2188             $f //= '';
2189             my $t = length $f ? $f + 0 : '';
2190             my $v = length $f;
2191             my $w = length $t;
2192              
2193             return scalar (grep {$n == $_} (1)) ;
2194             },
2195             },
2196             om => {
2197             one => sub {
2198            
2199             my $number = shift;
2200             my $n = abs($number);
2201             my $i = int($n);
2202             my ($f) = $number =~ /\.(.*)$/;
2203             $f //= '';
2204             my $t = length $f ? $f + 0 : '';
2205             my $v = length $f;
2206             my $w = length $t;
2207              
2208             return scalar (grep {$n == $_} (1)) ;
2209             },
2210             },
2211             or => {
2212             one => sub {
2213            
2214             my $number = shift;
2215             my $n = abs($number);
2216             my $i = int($n);
2217             my ($f) = $number =~ /\.(.*)$/;
2218             $f //= '';
2219             my $t = length $f ? $f + 0 : '';
2220             my $v = length $f;
2221             my $w = length $t;
2222              
2223             return scalar (grep {$n == $_} (1)) ;
2224             },
2225             },
2226             os => {
2227             one => sub {
2228            
2229             my $number = shift;
2230             my $n = abs($number);
2231             my $i = int($n);
2232             my ($f) = $number =~ /\.(.*)$/;
2233             $f //= '';
2234             my $t = length $f ? $f + 0 : '';
2235             my $v = length $f;
2236             my $w = length $t;
2237              
2238             return scalar (grep {$n == $_} (1)) ;
2239             },
2240             },
2241             pa => {
2242             one => sub {
2243            
2244             my $number = shift;
2245             my $n = abs($number);
2246             my $i = int($n);
2247             my ($f) = $number =~ /\.(.*)$/;
2248             $f //= '';
2249             my $t = length $f ? $f + 0 : '';
2250             my $v = length $f;
2251             my $w = length $t;
2252              
2253             return scalar (grep {$n == $_} (0..1)) ;
2254             },
2255             },
2256             pap => {
2257             one => sub {
2258            
2259             my $number = shift;
2260             my $n = abs($number);
2261             my $i = int($n);
2262             my ($f) = $number =~ /\.(.*)$/;
2263             $f //= '';
2264             my $t = length $f ? $f + 0 : '';
2265             my $v = length $f;
2266             my $w = length $t;
2267              
2268             return scalar (grep {$n == $_} (1)) ;
2269             },
2270             },
2271             pl => {
2272             few => sub {
2273            
2274             my $number = shift;
2275             my $n = abs($number);
2276             my $i = int($n);
2277             my ($f) = $number =~ /\.(.*)$/;
2278             $f //= '';
2279             my $t = length $f ? $f + 0 : '';
2280             my $v = length $f;
2281             my $w = length $t;
2282              
2283             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
2284             },
2285             many => sub {
2286            
2287             my $number = shift;
2288             my $n = abs($number);
2289             my $i = int($n);
2290             my ($f) = $number =~ /\.(.*)$/;
2291             $f //= '';
2292             my $t = length $f ? $f + 0 : '';
2293             my $v = length $f;
2294             my $w = length $t;
2295              
2296             return scalar (grep {$v == $_} (0)) && ! scalar (grep {$i == $_} (1)) && scalar (grep {$i % 10 == $_} (0..1)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (5..9)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (12..14)) ;
2297             },
2298             one => sub {
2299            
2300             my $number = shift;
2301             my $n = abs($number);
2302             my $i = int($n);
2303             my ($f) = $number =~ /\.(.*)$/;
2304             $f //= '';
2305             my $t = length $f ? $f + 0 : '';
2306             my $v = length $f;
2307             my $w = length $t;
2308              
2309             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2310             },
2311             },
2312             prg => {
2313             one => sub {
2314            
2315             my $number = shift;
2316             my $n = abs($number);
2317             my $i = int($n);
2318             my ($f) = $number =~ /\.(.*)$/;
2319             $f //= '';
2320             my $t = length $f ? $f + 0 : '';
2321             my $v = length $f;
2322             my $w = length $t;
2323              
2324             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) || scalar (grep {$v == $_} (2)) && scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) || ! scalar (grep {$v == $_} (2)) && scalar (grep {$f % 10 == $_} (1)) ;
2325             },
2326             zero => sub {
2327            
2328             my $number = shift;
2329             my $n = abs($number);
2330             my $i = int($n);
2331             my ($f) = $number =~ /\.(.*)$/;
2332             $f //= '';
2333             my $t = length $f ? $f + 0 : '';
2334             my $v = length $f;
2335             my $w = length $t;
2336              
2337             return scalar (grep {$n % 10 == $_} (0)) || scalar (grep {$n % 100 == $_} (11..19)) || scalar (grep {$v == $_} (2)) && scalar (grep {$f % 100 == $_} (11..19)) ;
2338             },
2339             },
2340             ps => {
2341             one => sub {
2342            
2343             my $number = shift;
2344             my $n = abs($number);
2345             my $i = int($n);
2346             my ($f) = $number =~ /\.(.*)$/;
2347             $f //= '';
2348             my $t = length $f ? $f + 0 : '';
2349             my $v = length $f;
2350             my $w = length $t;
2351              
2352             return scalar (grep {$n == $_} (1)) ;
2353             },
2354             },
2355             pt => {
2356             one => sub {
2357            
2358             my $number = shift;
2359             my $n = abs($number);
2360             my $i = int($n);
2361             my ($f) = $number =~ /\.(.*)$/;
2362             $f //= '';
2363             my $t = length $f ? $f + 0 : '';
2364             my $v = length $f;
2365             my $w = length $t;
2366              
2367             return scalar (grep {$n == $_} (0..2)) && ! scalar (grep {$n == $_} (2)) ;
2368             },
2369             },
2370             pt_PT => {
2371             one => sub {
2372            
2373             my $number = shift;
2374             my $n = abs($number);
2375             my $i = int($n);
2376             my ($f) = $number =~ /\.(.*)$/;
2377             $f //= '';
2378             my $t = length $f ? $f + 0 : '';
2379             my $v = length $f;
2380             my $w = length $t;
2381              
2382             return scalar (grep {$n == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2383             },
2384             },
2385             rm => {
2386             one => sub {
2387            
2388             my $number = shift;
2389             my $n = abs($number);
2390             my $i = int($n);
2391             my ($f) = $number =~ /\.(.*)$/;
2392             $f //= '';
2393             my $t = length $f ? $f + 0 : '';
2394             my $v = length $f;
2395             my $w = length $t;
2396              
2397             return scalar (grep {$n == $_} (1)) ;
2398             },
2399             },
2400             ro => {
2401             few => sub {
2402            
2403             my $number = shift;
2404             my $n = abs($number);
2405             my $i = int($n);
2406             my ($f) = $number =~ /\.(.*)$/;
2407             $f //= '';
2408             my $t = length $f ? $f + 0 : '';
2409             my $v = length $f;
2410             my $w = length $t;
2411              
2412             return ! scalar (grep {$v == $_} (0)) || scalar (grep {$n == $_} (0)) || ! scalar (grep {$n == $_} (1)) && scalar (grep {$n % 100 == $_} (1..19)) ;
2413             },
2414             one => sub {
2415            
2416             my $number = shift;
2417             my $n = abs($number);
2418             my $i = int($n);
2419             my ($f) = $number =~ /\.(.*)$/;
2420             $f //= '';
2421             my $t = length $f ? $f + 0 : '';
2422             my $v = length $f;
2423             my $w = length $t;
2424              
2425             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2426             },
2427             },
2428             rof => {
2429             one => sub {
2430            
2431             my $number = shift;
2432             my $n = abs($number);
2433             my $i = int($n);
2434             my ($f) = $number =~ /\.(.*)$/;
2435             $f //= '';
2436             my $t = length $f ? $f + 0 : '';
2437             my $v = length $f;
2438             my $w = length $t;
2439              
2440             return scalar (grep {$n == $_} (1)) ;
2441             },
2442             },
2443             ru => {
2444             few => sub {
2445            
2446             my $number = shift;
2447             my $n = abs($number);
2448             my $i = int($n);
2449             my ($f) = $number =~ /\.(.*)$/;
2450             $f //= '';
2451             my $t = length $f ? $f + 0 : '';
2452             my $v = length $f;
2453             my $w = length $t;
2454              
2455             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
2456             },
2457             many => sub {
2458            
2459             my $number = shift;
2460             my $n = abs($number);
2461             my $i = int($n);
2462             my ($f) = $number =~ /\.(.*)$/;
2463             $f //= '';
2464             my $t = length $f ? $f + 0 : '';
2465             my $v = length $f;
2466             my $w = length $t;
2467              
2468             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (0)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (5..9)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (11..14)) ;
2469             },
2470             one => sub {
2471            
2472             my $number = shift;
2473             my $n = abs($number);
2474             my $i = int($n);
2475             my ($f) = $number =~ /\.(.*)$/;
2476             $f //= '';
2477             my $t = length $f ? $f + 0 : '';
2478             my $v = length $f;
2479             my $w = length $t;
2480              
2481             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
2482             },
2483             },
2484             rwk => {
2485             one => sub {
2486            
2487             my $number = shift;
2488             my $n = abs($number);
2489             my $i = int($n);
2490             my ($f) = $number =~ /\.(.*)$/;
2491             $f //= '';
2492             my $t = length $f ? $f + 0 : '';
2493             my $v = length $f;
2494             my $w = length $t;
2495              
2496             return scalar (grep {$n == $_} (1)) ;
2497             },
2498             },
2499             saq => {
2500             one => sub {
2501            
2502             my $number = shift;
2503             my $n = abs($number);
2504             my $i = int($n);
2505             my ($f) = $number =~ /\.(.*)$/;
2506             $f //= '';
2507             my $t = length $f ? $f + 0 : '';
2508             my $v = length $f;
2509             my $w = length $t;
2510              
2511             return scalar (grep {$n == $_} (1)) ;
2512             },
2513             },
2514             se => {
2515             one => sub {
2516            
2517             my $number = shift;
2518             my $n = abs($number);
2519             my $i = int($n);
2520             my ($f) = $number =~ /\.(.*)$/;
2521             $f //= '';
2522             my $t = length $f ? $f + 0 : '';
2523             my $v = length $f;
2524             my $w = length $t;
2525              
2526             return scalar (grep {$n == $_} (1)) ;
2527             },
2528             two => sub {
2529            
2530             my $number = shift;
2531             my $n = abs($number);
2532             my $i = int($n);
2533             my ($f) = $number =~ /\.(.*)$/;
2534             $f //= '';
2535             my $t = length $f ? $f + 0 : '';
2536             my $v = length $f;
2537             my $w = length $t;
2538              
2539             return scalar (grep {$n == $_} (2)) ;
2540             },
2541             },
2542             seh => {
2543             one => sub {
2544            
2545             my $number = shift;
2546             my $n = abs($number);
2547             my $i = int($n);
2548             my ($f) = $number =~ /\.(.*)$/;
2549             $f //= '';
2550             my $t = length $f ? $f + 0 : '';
2551             my $v = length $f;
2552             my $w = length $t;
2553              
2554             return scalar (grep {$n == $_} (1)) ;
2555             },
2556             },
2557             sh => {
2558             few => sub {
2559            
2560             my $number = shift;
2561             my $n = abs($number);
2562             my $i = int($n);
2563             my ($f) = $number =~ /\.(.*)$/;
2564             $f //= '';
2565             my $t = length $f ? $f + 0 : '';
2566             my $v = length $f;
2567             my $w = length $t;
2568              
2569             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) || scalar (grep {$f % 10 == $_} (2..4)) && ! scalar (grep {$f % 100 == $_} (12..14)) ;
2570             },
2571             one => sub {
2572            
2573             my $number = shift;
2574             my $n = abs($number);
2575             my $i = int($n);
2576             my ($f) = $number =~ /\.(.*)$/;
2577             $f //= '';
2578             my $t = length $f ? $f + 0 : '';
2579             my $v = length $f;
2580             my $w = length $t;
2581              
2582             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) ;
2583             },
2584             },
2585             shi => {
2586             few => sub {
2587            
2588             my $number = shift;
2589             my $n = abs($number);
2590             my $i = int($n);
2591             my ($f) = $number =~ /\.(.*)$/;
2592             $f //= '';
2593             my $t = length $f ? $f + 0 : '';
2594             my $v = length $f;
2595             my $w = length $t;
2596              
2597             return scalar (grep {$n == $_} (2..10)) ;
2598             },
2599             one => sub {
2600            
2601             my $number = shift;
2602             my $n = abs($number);
2603             my $i = int($n);
2604             my ($f) = $number =~ /\.(.*)$/;
2605             $f //= '';
2606             my $t = length $f ? $f + 0 : '';
2607             my $v = length $f;
2608             my $w = length $t;
2609              
2610             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
2611             },
2612             },
2613             si => {
2614             one => sub {
2615            
2616             my $number = shift;
2617             my $n = abs($number);
2618             my $i = int($n);
2619             my ($f) = $number =~ /\.(.*)$/;
2620             $f //= '';
2621             my $t = length $f ? $f + 0 : '';
2622             my $v = length $f;
2623             my $w = length $t;
2624              
2625             return scalar (grep {$n == $_} (0,1)) || scalar (grep {$i == $_} (0)) && scalar (grep {$f == $_} (1)) ;
2626             },
2627             },
2628             sk => {
2629             few => sub {
2630            
2631             my $number = shift;
2632             my $n = abs($number);
2633             my $i = int($n);
2634             my ($f) = $number =~ /\.(.*)$/;
2635             $f //= '';
2636             my $t = length $f ? $f + 0 : '';
2637             my $v = length $f;
2638             my $w = length $t;
2639              
2640             return scalar (grep {$i == $_} (2..4)) && scalar (grep {$v == $_} (0)) ;
2641             },
2642             many => sub {
2643            
2644             my $number = shift;
2645             my $n = abs($number);
2646             my $i = int($n);
2647             my ($f) = $number =~ /\.(.*)$/;
2648             $f //= '';
2649             my $t = length $f ? $f + 0 : '';
2650             my $v = length $f;
2651             my $w = length $t;
2652              
2653             return ! scalar (grep {$v == $_} (0)) ;
2654             },
2655             one => sub {
2656            
2657             my $number = shift;
2658             my $n = abs($number);
2659             my $i = int($n);
2660             my ($f) = $number =~ /\.(.*)$/;
2661             $f //= '';
2662             my $t = length $f ? $f + 0 : '';
2663             my $v = length $f;
2664             my $w = length $t;
2665              
2666             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2667             },
2668             },
2669             sl => {
2670             few => sub {
2671            
2672             my $number = shift;
2673             my $n = abs($number);
2674             my $i = int($n);
2675             my ($f) = $number =~ /\.(.*)$/;
2676             $f //= '';
2677             my $t = length $f ? $f + 0 : '';
2678             my $v = length $f;
2679             my $w = length $t;
2680              
2681             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (3..4)) || ! scalar (grep {$v == $_} (0)) ;
2682             },
2683             one => sub {
2684            
2685             my $number = shift;
2686             my $n = abs($number);
2687             my $i = int($n);
2688             my ($f) = $number =~ /\.(.*)$/;
2689             $f //= '';
2690             my $t = length $f ? $f + 0 : '';
2691             my $v = length $f;
2692             my $w = length $t;
2693              
2694             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (1)) ;
2695             },
2696             two => sub {
2697            
2698             my $number = shift;
2699             my $n = abs($number);
2700             my $i = int($n);
2701             my ($f) = $number =~ /\.(.*)$/;
2702             $f //= '';
2703             my $t = length $f ? $f + 0 : '';
2704             my $v = length $f;
2705             my $w = length $t;
2706              
2707             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (2)) ;
2708             },
2709             },
2710             sma => {
2711             one => sub {
2712            
2713             my $number = shift;
2714             my $n = abs($number);
2715             my $i = int($n);
2716             my ($f) = $number =~ /\.(.*)$/;
2717             $f //= '';
2718             my $t = length $f ? $f + 0 : '';
2719             my $v = length $f;
2720             my $w = length $t;
2721              
2722             return scalar (grep {$n == $_} (1)) ;
2723             },
2724             two => sub {
2725            
2726             my $number = shift;
2727             my $n = abs($number);
2728             my $i = int($n);
2729             my ($f) = $number =~ /\.(.*)$/;
2730             $f //= '';
2731             my $t = length $f ? $f + 0 : '';
2732             my $v = length $f;
2733             my $w = length $t;
2734              
2735             return scalar (grep {$n == $_} (2)) ;
2736             },
2737             },
2738             smi => {
2739             one => sub {
2740            
2741             my $number = shift;
2742             my $n = abs($number);
2743             my $i = int($n);
2744             my ($f) = $number =~ /\.(.*)$/;
2745             $f //= '';
2746             my $t = length $f ? $f + 0 : '';
2747             my $v = length $f;
2748             my $w = length $t;
2749              
2750             return scalar (grep {$n == $_} (1)) ;
2751             },
2752             two => sub {
2753            
2754             my $number = shift;
2755             my $n = abs($number);
2756             my $i = int($n);
2757             my ($f) = $number =~ /\.(.*)$/;
2758             $f //= '';
2759             my $t = length $f ? $f + 0 : '';
2760             my $v = length $f;
2761             my $w = length $t;
2762              
2763             return scalar (grep {$n == $_} (2)) ;
2764             },
2765             },
2766             smj => {
2767             one => sub {
2768            
2769             my $number = shift;
2770             my $n = abs($number);
2771             my $i = int($n);
2772             my ($f) = $number =~ /\.(.*)$/;
2773             $f //= '';
2774             my $t = length $f ? $f + 0 : '';
2775             my $v = length $f;
2776             my $w = length $t;
2777              
2778             return scalar (grep {$n == $_} (1)) ;
2779             },
2780             two => sub {
2781            
2782             my $number = shift;
2783             my $n = abs($number);
2784             my $i = int($n);
2785             my ($f) = $number =~ /\.(.*)$/;
2786             $f //= '';
2787             my $t = length $f ? $f + 0 : '';
2788             my $v = length $f;
2789             my $w = length $t;
2790              
2791             return scalar (grep {$n == $_} (2)) ;
2792             },
2793             },
2794             smn => {
2795             one => sub {
2796            
2797             my $number = shift;
2798             my $n = abs($number);
2799             my $i = int($n);
2800             my ($f) = $number =~ /\.(.*)$/;
2801             $f //= '';
2802             my $t = length $f ? $f + 0 : '';
2803             my $v = length $f;
2804             my $w = length $t;
2805              
2806             return scalar (grep {$n == $_} (1)) ;
2807             },
2808             two => sub {
2809            
2810             my $number = shift;
2811             my $n = abs($number);
2812             my $i = int($n);
2813             my ($f) = $number =~ /\.(.*)$/;
2814             $f //= '';
2815             my $t = length $f ? $f + 0 : '';
2816             my $v = length $f;
2817             my $w = length $t;
2818              
2819             return scalar (grep {$n == $_} (2)) ;
2820             },
2821             },
2822             sms => {
2823             one => sub {
2824            
2825             my $number = shift;
2826             my $n = abs($number);
2827             my $i = int($n);
2828             my ($f) = $number =~ /\.(.*)$/;
2829             $f //= '';
2830             my $t = length $f ? $f + 0 : '';
2831             my $v = length $f;
2832             my $w = length $t;
2833              
2834             return scalar (grep {$n == $_} (1)) ;
2835             },
2836             two => sub {
2837            
2838             my $number = shift;
2839             my $n = abs($number);
2840             my $i = int($n);
2841             my ($f) = $number =~ /\.(.*)$/;
2842             $f //= '';
2843             my $t = length $f ? $f + 0 : '';
2844             my $v = length $f;
2845             my $w = length $t;
2846              
2847             return scalar (grep {$n == $_} (2)) ;
2848             },
2849             },
2850             sn => {
2851             one => sub {
2852            
2853             my $number = shift;
2854             my $n = abs($number);
2855             my $i = int($n);
2856             my ($f) = $number =~ /\.(.*)$/;
2857             $f //= '';
2858             my $t = length $f ? $f + 0 : '';
2859             my $v = length $f;
2860             my $w = length $t;
2861              
2862             return scalar (grep {$n == $_} (1)) ;
2863             },
2864             },
2865             so => {
2866             one => sub {
2867            
2868             my $number = shift;
2869             my $n = abs($number);
2870             my $i = int($n);
2871             my ($f) = $number =~ /\.(.*)$/;
2872             $f //= '';
2873             my $t = length $f ? $f + 0 : '';
2874             my $v = length $f;
2875             my $w = length $t;
2876              
2877             return scalar (grep {$n == $_} (1)) ;
2878             },
2879             },
2880             sq => {
2881             one => sub {
2882            
2883             my $number = shift;
2884             my $n = abs($number);
2885             my $i = int($n);
2886             my ($f) = $number =~ /\.(.*)$/;
2887             $f //= '';
2888             my $t = length $f ? $f + 0 : '';
2889             my $v = length $f;
2890             my $w = length $t;
2891              
2892             return scalar (grep {$n == $_} (1)) ;
2893             },
2894             },
2895             sr => {
2896             few => sub {
2897            
2898             my $number = shift;
2899             my $n = abs($number);
2900             my $i = int($n);
2901             my ($f) = $number =~ /\.(.*)$/;
2902             $f //= '';
2903             my $t = length $f ? $f + 0 : '';
2904             my $v = length $f;
2905             my $w = length $t;
2906              
2907             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) || scalar (grep {$f % 10 == $_} (2..4)) && ! scalar (grep {$f % 100 == $_} (12..14)) ;
2908             },
2909             one => sub {
2910            
2911             my $number = shift;
2912             my $n = abs($number);
2913             my $i = int($n);
2914             my ($f) = $number =~ /\.(.*)$/;
2915             $f //= '';
2916             my $t = length $f ? $f + 0 : '';
2917             my $v = length $f;
2918             my $w = length $t;
2919              
2920             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || scalar (grep {$f % 10 == $_} (1)) && ! scalar (grep {$f % 100 == $_} (11)) ;
2921             },
2922             },
2923             ss => {
2924             one => sub {
2925            
2926             my $number = shift;
2927             my $n = abs($number);
2928             my $i = int($n);
2929             my ($f) = $number =~ /\.(.*)$/;
2930             $f //= '';
2931             my $t = length $f ? $f + 0 : '';
2932             my $v = length $f;
2933             my $w = length $t;
2934              
2935             return scalar (grep {$n == $_} (1)) ;
2936             },
2937             },
2938             ssy => {
2939             one => sub {
2940            
2941             my $number = shift;
2942             my $n = abs($number);
2943             my $i = int($n);
2944             my ($f) = $number =~ /\.(.*)$/;
2945             $f //= '';
2946             my $t = length $f ? $f + 0 : '';
2947             my $v = length $f;
2948             my $w = length $t;
2949              
2950             return scalar (grep {$n == $_} (1)) ;
2951             },
2952             },
2953             st => {
2954             one => sub {
2955            
2956             my $number = shift;
2957             my $n = abs($number);
2958             my $i = int($n);
2959             my ($f) = $number =~ /\.(.*)$/;
2960             $f //= '';
2961             my $t = length $f ? $f + 0 : '';
2962             my $v = length $f;
2963             my $w = length $t;
2964              
2965             return scalar (grep {$n == $_} (1)) ;
2966             },
2967             },
2968             sv => {
2969             one => sub {
2970            
2971             my $number = shift;
2972             my $n = abs($number);
2973             my $i = int($n);
2974             my ($f) = $number =~ /\.(.*)$/;
2975             $f //= '';
2976             my $t = length $f ? $f + 0 : '';
2977             my $v = length $f;
2978             my $w = length $t;
2979              
2980             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2981             },
2982             },
2983             sw => {
2984             one => sub {
2985            
2986             my $number = shift;
2987             my $n = abs($number);
2988             my $i = int($n);
2989             my ($f) = $number =~ /\.(.*)$/;
2990             $f //= '';
2991             my $t = length $f ? $f + 0 : '';
2992             my $v = length $f;
2993             my $w = length $t;
2994              
2995             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
2996             },
2997             },
2998             syr => {
2999             one => sub {
3000            
3001             my $number = shift;
3002             my $n = abs($number);
3003             my $i = int($n);
3004             my ($f) = $number =~ /\.(.*)$/;
3005             $f //= '';
3006             my $t = length $f ? $f + 0 : '';
3007             my $v = length $f;
3008             my $w = length $t;
3009              
3010             return scalar (grep {$n == $_} (1)) ;
3011             },
3012             },
3013             ta => {
3014             one => sub {
3015            
3016             my $number = shift;
3017             my $n = abs($number);
3018             my $i = int($n);
3019             my ($f) = $number =~ /\.(.*)$/;
3020             $f //= '';
3021             my $t = length $f ? $f + 0 : '';
3022             my $v = length $f;
3023             my $w = length $t;
3024              
3025             return scalar (grep {$n == $_} (1)) ;
3026             },
3027             },
3028             te => {
3029             one => sub {
3030            
3031             my $number = shift;
3032             my $n = abs($number);
3033             my $i = int($n);
3034             my ($f) = $number =~ /\.(.*)$/;
3035             $f //= '';
3036             my $t = length $f ? $f + 0 : '';
3037             my $v = length $f;
3038             my $w = length $t;
3039              
3040             return scalar (grep {$n == $_} (1)) ;
3041             },
3042             },
3043             teo => {
3044             one => sub {
3045            
3046             my $number = shift;
3047             my $n = abs($number);
3048             my $i = int($n);
3049             my ($f) = $number =~ /\.(.*)$/;
3050             $f //= '';
3051             my $t = length $f ? $f + 0 : '';
3052             my $v = length $f;
3053             my $w = length $t;
3054              
3055             return scalar (grep {$n == $_} (1)) ;
3056             },
3057             },
3058             ti => {
3059             one => sub {
3060            
3061             my $number = shift;
3062             my $n = abs($number);
3063             my $i = int($n);
3064             my ($f) = $number =~ /\.(.*)$/;
3065             $f //= '';
3066             my $t = length $f ? $f + 0 : '';
3067             my $v = length $f;
3068             my $w = length $t;
3069              
3070             return scalar (grep {$n == $_} (0..1)) ;
3071             },
3072             },
3073             tig => {
3074             one => sub {
3075            
3076             my $number = shift;
3077             my $n = abs($number);
3078             my $i = int($n);
3079             my ($f) = $number =~ /\.(.*)$/;
3080             $f //= '';
3081             my $t = length $f ? $f + 0 : '';
3082             my $v = length $f;
3083             my $w = length $t;
3084              
3085             return scalar (grep {$n == $_} (1)) ;
3086             },
3087             },
3088             tk => {
3089             one => sub {
3090            
3091             my $number = shift;
3092             my $n = abs($number);
3093             my $i = int($n);
3094             my ($f) = $number =~ /\.(.*)$/;
3095             $f //= '';
3096             my $t = length $f ? $f + 0 : '';
3097             my $v = length $f;
3098             my $w = length $t;
3099              
3100             return scalar (grep {$n == $_} (1)) ;
3101             },
3102             },
3103             tl => {
3104             one => sub {
3105            
3106             my $number = shift;
3107             my $n = abs($number);
3108             my $i = int($n);
3109             my ($f) = $number =~ /\.(.*)$/;
3110             $f //= '';
3111             my $t = length $f ? $f + 0 : '';
3112             my $v = length $f;
3113             my $w = length $t;
3114              
3115             return scalar (grep {$v == $_} (0)) && scalar (grep {$i == $_} (1,2,3)) || scalar (grep {$v == $_} (0)) && ! scalar (grep {$i % 10 == $_} (4,6,9)) || ! scalar (grep {$v == $_} (0)) && ! scalar (grep {$f % 10 == $_} (4,6,9)) ;
3116             },
3117             },
3118             tn => {
3119             one => sub {
3120            
3121             my $number = shift;
3122             my $n = abs($number);
3123             my $i = int($n);
3124             my ($f) = $number =~ /\.(.*)$/;
3125             $f //= '';
3126             my $t = length $f ? $f + 0 : '';
3127             my $v = length $f;
3128             my $w = length $t;
3129              
3130             return scalar (grep {$n == $_} (1)) ;
3131             },
3132             },
3133             tr => {
3134             one => sub {
3135            
3136             my $number = shift;
3137             my $n = abs($number);
3138             my $i = int($n);
3139             my ($f) = $number =~ /\.(.*)$/;
3140             $f //= '';
3141             my $t = length $f ? $f + 0 : '';
3142             my $v = length $f;
3143             my $w = length $t;
3144              
3145             return scalar (grep {$n == $_} (1)) ;
3146             },
3147             },
3148             ts => {
3149             one => sub {
3150            
3151             my $number = shift;
3152             my $n = abs($number);
3153             my $i = int($n);
3154             my ($f) = $number =~ /\.(.*)$/;
3155             $f //= '';
3156             my $t = length $f ? $f + 0 : '';
3157             my $v = length $f;
3158             my $w = length $t;
3159              
3160             return scalar (grep {$n == $_} (1)) ;
3161             },
3162             },
3163             tzm => {
3164             one => sub {
3165            
3166             my $number = shift;
3167             my $n = abs($number);
3168             my $i = int($n);
3169             my ($f) = $number =~ /\.(.*)$/;
3170             $f //= '';
3171             my $t = length $f ? $f + 0 : '';
3172             my $v = length $f;
3173             my $w = length $t;
3174              
3175             return scalar (grep {$n == $_} (0..1)) || scalar (grep {$n == $_} (11..99)) ;
3176             },
3177             },
3178             ug => {
3179             one => sub {
3180            
3181             my $number = shift;
3182             my $n = abs($number);
3183             my $i = int($n);
3184             my ($f) = $number =~ /\.(.*)$/;
3185             $f //= '';
3186             my $t = length $f ? $f + 0 : '';
3187             my $v = length $f;
3188             my $w = length $t;
3189              
3190             return scalar (grep {$n == $_} (1)) ;
3191             },
3192             },
3193             uk => {
3194             few => sub {
3195            
3196             my $number = shift;
3197             my $n = abs($number);
3198             my $i = int($n);
3199             my ($f) = $number =~ /\.(.*)$/;
3200             $f //= '';
3201             my $t = length $f ? $f + 0 : '';
3202             my $v = length $f;
3203             my $w = length $t;
3204              
3205             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
3206             },
3207             many => sub {
3208            
3209             my $number = shift;
3210             my $n = abs($number);
3211             my $i = int($n);
3212             my ($f) = $number =~ /\.(.*)$/;
3213             $f //= '';
3214             my $t = length $f ? $f + 0 : '';
3215             my $v = length $f;
3216             my $w = length $t;
3217              
3218             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (0)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (5..9)) || scalar (grep {$v == $_} (0)) && scalar (grep {$i % 100 == $_} (11..14)) ;
3219             },
3220             one => sub {
3221            
3222             my $number = shift;
3223             my $n = abs($number);
3224             my $i = int($n);
3225             my ($f) = $number =~ /\.(.*)$/;
3226             $f //= '';
3227             my $t = length $f ? $f + 0 : '';
3228             my $v = length $f;
3229             my $w = length $t;
3230              
3231             return scalar (grep {$v == $_} (0)) && scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
3232             },
3233             },
3234             ur => {
3235             one => sub {
3236            
3237             my $number = shift;
3238             my $n = abs($number);
3239             my $i = int($n);
3240             my ($f) = $number =~ /\.(.*)$/;
3241             $f //= '';
3242             my $t = length $f ? $f + 0 : '';
3243             my $v = length $f;
3244             my $w = length $t;
3245              
3246             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
3247             },
3248             },
3249             uz => {
3250             one => sub {
3251            
3252             my $number = shift;
3253             my $n = abs($number);
3254             my $i = int($n);
3255             my ($f) = $number =~ /\.(.*)$/;
3256             $f //= '';
3257             my $t = length $f ? $f + 0 : '';
3258             my $v = length $f;
3259             my $w = length $t;
3260              
3261             return scalar (grep {$n == $_} (1)) ;
3262             },
3263             },
3264             ve => {
3265             one => sub {
3266            
3267             my $number = shift;
3268             my $n = abs($number);
3269             my $i = int($n);
3270             my ($f) = $number =~ /\.(.*)$/;
3271             $f //= '';
3272             my $t = length $f ? $f + 0 : '';
3273             my $v = length $f;
3274             my $w = length $t;
3275              
3276             return scalar (grep {$n == $_} (1)) ;
3277             },
3278             },
3279             vo => {
3280             one => sub {
3281            
3282             my $number = shift;
3283             my $n = abs($number);
3284             my $i = int($n);
3285             my ($f) = $number =~ /\.(.*)$/;
3286             $f //= '';
3287             my $t = length $f ? $f + 0 : '';
3288             my $v = length $f;
3289             my $w = length $t;
3290              
3291             return scalar (grep {$n == $_} (1)) ;
3292             },
3293             },
3294             vun => {
3295             one => sub {
3296            
3297             my $number = shift;
3298             my $n = abs($number);
3299             my $i = int($n);
3300             my ($f) = $number =~ /\.(.*)$/;
3301             $f //= '';
3302             my $t = length $f ? $f + 0 : '';
3303             my $v = length $f;
3304             my $w = length $t;
3305              
3306             return scalar (grep {$n == $_} (1)) ;
3307             },
3308             },
3309             wa => {
3310             one => sub {
3311            
3312             my $number = shift;
3313             my $n = abs($number);
3314             my $i = int($n);
3315             my ($f) = $number =~ /\.(.*)$/;
3316             $f //= '';
3317             my $t = length $f ? $f + 0 : '';
3318             my $v = length $f;
3319             my $w = length $t;
3320              
3321             return scalar (grep {$n == $_} (0..1)) ;
3322             },
3323             },
3324             wae => {
3325             one => sub {
3326            
3327             my $number = shift;
3328             my $n = abs($number);
3329             my $i = int($n);
3330             my ($f) = $number =~ /\.(.*)$/;
3331             $f //= '';
3332             my $t = length $f ? $f + 0 : '';
3333             my $v = length $f;
3334             my $w = length $t;
3335              
3336             return scalar (grep {$n == $_} (1)) ;
3337             },
3338             },
3339             xh => {
3340             one => sub {
3341            
3342             my $number = shift;
3343             my $n = abs($number);
3344             my $i = int($n);
3345             my ($f) = $number =~ /\.(.*)$/;
3346             $f //= '';
3347             my $t = length $f ? $f + 0 : '';
3348             my $v = length $f;
3349             my $w = length $t;
3350              
3351             return scalar (grep {$n == $_} (1)) ;
3352             },
3353             },
3354             xog => {
3355             one => sub {
3356            
3357             my $number = shift;
3358             my $n = abs($number);
3359             my $i = int($n);
3360             my ($f) = $number =~ /\.(.*)$/;
3361             $f //= '';
3362             my $t = length $f ? $f + 0 : '';
3363             my $v = length $f;
3364             my $w = length $t;
3365              
3366             return scalar (grep {$n == $_} (1)) ;
3367             },
3368             },
3369             yi => {
3370             one => sub {
3371            
3372             my $number = shift;
3373             my $n = abs($number);
3374             my $i = int($n);
3375             my ($f) = $number =~ /\.(.*)$/;
3376             $f //= '';
3377             my $t = length $f ? $f + 0 : '';
3378             my $v = length $f;
3379             my $w = length $t;
3380              
3381             return scalar (grep {$i == $_} (1)) && scalar (grep {$v == $_} (0)) ;
3382             },
3383             },
3384             zu => {
3385             one => sub {
3386            
3387             my $number = shift;
3388             my $n = abs($number);
3389             my $i = int($n);
3390             my ($f) = $number =~ /\.(.*)$/;
3391             $f //= '';
3392             my $t = length $f ? $f + 0 : '';
3393             my $v = length $f;
3394             my $w = length $t;
3395              
3396             return scalar (grep {$i == $_} (0)) || scalar (grep {$n == $_} (1)) ;
3397             },
3398             },
3399             },
3400             ordinal => {
3401             as => {
3402             few => sub {
3403            
3404             my $number = shift;
3405             my $n = abs($number);
3406             my $i = int($n);
3407             my ($f) = $number =~ /\.(.*)$/;
3408             $f //= '';
3409             my $t = length $f ? $f + 0 : '';
3410             my $v = length $f;
3411             my $w = length $t;
3412              
3413             return scalar (grep {$n == $_} (4)) ;
3414             },
3415             many => sub {
3416            
3417             my $number = shift;
3418             my $n = abs($number);
3419             my $i = int($n);
3420             my ($f) = $number =~ /\.(.*)$/;
3421             $f //= '';
3422             my $t = length $f ? $f + 0 : '';
3423             my $v = length $f;
3424             my $w = length $t;
3425              
3426             return scalar (grep {$n == $_} (6)) ;
3427             },
3428             one => sub {
3429            
3430             my $number = shift;
3431             my $n = abs($number);
3432             my $i = int($n);
3433             my ($f) = $number =~ /\.(.*)$/;
3434             $f //= '';
3435             my $t = length $f ? $f + 0 : '';
3436             my $v = length $f;
3437             my $w = length $t;
3438              
3439             return scalar (grep {$n == $_} (1,5,7,8,9,10)) ;
3440             },
3441             two => sub {
3442            
3443             my $number = shift;
3444             my $n = abs($number);
3445             my $i = int($n);
3446             my ($f) = $number =~ /\.(.*)$/;
3447             $f //= '';
3448             my $t = length $f ? $f + 0 : '';
3449             my $v = length $f;
3450             my $w = length $t;
3451              
3452             return scalar (grep {$n == $_} (2,3)) ;
3453             },
3454             },
3455             az => {
3456             few => sub {
3457            
3458             my $number = shift;
3459             my $n = abs($number);
3460             my $i = int($n);
3461             my ($f) = $number =~ /\.(.*)$/;
3462             $f //= '';
3463             my $t = length $f ? $f + 0 : '';
3464             my $v = length $f;
3465             my $w = length $t;
3466              
3467             return scalar (grep {$i % 10 == $_} (3,4)) || scalar (grep {$i % 1000 == $_} (100,200,300,400,500,600,700,800,900)) ;
3468             },
3469             many => sub {
3470            
3471             my $number = shift;
3472             my $n = abs($number);
3473             my $i = int($n);
3474             my ($f) = $number =~ /\.(.*)$/;
3475             $f //= '';
3476             my $t = length $f ? $f + 0 : '';
3477             my $v = length $f;
3478             my $w = length $t;
3479              
3480             return scalar (grep {$i == $_} (0)) || scalar (grep {$i % 10 == $_} (6)) || scalar (grep {$i % 100 == $_} (40,60,90)) ;
3481             },
3482             one => sub {
3483            
3484             my $number = shift;
3485             my $n = abs($number);
3486             my $i = int($n);
3487             my ($f) = $number =~ /\.(.*)$/;
3488             $f //= '';
3489             my $t = length $f ? $f + 0 : '';
3490             my $v = length $f;
3491             my $w = length $t;
3492              
3493             return scalar (grep {$i % 10 == $_} (1,2,5,7,8)) || scalar (grep {$i % 100 == $_} (20,50,70,80)) ;
3494             },
3495             },
3496             bn => {
3497             few => sub {
3498            
3499             my $number = shift;
3500             my $n = abs($number);
3501             my $i = int($n);
3502             my ($f) = $number =~ /\.(.*)$/;
3503             $f //= '';
3504             my $t = length $f ? $f + 0 : '';
3505             my $v = length $f;
3506             my $w = length $t;
3507              
3508             return scalar (grep {$n == $_} (4)) ;
3509             },
3510             many => sub {
3511            
3512             my $number = shift;
3513             my $n = abs($number);
3514             my $i = int($n);
3515             my ($f) = $number =~ /\.(.*)$/;
3516             $f //= '';
3517             my $t = length $f ? $f + 0 : '';
3518             my $v = length $f;
3519             my $w = length $t;
3520              
3521             return scalar (grep {$n == $_} (6)) ;
3522             },
3523             one => sub {
3524            
3525             my $number = shift;
3526             my $n = abs($number);
3527             my $i = int($n);
3528             my ($f) = $number =~ /\.(.*)$/;
3529             $f //= '';
3530             my $t = length $f ? $f + 0 : '';
3531             my $v = length $f;
3532             my $w = length $t;
3533              
3534             return scalar (grep {$n == $_} (1,5,7,8,9,10)) ;
3535             },
3536             two => sub {
3537            
3538             my $number = shift;
3539             my $n = abs($number);
3540             my $i = int($n);
3541             my ($f) = $number =~ /\.(.*)$/;
3542             $f //= '';
3543             my $t = length $f ? $f + 0 : '';
3544             my $v = length $f;
3545             my $w = length $t;
3546              
3547             return scalar (grep {$n == $_} (2,3)) ;
3548             },
3549             },
3550             ca => {
3551             few => sub {
3552            
3553             my $number = shift;
3554             my $n = abs($number);
3555             my $i = int($n);
3556             my ($f) = $number =~ /\.(.*)$/;
3557             $f //= '';
3558             my $t = length $f ? $f + 0 : '';
3559             my $v = length $f;
3560             my $w = length $t;
3561              
3562             return scalar (grep {$n == $_} (4)) ;
3563             },
3564             one => sub {
3565            
3566             my $number = shift;
3567             my $n = abs($number);
3568             my $i = int($n);
3569             my ($f) = $number =~ /\.(.*)$/;
3570             $f //= '';
3571             my $t = length $f ? $f + 0 : '';
3572             my $v = length $f;
3573             my $w = length $t;
3574              
3575             return scalar (grep {$n == $_} (1,3)) ;
3576             },
3577             two => sub {
3578            
3579             my $number = shift;
3580             my $n = abs($number);
3581             my $i = int($n);
3582             my ($f) = $number =~ /\.(.*)$/;
3583             $f //= '';
3584             my $t = length $f ? $f + 0 : '';
3585             my $v = length $f;
3586             my $w = length $t;
3587              
3588             return scalar (grep {$n == $_} (2)) ;
3589             },
3590             },
3591             cy => {
3592             few => sub {
3593            
3594             my $number = shift;
3595             my $n = abs($number);
3596             my $i = int($n);
3597             my ($f) = $number =~ /\.(.*)$/;
3598             $f //= '';
3599             my $t = length $f ? $f + 0 : '';
3600             my $v = length $f;
3601             my $w = length $t;
3602              
3603             return scalar (grep {$n == $_} (3,4)) ;
3604             },
3605             many => sub {
3606            
3607             my $number = shift;
3608             my $n = abs($number);
3609             my $i = int($n);
3610             my ($f) = $number =~ /\.(.*)$/;
3611             $f //= '';
3612             my $t = length $f ? $f + 0 : '';
3613             my $v = length $f;
3614             my $w = length $t;
3615              
3616             return scalar (grep {$n == $_} (5,6)) ;
3617             },
3618             one => sub {
3619            
3620             my $number = shift;
3621             my $n = abs($number);
3622             my $i = int($n);
3623             my ($f) = $number =~ /\.(.*)$/;
3624             $f //= '';
3625             my $t = length $f ? $f + 0 : '';
3626             my $v = length $f;
3627             my $w = length $t;
3628              
3629             return scalar (grep {$n == $_} (1)) ;
3630             },
3631             two => sub {
3632            
3633             my $number = shift;
3634             my $n = abs($number);
3635             my $i = int($n);
3636             my ($f) = $number =~ /\.(.*)$/;
3637             $f //= '';
3638             my $t = length $f ? $f + 0 : '';
3639             my $v = length $f;
3640             my $w = length $t;
3641              
3642             return scalar (grep {$n == $_} (2)) ;
3643             },
3644             zero => sub {
3645            
3646             my $number = shift;
3647             my $n = abs($number);
3648             my $i = int($n);
3649             my ($f) = $number =~ /\.(.*)$/;
3650             $f //= '';
3651             my $t = length $f ? $f + 0 : '';
3652             my $v = length $f;
3653             my $w = length $t;
3654              
3655             return scalar (grep {$n == $_} (0,7,8,9)) ;
3656             },
3657             },
3658             en => {
3659             few => sub {
3660            
3661             my $number = shift;
3662             my $n = abs($number);
3663             my $i = int($n);
3664             my ($f) = $number =~ /\.(.*)$/;
3665             $f //= '';
3666             my $t = length $f ? $f + 0 : '';
3667             my $v = length $f;
3668             my $w = length $t;
3669              
3670             return scalar (grep {$n % 10 == $_} (3)) && ! scalar (grep {$n % 100 == $_} (13)) ;
3671             },
3672             one => sub {
3673            
3674             my $number = shift;
3675             my $n = abs($number);
3676             my $i = int($n);
3677             my ($f) = $number =~ /\.(.*)$/;
3678             $f //= '';
3679             my $t = length $f ? $f + 0 : '';
3680             my $v = length $f;
3681             my $w = length $t;
3682              
3683             return scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) ;
3684             },
3685             two => sub {
3686            
3687             my $number = shift;
3688             my $n = abs($number);
3689             my $i = int($n);
3690             my ($f) = $number =~ /\.(.*)$/;
3691             $f //= '';
3692             my $t = length $f ? $f + 0 : '';
3693             my $v = length $f;
3694             my $w = length $t;
3695              
3696             return scalar (grep {$n % 10 == $_} (2)) && ! scalar (grep {$n % 100 == $_} (12)) ;
3697             },
3698             },
3699             fil => {
3700             one => sub {
3701            
3702             my $number = shift;
3703             my $n = abs($number);
3704             my $i = int($n);
3705             my ($f) = $number =~ /\.(.*)$/;
3706             $f //= '';
3707             my $t = length $f ? $f + 0 : '';
3708             my $v = length $f;
3709             my $w = length $t;
3710              
3711             return scalar (grep {$n == $_} (1)) ;
3712             },
3713             },
3714             fr => {
3715             one => sub {
3716            
3717             my $number = shift;
3718             my $n = abs($number);
3719             my $i = int($n);
3720             my ($f) = $number =~ /\.(.*)$/;
3721             $f //= '';
3722             my $t = length $f ? $f + 0 : '';
3723             my $v = length $f;
3724             my $w = length $t;
3725              
3726             return scalar (grep {$n == $_} (1)) ;
3727             },
3728             },
3729             gu => {
3730             few => sub {
3731            
3732             my $number = shift;
3733             my $n = abs($number);
3734             my $i = int($n);
3735             my ($f) = $number =~ /\.(.*)$/;
3736             $f //= '';
3737             my $t = length $f ? $f + 0 : '';
3738             my $v = length $f;
3739             my $w = length $t;
3740              
3741             return scalar (grep {$n == $_} (4)) ;
3742             },
3743             many => sub {
3744            
3745             my $number = shift;
3746             my $n = abs($number);
3747             my $i = int($n);
3748             my ($f) = $number =~ /\.(.*)$/;
3749             $f //= '';
3750             my $t = length $f ? $f + 0 : '';
3751             my $v = length $f;
3752             my $w = length $t;
3753              
3754             return scalar (grep {$n == $_} (6)) ;
3755             },
3756             one => sub {
3757            
3758             my $number = shift;
3759             my $n = abs($number);
3760             my $i = int($n);
3761             my ($f) = $number =~ /\.(.*)$/;
3762             $f //= '';
3763             my $t = length $f ? $f + 0 : '';
3764             my $v = length $f;
3765             my $w = length $t;
3766              
3767             return scalar (grep {$n == $_} (1)) ;
3768             },
3769             two => sub {
3770            
3771             my $number = shift;
3772             my $n = abs($number);
3773             my $i = int($n);
3774             my ($f) = $number =~ /\.(.*)$/;
3775             $f //= '';
3776             my $t = length $f ? $f + 0 : '';
3777             my $v = length $f;
3778             my $w = length $t;
3779              
3780             return scalar (grep {$n == $_} (2,3)) ;
3781             },
3782             },
3783             hi => {
3784             few => sub {
3785            
3786             my $number = shift;
3787             my $n = abs($number);
3788             my $i = int($n);
3789             my ($f) = $number =~ /\.(.*)$/;
3790             $f //= '';
3791             my $t = length $f ? $f + 0 : '';
3792             my $v = length $f;
3793             my $w = length $t;
3794              
3795             return scalar (grep {$n == $_} (4)) ;
3796             },
3797             many => sub {
3798            
3799             my $number = shift;
3800             my $n = abs($number);
3801             my $i = int($n);
3802             my ($f) = $number =~ /\.(.*)$/;
3803             $f //= '';
3804             my $t = length $f ? $f + 0 : '';
3805             my $v = length $f;
3806             my $w = length $t;
3807              
3808             return scalar (grep {$n == $_} (6)) ;
3809             },
3810             one => sub {
3811            
3812             my $number = shift;
3813             my $n = abs($number);
3814             my $i = int($n);
3815             my ($f) = $number =~ /\.(.*)$/;
3816             $f //= '';
3817             my $t = length $f ? $f + 0 : '';
3818             my $v = length $f;
3819             my $w = length $t;
3820              
3821             return scalar (grep {$n == $_} (1)) ;
3822             },
3823             two => sub {
3824            
3825             my $number = shift;
3826             my $n = abs($number);
3827             my $i = int($n);
3828             my ($f) = $number =~ /\.(.*)$/;
3829             $f //= '';
3830             my $t = length $f ? $f + 0 : '';
3831             my $v = length $f;
3832             my $w = length $t;
3833              
3834             return scalar (grep {$n == $_} (2,3)) ;
3835             },
3836             },
3837             hu => {
3838             one => sub {
3839            
3840             my $number = shift;
3841             my $n = abs($number);
3842             my $i = int($n);
3843             my ($f) = $number =~ /\.(.*)$/;
3844             $f //= '';
3845             my $t = length $f ? $f + 0 : '';
3846             my $v = length $f;
3847             my $w = length $t;
3848              
3849             return scalar (grep {$n == $_} (1,5)) ;
3850             },
3851             },
3852             hy => {
3853             one => sub {
3854            
3855             my $number = shift;
3856             my $n = abs($number);
3857             my $i = int($n);
3858             my ($f) = $number =~ /\.(.*)$/;
3859             $f //= '';
3860             my $t = length $f ? $f + 0 : '';
3861             my $v = length $f;
3862             my $w = length $t;
3863              
3864             return scalar (grep {$n == $_} (1)) ;
3865             },
3866             },
3867             it => {
3868             many => sub {
3869            
3870             my $number = shift;
3871             my $n = abs($number);
3872             my $i = int($n);
3873             my ($f) = $number =~ /\.(.*)$/;
3874             $f //= '';
3875             my $t = length $f ? $f + 0 : '';
3876             my $v = length $f;
3877             my $w = length $t;
3878              
3879             return scalar (grep {$n == $_} (11,8,80,800)) ;
3880             },
3881             },
3882             ka => {
3883             many => sub {
3884            
3885             my $number = shift;
3886             my $n = abs($number);
3887             my $i = int($n);
3888             my ($f) = $number =~ /\.(.*)$/;
3889             $f //= '';
3890             my $t = length $f ? $f + 0 : '';
3891             my $v = length $f;
3892             my $w = length $t;
3893              
3894             return scalar (grep {$i == $_} (0)) || scalar (grep {$i % 100 == $_} (2..20,40,60,80)) ;
3895             },
3896             one => sub {
3897            
3898             my $number = shift;
3899             my $n = abs($number);
3900             my $i = int($n);
3901             my ($f) = $number =~ /\.(.*)$/;
3902             $f //= '';
3903             my $t = length $f ? $f + 0 : '';
3904             my $v = length $f;
3905             my $w = length $t;
3906              
3907             return scalar (grep {$i == $_} (1)) ;
3908             },
3909             },
3910             kk => {
3911             many => sub {
3912            
3913             my $number = shift;
3914             my $n = abs($number);
3915             my $i = int($n);
3916             my ($f) = $number =~ /\.(.*)$/;
3917             $f //= '';
3918             my $t = length $f ? $f + 0 : '';
3919             my $v = length $f;
3920             my $w = length $t;
3921              
3922             return scalar (grep {$n % 10 == $_} (6)) || scalar (grep {$n % 10 == $_} (9)) || scalar (grep {$n % 10 == $_} (0)) && ! scalar (grep {$n == $_} (0)) ;
3923             },
3924             },
3925             lo => {
3926             one => sub {
3927            
3928             my $number = shift;
3929             my $n = abs($number);
3930             my $i = int($n);
3931             my ($f) = $number =~ /\.(.*)$/;
3932             $f //= '';
3933             my $t = length $f ? $f + 0 : '';
3934             my $v = length $f;
3935             my $w = length $t;
3936              
3937             return scalar (grep {$n == $_} (1)) ;
3938             },
3939             },
3940             mk => {
3941             many => sub {
3942            
3943             my $number = shift;
3944             my $n = abs($number);
3945             my $i = int($n);
3946             my ($f) = $number =~ /\.(.*)$/;
3947             $f //= '';
3948             my $t = length $f ? $f + 0 : '';
3949             my $v = length $f;
3950             my $w = length $t;
3951              
3952             return scalar (grep {$i % 10 == $_} (7,8)) && ! scalar (grep {$i % 100 == $_} (17,18)) ;
3953             },
3954             one => sub {
3955            
3956             my $number = shift;
3957             my $n = abs($number);
3958             my $i = int($n);
3959             my ($f) = $number =~ /\.(.*)$/;
3960             $f //= '';
3961             my $t = length $f ? $f + 0 : '';
3962             my $v = length $f;
3963             my $w = length $t;
3964              
3965             return scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
3966             },
3967             two => sub {
3968            
3969             my $number = shift;
3970             my $n = abs($number);
3971             my $i = int($n);
3972             my ($f) = $number =~ /\.(.*)$/;
3973             $f //= '';
3974             my $t = length $f ? $f + 0 : '';
3975             my $v = length $f;
3976             my $w = length $t;
3977              
3978             return scalar (grep {$i % 10 == $_} (2)) && ! scalar (grep {$i % 100 == $_} (12)) ;
3979             },
3980             },
3981             mo => {
3982             one => sub {
3983            
3984             my $number = shift;
3985             my $n = abs($number);
3986             my $i = int($n);
3987             my ($f) = $number =~ /\.(.*)$/;
3988             $f //= '';
3989             my $t = length $f ? $f + 0 : '';
3990             my $v = length $f;
3991             my $w = length $t;
3992              
3993             return scalar (grep {$n == $_} (1)) ;
3994             },
3995             },
3996             mr => {
3997             few => sub {
3998            
3999             my $number = shift;
4000             my $n = abs($number);
4001             my $i = int($n);
4002             my ($f) = $number =~ /\.(.*)$/;
4003             $f //= '';
4004             my $t = length $f ? $f + 0 : '';
4005             my $v = length $f;
4006             my $w = length $t;
4007              
4008             return scalar (grep {$n == $_} (4)) ;
4009             },
4010             one => sub {
4011            
4012             my $number = shift;
4013             my $n = abs($number);
4014             my $i = int($n);
4015             my ($f) = $number =~ /\.(.*)$/;
4016             $f //= '';
4017             my $t = length $f ? $f + 0 : '';
4018             my $v = length $f;
4019             my $w = length $t;
4020              
4021             return scalar (grep {$n == $_} (1)) ;
4022             },
4023             two => sub {
4024            
4025             my $number = shift;
4026             my $n = abs($number);
4027             my $i = int($n);
4028             my ($f) = $number =~ /\.(.*)$/;
4029             $f //= '';
4030             my $t = length $f ? $f + 0 : '';
4031             my $v = length $f;
4032             my $w = length $t;
4033              
4034             return scalar (grep {$n == $_} (2,3)) ;
4035             },
4036             },
4037             ms => {
4038             one => sub {
4039            
4040             my $number = shift;
4041             my $n = abs($number);
4042             my $i = int($n);
4043             my ($f) = $number =~ /\.(.*)$/;
4044             $f //= '';
4045             my $t = length $f ? $f + 0 : '';
4046             my $v = length $f;
4047             my $w = length $t;
4048              
4049             return scalar (grep {$n == $_} (1)) ;
4050             },
4051             },
4052             ne => {
4053             one => sub {
4054            
4055             my $number = shift;
4056             my $n = abs($number);
4057             my $i = int($n);
4058             my ($f) = $number =~ /\.(.*)$/;
4059             $f //= '';
4060             my $t = length $f ? $f + 0 : '';
4061             my $v = length $f;
4062             my $w = length $t;
4063              
4064             return scalar (grep {$n == $_} (1..4)) ;
4065             },
4066             },
4067             ro => {
4068             one => sub {
4069            
4070             my $number = shift;
4071             my $n = abs($number);
4072             my $i = int($n);
4073             my ($f) = $number =~ /\.(.*)$/;
4074             $f //= '';
4075             my $t = length $f ? $f + 0 : '';
4076             my $v = length $f;
4077             my $w = length $t;
4078              
4079             return scalar (grep {$n == $_} (1)) ;
4080             },
4081             },
4082             sq => {
4083             many => sub {
4084            
4085             my $number = shift;
4086             my $n = abs($number);
4087             my $i = int($n);
4088             my ($f) = $number =~ /\.(.*)$/;
4089             $f //= '';
4090             my $t = length $f ? $f + 0 : '';
4091             my $v = length $f;
4092             my $w = length $t;
4093              
4094             return scalar (grep {$n % 10 == $_} (4)) && ! scalar (grep {$n % 100 == $_} (14)) ;
4095             },
4096             one => sub {
4097            
4098             my $number = shift;
4099             my $n = abs($number);
4100             my $i = int($n);
4101             my ($f) = $number =~ /\.(.*)$/;
4102             $f //= '';
4103             my $t = length $f ? $f + 0 : '';
4104             my $v = length $f;
4105             my $w = length $t;
4106              
4107             return scalar (grep {$n == $_} (1)) ;
4108             },
4109             },
4110             sv => {
4111             one => sub {
4112            
4113             my $number = shift;
4114             my $n = abs($number);
4115             my $i = int($n);
4116             my ($f) = $number =~ /\.(.*)$/;
4117             $f //= '';
4118             my $t = length $f ? $f + 0 : '';
4119             my $v = length $f;
4120             my $w = length $t;
4121              
4122             return scalar (grep {$n % 10 == $_} (1,2)) && ! scalar (grep {$n % 100 == $_} (11,12)) ;
4123             },
4124             },
4125             tl => {
4126             one => sub {
4127            
4128             my $number = shift;
4129             my $n = abs($number);
4130             my $i = int($n);
4131             my ($f) = $number =~ /\.(.*)$/;
4132             $f //= '';
4133             my $t = length $f ? $f + 0 : '';
4134             my $v = length $f;
4135             my $w = length $t;
4136              
4137             return scalar (grep {$n == $_} (1)) ;
4138             },
4139             },
4140             uk => {
4141             few => sub {
4142            
4143             my $number = shift;
4144             my $n = abs($number);
4145             my $i = int($n);
4146             my ($f) = $number =~ /\.(.*)$/;
4147             $f //= '';
4148             my $t = length $f ? $f + 0 : '';
4149             my $v = length $f;
4150             my $w = length $t;
4151              
4152             return scalar (grep {$n % 10 == $_} (3)) && ! scalar (grep {$n % 100 == $_} (13)) ;
4153             },
4154             },
4155             vi => {
4156             one => sub {
4157            
4158             my $number = shift;
4159             my $n = abs($number);
4160             my $i = int($n);
4161             my ($f) = $number =~ /\.(.*)$/;
4162             $f //= '';
4163             my $t = length $f ? $f + 0 : '';
4164             my $v = length $f;
4165             my $w = length $t;
4166              
4167             return scalar (grep {$n == $_} (1)) ;
4168             },
4169             },
4170             },
4171             );
4172              
4173             sub plural {
4174 1185     1185 0 68426 my ($self, $number, $type) = @_;
4175 1185   100     3230 $type //= 'cardinal';
4176 1185   33     2499 my $language_id = $self->language_id || $self->likely_subtag->language_id;
4177            
4178 1185         1742 foreach my $count (qw( zero one two few many )) {
4179 4748 100       8172 next unless exists $_plurals{$type}{$language_id}{$count};
4180 1187 100       2111 return $count if $_plurals{$type}{$language_id}{$count}->($number);
4181             }
4182 792         1551 return 'other';
4183             }
4184              
4185             my %_plural_ranges = (
4186             af => {
4187             one => {
4188             other => 'other',
4189             },
4190             other => {
4191             one => 'other',
4192             other => 'other',
4193             },
4194             },
4195             am => {
4196             one => {
4197             one => 'one',
4198             other => 'other',
4199             },
4200             other => {
4201             other => 'other',
4202             },
4203             },
4204             ar => {
4205             few => {
4206             few => 'few',
4207             many => 'many',
4208             other => 'other',
4209             },
4210             many => {
4211             few => 'few',
4212             many => 'many',
4213             other => 'other',
4214             },
4215             one => {
4216             few => 'few',
4217             many => 'many',
4218             other => 'other',
4219             two => 'other',
4220             },
4221             other => {
4222             few => 'few',
4223             many => 'many',
4224             one => 'other',
4225             other => 'other',
4226             two => 'other',
4227             },
4228             two => {
4229             few => 'few',
4230             many => 'many',
4231             other => 'other',
4232             },
4233             zero => {
4234             few => 'few',
4235             many => 'many',
4236             one => 'zero',
4237             other => 'other',
4238             two => 'zero',
4239             },
4240             },
4241             az => {
4242             one => {
4243             other => 'other',
4244             },
4245             other => {
4246             one => 'one',
4247             other => 'other',
4248             },
4249             },
4250             bg => {
4251             one => {
4252             other => 'other',
4253             },
4254             other => {
4255             one => 'other',
4256             other => 'other',
4257             },
4258             },
4259             bn => {
4260             one => {
4261             one => 'one',
4262             other => 'other',
4263             },
4264             other => {
4265             other => 'other',
4266             },
4267             },
4268             bs => {
4269             few => {
4270             few => 'few',
4271             one => 'one',
4272             other => 'other',
4273             },
4274             one => {
4275             few => 'few',
4276             one => 'one',
4277             other => 'other',
4278             },
4279             other => {
4280             few => 'few',
4281             one => 'one',
4282             other => 'other',
4283             },
4284             },
4285             ca => {
4286             one => {
4287             other => 'other',
4288             },
4289             other => {
4290             one => 'other',
4291             other => 'other',
4292             },
4293             },
4294             cs => {
4295             few => {
4296             few => 'few',
4297             many => 'many',
4298             other => 'other',
4299             },
4300             many => {
4301             few => 'few',
4302             many => 'many',
4303             one => 'one',
4304             other => 'other',
4305             },
4306             one => {
4307             few => 'few',
4308             many => 'many',
4309             other => 'other',
4310             },
4311             other => {
4312             few => 'few',
4313             many => 'many',
4314             one => 'one',
4315             other => 'other',
4316             },
4317             },
4318             cy => {
4319             few => {
4320             many => 'many',
4321             other => 'other',
4322             },
4323             many => {
4324             other => 'other',
4325             },
4326             one => {
4327             few => 'few',
4328             many => 'many',
4329             other => 'other',
4330             two => 'two',
4331             },
4332             other => {
4333             few => 'few',
4334             many => 'many',
4335             one => 'one',
4336             other => 'other',
4337             two => 'two',
4338             },
4339             two => {
4340             few => 'few',
4341             many => 'many',
4342             other => 'other',
4343             },
4344             zero => {
4345             few => 'few',
4346             many => 'many',
4347             one => 'one',
4348             other => 'other',
4349             two => 'two',
4350             },
4351             },
4352             da => {
4353             one => {
4354             one => 'one',
4355             other => 'other',
4356             },
4357             other => {
4358             one => 'one',
4359             other => 'other',
4360             },
4361             },
4362             de => {
4363             one => {
4364             other => 'other',
4365             },
4366             other => {
4367             one => 'one',
4368             other => 'other',
4369             },
4370             },
4371             el => {
4372             one => {
4373             other => 'other',
4374             },
4375             other => {
4376             one => 'one',
4377             other => 'other',
4378             },
4379             },
4380             en => {
4381             one => {
4382             other => 'other',
4383             },
4384             other => {
4385             one => 'other',
4386             other => 'other',
4387             },
4388             },
4389             es => {
4390             one => {
4391             other => 'other',
4392             },
4393             other => {
4394             one => 'other',
4395             other => 'other',
4396             },
4397             },
4398             et => {
4399             one => {
4400             other => 'other',
4401             },
4402             other => {
4403             one => 'other',
4404             other => 'other',
4405             },
4406             },
4407             eu => {
4408             one => {
4409             other => 'other',
4410             },
4411             other => {
4412             one => 'other',
4413             other => 'other',
4414             },
4415             },
4416             fa => {
4417             one => {
4418             one => 'other',
4419             other => 'other',
4420             },
4421             other => {
4422             other => 'other',
4423             },
4424             },
4425             fi => {
4426             one => {
4427             other => 'other',
4428             },
4429             other => {
4430             one => 'other',
4431             other => 'other',
4432             },
4433             },
4434             fil => {
4435             one => {
4436             one => 'one',
4437             other => 'other',
4438             },
4439             other => {
4440             one => 'one',
4441             other => 'other',
4442             },
4443             },
4444             fr => {
4445             one => {
4446             one => 'one',
4447             other => 'other',
4448             },
4449             other => {
4450             other => 'other',
4451             },
4452             },
4453             gl => {
4454             one => {
4455             other => 'other',
4456             },
4457             other => {
4458             one => 'one',
4459             other => 'other',
4460             },
4461             },
4462             gu => {
4463             one => {
4464             one => 'one',
4465             other => 'other',
4466             },
4467             other => {
4468             other => 'other',
4469             },
4470             },
4471             he => {
4472             many => {
4473             many => 'many',
4474             other => 'many',
4475             },
4476             one => {
4477             many => 'many',
4478             other => 'other',
4479             two => 'other',
4480             },
4481             other => {
4482             many => 'many',
4483             one => 'other',
4484             other => 'other',
4485             two => 'other',
4486             },
4487             two => {
4488             many => 'other',
4489             other => 'other',
4490             },
4491             },
4492             hi => {
4493             one => {
4494             one => 'one',
4495             other => 'other',
4496             },
4497             other => {
4498             other => 'other',
4499             },
4500             },
4501             hr => {
4502             few => {
4503             few => 'few',
4504             one => 'one',
4505             other => 'other',
4506             },
4507             one => {
4508             few => 'few',
4509             one => 'one',
4510             other => 'other',
4511             },
4512             other => {
4513             few => 'few',
4514             one => 'one',
4515             other => 'other',
4516             },
4517             },
4518             hu => {
4519             one => {
4520             other => 'other',
4521             },
4522             other => {
4523             one => 'one',
4524             other => 'other',
4525             },
4526             },
4527             hy => {
4528             one => {
4529             one => 'one',
4530             other => 'other',
4531             },
4532             other => {
4533             other => 'other',
4534             },
4535             },
4536             id => {
4537             other => {
4538             other => 'other',
4539             },
4540             },
4541             is => {
4542             one => {
4543             one => 'one',
4544             other => 'other',
4545             },
4546             other => {
4547             one => 'one',
4548             other => 'other',
4549             },
4550             },
4551             it => {
4552             one => {
4553             other => 'other',
4554             },
4555             other => {
4556             one => 'one',
4557             other => 'other',
4558             },
4559             },
4560             ja => {
4561             other => {
4562             other => 'other',
4563             },
4564             },
4565             ka => {
4566             one => {
4567             other => 'one',
4568             },
4569             other => {
4570             one => 'other',
4571             other => 'other',
4572             },
4573             },
4574             kk => {
4575             one => {
4576             other => 'other',
4577             },
4578             other => {
4579             one => 'one',
4580             other => 'other',
4581             },
4582             },
4583             km => {
4584             other => {
4585             other => 'other',
4586             },
4587             },
4588             kn => {
4589             one => {
4590             one => 'one',
4591             other => 'other',
4592             },
4593             other => {
4594             other => 'other',
4595             },
4596             },
4597             ko => {
4598             other => {
4599             other => 'other',
4600             },
4601             },
4602             ky => {
4603             one => {
4604             other => 'other',
4605             },
4606             other => {
4607             one => 'one',
4608             other => 'other',
4609             },
4610             },
4611             lo => {
4612             other => {
4613             other => 'other',
4614             },
4615             },
4616             lt => {
4617             few => {
4618             few => 'few',
4619             many => 'many',
4620             one => 'one',
4621             other => 'other',
4622             },
4623             many => {
4624             few => 'few',
4625             many => 'many',
4626             one => 'one',
4627             other => 'other',
4628             },
4629             one => {
4630             few => 'few',
4631             many => 'many',
4632             one => 'one',
4633             other => 'other',
4634             },
4635             other => {
4636             few => 'few',
4637             many => 'many',
4638             one => 'one',
4639             other => 'other',
4640             },
4641             },
4642             lv => {
4643             one => {
4644             one => 'one',
4645             other => 'other',
4646             zero => 'other',
4647             },
4648             other => {
4649             one => 'one',
4650             other => 'other',
4651             zero => 'other',
4652             },
4653             zero => {
4654             one => 'one',
4655             other => 'other',
4656             zero => 'other',
4657             },
4658             },
4659             mk => {
4660             one => {
4661             one => 'other',
4662             other => 'other',
4663             },
4664             other => {
4665             one => 'other',
4666             other => 'other',
4667             },
4668             },
4669             ml => {
4670             one => {
4671             other => 'other',
4672             },
4673             other => {
4674             one => 'one',
4675             other => 'other',
4676             },
4677             },
4678             mn => {
4679             one => {
4680             other => 'other',
4681             },
4682             other => {
4683             one => 'one',
4684             other => 'other',
4685             },
4686             },
4687             mr => {
4688             one => {
4689             one => 'one',
4690             other => 'other',
4691             },
4692             other => {
4693             other => 'other',
4694             },
4695             },
4696             ms => {
4697             other => {
4698             other => 'other',
4699             },
4700             },
4701             my => {
4702             other => {
4703             other => 'other',
4704             },
4705             },
4706             nb => {
4707             one => {
4708             other => 'other',
4709             },
4710             other => {
4711             one => 'other',
4712             other => 'other',
4713             },
4714             },
4715             ne => {
4716             one => {
4717             other => 'other',
4718             },
4719             other => {
4720             one => 'one',
4721             other => 'other',
4722             },
4723             },
4724             nl => {
4725             one => {
4726             other => 'other',
4727             },
4728             other => {
4729             one => 'one',
4730             other => 'other',
4731             },
4732             },
4733             pa => {
4734             one => {
4735             one => 'one',
4736             other => 'other',
4737             },
4738             other => {
4739             other => 'other',
4740             },
4741             },
4742             pl => {
4743             few => {
4744             few => 'few',
4745             many => 'many',
4746             other => 'other',
4747             },
4748             many => {
4749             few => 'few',
4750             many => 'many',
4751             one => 'one',
4752             other => 'other',
4753             },
4754             one => {
4755             few => 'few',
4756             many => 'many',
4757             other => 'other',
4758             },
4759             other => {
4760             few => 'few',
4761             many => 'many',
4762             one => 'one',
4763             other => 'other',
4764             },
4765             },
4766             pt => {
4767             one => {
4768             other => 'other',
4769             },
4770             other => {
4771             one => 'one',
4772             other => 'other',
4773             },
4774             },
4775             ro => {
4776             few => {
4777             few => 'few',
4778             one => 'few',
4779             other => 'other',
4780             },
4781             one => {
4782             few => 'few',
4783             other => 'other',
4784             },
4785             other => {
4786             few => 'few',
4787             other => 'other',
4788             },
4789             },
4790             ru => {
4791             few => {
4792             few => 'few',
4793             many => 'many',
4794             one => 'one',
4795             other => 'other',
4796             },
4797             many => {
4798             few => 'few',
4799             many => 'many',
4800             one => 'one',
4801             other => 'other',
4802             },
4803             one => {
4804             few => 'few',
4805             many => 'many',
4806             one => 'one',
4807             other => 'other',
4808             },
4809             other => {
4810             few => 'few',
4811             many => 'many',
4812             one => 'one',
4813             other => 'other',
4814             },
4815             },
4816             si => {
4817             one => {
4818             one => 'one',
4819             other => 'other',
4820             },
4821             other => {
4822             one => 'other',
4823             other => 'other',
4824             },
4825             },
4826             sk => {
4827             few => {
4828             few => 'few',
4829             many => 'many',
4830             other => 'other',
4831             },
4832             many => {
4833             few => 'few',
4834             many => 'many',
4835             one => 'one',
4836             other => 'other',
4837             },
4838             one => {
4839             few => 'few',
4840             many => 'many',
4841             other => 'other',
4842             },
4843             other => {
4844             few => 'few',
4845             many => 'many',
4846             one => 'one',
4847             other => 'other',
4848             },
4849             },
4850             sl => {
4851             few => {
4852             few => 'few',
4853             one => 'few',
4854             other => 'other',
4855             two => 'two',
4856             },
4857             one => {
4858             few => 'few',
4859             one => 'few',
4860             other => 'other',
4861             two => 'two',
4862             },
4863             other => {
4864             few => 'few',
4865             one => 'few',
4866             other => 'other',
4867             two => 'two',
4868             },
4869             two => {
4870             few => 'few',
4871             one => 'few',
4872             other => 'other',
4873             two => 'two',
4874             },
4875             },
4876             sq => {
4877             one => {
4878             other => 'other',
4879             },
4880             other => {
4881             one => 'one',
4882             other => 'other',
4883             },
4884             },
4885             sr => {
4886             few => {
4887             few => 'few',
4888             one => 'one',
4889             other => 'other',
4890             },
4891             one => {
4892             few => 'few',
4893             one => 'one',
4894             other => 'other',
4895             },
4896             other => {
4897             few => 'few',
4898             one => 'one',
4899             other => 'other',
4900             },
4901             },
4902             sv => {
4903             one => {
4904             other => 'other',
4905             },
4906             other => {
4907             one => 'other',
4908             other => 'other',
4909             },
4910             },
4911             sw => {
4912             one => {
4913             other => 'other',
4914             },
4915             other => {
4916             one => 'one',
4917             other => 'other',
4918             },
4919             },
4920             ta => {
4921             one => {
4922             other => 'other',
4923             },
4924             other => {
4925             one => 'one',
4926             other => 'other',
4927             },
4928             },
4929             te => {
4930             one => {
4931             other => 'other',
4932             },
4933             other => {
4934             one => 'one',
4935             other => 'other',
4936             },
4937             },
4938             th => {
4939             other => {
4940             other => 'other',
4941             },
4942             },
4943             tr => {
4944             one => {
4945             other => 'other',
4946             },
4947             other => {
4948             one => 'one',
4949             other => 'other',
4950             },
4951             },
4952             ug => {
4953             one => {
4954             other => 'other',
4955             },
4956             other => {
4957             one => 'one',
4958             other => 'other',
4959             },
4960             },
4961             uk => {
4962             few => {
4963             few => 'few',
4964             many => 'many',
4965             one => 'one',
4966             other => 'other',
4967             },
4968             many => {
4969             few => 'few',
4970             many => 'many',
4971             one => 'one',
4972             other => 'other',
4973             },
4974             one => {
4975             few => 'few',
4976             many => 'many',
4977             one => 'one',
4978             other => 'other',
4979             },
4980             other => {
4981             few => 'few',
4982             many => 'many',
4983             one => 'one',
4984             other => 'other',
4985             },
4986             },
4987             ur => {
4988             one => {
4989             other => 'other',
4990             },
4991             other => {
4992             one => 'other',
4993             other => 'other',
4994             },
4995             },
4996             uz => {
4997             one => {
4998             other => 'other',
4999             },
5000             other => {
5001             one => 'one',
5002             other => 'other',
5003             },
5004             },
5005             vi => {
5006             other => {
5007             other => 'other',
5008             },
5009             },
5010             zh => {
5011             other => {
5012             other => 'other',
5013             },
5014             },
5015             zu => {
5016             one => {
5017             one => 'one',
5018             other => 'other',
5019             },
5020             other => {
5021             other => 'other',
5022             },
5023             },
5024             );
5025            
5026             sub plural_range {
5027 158     158 0 55306 my ($self, $start, $end) = @_;
5028 158   33     408 my $language_id = $self->language_id || $self->likely_subtag->language_id;
5029            
5030 158 100       624 $start = $self->plural($start) if $start =~ /^-?(?:[0-9]+\.)?[0-9]+$/;
5031 158 100       520 $end = $self->plural($end) if $end =~ /^-?(?:[0-9]+\.)?[0-9]+$/;
5032            
5033 158   100     797 return $_plural_ranges{$language_id}{$start}{$end} // 'other';
5034             }
5035              
5036              
5037 20     20   620727 no Moose::Role;
  20         44  
  20         185  
5038              
5039             1;
5040              
5041             # vim: tabstop=4