File Coverage

blib/lib/Locale/CLDR/Plurals.pm
Criterion Covered Total %
statement 41 41 100.0
branch 8 8 100.0
condition 6 10 60.0
subroutine 12 12 100.0
pod 0 2 0.0
total 67 73 91.7


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