File Coverage

blib/lib/Locale/CLDR/Plurals.pm
Criterion Covered Total %
statement 32 32 100.0
branch 8 8 100.0
condition 6 10 60.0
subroutine 9 9 100.0
pod 0 2 0.0
total 55 61 90.1


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