package Locale::CLDR::Plurals;
# This file auto generated from Data/common/supplemental/ordinals.xml
#	on Mon 11 Apr  5:22:53 pm GMT

use strict;
use warnings;
use version;

our $VERSION = version->declare('v0.34.1');

use v5.10.1;
use mro 'c3';
use utf8;
use if $^V ge v5.12.0, feature => 'unicode_strings';
use Types::Standard qw( Str Int HashRef ArrayRef CodeRef RegexpRef );
use Moo::Role;

my %_plurals = (
	cardinal => {
		af => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ak => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		am => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		ar => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 100 == $_} (3..10)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 100 == $_} (11..99)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
			zero => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0)) ;
			},
		},
		ars => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 100 == $_} (3..10)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 100 == $_} (11..99)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
			zero => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0)) ;
			},
		},
		as => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		asa => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ast => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		az => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		be => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (2..4)) && ! scalar (grep {$n % 100 == $_} (12..14)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (0)) ||  scalar (grep {$n % 10 == $_} (5..9)) ||  scalar (grep {$n % 100 == $_} (11..14)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) ;
			},
		},
		bem => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		bez => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		bg => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		bh => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		bn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		br => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (3..4,9)) && ! scalar (grep {$n % 100 == $_} (10..19,70..79,90..99)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return ! scalar (grep {$n == $_} (0)) &&  scalar (grep {$n % 1000000 == $_} (0)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11,71,91)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (2)) && ! scalar (grep {$n % 100 == $_} (12,72,92)) ;
			},
		},
		brx => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		bs => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
		},
		ca => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		ce => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		cgg => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		chr => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ckb => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		cs => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (2..4)) &&  scalar (grep {$v == $_} (0)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return ! scalar (grep {$v == $_} (0))   ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		cy => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (3)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (6)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
			zero => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0)) ;
			},
		},
		da => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) || ! scalar (grep {$t == $_} (0)) &&  scalar (grep {$i == $_} (0,1)) ;
			},
		},
		de => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		dsb => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (3..4)) ||  scalar (grep {$f % 100 == $_} (3..4)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (1)) ||  scalar (grep {$f % 100 == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (2)) ||  scalar (grep {$f % 100 == $_} (2)) ;
			},
		},
		dv => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ee => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		el => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		en => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		eo => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		es => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		et => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		eu => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		fa => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		ff => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0,1)) ;
			},
		},
		fi => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		fil => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
		},
		fo => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		fr => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0,1)) ;
			},
		},
		fur => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		fy => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		ga => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (3..6)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (7..10)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		gd => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (3..10,13..19)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1,11)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2,12)) ;
			},
		},
		gl => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		gsw => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		gu => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		guw => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		gv => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (0,20,40,60,80)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return ! scalar (grep {$v == $_} (0))   ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 10 == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 10 == $_} (2)) ;
			},
		},
		ha => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		haw => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		he => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) && ! scalar (grep {$n == $_} (0..10)) &&  scalar (grep {$n % 10 == $_} (0)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (2)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		hi => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		hr => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
		},
		hsb => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (3..4)) ||  scalar (grep {$f % 100 == $_} (3..4)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (1)) ||  scalar (grep {$f % 100 == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (2)) ||  scalar (grep {$f % 100 == $_} (2)) ;
			},
		},
		hu => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		hy => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0,1)) ;
			},
		},
		ia => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		io => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		is => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$t == $_} (0)) &&  scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) || ! scalar (grep {$t == $_} (0)) ;
			},
		},
		it => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		iu => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		iw => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) && ! scalar (grep {$n == $_} (0..10)) &&  scalar (grep {$n % 10 == $_} (0)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (2)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		jgo => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ji => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		jmc => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ka => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		kab => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0,1)) ;
			},
		},
		kaj => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		kcg => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		kk => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		kkj => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		kl => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		kn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		ks => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ksb => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ksh => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			zero => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0)) ;
			},
		},
		ku => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		kw => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		ky => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		lag => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0,1)) && ! scalar (grep {$n == $_} (0)) ;
			},
			zero => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0)) ;
			},
		},
		lb => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		lg => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ln => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		lt => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (2..9)) && ! scalar (grep {$n % 100 == $_} (11..19)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return ! scalar (grep {$f == $_} (0))   ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11..19)) ;
			},
		},
		lv => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			zero => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (0)) ||  scalar (grep {$n % 100 == $_} (11..19)) ||  scalar (grep {$v == $_} (2)) &&  scalar (grep {$f % 100 == $_} (11..19)) ;
			},
		},
		mas => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		mg => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		mgo => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		mk => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
		},
		ml => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		mn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		mo => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return ! scalar (grep {$v == $_} (0)) ||  scalar (grep {$n == $_} (0)) || ! scalar (grep {$n == $_} (1)) &&  scalar (grep {$n % 100 == $_} (1..19)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		mr => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		mt => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0)) ||  scalar (grep {$n % 100 == $_} (2..10)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 100 == $_} (11..19)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		nah => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		naq => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		nb => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		nd => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ne => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		nl => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		nn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		nnh => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		no => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		nr => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		nso => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		ny => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		nyn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		om => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		or => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		os => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		pa => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		pap => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		pl => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		prg => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			zero => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (0)) ||  scalar (grep {$n % 100 == $_} (11..19)) ||  scalar (grep {$v == $_} (2)) &&  scalar (grep {$f % 100 == $_} (11..19)) ;
			},
		},
		ps => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		pt => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0..1)) ;
			},
		},
		pt_PT => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		rm => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ro => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return ! scalar (grep {$v == $_} (0)) ||  scalar (grep {$n == $_} (0)) || ! scalar (grep {$n == $_} (1)) &&  scalar (grep {$n % 100 == $_} (1..19)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		rof => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ru => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
			},
		},
		rwk => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		saq => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		sc => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		scn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		sd => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		sdh => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		se => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		seh => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		sh => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
		},
		shi => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2..10)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
		si => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0,1)) ||  scalar (grep {$i == $_} (0)) &&  scalar (grep {$f == $_} (1)) ;
			},
		},
		sk => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (2..4)) &&  scalar (grep {$v == $_} (0)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return ! scalar (grep {$v == $_} (0))   ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		sl => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (3..4)) || ! scalar (grep {$v == $_} (0)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 100 == $_} (2)) ;
			},
		},
		sma => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		smi => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		smj => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		smn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		sms => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		sn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		so => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		sq => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		sr => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
		},
		ss => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ssy => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		st => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		sv => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		sw => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		syr => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ta => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		te => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		teo => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ti => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		tig => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		tk => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		tl => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
		},
		tn => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		tr => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ts => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		tzm => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ||  scalar (grep {$n == $_} (11..99)) ;
			},
		},
		ug => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		uk => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 10 == $_} (2..4)) && ! scalar (grep {$i % 100 == $_} (12..14)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				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)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$v == $_} (0)) &&  scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
			},
		},
		ur => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		uz => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ve => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		vo => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		vun => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		wa => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0..1)) ;
			},
		},
		wae => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		xh => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		xog => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		yi => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) &&  scalar (grep {$v == $_} (0)) ;
			},
		},
		zu => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$n == $_} (1)) ;
			},
		},
	},
	ordinal => {
		as => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (4)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (6)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1,5,7,8,9,10)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2,3)) ;
			},
		},
		az => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i % 10 == $_} (3,4)) ||  scalar (grep {$i % 1000 == $_} (100,200,300,400,500,600,700,800,900)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$i % 10 == $_} (6)) ||  scalar (grep {$i % 100 == $_} (40,60,90)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i % 10 == $_} (1,2,5,7,8)) ||  scalar (grep {$i % 100 == $_} (20,50,70,80)) ;
			},
		},
		be => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (2,3)) && ! scalar (grep {$n % 100 == $_} (12,13)) ;
			},
		},
		bn => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (4)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (6)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1,5,7,8,9,10)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2,3)) ;
			},
		},
		ca => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (4)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1,3)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
		},
		cy => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (3,4)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (5,6)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2)) ;
			},
			zero => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (0,7,8,9)) ;
			},
		},
		en => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (3)) && ! scalar (grep {$n % 100 == $_} (13)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (1)) && ! scalar (grep {$n % 100 == $_} (11)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (2)) && ! scalar (grep {$n % 100 == $_} (12)) ;
			},
		},
		fil => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		fr => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ga => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		gd => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (3,13)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1,11)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2,12)) ;
			},
		},
		gu => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (4)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (6)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2,3)) ;
			},
		},
		hi => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (4)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (6)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2,3)) ;
			},
		},
		hu => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1,5)) ;
			},
		},
		hy => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		it => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (11,8,80,800)) ;
			},
		},
		ka => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (0)) ||  scalar (grep {$i % 100 == $_} (2..20,40,60,80)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i == $_} (1)) ;
			},
		},
		kk => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (6)) ||  scalar (grep {$n % 10 == $_} (9)) ||  scalar (grep {$n % 10 == $_} (0)) && ! scalar (grep {$n == $_} (0)) ;
			},
		},
		lo => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		mk => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i % 10 == $_} (7,8)) && ! scalar (grep {$i % 100 == $_} (17,18)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i % 10 == $_} (1)) && ! scalar (grep {$i % 100 == $_} (11)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$i % 10 == $_} (2)) && ! scalar (grep {$i % 100 == $_} (12)) ;
			},
		},
		mo => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		mr => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (4)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2,3)) ;
			},
		},
		ms => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		ne => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1..4)) ;
			},
		},
		or => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (4)) ;
			},
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (6)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1,5,7..9)) ;
			},
			two => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (2,3)) ;
			},
		},
		ro => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		sc => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (11,8,80,800)) ;
			},
		},
		scn => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (11,8,80,800)) ;
			},
		},
		sq => {
			many => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (4)) && ! scalar (grep {$n % 100 == $_} (14)) ;
			},
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		sv => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (1,2)) && ! scalar (grep {$n % 100 == $_} (11,12)) ;
			},
		},
		tk => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (6,9)) ||  scalar (grep {$n == $_} (10)) ;
			},
		},
		tl => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
		uk => {
			few => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n % 10 == $_} (3)) && ! scalar (grep {$n % 100 == $_} (13)) ;
			},
		},
		vi => {
			one => sub {
				
				my $number = shift;
				my $n = abs($number);
				my $i = int($n);
				my ($f) = $number =~ /\.(.*)$/;
				$f //= '';
				my $t = length $f ? $f + 0 : '';
				my $v = length $f;
				my $w = length $t;
				$f ||= 0;
				$t ||= 0;

				return  scalar (grep {$n == $_} (1)) ;
			},
		},
	},
);

sub plural {
	my ($self, $number, $type) = @_;
	$type //= 'cardinal';
	my $language_id = $self->language_id || $self->likely_subtag->language_id;
	
	foreach my $count (qw( zero one two few many )) {
		next unless exists $_plurals{$type}{$language_id}{$count};
		return $count if $_plurals{$type}{$language_id}{$count}->($number);
	}
	return 'other';
}

my %_plural_ranges = (
	af => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	ak => {
		one => {
			one => 'other',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	am => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	ar => {
		few => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		many => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			other => 'other',
			two => 'other',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'other',
			other => 'other',
			two => 'other',
		},
		two => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		zero => {
			few => 'few',
			many => 'many',
			one => 'zero',
			other => 'other',
			two => 'zero',
		},
	},
	as => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	az => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	be => {
		few => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		many => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
	},
	bg => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	bn => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	bs => {
		few => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
		other => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
	},
	ca => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	cs => {
		few => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		many => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
	},
	cy => {
		few => {
			many => 'many',
			other => 'other',
		},
		many => {
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			other => 'other',
			two => 'two',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
			two => 'two',
		},
		two => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		zero => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
			two => 'two',
		},
	},
	da => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	de => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	el => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	en => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	es => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	et => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	eu => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	fa => {
		one => {
			one => 'other',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	fi => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	fil => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	fr => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	ga => {
		few => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		many => {
			many => 'many',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			other => 'other',
			two => 'two',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
			two => 'two',
		},
		two => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
	},
	gl => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	gsw => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	gu => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	he => {
		many => {
			many => 'many',
			other => 'many',
		},
		one => {
			many => 'many',
			other => 'other',
			two => 'other',
		},
		other => {
			many => 'many',
			one => 'other',
			other => 'other',
			two => 'other',
		},
		two => {
			many => 'other',
			other => 'other',
		},
	},
	hi => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	hr => {
		few => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
		other => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
	},
	hu => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	hy => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	ia => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	id => {
		other => {
			other => 'other',
		},
	},
	io => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	is => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	it => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	ja => {
		other => {
			other => 'other',
		},
	},
	ka => {
		one => {
			other => 'one',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	kk => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	km => {
		other => {
			other => 'other',
		},
	},
	kn => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	ko => {
		other => {
			other => 'other',
		},
	},
	ky => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	lo => {
		other => {
			other => 'other',
		},
	},
	lt => {
		few => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		many => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
	},
	lv => {
		one => {
			one => 'one',
			other => 'other',
			zero => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
			zero => 'other',
		},
		zero => {
			one => 'one',
			other => 'other',
			zero => 'other',
		},
	},
	mk => {
		one => {
			one => 'other',
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	ml => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	mn => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	mr => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	ms => {
		other => {
			other => 'other',
		},
	},
	my => {
		other => {
			other => 'other',
		},
	},
	nb => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	ne => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	nl => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	or => {
		one => {
			one => 'other',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	pa => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	pl => {
		few => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		many => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
	},
	ps => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	pt => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	ro => {
		few => {
			few => 'few',
			one => 'few',
			other => 'other',
		},
		one => {
			few => 'few',
			other => 'other',
		},
		other => {
			few => 'few',
			other => 'other',
		},
	},
	ru => {
		few => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		many => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
	},
	sc => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	scn => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	sd => {
		one => {
			one => 'other',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
	si => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	sk => {
		few => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		many => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			other => 'other',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
	},
	sl => {
		few => {
			few => 'few',
			one => 'few',
			other => 'other',
			two => 'two',
		},
		one => {
			few => 'few',
			one => 'few',
			other => 'other',
			two => 'two',
		},
		other => {
			few => 'few',
			one => 'few',
			other => 'other',
			two => 'two',
		},
		two => {
			few => 'few',
			one => 'few',
			other => 'other',
			two => 'two',
		},
	},
	sq => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	sr => {
		few => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
		other => {
			few => 'few',
			one => 'one',
			other => 'other',
		},
	},
	sv => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	sw => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	ta => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	te => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	th => {
		other => {
			other => 'other',
		},
	},
	tk => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	tr => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	ug => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	uk => {
		few => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		many => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		one => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
		other => {
			few => 'few',
			many => 'many',
			one => 'one',
			other => 'other',
		},
	},
	ur => {
		one => {
			other => 'other',
		},
		other => {
			one => 'other',
			other => 'other',
		},
	},
	uz => {
		one => {
			other => 'other',
		},
		other => {
			one => 'one',
			other => 'other',
		},
	},
	vi => {
		other => {
			other => 'other',
		},
	},
	yue => {
		other => {
			other => 'other',
		},
	},
	zh => {
		other => {
			other => 'other',
		},
	},
	zu => {
		one => {
			one => 'one',
			other => 'other',
		},
		other => {
			other => 'other',
		},
	},
);
	
sub plural_range {
	my ($self, $start, $end) = @_;
	my $language_id = $self->language_id || $self->likely_subtag->language_id;
	
	$start = $self->plural($start) if $start =~ /^-?(?:[0-9]+\.)?[0-9]+$/;
	$end   = $self->plural($end)   if $end   =~ /^-?(?:[0-9]+\.)?[0-9]+$/;
	
	return $_plural_ranges{$language_id}{$start}{$end} // 'other';
}


no Moo::Role;

1;

# vim: tabstop=4
